Przejdź do głównej zawartości

Projektowanie systemów z Codex

Twój monolit urósł do punktu, w którym każde wdrożenie to 45-minutowa przygoda w stylu “czy to zepsuje coś niezwiązanego?” Zespół zdecydował się wyodrębnić moduł płatności do osobnego serwisu, ale nikt nie może się zgodzić co do granicy API, strategii migracji danych ani sposobu obsługi okresu przejściowego, gdy oba systemy działają jednocześnie. Decyzje architektoniczne takie jak ta są zbyt ważne, aby się spieszyć, i zbyt złożone, aby mieściły się w głowie jednej osoby. Codex daje ci iteracyjny proces projektowania: planuj w IDE z pełnym kontekstem bazy kodu, waliduj założenia z zadaniami w chmurze i eksploruj alternatywy w równoległych worktree.

  • Wielopowierzchniowy przepływ planowania architektonicznego wykorzystujący IDE do projektowania i chmurę do walidacji
  • Prompty do dekompozycji monolitów, projektowania granic API i planowania migracji danych
  • Techniki oceniania alternatyw architektonicznych z równoległymi zadaniami w chmurze
  • Przepis na automatyzację wykrywania dryfu architektonicznego w czasie

Przed projektowaniem nowej architektury zrozum, co masz. Użyj rozszerzenia IDE z włączonym auto-kontekstem — widzi twoje otwarte pliki i daje szybkie odpowiedzi na pytania analityczne.

Po zakończeniu analizy zaprojektuj nową architekturę. Codex dostarcza eksperymentalną umiejętność $create-plan, która strukturyzuje przebieg planowania — zainstaluj ją raz poleceniem $skill-installer install the create-plan skill from the .experimental folder, a następnie wywołaj ją wewnątrz strukturalnego promptu planistycznego w aplikacji Codex. (Jedyne umiejętności dołączone domyślnie to $skill-creator i $skill-installer; $create-plan trzeba zainstalować przed pierwszym użyciem.)

Plany architektoniczne wymagają walidacji. Użyj zadań w chmurze, aby przetestować konkretne założenia dotyczące projektu.

Walidacja 1: Wykonalność granicy API

Walidacja 2: Strategia migracji danych

Dla spornych decyzji projektowych, w których zespół nie może się zgodzić, uruchom równoległe wątki eksploracyjne:

Worktree 1: Komunikacja REST API

Worktree 2: Komunikacja zdarzeniowa

Porównaj prototypy obok siebie. Konkretne implementacje znacznie ułatwiają ocenę kompromisów niż abstrakcyjne dyskusje przy tablicy.

Po podjęciu decyzji architektonicznej udokumentuj ją i skonfiguruj monitorowanie dryfu:

Create docs/ARCHITECTURE-PAYMENTS.md documenting the payments service extraction:
1. Target architecture diagram (text-based)
2. API boundary definition (endpoints, request/response schemas)
3. Data ownership map (which tables belong to which service)
4. Communication patterns (synchronous calls, events)
5. Migration plan with phases and rollback strategy
6. Decision log: key decisions made and the reasoning behind each one
Format for an audience of senior engineers who will implement the migration.

Skonfiguruj cotygodniową automatyzację do wykrywania dryfu architektonicznego:

Przed zatwierdzeniem architektury uzyskaj przegląd projektowy. W CLI uruchom /review, aby rozpocząć przegląd drzewa roboczego, a następnie pokieruj nim wiadomością uzupełniającą:

/review

Gdy przegląd się rozpocznie, wyślij fokus jako kolejną wiadomość:

Focus on the architectural decisions in this branch. Are the API boundaries clean? Is the data migration strategy sound? Are there coupling points that will cause problems during the transition? Flag anything that will make rollback difficult.

Lub poproś o ukierunkowany przegląd projektowy na GitHub, wspominając Codex w PR. Sufiks for <focus> to udokumentowany sposób na zawężenie zakresu przeglądu GitHub:

@codex review for architectural soundness. Focus on: separation of concerns between the monolith and the new payments service, data consistency during migration, and failure mode handling.

Analiza pomija ukryte powiązania. Codex znajduje jawne importy i wywołania funkcji, ale może pominąć niejawne powiązania: współdzielone wartości konfiguracji, założenia dotyczące granic transakcji bazodanowych lub zależności runtime wstrzykiwane przez middleware. Po analizie ręcznie zweryfikuj trzy najważniejsze punkty integracji zidentyfikowane przez Codex, śledząc je w debuggerze lub z logowaniem.

Walidacja w chmurze używa uproszczonego testu, który nie odzwierciedla złożoności produkcji. Proof-of-concept z 1000 zapisów nie ujawnia problemów pojawiających się przy 10 milionach zapisów. Użyj walidacji w chmurze do testowania poprawności i identyfikacji oczywistych awarii, a następnie zaplanuj bardziej realistyczny test obciążeniowy na środowisku staging.

Równoległe wątki prototypowe przyjmują różne założenia. Jeśli prototyp REST zakłada synchroniczne zapisy, a prototyp zdarzeniowy zakłada spójność ostateczną, nie porównujesz jabłek z jabłkami. Zdefiniuj kryteria porównania z góry: “Both prototypes must handle the same 10 test scenarios. Report latency, consistency guarantee, and failure behavior for each scenario.”

Dokumentacja architektury starzeje się natychmiast. Migracja trwa trzy miesiące. W drugim miesiącu faktyczna implementacja odbiega od udokumentowanego planu. Cotygodniowa automatyzacja pomaga wyłapać dryf, ale działa tylko wtedy, gdy ktoś reaguje na ustalenia. Przydziel konkretną osobę (lub rotuj odpowiedzialność) do przeglądania skrzynki automatyzacji i aktualizowania dokumentów.