Znaczna część procesu tworzenia stron internetowych obejmuje kreatywne podejście do rozwiązywania problemów biznesowych przy użyciu narzędzi programistycznych, umiejętności, wzorców projektowania i architektury oraz innych technik opracowanych na przestrzeni lat. Niektóre rozwiązania programistyczne mogą być bardziej wydajne niż inne; niektóre mogą wymagać więcej linii kodu; niektóre mogą być lepiej udokumentowane, a niektóre mogą wykorzystywać bardziej proste i zrozumiałe sztuczki programistyczne. Jednak nawet w ramach pewnych tolerancji wydajności i łatwości utrzymania nie ma dobrego rozwoju oprogramowania bez odpowiedniej standaryzacji.

Standardy odnoszą się do formalnych specyfikacji dotyczących wykonywania czegoś w określony sposób, który jest łatwy do zrozumienia przez osobę i cały zespół programistów, jest łatwy do utrzymania i skalowania w czasie. Kiedy planujesz rozwijać swoją witrynę, powinieneś mieć obszerną checkliste wszystkiego, czego potrzebujesz. Dzisiejszy temat koncentruje się na standardach (na poziomie języka programowania, projektu lub organizacji) i ich wpływie na proces rozwoju.


Spis treści


Jaki jest cel standaryzacji?

Standaryzacja ma na celu stosowanie jednolitych wzorców, które obniżają koszty, umożliwiają sprawną współpracę, skracają czas wykonywania czynności i zmniejszają prawdopodobieństwo wystąpienia błędów.

Krótko mówiąc, celem standaryzacji jest:

  • Ujednolicenie wykonywanych czynności w taki sposób, aby zachować tę samą jakość niezależnie od miejsca ich wykonywania
  • Tworzenie kryteriów dla schematu ich realizacji
  • Optymalizacja kosztów
  • Eliminacja błędów i zwiększenie efektywności firmy

Standaryzacja w projektach tworzenia stron internetowych – co to jest i po co?

Możemy założyć, że standaryzacja w projektach jest porozumieniem pomiędzy osobami zaangażowanymi w projekt, aby pisać kod w z góry ustalony sposób.

Ponieważ istnieje wiele sposobów rozwiązania danego problemu, dobrym pomysłem jest ustalenie konkretnego sposobu, który pozwoli:

  • Ułatwić zarządzanie
  • Standaryzuj sposób pisania kodu
  • Ułatwienie przejęcia projektu (przez inną osobę, klienta itp.)
  • Poprawa atmosfery (ponieważ wszyscy zgodzili się na pewne zasady, nie ma nieporozumień)
  • Poprawa realizacji projektu i skrócenie czasu realizacji

Nasze projekty opieramy na środowisku Symfony, które standaryzuje tworzenie stron internetowych i oferuje gotowe rozwiązania, np. zarządzanie sesjami i plikami cookie, pełne wsparcie protokołu HTTP, ustandaryzowane podejście Dependency Injection oraz kieruje się zasadami SOLID.

Sylius i Shopware zostały stworzone w oparciu o środowisko Symfony, które wyznacza standardy programistyczne, których naszym zdaniem powinna przestrzegać większość programistów PHP.


Ogólnie rzecz biorąc, standard można traktować jako średnią normę, typ lub model, produkt spełniający określone wymagania lub wzorzec. Koncepcja standardu (w sensie technicznym) z kolei zwraca uwagę na formalizację; na przykład można go traktować jako dokument wynikający z normalizacji i standaryzacji jako działania – powinien ewoluować w czasie, gdy jest to wymagane.

Poziom #1 standaryzacji projektów internetowych: czysty język PHP, reguły PSR

Dzięki swojej elastyczności język PHP oferuje wiele możliwości. Z jednej strony można go używać do realizacji bardzo podstawowych projektów, z drugiej strony pozwala na implementację zaawansowanych aplikacji internetowych.

Jak wszystko inne, PHP ma swoich zwolenników i przeciwników, a ponieważ nie jest nowym językiem, narosło wokół niego wiele opinii.

Niektórzy nie widzą sensu w używaniu PHP; inni nie mają pojęcia o istnieniu pewnych standardów. W rezultacie można spotkać dziwaczny kod, pełen funkcji zadeklarowanych tam, gdzie nie były potrzebne, zmienne globalne powszechnie używane w metodach/funkcjach, HTML, CSS, JS, kod PHP wymieszany w jednym pliku itd. WordPress, jeden z najsłynniejszych projektów PHP typu open source, jest pełen antywzorców, które według opinii publicznej odziedziczył PHP. Ale jak w przypadku każdego narzędzia, problem zwykle leży między ekranem a krzesłem. Chociaż PHP pozwala na pisanie łatwego do wykonania, ale brzydkiego kodu, jest pełen wbudowanych funkcji i cech, dzięki czemu jest w stanie rozwijać kod, który jest piękny, łatwy do odczytania, utrzymania i aktualizacji w czasie.

Aby odczarować PHP, pewnego dnia grupa głównych programistów z różnych frameworków zasiadła na spotkaniu konferencyjnym i postanowiła wprowadzić standardy dla wszystkich swoich projektów – stworzono projekt PHP Framework Interop Group. Przy jednym stole zasiedli m.in. Matthew Weier O’Phinney reprezentujący Zend, Fabien Potencier z Symfony i Jordi Boggiano, odpowiedzialny za Composer i Packagist. Pomysł był prosty – wprowadzenie standardów dla różnych tematów związanych z PHP.All available Standards Recommendations:

  • https://www.php-fig.org/psr/ – podstawowe standardy pisania PHP, które pozwalają zachować zgodność ze społecznością open-source, podpowiadają, jak pisać pewne rzeczy (np. autoloader, buforowanie), jak powinna wyglądać architektura + czego nie robić
  • Propozycje dotyczące kolejnych standardów można znaleźć na stronie GitHub.

Ponieważ PHP nie był w przeszłości standaryzowany, a standardy narzucano z biegiem czasu, jest on nowy, bardziej zrozumiały i przejrzysty.

  • Nikt nie zmusza do używania PSR-*, ale jest to dobra praktyka. Ponadto pisanie kodu zgodnego z tymi standardami może ułatwić jego późniejsze wykorzystanie jako bibliotek lub użycie zewnętrznych rozwiązań w Twoim projekcie.

Pamiętajmy, że dzisiaj PHP to coś więcej niż echo „Hello world”, a wokół samego języka powstało wiele narzędzi wspomagających tworzenie oprogramowania, które warto poznać.


Poziom #2 standaryzacji projektów internetowych: Framework Symfony — Dependency Injection wygrywa

Jedną z głównych zalet korzystania z kompletnego frameworka jest standaryzacja rozwoju. Dzięki domyślnej strukturze plików i katalogów Symfony, każdy programista z pewną wiedzą na jego temat może zająć się utrzymaniem dowolnego projektu Symfony. W ciągu kilku minut zapoznaj się z kodem, wprowadź poprawki i dodaj nowe funkcje. Użycie standardowego zestawu pakietów, wspomnianego wyżej kompozytora połączonego z dobrymi praktykami kodowania, silny nacisk na wstrzykiwanie zależności i zasadę pojedynczej odpowiedzialności z wzorców SOLID Liskova zmusza programistę nie tylko do nauki tych narzędzi, ale także do przestrzegania zasad, które okazały się skuteczne w przypadku większych i mniejszych projektów oraz zespołu na całym świecie.

Warto zacząć pracę z procesem standaryzacji Symfony od ich dokumentacji. Znajdziesz tutaj zbiór zasad, których powinni przestrzegać deweloperzy. Standardy te są podobne do wspomnianych wyżej PSR. W rzeczywistości są one oparte na PSR z dodatkiem Symfony.

Dlaczego warto trzymać się standardów? Kiedy programiści sami rozwiązują problem w rdzeniu i chcą, aby to rozwiązanie znalazło się w nowszej wersji, kod źródłowy musi być zgodny ze standardami Symfony, a zatem łatwy w nawigacji, aktualizacji w razie potrzeby i, co najważniejsze, skutecznej komunikacji, co zwykle jest słabym punktem każdego projektu.

Pamiętaj, że główną zaletą standardów jest to, że każdy fragment kodu wygląda i wydaje się znajomy; nie chodzi tylko o to, aby był bardziej czytelny. Większość pakietów open-source i bibliotek używanych przez Symfony również stosuje się do tych samych wytycznych.

Poziom #3 standaryzacji projektów internetowych: Sylius – wszystko, co najlepsze w PHP i Symfony w jednym projekcie

Zagłębiając się, trzeci poziom procesu standaryzacji pojawia się, gdy Sylius wchodzi do gry. Opiera się całkowicie na Symfony, więc w pewnym sensie dziedziczy standardy z Symfony i ponownie, dodaje również własne standardy i narzędzia. Na przykład posiada narzędzia, które wykonują statyczną analizę kodu.

Sylius to interesujące rozwiązanie eCommerce, które pozwala rozwiązywać typowe problemy na wiele różnych sposobów. Nie jest to typowa platforma eCommerce, jest to raczej framework eCommerce. Każde zatwierdzenie w Sylius (przed scaleniem) automatycznie przechodzi przez ponad 1200 scenariuszy Behat i tysiące specyfikacji i testów PHPSpec w PHPUnit.

To rozwiązanie eCommerce oferuje najwyższą jakość kodu, ma silne środowisko testowe i wykorzystuje Business-Driven Development (BDD). Oznacza to, że testy są pisane w języku biznesowym, co przyspiesza testowanie aplikacji.


Chcesz dowiedzieć się czegoś więcej o Syliusie?

sylius-logo

Poziom #4 standaryzacji projektów internetowych: Twoja organizacja – rządzi wszystkim

Standaryzacja umożliwia łatwiejsze zarządzanie zespołem i płynniejszą pracę. Organizacja dodaje swoje standardy wynikające z wewnętrznego know-how, ale mimo to przestrzega standardów niższych szczebli.

Standaryzacja jest skutecznym sposobem porządkowania rzeczywistości. Dzięki niej organizacja może szybko zauważyć wszelkie nieprawidłowości i wcześnie je zdiagnozować. Jest to zatem narzędzie, które pozwala naprawić problemy zanim urosną do większych rozmiarów i wymkną się spod kontroli, a także pozwala ocenić rzeczywistą skuteczność działań firmy. Standaryzacja umożliwi managerom wyeliminowanie działań, które nie przynoszą wartości dodanej.

Standaryzacja na poziomie organizacyjnym wynika z naszych doświadczeń – zarówno z projektów, które zrealizowaliśmy wewnętrznie, jak i z wcześniejszych doświadczeń naszych programistów.

Dzięki temu, że wprowadzamy standardy pracy, usprawniamy wewnętrzny przepływ i efektywność pracy. Stworzyliśmy tzw. Biblię BitBag, która jest wewnętrznym zbiorem dobrych praktyk programistycznych.

Oprócz praktyk kodowania, warto wziąć pod uwagę architekturę i wzorce przepływu pracy, takie jak Continuous Integration i Continuous Delivery, mikroserwisy i podejście najlepsze w swojej klasie, projektowanie headless z wykorzystaniem OpenAPI (możesz sprawdzić w tym celu API Platform), projektowanie oprogramowania pośredniczącego itp.

Poziom #5 standaryzacji projektów internetowych: projekt – zawsze jest coś specyficznego dla danego przypadku

Standaryzacja zarządzania projektami na poziomie projektu to często zmiany, które powinny być wprowadzane indywidualnie dla każdego klienta i wynikać z indywidualnego podejścia. Istnieje jednak wiele korzyści ze stworzenia spójnego doświadczenia zarządzania projektami, niezależnie od przedsięwzięcia.

Korzyści te obejmują:

  • Łatwiejsze przekazywanie – każdemu łatwiej jest przejąć projekt na jeden dzień i koordynować go/pracować nad nim. Zapobiega to również osobom zaangażowanym w projekt psuciu dobrze zorganizowanego planu lub kodu.
  • Krótsze krzywe uczenia się – gdy w standaryzowanym projekcie bierze udział nowa osoba, krzywa uczenia się ulega skróceniu
  • Lepsze doświadczenia klienta – jeśli klient współpracuje z więcej niż jedną osobą z tej samej agencji, dokumenty wyglądają tak samo we wszystkich projektach lub komunikacja jest obsługiwana w ten sam sposób, co zwiększa komfort pracy.

Podsumowanie 

Poniższa grafika pokazuje wyżej wymienione poziomy standaryzacji w organizacji w formie piramidy. Jest to przykład tego, jak należy standaryzować swoje projekty internetowe — zaczynając od podstaw i przechodząc przez bardziej szczegółowe poziomy.

Normy istnieją po to, aby pomagać ludziom w pracy, jednak najważniejsza jest ich użyteczność, czyli odpowiednie dostosowanie do rzeczywistych potrzeb organizacji na różnych poziomach.

Jeśli szukasz firmy zajmującej się tworzeniem rozwiązań eCommerce, która pomoże Ci uruchomić lub wdrożyć ustandaryzowany projekt oparty na Sylius, Shopware, a nawet czystym Symfony, który będzie działał przez lata, skontaktuj się z nami; być może to właśnie nas chcesz i potrzebujesz zatrudnić.