Sunt absolut de acord și cred că instrumentele LLM ar putea fi o funcție de forțare pentru adoptarea unora dintre practicile celor mai bune echipe/organizații la echipe mai mici, care ar fi putut să nu le justifice înainte.
Simon Willison
Simon WillisonCu 22 de ore în urmă
Nu este vorba doar de teste unitare - există atât de multe alte practici de inginerie software de top care accelerează productivitatea cu agenți de codare Teste automate, documentație cuprinzătoare, obiceiuri bune de control al versiunilor, o cultură a revizuirii codului, implementare rapidă în medii de pregătire...
Cred că ai fi nebun să ai câteva sute de ingineri fără linter. Dacă aveți doar două sau patru, totuși, poate că nu veți obține niciodată energie de activare pentru asta și aveți în mare parte lupte neproductive despre stilul de codare. Dar adăugați Claude Code și a) doriți acel linter
b) stabilirea faptului că linter are acum cinci minute de ridicare marginală versus "O persoană coboară într-o sarcină clasică de a o integra cu toate IDE-urile / etc."
Pentru partea din publicul meu care nu știe: un linter este un instrument automat care poate impune standarde de convenție de codare care sunt mai stricte decât cele pe care le-ar putea permite un limbaj. De exemplu, puteți adopta o regulă a casei conform căreia anumite construcții legale nu sunt permise
De exemplu, există o expresie juridică foarte concisă în multe limbi numită operator ternar. Operatorii ternari sunt notoriu susceptibili de a provoca erori, iar o echipă de ingineri ar putea decide că, deși concise, pe o bază ajustată la risc, nu sunt o caracteristică acceptabilă de utilizat.
Ca exemplu de lucru pe care îl puteți regla în mod sensibil prin intermediul unui linter despre care nu doriți să aveți discuții repetate cu Claude Code: în Rails, something_id înseamnă o cheie străină pentru tabelul ceva. Claude uită acest lucru ocazional, numindu-și multe alte lucruri.
Puteți, dacă doriți, să scrieți o regulă linter care să se execute de fiecare dată când codul este modificat și să semnalizeze către Claude și restul lumii: "Ați numit o variabilă box_id, dar _ids trebuie folosite doar pentru a se referi la cheile bazei de date. Luați în considerare box_code sau un alt nume."
Un lucru frumos despre regulile linter este că pot avea cunoștințe specifice proiectului încorporate în mod arbitrar. Un argument repetat pe care un salariat japonez a fost forțat să-l aibă cu mult timp în urmă, cu (colegi) vorbitori non-nativi care făceau o aplicație web universitară: NU trebuie să folosești "subiect".
De ce nu? Pentru că universitățile japoneze împart materiile academice în materii (kyouka; un subiect precum "matematică") și un subiect (kamoku; un subiect precum "algebră liniară"), și din moment ce subsubiectul este îngrozitor de citit în cod, acestea au fost menționate de japonezii romanizați ca fiind întotdeauna lipsite de ambiguitate.
20,92K