Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Osobiście uważam, że nie, szczególnie gdy pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś.
Ogromny potencjał Open Source
Choć historia ruchu Open Source (otwartego oprogramowania) sięga samych początków sieci Internet, to tak naprawdę ta idea budowania i dzielenia się bibliotekami dla programistów została niesamowicie spopularyzowana dzięki powstaniu ogólnie dostępnych repozytoriów projektów, które dodatkowo są wyposażone w systemy kontroli wersji (np. GIT lub SVN). Tutaj należy wspomnieć szczególny wkład w promowanie open source, jaki ma powstały w 2008 roku serwis Github.
Web developerzy zaczęli zrzeszać się w grupy implementujące mniej lub bardziej zaawansowane narzędzia, których istotnymi celami są:
Dobrym przykładem jest tutaj framework Ruby on Rails, który w trakcie swoich 8 lat rozwoju potrafił zrzeszyć ponad dwa tysiące współtworzących go developerów w ogromną i aktywną społeczność. Zatem szansa na otrzymanie wsparcia, jak też i na dalszy rozwoju projektu, jest tu znacznie większa w porównaniu z własnym, tworzonym całkowicie samodzielnie rozwiązaniem.
Rozwiązania dla każdej warstwy aplikacji
Przystępując do projektowania nowego systemu webowego musimy podjąć kilka decyzji dotyczących bibliotek lub narzędzi, z jakich będziemy korzystać w poszczególnych warstawch aplikacji. Wśród tych warstw wyróżniłbym:
Po stronie frontendu należałoby rozważyć użycie biblioteki wspierającej budowanie interfejsu, co przyspieszy naszą pracę i ustandaryzuje szablony HTML. Jednym z najpopularniejszych rozwiązań jest tutaj Bootstrap, który dysponuje licznymi komponentami, takimi jak paski nawigacyjne, rozwijalne listy, czy grupy przycisków. Dodatkowo biblioteka ta wspiera budowanie responsywnych szablonów, czyli takich, które dostosowywują się do rozdzielczości urządzenia, na którym są wyświetlane. Co więcej, gdy chcemy zadbać o świetne user experience, a także odciążyć serwer z generowania markupu HTML, to warto zastanowić się nad wykorzystaniem frameworka do budowania aplikacji typu SPA (Single Page Application). Popularnymi tutaj rozwiązaniami są AngularJS oraz Ember.js, które pozwalają na przetwarzanie danych oraz automatyczne uaktualnianie interfejsu na podstawie kodu JavaScript.
Kwestię backendu należy rozpocząć od wyboru frameworka do budowy aplikacji. Jest to jeden z najważniejszych wyborów, ponieważ często rzutuje on na dalsze możliwości korzystania z innych bibliotek. Tutaj polecam zainteresować się świetnym frameworkiem, jakim jest Ruby on Rails. Oferuje on mnóstwo modułów, które pomogą nam zaprojektować także szablony mailowe, wielojęzyczność, czy komunikację z bazą danych. W zależności od naszych potrzeb możemy także wykorzystać inne biblioteki, które zagwarantują nam np. uwierzytelnianie użytkownika, kontrolę dostępu do różnych części systemu czy przetwarzanie danych w odrębnych procesach.
Podczas planowania usług, z jakich będziemy chcieli skorzystać, należy przede wszystkim zastanowić się nad wyborem bazy danych oraz hostingu. Wśród open source’owych, relacyjnych baz danych należy wyróżnić PostgreSQL oraz MySQL. Natomiast kwestię hostingu aplikacji można rozwiązać dwojako; albo przygotujemy samodzielnie środowisko uruchomieniowe dla naszej aplikacji na dedykowanym serwerze albo skorzystamy z platformy hostingowej z prekonfugurowanym środowiskiem uruchomieniowym. Dobrym przykładem są tutaj platformy Heroku i OpenShift, które pozwalają na hostowanie bardzo prostych projektów za darmo i nie wymagają od nas zaawansowanych umiejętności w administrowaniu serwerem.
Istnieje także możliwość, że będziemy także chcieli skorzystać z innych usług, takich jak płatności elektroniczne, zarządzanie wsparciem użytkowników czy monitorowanie aplikacji pod kątem wydajności i ew. występowania błędów. Warto wiedzieć, że istnieje tu wiele gotowych rozwiązań, z których warto skorzystać zamiast implementować je samodzielnie.
On the edge style
Trzeba być świadomym, że biblioteki wykorzystywane w web developmencie są codziennie udoskonalane, a także są tworzone nowe rozwiązania, które niejednokrotnie warto wypróbować. Standardy internetowe również podlegają dynamicznym zmianom, stąd stosowanie takich rozwiązań jak możliwość działania aplikacji bez połączenia internetowego (HTML5 Application Cache oraz SPA) czy konwersja mowy do tekstu (Web Speech API) może mieć istotny wpływ na jakość budowanych przez nas projektów. Zachęcam Was do ciągłego powiększania swojej palety możliwości web developerskich, a także eksperymentowania z różnymi jej kolorami.
Artukuł opisuje prelekcję “Paleta możliwości web developera” wygłoszoną podczas pierwszego WeBB MeetUp
autor: Tomasz Borowski - Lead Developer w Selleo