netpolicy-php.pl.md

Kontekst
Różni dostawcy rozwiązań sieciowych opisują polityki, reguły i konfigurację na różne sposoby. NetPolicyPHP powstał jako próba ujednolicenia pracy z tymi danymi po stronie aplikacji PHP.
Moja rola
Zaprojektowałem API biblioteki, model polityk oraz strukturę pozwalającą rozwijać obsługę kolejnych dostawców bez przebudowy kodu korzystającego z biblioteki.
Problem
- format danych zależy od konkretnego dostawcy
- integracje vendor-specific zwiększają sprzężenie w aplikacji
- dodanie kolejnego źródła polityk może wymagać zmian w wielu miejscach
- reguły bezpieczeństwa i routingu potrzebują spójnej reprezentacji
Rozwiązanie
Biblioteka dostarcza wspólny interfejs dla polityk sieciowych. Warstwa aplikacji może pracować na jednolitym modelu, a różnice pomiędzy dostawcami pozostają zamknięte w rozszerzalnych implementacjach.
Stack techniczny
- PHP
- PHPUnit
- wzorce projektowe oparte na interfejsach
Rezultat
- jeden interfejs dla różnych formatów dostawców
- prostsze testowanie logiki polityk
- możliwość dodawania kolejnych integracji bez zmiany publicznego API
- oddzielenie logiki aplikacji od szczegółów konkretnego vendora
Czego nauczył mnie projekt
Najważniejszą lekcją było projektowanie stabilnego API wokół zmiennych integracji. Rozszerzalność wymaga dobrych granic między modelem domenowym a kodem zależnym od dostawcy.