SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Paleta możliwości 
web developera 
wykorzystywane technologie i narzędzia 
Tomasz Borowski, 2014-12-02 Bielsko-Biała
Paleta możliwości 
➔ języki, frameworki oraz biblioteki 
➔ usługi dla aplikacji 
➔ narzędzia do developmentu
Technology Stack 
Front-end 
HTML, Javascript (biblioteki), CSS (stylowanie) 
Back-end 
kod aplikacji, biblioteki, serwer aplikacji 
Usługi 
baza danych, mailing, monitoring aplikacji
Front-end 
wybrane języki
HTML HyperText Markup Language 
Hipertekstowy język znaczników, 
definiuje co ma być wyświetlane 
<html> 
<head> 
<title>Awesome strona! </title> 
</head> 
<body> 
<div class=”pink”> Strona o kucykach </div> 
</body> 
</html>
HAML HTML abstraction markup language 
Hipertekstowy język znaczników, 
definiuje co ma być wyświetlane 
%html 
%head 
%title Awesome strona! 
%body 
.pink Strona o kucykach
CSS Cascading Style Sheets 
Kaskadowe arkusze stylów, 
definiuje jak ma być wyświetlane 
div { 
font-size: 14px; 
font-color: black; 
} 
div.pink { 
font- color: pink; 
}
SASS Syntactically Awesome Stylesheets 
Kaskadowe arkusze stylów, 
definiuje jak ma być wyświetlane 
div 
font-size: 14px 
font-color: black 
&.pink 
font- color: pink
JavaScript 
Skryptowy język programowania, 
definiuje jak ma się zachowywać 
var Person; 
Person = (function() { 
function Person(name) { 
this.name = name; 
} 
Person.prototype.sayHi = function() { 
return alert("Hi, I am " + this.name); 
}; 
return Person; 
})();
CoffeeScript 
Skryptowy język programowania, 
kompilowany do JavaScriptu 
class Person 
constructor: (name) -> 
@name = name 
sayHi: -> 
alert "Hi, I am #{@name}"
Frond-end 
wybrane biblioteki i frameworki
jQuery 
Biblioteka dla języka JavaScript 
- manipulacje na drzewie DOM 
- obsługa wydarzeń 
- obsługa animacji 
- obsługa zapytań AJAX 
jQuery('body').css('color', 'pink'); 
jQuery('div.pink' ).append('Awesome!' );
Bootstrap 
Framework CSS, JavaScript 
- możliwość wykorzystania gotowych 
szablonów 
- responsywne stylowanie 
- komponenty HTML / JavaScript
EmberJS 
Framework MVC Javascript 
- budowa aplikacji jednostronicowych 
- zarządzanie danymi po stronie klienta 
- dynamiczne szablony Handlebars
Wiecej informacji: 
https://github.com/showcases/front-end-javascript-frameworks 
https://github.com/showcases/css-libraries
Back-end 
wybrane języki
PHP PHP Hypertext Preprocessor 
Skryptowy język programowania 
class Person { 
var $name; 
function Person($name) 
{ 
$this ->name = $name; 
} 
function sayHi() 
{ 
return 'Hi, I am ' .$this->name; 
} 
}
Ruby 
Skryptowy język programowania 
class Person 
def initialize (name) 
@name = name 
end 
def say_hi 
"Hi, I am #{@name}" 
end 
end
Python 
Skryptowy język programowania 
class Person: 
def __init__(name): 
self.name = name 
def say_hi: 
"Hi, I am %s" % self.name
Back-end 
wybrane frameworki
Frameworki MVC 
MVC to wzorzec architektoniczny służący do organizowania struktury aplikacji 
posiadających graficzne interfejsy użytkownika. 
MVC zakłada podział aplikacji na trzy główne części: 
● Model: jest reprezentacją problemu bądź logiki aplikacji. 
● Widok: opisuje, jak wyświetlić pewną część modelu w ramach interfejsu 
użytkownika. 
● Kontroler: przyjmuje dane wejściowe od użytkownika i reaguje na jego 
poczynania, zarządzając aktualizacje modelu oraz odświeżenie widoków. 
Wikipedia
Frameworki MVC
Frameworks
Ruby on Rails 
Dlaczego 
- mało konfigurowania, mało kodu 
- przyjemny w kodowaniu i czytaniu 
- łatwość w instalacji gemów (pakietów) 
- duże i bardzo aktywne community 
- wsparcie dla różnorodnych baz danych 
- szybkie prototypowanie dzięki generatorom kodu 
- ...
Ruby on Rails 
Przykładowa aplikacja - otoTeam 
Aplikacja Ruby on Rails do zapraszania znajomych na spotkania z 
wykorzystaniem kolejki zaproszeń. 
Aplikacja jest tworzona podczas warsztatów Ruby on Rails organizowanych 
przez fundację Mikstura IT. 
Repozytorium 
https://github.com/miksturait/ototeam 
Online 
http://ototeam-mikstura.herokuapp.com
Usługi 
wybrane aplikacje
Heroku 
Hosting w platformie chmurowej 
- darmowy dla prostych aplikacji 
- duża skalowalność 
- proste w instalacji dodatki 
- nie wymaga wiedzy 
z administracji serwerami 
Alternatywy:
Amazon S3 Simple Storage Service 
Hosting plików w chmurze 
- darmowy do 1GB wychodzącego transferu miesięcznie 
- zarządzanie zezwoleniami 
- usługa niezbędna przy 
korzystaniu z Heroku 
Alternatywy:
PostgreSQL 
Relacyjna baza danych SQL 
- darmowa (open source) 
- bardzo wydajna 
- możliwość definiowania funkcji i widoków 
- dodatkowe typy danych np. array, hstore 
Alternatywy:
Mailgun 
API do wysyłania i przekazywania maili 
- darmowy do 10 000 maili miesięcznie 
- tracking wysyłanych maili 
- przekierowywanie maili 
Alternatywy:
New Relic 
Monitorowanie aplikacji 
- analiza obciążenia serwera 
- analiza zapytań SQL 
- analiza ruchu w aplikacji 
- monitorowanie wydajności aplikacji 
Alternatywy:
Narzędzia do developmentu 
wybrane aplikacje
Travis-CI 
Wykonywanie testów na zdalnym serwerze 
- testy uruchamiane przy każdej aktualizacji repozytorium 
- opcjonalne contiuous deployment 
- darmowe dla projektów open source 
Alternatywy:
Code Climate 
Analiza statyczna kodu 
- detekcja powtórzeń kodu 
- detekcja skomplikowanych metod / klas 
- obliczanie pokrycia kodu testami 
- darmowa dla projektów open source 
Alternatywy:
Gemnasium 
Analiza wersji wykorzystywanych bibliotek 
- powiadomienia o nowych wersjach bibliotek 
- ostrzeżenia przed dziurami bezpieczeństwa 
- listowanie zmian w danej bibliotece
Jak to działa w praktyce?
Continuous Deployments 
Częsta aktualizowanie aplikacji 
- jeśli wszystkie testy przechodzą, to automatyczny deploy 
- kilkanaście aktualizacji dziennie 
push web hook deploy 
repozytorium serwer integracyjny web serwer 
nowy kod 
analiza kodu 
web hook
Dziękuję za uwagę 
@TomaszBorowski 
tomaszborowski.com

Contenu connexe

Similaire à Paleta możliwości web developera

Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do AspKelut
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Adrian Kalbarczyk
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASMateusz Stępniak
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?tkryskiewicz
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API3camp
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiGrzegorz Bartman
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Mateusz Stępniak
 
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?Tobias Koprowski
 

Similaire à Paleta możliwości web developera (20)

Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
 
Silverlight i PHP
Silverlight i PHPSilverlight i PHP
Silverlight i PHP
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
 
Aplikacje internetowe (2010)
Aplikacje internetowe (2010)Aplikacje internetowe (2010)
Aplikacje internetowe (2010)
 
Html5 i css3
Html5 i css3Html5 i css3
Html5 i css3
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
XHTML & CSS, WAI
XHTML & CSS, WAIXHTML & CSS, WAI
XHTML & CSS, WAI
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOAS
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Serwery WWW - wykład
Serwery WWW - wykładSerwery WWW - wykład
Serwery WWW - wykład
 
AJAX - wdw1
AJAX - wdw1AJAX - wdw1
AJAX - wdw1
 
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
 
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław SobieckiPodstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
Podstawy programowania w Drupalu - Drupal idzie na studia - Jarosław Sobiecki
 
Hosting, domena, HTML, CMS
Hosting, domena, HTML, CMSHosting, domena, HTML, CMS
Hosting, domena, HTML, CMS
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
 
Android i REST
Android i RESTAndroid i REST
Android i REST
 
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
1st Silesian Code Camp - Czy jesteśmy gotowi na SQL Azure?
 
Wordpress i nagłówki
Wordpress i nagłówkiWordpress i nagłówki
Wordpress i nagłówki
 
11 ciekawych edytorów html
11 ciekawych edytorów html11 ciekawych edytorów html
11 ciekawych edytorów html
 

Plus de Tomasz Borowski

Angular components-unit-testing
Angular components-unit-testingAngular components-unit-testing
Angular components-unit-testingTomasz Borowski
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTomasz Borowski
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutTomasz Borowski
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychTomasz Borowski
 
Grywalizacja rzeczywistości, czyli jak uciec od kompa
Grywalizacja rzeczywistości, czyli jak uciec od kompaGrywalizacja rzeczywistości, czyli jak uciec od kompa
Grywalizacja rzeczywistości, czyli jak uciec od kompaTomasz Borowski
 
How I Became a Spaceship Commander
How I Became a Spaceship CommanderHow I Became a Spaceship Commander
How I Became a Spaceship CommanderTomasz Borowski
 
Grywalizacja w trosce o zdrowie
Grywalizacja w trosce o zdrowieGrywalizacja w trosce o zdrowie
Grywalizacja w trosce o zdrowieTomasz Borowski
 
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowychTomasz Borowski
 
Rozszerzona rzeczywistość - nowe spojrzenie na świat
Rozszerzona rzeczywistość - nowe spojrzenie na światRozszerzona rzeczywistość - nowe spojrzenie na świat
Rozszerzona rzeczywistość - nowe spojrzenie na światTomasz Borowski
 

Plus de Tomasz Borowski (11)

Angular components-unit-testing
Angular components-unit-testingAngular components-unit-testing
Angular components-unit-testing
 
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowejTworzenie niezależnego środowiska do developmentu aplikacji frontendowej
Tworzenie niezależnego środowiska do developmentu aplikacji frontendowej
 
Ionic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minutIonic framework - aplikacja mobilna w 15 minut
Ionic framework - aplikacja mobilna w 15 minut
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
 
Grywalizacja rzeczywistości, czyli jak uciec od kompa
Grywalizacja rzeczywistości, czyli jak uciec od kompaGrywalizacja rzeczywistości, czyli jak uciec od kompa
Grywalizacja rzeczywistości, czyli jak uciec od kompa
 
How I Became a Spaceship Commander
How I Became a Spaceship CommanderHow I Became a Spaceship Commander
How I Became a Spaceship Commander
 
Grywalizacja w trosce o zdrowie
Grywalizacja w trosce o zdrowieGrywalizacja w trosce o zdrowie
Grywalizacja w trosce o zdrowie
 
Haxorz day 7
Haxorz day 7Haxorz day 7
Haxorz day 7
 
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych
7 rzeczy, które zespoły IT mogą nauczyć się ze sportów drużynowych
 
Rozszerzona rzeczywistość - nowe spojrzenie na świat
Rozszerzona rzeczywistość - nowe spojrzenie na światRozszerzona rzeczywistość - nowe spojrzenie na świat
Rozszerzona rzeczywistość - nowe spojrzenie na świat
 
Psychologia w grach
Psychologia w grachPsychologia w grach
Psychologia w grach
 

Paleta możliwości web developera

  • 1. Paleta możliwości web developera wykorzystywane technologie i narzędzia Tomasz Borowski, 2014-12-02 Bielsko-Biała
  • 2. Paleta możliwości ➔ języki, frameworki oraz biblioteki ➔ usługi dla aplikacji ➔ narzędzia do developmentu
  • 3. Technology Stack Front-end HTML, Javascript (biblioteki), CSS (stylowanie) Back-end kod aplikacji, biblioteki, serwer aplikacji Usługi baza danych, mailing, monitoring aplikacji
  • 5. HTML HyperText Markup Language Hipertekstowy język znaczników, definiuje co ma być wyświetlane <html> <head> <title>Awesome strona! </title> </head> <body> <div class=”pink”> Strona o kucykach </div> </body> </html>
  • 6. HAML HTML abstraction markup language Hipertekstowy język znaczników, definiuje co ma być wyświetlane %html %head %title Awesome strona! %body .pink Strona o kucykach
  • 7. CSS Cascading Style Sheets Kaskadowe arkusze stylów, definiuje jak ma być wyświetlane div { font-size: 14px; font-color: black; } div.pink { font- color: pink; }
  • 8. SASS Syntactically Awesome Stylesheets Kaskadowe arkusze stylów, definiuje jak ma być wyświetlane div font-size: 14px font-color: black &.pink font- color: pink
  • 9. JavaScript Skryptowy język programowania, definiuje jak ma się zachowywać var Person; Person = (function() { function Person(name) { this.name = name; } Person.prototype.sayHi = function() { return alert("Hi, I am " + this.name); }; return Person; })();
  • 10. CoffeeScript Skryptowy język programowania, kompilowany do JavaScriptu class Person constructor: (name) -> @name = name sayHi: -> alert "Hi, I am #{@name}"
  • 12. jQuery Biblioteka dla języka JavaScript - manipulacje na drzewie DOM - obsługa wydarzeń - obsługa animacji - obsługa zapytań AJAX jQuery('body').css('color', 'pink'); jQuery('div.pink' ).append('Awesome!' );
  • 13. Bootstrap Framework CSS, JavaScript - możliwość wykorzystania gotowych szablonów - responsywne stylowanie - komponenty HTML / JavaScript
  • 14. EmberJS Framework MVC Javascript - budowa aplikacji jednostronicowych - zarządzanie danymi po stronie klienta - dynamiczne szablony Handlebars
  • 17. PHP PHP Hypertext Preprocessor Skryptowy język programowania class Person { var $name; function Person($name) { $this ->name = $name; } function sayHi() { return 'Hi, I am ' .$this->name; } }
  • 18. Ruby Skryptowy język programowania class Person def initialize (name) @name = name end def say_hi "Hi, I am #{@name}" end end
  • 19. Python Skryptowy język programowania class Person: def __init__(name): self.name = name def say_hi: "Hi, I am %s" % self.name
  • 21. Frameworki MVC MVC to wzorzec architektoniczny służący do organizowania struktury aplikacji posiadających graficzne interfejsy użytkownika. MVC zakłada podział aplikacji na trzy główne części: ● Model: jest reprezentacją problemu bądź logiki aplikacji. ● Widok: opisuje, jak wyświetlić pewną część modelu w ramach interfejsu użytkownika. ● Kontroler: przyjmuje dane wejściowe od użytkownika i reaguje na jego poczynania, zarządzając aktualizacje modelu oraz odświeżenie widoków. Wikipedia
  • 24.
  • 25. Ruby on Rails Dlaczego - mało konfigurowania, mało kodu - przyjemny w kodowaniu i czytaniu - łatwość w instalacji gemów (pakietów) - duże i bardzo aktywne community - wsparcie dla różnorodnych baz danych - szybkie prototypowanie dzięki generatorom kodu - ...
  • 26. Ruby on Rails Przykładowa aplikacja - otoTeam Aplikacja Ruby on Rails do zapraszania znajomych na spotkania z wykorzystaniem kolejki zaproszeń. Aplikacja jest tworzona podczas warsztatów Ruby on Rails organizowanych przez fundację Mikstura IT. Repozytorium https://github.com/miksturait/ototeam Online http://ototeam-mikstura.herokuapp.com
  • 28. Heroku Hosting w platformie chmurowej - darmowy dla prostych aplikacji - duża skalowalność - proste w instalacji dodatki - nie wymaga wiedzy z administracji serwerami Alternatywy:
  • 29. Amazon S3 Simple Storage Service Hosting plików w chmurze - darmowy do 1GB wychodzącego transferu miesięcznie - zarządzanie zezwoleniami - usługa niezbędna przy korzystaniu z Heroku Alternatywy:
  • 30. PostgreSQL Relacyjna baza danych SQL - darmowa (open source) - bardzo wydajna - możliwość definiowania funkcji i widoków - dodatkowe typy danych np. array, hstore Alternatywy:
  • 31. Mailgun API do wysyłania i przekazywania maili - darmowy do 10 000 maili miesięcznie - tracking wysyłanych maili - przekierowywanie maili Alternatywy:
  • 32. New Relic Monitorowanie aplikacji - analiza obciążenia serwera - analiza zapytań SQL - analiza ruchu w aplikacji - monitorowanie wydajności aplikacji Alternatywy:
  • 33.
  • 34. Narzędzia do developmentu wybrane aplikacje
  • 35. Travis-CI Wykonywanie testów na zdalnym serwerze - testy uruchamiane przy każdej aktualizacji repozytorium - opcjonalne contiuous deployment - darmowe dla projektów open source Alternatywy:
  • 36. Code Climate Analiza statyczna kodu - detekcja powtórzeń kodu - detekcja skomplikowanych metod / klas - obliczanie pokrycia kodu testami - darmowa dla projektów open source Alternatywy:
  • 37. Gemnasium Analiza wersji wykorzystywanych bibliotek - powiadomienia o nowych wersjach bibliotek - ostrzeżenia przed dziurami bezpieczeństwa - listowanie zmian w danej bibliotece
  • 38. Jak to działa w praktyce?
  • 39. Continuous Deployments Częsta aktualizowanie aplikacji - jeśli wszystkie testy przechodzą, to automatyczny deploy - kilkanaście aktualizacji dziennie push web hook deploy repozytorium serwer integracyjny web serwer nowy kod analiza kodu web hook
  • 40. Dziękuję za uwagę @TomaszBorowski tomaszborowski.com