Paleta możliwości web developera

Post on 11-Jul-2015

792 views 3 download

Transcript of Paleta możliwości web developera

Paleta możliwościweb 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

Back-endkod aplikacji, biblioteki, serwer aplikacji

Usługibaza danych, mailing, monitoring aplikacji

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

Front-endwybrane 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-endwybrane 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

Back-endwybrane języki

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;

}

}

Ruby

Skryptowy język programowaniaclass Person

def initialize(name)

@name = name

end

def say_hi

"Hi, I am #{@name}"

end

end

Python

Skryptowy język programowaniaclass Person:

def __init__(name):

self.name = name

def say_hi:

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

Back-endwybrane frameworki

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

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

Usługiwybrane 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 developmentuwybrane 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

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

repozytorium serwer integracyjny web serwer

push web hook deploy

nowy kod

analiza koduweb hook

@TomaszBorowski

tomaszborowski.com

Dziękuję za uwagę