The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2022-06-10
Software Development

Utrzymanie projektu w PHP: 5 błędów, których należy unikać

The Codest

Sebastian Łuczak

Lider jednostki PHP

Napisano już niejeden artykuł na temat błędów popełnianych w procesie prowadzenia projektu, ale rzadko kiedy przygląda się wymaganiom projektu i zarządza ryzykiem, biorąc pod uwagę wybraną technologię.

PHP, podobnie jak inne języki, ma pewne wady, które są nic nie warte, jeśli chodzi o zarządzanie IT projekt gdzie PHP jest językiem wiodącym.

Poniżej przedstawiamy ich listę wraz ze wskazówkami, jak ich uniknąć.

1. Nieprzestrzeganie zaleceń normy PHP

PHP jest uważany za "łatwy język", ponieważ ma bardzo niską barierę wejścia. Powoduje to duże rozbieżności w standardach kodowania i sposobie implementacji globalnych interfejsów w różnych bibliotekach zewnętrznych. Aby zaprowadzić porządek, wprowadzono zestaw standardów. Opisują one zestaw sposobów, w jakie twórca implementacji może spełnić dowolny zestaw ograniczeń wymaganych przez standard. Prosty przykład dla Dyspozytor zdarzeń:

Słuchacz - słuchaczem jest każdy PHP callable, która oczekuje przekazania zdarzenia. Zero lub więcej listenerów może otrzymać to samo zdarzenie. Słuchacz MOŻE wywołać inne zachowanie asynchroniczne, jeśli tak zdecyduje.

Korzystając z tego standardu, każdy deweloper używający nomenklatury zgodnej z PSR może nie tylko łatwo komunikować się, ale także kod z innymi deweloperami.
Zastosowanie tych standardów w praktyce, na przykład poprzez użycie PHP Właściwy sposób wytyczne i biblioteki, które obsługują globalne interfejsy PSR, umożliwiają Programiści PHP szybsze dostosowywanie się do zmian w wymaganiach funkcjonalnych, architektonicznych i infrastrukturalnych.

Jak mogę tego uniknąć?

Jako opiekun bazy kodu zawsze pamiętaj o korzystaniu ze sprawdzonych i stabilnych wersji zewnętrznych bibliotek, a jeśli jesteś zmuszony do korzystania z niestandardowego rozwiązania, zaimplementuj je za pomocą PHP PSR.
Lista wszystkich dostępnych standardów jest dostępna na głównej stronie internetowej PHP-FIG. Rozszerzone standardy z praktycznymi opisami są dostępne w różnych formatach na stronie PHP Właściwy sposób strona główna.
Najlepsze biblioteki zgodne ze standardami PHP-FIG są wymienione na stronie PHP League strona internetowa.

2. Nieblokowanie wersji zależności composer.json

W projektach korzystających z menedżera zależności Kompozytor Często dochodzi do sytuacji, w której po długim okresie wsparcia i utrzymania produkt W środowisku produkcyjnym pojawia się potrzeba wdrożenia zmian funkcjonalnych bez przebudowy całej architektury. Najczęściej projekt przejmuje wówczas programista, którego zadaniem jest uruchomienie lokalnego środowiska deweloperskiego i rozpoczęcie pracy nad ticketami. Na podstawie composer.lock deweloper jest w stanie przywrócić projekt do stanu, w którym znajdował się w środowisku produkcyjnym, ale każda zmiana w pliku composer.json np. poprzez dodanie biblioteki, spowoduje kaskadę błędów, które wydłużą rzeczywisty czas implementacji nowego pliku. zespół członka organizacji, a także czas opracowania rozwiązania.

Jak mogę tego uniknąć?

Gdy aplikacja jest już stabilna, opiekun kodu powinien zablokować wersje bibliotek w folderze composer.json i stworzyć jasną procedurę opisującą, jak zaktualizować ich wersje, jeśli zajdzie taka potrzeba w przyszłości.

Warto również rozważyć uruchomienie mechanizmu sprawdzania stanu bezpieczeństwa używanych bibliotek i zautomatyzować proces dostarczania aktualizacji zabezpieczeń.
Korzystając z bezpłatnych narzędzi, takich jak Dependabotmożemy zarówno utrzymać spójną, łatwą w zarządzaniu infrastrukturę wersjonowania dla zależnych bibliotek, jak i zapewnić gwarancję bezpieczeństwa dla naszej aplikacji.

3. Słabe gromadzenie wymagań

> To tylko CRUD, po co zawracać sobie głowę?

> Istnieje biblioteka, która dokładnie to robi!

W PHP łatwo wpaść w wir zapomnienia podczas implementacji logiki biznesowej produktu. Przez lata powstały setki projektów, które [tworzą panele administracyjne do zarządzania modelami danych](https://backpackforlaravel.com/), [generują widoki podobne do Google Analytics](https://github.com/Kunstmaan/KunstmaanDashboardBundle) lub [rozwiązują problemy asynchroniczne PHP](https://laravel.com/docs/9.x/octane) za dotknięciem magicznej różdżki (OK, za pomocą pojedynczego zapytania w wierszu poleceń).
Świat PHP jest pełen gotowych implementacji, które działają przez 99,9% czasu.
To 0.1% jest miejscem, w którym logika biznesowa zderza się z ograniczeniami funkcjonalnymi używanych bibliotek.
To właśnie te tak zwane "wrzutki" są najtrudniejsze do wdrożenia pod koniec projektu.

Jak mogę tego uniknąć?

Nie ma szans na znalezienie złotego środka pomiędzy nadmiarem a niedomiarem inżynierii bez odpowiedniego zrozumienia domeny biznesowej produktu.
Rozpoczynając zespół programistów Członkowie na wczesnym etapie tworzenia produktu i proaktywna współpraca z właścicielem produktu pozwalają zminimalizować ryzyko wystąpienia problemu związanego z wykorzystaniem rozwiązania, które nie sprawdzi się jako długoterminowa inwestycja.

4. Cięcie kosztów poprzez unikanie pisania testów

PHP nie jest idealna, to pewne. Jego niedociągnięcia w zakresie statycznego typowania, braku obsługi generycznych i ciągłego wsparcia dla archaicznych metod są nadal źródłem żartów wśród programistów. Jednak od pewnego czasu Programiści PHP otrzymują coraz potężniejsze narzędzia, takie jak PHPStan, Xdebug, PHP-CS-Fixer które pozwalają im zachować spójność i statyczne typowanie - unikając w ten sposób wielu błędów. Wciąż jednak zbyt mało uwagi poświęca się testom, a te, jeśli są poprawnie zaimplementowane, przynoszą szybki zwrot z inwestycji w postaci
- redukcja błędów regresji
- Zwiększona świadomość możliwości produktu
- zwiększenie poczucia własności kodu przez programistę

Jak mogę tego uniknąć?

Nie tnij kosztów na testowaniu. Pisanie prostych skryptów Behat naprawdę nie jest takie trudne, nie musisz od razu pisać skomplikowanych testów end-to-end ani zagłębiać się w szczegóły implementacji i testować jednostkowo każdej metody.
Prosty test Behat opisany w naturalnym języku domeny jest często wart więcej niż najbardziej skrupulatnie napisany test end-to-end.

5. Nieuwzględnianie nowoczesnych wzorców architektury

The Język PHP i jego dwa najpotężniejsze frameworki Laravel i Symfony są w pełni odpowiednie do stworzenia nowoczesnej, funkcjonalnej i co najważniejsze wysokowydajnej architektury. Wsparcie dla różnych systemów kolejek komunikatów i coraz szybszego PHP Poprawa wydajności z wersji na wersję pozwala nam łatwo tworzyć mikrousługi oparte na mikroframeworkach. W większości jednak nadal polegamy na systemach monolitycznych. Nie ma w tym nic złego, ale rozważając rozwój takich systemów musimy zwrócić szczególną uwagę na granice domeny i określić punkt styku nowych rozwiązań ze starszymi częściami systemu.

Jak mogę tego uniknąć?

Podczas opracowywania dowolnego PHP warto przyjrzeć się obecnym rozwiązaniom, stworzyć globalne interfejsy do komunikacji danych i wdrożyć nowe funkcjonalności z wykorzystaniem najnowszych technik i praktyk. Jednym z najpopularniejszych rozwiązań stosowanych w praktyce jest Wzór Dusiciela.

Powiązane artykuły

Software Development

PHP Development. Komponent konsoli Symfony - porady i wskazówki

Ten artykuł został stworzony w celu pokazania najbardziej przydatnych i przydatnych wskazówek i sztuczek dotyczących rozwoju konsoli Symfony.

The Codest
Sebastian Łuczak Lider jednostki PHP
E-commerce

Dylematy cyberbezpieczeństwa: Wycieki danych

Przedświąteczna gorączka trwa w najlepsze. W poszukiwaniu prezentów dla najbliższych ludzie coraz chętniej "szturmują" sklepy internetowe

The Codest
Jakub Jakubowicz CTO & Współzałożyciel
Software Development

Zatrudnianie programistów wewnętrznych vs. zewnętrznych

Zatrudniać wewnętrznie czy zewnętrznie? To ostateczny dylemat! Poznaj zalety outsourcing lub budowania zespołu wewnętrznego w poniższym artykule.

The Codest
Grzegorz Rozmus Java Unit Leader
Rozwiązania dla przedsiębiorstw i scaleupów

Właściwy sposób na znalezienie najlepszych programistów Java

Znalezienie idealnego programisty Java może być trudnym zadaniem. Ponieważ zapotrzebowanie rynku na takich specjalistów rośnie w zaskakującym tempie, dostępne źródła poszukiwania talentów mogą czasami wydawać się...

The Codest
Grzegorz Rozmus Java Unit Leader

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish