Powrót do projektów

NetPolicyPHP

PHPBackendLibraryCybersecurityNetworking
netpolicy-php.pl.md
Podgląd projektu NetPolicyPHP

Zobacz kod źródłowy

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.