Paleta możliwości web developera

40
Paleta możliwości web developera wykorzystywane technologie i narzędzia Tomasz Borowski, 2014-12-02 Bielsko-Biała

Transcript of Paleta możliwości web developera

Page 1: Paleta możliwości web developera

Paleta możliwościweb developera

wykorzystywane technologie i narzędzia

Tomasz Borowski, 2014-12-02 Bielsko-Biała

Page 2: Paleta możliwości web developera

Paleta możliwości

➔ języki, frameworki oraz biblioteki

➔ usługi dla aplikacji

➔ narzędzia do developmentu

Page 3: Paleta możliwości web developera

Technology Stack

Back-endkod aplikacji, biblioteki, serwer aplikacji

Usługibaza danych, mailing, monitoring aplikacji

Front-endHTML, Javascript (biblioteki), CSS (stylowanie)

Page 4: Paleta możliwości web developera

Front-endwybrane języki

Page 5: Paleta możliwości web developera

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>

Page 6: Paleta możliwości web developera

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

Page 7: Paleta możliwości web developera

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;

}

Page 8: Paleta możliwości web developera

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

Page 9: Paleta możliwości web developera

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;

})();

Page 10: Paleta możliwości web developera

CoffeeScript

Skryptowy język programowania,kompilowany do JavaScriptu

class Person

constructor: (name) ->

@name = name

sayHi: ->

alert "Hi, I am #{@name}"

Page 11: Paleta możliwości web developera

Frond-endwybrane biblioteki i frameworki

Page 12: Paleta możliwości web developera

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!');

Page 13: Paleta możliwości web developera

Bootstrap

Framework CSS, JavaScript

- możliwość wykorzystania gotowych szablonów- responsywne stylowanie- komponenty HTML / JavaScript

Page 14: Paleta możliwości web developera

EmberJS

Framework MVC Javascript

- budowa aplikacji jednostronicowych- zarządzanie danymi po stronie klienta- dynamiczne szablony Handlebars

Page 16: Paleta możliwości web developera

Back-endwybrane języki

Page 17: Paleta możliwości web developera

PHP PHP Hypertext Preprocessor

Skryptowy język programowaniaclass Person {

var $name;

function Person($name)

{

$this->name = $name;

}

function sayHi()

{

return 'Hi, I am '.$this->name;

}

}

Page 18: Paleta możliwości web developera

Ruby

Skryptowy język programowaniaclass Person

def initialize(name)

@name = name

end

def say_hi

"Hi, I am #{@name}"

end

end

Page 19: Paleta możliwości web developera

Python

Skryptowy język programowaniaclass Person:

def __init__(name):

self.name = name

def say_hi:

"Hi, I am %s" % self.name

Page 20: Paleta możliwości web developera

Back-endwybrane frameworki

Page 21: Paleta możliwości web developera

Frameworki MVCMVC 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

Page 22: Paleta możliwości web developera

Frameworki MVC

Page 23: Paleta możliwości web developera

Frameworks

Page 24: Paleta możliwości web developera
Page 25: Paleta możliwości web developera

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- ...

Page 26: Paleta możliwości web developera

Ruby on Rails

Przykładowa aplikacja - otoTeamAplikacja 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.

Repozytoriumhttps://github.com/miksturait/ototeam

Onlinehttp://ototeam-mikstura.herokuapp.com

Page 27: Paleta możliwości web developera

Usługiwybrane aplikacje

Page 28: Paleta możliwości web developera

Heroku

Hosting w platformie chmurowej

- darmowy dla prostych aplikacji- duża skalowalność- proste w instalacji dodatki- nie wymaga wiedzy z administracji serwerami

Alternatywy:

Page 29: Paleta możliwości web developera

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:

Page 30: Paleta możliwości web developera

PostgreSQL

Relacyjna baza danych SQL

- darmowa (open source)- bardzo wydajna- możliwość definiowania funkcji i widoków- dodatkowe typy danych np. array, hstore

Alternatywy:

Page 31: Paleta możliwości web developera

Mailgun

API do wysyłania i przekazywania maili

- darmowy do 10 000 maili miesięcznie- tracking wysyłanych maili- przekierowywanie maili

Alternatywy:

Page 32: Paleta możliwości web developera

New Relic

Monitorowanie aplikacji

- analiza obciążenia serwera- analiza zapytań SQL- analiza ruchu w aplikacji- monitorowanie wydajności aplikacji

Alternatywy:

Page 33: Paleta możliwości web developera
Page 34: Paleta możliwości web developera

Narzędzia do developmentuwybrane aplikacje

Page 35: Paleta możliwości web developera

Travis-CI

Wykonywanie testów na zdalnym serwerze

- testy uruchamiane przy każdej aktualizacji repozytorium- opcjonalne contiuous deployment- darmowe dla projektów open source

Wykonywanie testów na zdalnym serwerze

- testy uruchamiane przy każdej aktualizacji repozytorium- opcjonalne contiuous deployment- darmowe dla projektów open source

Alternatywy:

Page 36: Paleta możliwości web developera

Code Climate

Analiza statyczna kodu

- detekcja powtórzeń kodu- detekcja skomplikowanych metod / klas- obliczanie pokrycia kodu testami- darmowa dla projektów open source

Alternatywy:

Page 37: Paleta możliwości web developera

Gemnasium

Analiza wersji wykorzystywanych bibliotek

- powiadomienia o nowych wersjach bibliotek- ostrzeżenia przed dziurami bezpieczeństwa- listowanie zmian w danej bibliotece

Page 38: Paleta możliwości web developera

Jak to działa w praktyce?

Page 39: Paleta możliwości web developera

Continuous Deployments

Częsta aktualizowanie aplikacji - jeśli wszystkie testy przechodzą, to automatyczny deploy- kilkanaście aktualizacji dziennie

repozytorium serwer integracyjny web serwer

push web hook deploy

nowy kod

analiza koduweb hook

Page 40: Paleta możliwości web developera

@TomaszBorowski

tomaszborowski.com

Dziękuję za uwagę