blogpost

Wybieramy technologię

nakiedy logo Grzegorz Majewski, 2014-10-13

Pierwszym krokiem przy tworzeniu nowego projektu internetowego jest wybór technologii. Warto dobrze przemyśleć ten wybór, ponieważ przynajmniej przez kilka najbliższych lat będziemy na nią skazani. Podstawowym pytaniem jakie musimy sobie postawić jest, na jakich urządzeniach nasi przyszli klienci będą z niego korzystali. Jeśli myślimy o aplikacji mobilnej to wybieramy  – Android, iOS lub Windows Phone a najlepiej wszystkie razem. Jeśli ma to być aplikacja webowa, wybór jest bardzie skomplikowany. 

Moje technologia jest lepsza od twojej

Od lat widać przepychanki pomiędzy programistami o to, która technologia jest najlepsza. Dla jednych PHP to jeden wielki bałagan, dla innych Java to stwór wielki i powolny. Jedna strona ma trochę racji i druga ma trochę racji. Podobnie sprawa się miała z systemami operacyjnymi, był Windows, Linux i wielka dyskusja. Dla mnie wyglądało to bardzo prosto, Windows jest bardzo dobry do rozwiązań domowych a Linux jako system dla serwerów. Z technologiami webowymi jest podobnie. Jeśli tworzymy olbrzymią aplikację, która będzie komunikowała się z innymi systemami, radzę skorzystać z Javy czy .Net. Gdy robimy małą lub średnią aplikację to wybierzmy mniej skomplikowane rozwiązania jak PHP, Ruby czy nawet JavaScript. Oczywiście za językiem stoją odpowiednie Frameworki, również różnej wielkości i stopniu skomplikowania, ale po kolei.

W przypadku nakiedy.com wybór padł na PHP ze względu na moją znajomość języka oraz dużą dostępność przyszłych pracowników. Kolejny krok to wybór Frameworka. I po raz kolejny wszystko zależy od naszych preferencji i stopnia skomplikowania projektu. Mamy stosunkowo mały zespół i mały projekt wybieramy wydajniejsze ale gorzej ustrukturyzowane narzędzia jak Laravel , Symphony, Zend czy Phalcon. Mamy olbrzymi projekt, z rozbudowaną warstwą biznesową, nad którym w przyszłości będzie pracowało kilkudziesięciu programistów, wybieramy ZendFramewok lub Symphony.

Baza danych to brzmi dumnie

Mamy już technologię teraz czas na wybór bazy danych. Kiedyś wyglądało to bardzo prosto, był MySQL i długo, długo nic. Był co prawda PostgreSQL ale był on postrzegany jako skomplikowany i słabo skalujący się na więcej niż jeden serwer. Dla mnie MySQL był zabawką a PostgreSQL był prawdziwą relacyjną bazą danych – ale byłem w mniejszości. Teraz różnice nie są już tak duże i spokojnie można wybrać jedną z dwóch. Ja wybieram MySQL, ponieważ jest szybszy od PostgreSQL i lepiej się replikuje na wiele serwerów. Jeśli ktoś ma ochotę zgłębić temat polecam porównanie:

https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql-a-comparison-of-relational-database-management-systems

W ostatnich latach zyskują na popularności bazy typu NoSQL. Nie są to typowe bazy relacyjne pozwalające na tworzenie powiązanych danych. Są to bardzo szybkie, radzące sobie z gigabajtami danych, zapisanymi w bardzo proste struktury. Jeśli mamy bardzo, bardzo dużo danych do zbierania i analizowania to polecam. W przeciwnym wypadku stosowanie ich nie ma najmniejszego sensu.

Interface czyli „międzymordzie”

Wydawałoby się że w przypadku interfacu za dużo do decydowania nie ma - jest HTML, CSS, JavaScript i tyle. Otóż to nie prawda. Pierwsza decyzja jaką musimy podjąć to czy strona ma być przyjazna dla urządzeń przenośnych – Responsive Web Desing czy też mamy w planach oddzielną wersje mobilną np. w postaci oddzielnej aplikacji lub w ogóle nie ma sensu jej robić. Druga sprawa to czy stawiamy na klasyczną stronę opartą o przeładowanie całej strony, czy robimy jedną a dane są doładowywane w tle za pomocą AJAX. Klasyczna strona jest lepsza, kiedy ważne jest dla nas pozycjonowanie np. serwis ogłoszeniowy, e-commerce, blogi itp. Jeśli nasz projekt jest typowym rozwiązaniem Saas, gdzie użytkownik wykorzystuję stronę w sposób podobny do aplikacji windowsowej, to lepiej pomyśleć o rozwiązaniu w całości lub częściowo opartym o JavaScript i Ajax jak np. Gmail, Feedly. Nakiedy.com będzie rozwiązaniem hybrydowym czyli przeładowania oraz JavaScript i Ajax -  w miejscach tego wymagających. Dzięki temu aplikację tworzy się w miarę szybko przy jednoczesnych minimalnych stratach w funkcjonalności.

Wygląd

Wygląd oraz funkcjonalność naszej aplikacji jest jednym z najważniejszych elementów dla użytkownika. Jeśli nie jesteś webmasterem i grafikiem a najlepiej jednym i drugim i nie masz góry pieniędzy aby ich zatrudnić, musisz poradzić sobie sam. Na szczęście istnieją osoby, które postanowili to wykorzystać i na tym zarobić. Tak wiec, za kilkanaście dolarów możemy kupić, bardzo dobrze zaprojektowany graficznie i funkcjonalny szablon naszej przyszłej aplikacji. Oczywiście nie unikniemy drobnych poprawek i lekkiego dostosowania do naszych potrzeba ale i tak zaoszczędza nam to masę czasu i pracy. Największy wybór szablonów w dobrej cenie można znaleźć w serwisach: wrapbootstrap.com oraz themeforest.net/category/site-templates/admin-templates. Większość z nich zbudowana w oparciu o Twitter Bootstrap. Jest to zbiór gotowych rozwiązań umożliwiających szybką i prostą budowę stron www. Mamy tam zarówno podstawowe elementy jak listy, tabele, formularze jak i bardziej skomplikowane jak okna modalne, slidery i boxy. Polecam zapoznanie się ze stroną projektu, wszystko zostało tam wyjaśnione na przykładach: getbootstrap.com. Nakiedy.com ze względu na to, że nie byłem w stanie znaleźć wystarczająco dobrego, gotowego kalendarza (który jest centralną częścią aplikacji), zostanie zbudowane na darmowym szablonie: almsaeedstudio.com/AdminLTE/. Jest to szablon oparty o Twitter Bootstrap aby uprościć i przyśpieszyć kodowanie.

comments powered by Disqus

Rozpocznij swój 14-dniowy okres testowy!

Bez opłat. Bez umów. Zrezygnuj kiedy chcesz.