Krajobraz rozwoju oprogramowania szybko się zmienia, napędzany przez proliferację Narzędzia sztucznej inteligencji. Te narzędzia kodu AI dzielą się na dwie podstawowe kategorie: generatory, które mają na celu tworzenie całych baz kodowych z podpowiedzi i asystentów, które integrują się bezpośrednio z przepływem pracy programisty. Podstawowe różnice architektoniczne i filozoficzne między tymi podejściami przekształcają, jak działają programiści.
Ivan Liagushkin, programista z ponad 10-letnim doświadczeniem w budowaniu dużych aplikacji internetowych, oferuje wgląd w tę ewoluującą dziedzinę. Jest odpowiedzialny za inżynierię w ParaStartup copywriter AI wspierany przez Sequoia Capital.
Definiowanie generatorów kodów AI i asystentów
„Narzędzia takie jak V0.DEV i Github Copilot mogą wydawać się podobne, ale są one zasadniczo różne filozoficznie”, powiedział Liagushkin. „Generatorzy konkurują przede wszystkim z platformami bez kodu i niskiego kodu, atakując profesjonalistów osób niebędących programistami. Asystenci kodowania, w przeciwieństwie do przekształcania codziennych przepływów pracy kodowania”.
Generatory takie jak V0.DEV z Vercel i Bolt.New ze StackBlitz są zaprojektowane tak, aby umożliwić szybkie prototypowanie i uruchamianie MVP. Często są one opowiadane na temat używanych technologii, promujących określone narzędzia i platformy.
„Generatory te są wysoce opiniotwórcze na temat technologii, których używają i często promują określone narzędzia dla użytkowników do subskrybowania”, powiedział Liagushkin. „Na przykład zarówno Bolt.New, jak i Lovable promują platformę rozwoju Supabase, podczas gdy v0.dev naturalnie promuje hosting Vercel”.
Z drugiej strony asystenci kodowania koncentrują się na bezproblemowej integracji z istniejącymi przepływami pracy, zrozumieniu baz kodowych i zapewnianiu uniwersalnych narzędzi między technologiami. Są zaprojektowane tak, aby były pomocne zarówno dla poszczególnych programistów, jak i zespołów.
„Asystenci kodujący mają na celu przekształcenie codziennego kodowania” – powiedział Liagushkin. „Niezbędne jest, aby mieć sens w szczególności dla samotnych programistów i zespołów. Edytor kursora Wygląda szczególnie obiecująco, zapewniając wygodny sposób na udostępnianie i skalowanie instrukcji LLM z tak zwanymi „zasadami kursora”.
Podstawowa architektura tych narzędzi jest podobna, z podstawową różnicą w interfejsie użytkownika i podejściach powiększania kontekstu. Podstawowym elementem jest duży model językowy (LLM).
„Kluczowym elementem jest sam LLM” – powiedział Liagushkin. „Wszystkie wspomniane generatory polegają na sonecie Claude 3.5 Anthropica, najnowocześniejszym modelu kodowania od dłuższego czasu, przewyższonego tylko przez jego następcę Claude 3.7 Sonet. Asystenci kodowania, jednak umożliwia przełączanie między modelami”.
Wewnątrz architektury: jak funkcjonują narzędzia kodujące AI
Narzędzia te zazwyczaj nie dostosowują modeli, ale opierają się na zaawansowanych technikach podpowiedzi. Narzędzia typu open source, takie jak Bolt.New zapewniają wgląd w architekturę.
„Dzięki Bolt. Nowe jest open source, możemy zbadać, co jest używane”-powiedział Liagushkin. „Podstawowy monit systemowy wyjaśnia LLM jego środowisko wykonania i dostępne działania: tworzenie i edytowanie plików, uruchamianie poleceń powłoki, wyszukiwanie baz kodowych i korzystanie z narzędzi zewnętrznych. Podpisy są dobrze ustrukturyzowane z formatowaniem w stylu XML i użycie uczenia się jednorazowego uczenia się w celu zmniejszenia halucynacji i niespójności”.
Zarządzanie kontekstem, szczególnie w przypadku dużych baz kodowych, jest znaczącym wyzwaniem. Asystenci indeksuj bazy kodowe i używają baz danych wektorowych do wyszukiwania w pełnym teście.
„Największym wyzwaniem jest zapewnienie LLM właściwego kontekstu”, powiedział Liagushkin. „Konieczne jest zasilanie odpowiednich części właściwych plików wraz z odpowiednimi modułami, dokumentacją i wymaganiami. Asystenci indeksuje bazę kodową, tworząc struktury danych w kształcie drzewa do monitorowania zmian plików, a następnie części i osadzania plików w bazach danych wektorowych do wyszukiwania w pełnym teście”.
Ostatnie 30%
Pomimo ich mocy narzędzia kodujące AI mają ograniczenia. „70% problem”, wyrażony przez Addy Osmani, podkreśla ich walkę z ostatnimi 30% kodu wymagającym solidności i zachowania.
„Problem„ 70% ”doskonale opisuje podstawowe ograniczenie narzędzi kodowania sztucznej inteligencji: mogą szybko wygenerować kod, który daje 70% drogi, ale walczą z kluczowymi końcowymi 30%, które sprawia, że oprogramowanie jest gotowe do produkcji, utrzymywane i solidne”-powiedział Liagushkin.
Rozwiązanie tych ograniczeń polega na poprawie dokładności modelu, rozwijaniu architektur agencji i zwiększeniu technik podpowiedzi.
„Ten problem zostanie rozwiązany na trzy różne sposoby”, powiedział Liagushkin. „Po pierwsze, modele staną się bardziej dokładne. Po drugie, architektura kodowania asystentów przejdzie poprzez podejścia agencyjne. Na koniec zmienimy. Wszyscy nauczą się skutecznych technik podpowiedzi”.
W Twain Liagushkin doświadczył podobnych ograniczeń w rozwoju copywriterów AI. Strategie ich łagodzących obejmują buforowanie żądań LLM, żonglowanie modeli i szybkie przetwarzanie wstępne.
„Jedyną różnicą między asystentami kodowania a Twainem jest to, że asystenci kodowania produkują kod, podczas gdy Twain produkuje spersonalizowane przesłania o jakości napisanej przez człowieka”, powiedział Liagushkin. „Wyzwania pozostają takie same-aby być cennym, musimy generować kopie szybkich, opłacalnych i utrzymywać je wolne od halucynacji”.
Przewidując przyszłość
Patrząc w przyszłość, Liagushkin przewiduje znaczny postęp w jakości modelu i ewolucji przepływu pracy. Podkreśla jednak, że adopcja technologii pozostaje kluczowym czynnikiem.
„Postęp w jakości modelu AI jest zadziwiający i powinniśmy oczekiwać, że modele staną się jeszcze dokładniejsze, stabilne i opłacalne”-powiedział Liagushkin. „Uważam jednak, że prawdziwie transformacyjne zmiany w procesach kodowania nie pochodzą przede wszystkim z przełomów inżynierskich i sztucznej inteligencji, ale z przepływu pracy i ewolucji sposobu myślenia”.
Rozważania etyczne, zwłaszcza bezpieczeństwo danych, są również najważniejsze. Liagushkin sugeruje wdrożenie kodowania LLM w sieci lokalnych i korzystanie z narzędzi ograniczenia widoczności.
„Rozważania etyczne dotyczą przede wszystkim bezpieczeństwa danych – znaczący, ale technicznie rozwiązany problem”, powiedział Liagushkin. „Kodowanie LLM można wdrażać w lokalnych sieciach organizacji, z narzędziami ograniczania widoczności zaprojektowanymi do izolacji wrażliwych sekcji kodów”.
Przyszłość narzędzi kodowania AI opiera się na postępach technologicznych i zmianie sposobu myślenia w społeczności rozwojowej.