Matteo
Allora questo è un termine che ha già cominciato a perdere una connotazione precisa, significa un po' tutto.Fondamentalmente un'accezione significa tutto quello che sta intorno al modello linguistico.Quindi Cloud Code potrebbe essere una harness.La mia collega Birgitta Böckler che molto brava a dare una terminologia ha scritto che, ok, Cloud Code, Codex sono l'Harness interna.Sono quella parte dell'Harness che tu, sviluppatore, non puoi cambiare.Poi, sopra questo Cloud Code c'è una serie di cose che tu aggiungi che sono le cose che tu puoi cambiare.E, ad esempio, sono il file cloud.md, agents.md, che definisce regole di base per il tuo agente e tutto il resto che tu aggiungi.e tutto questo è Arnes che ha due parti.C'è l'Arnes che ti dà un feed forward, quindi ti dico devi fare così, segui queste regole, fai attenzione a questo e a quello e c'è il feedback, cioè tutto quello che reagisce a qualcosa che lei hai fa e gli dà un feedback, che possono essere cose anche molto...come si dice, deterministiche tipo regole di l'INT.Una volta si diceva che una buona regola era, metti il tuo compilatore con i warning al massimo e tratta ogni warning come un errore.È un buon consiglio, pochi team lo fanno.Adesso è diventato importante, ti consenti di fare in modo che lei ascriva del codice migliore, non perché tu gli hai messo 20.000 regole di cui chiaramente non ti racconto.di tutte le regole se ne ne metti troppe, ma quando una regola viene violata dall'inter che viene eseguita in automatico, gli dà il messaggio di errore e il modello reagisce.Quindi, harness in questo senso è un insieme di controlli deterministici che tu metti per controllare che lei ha il segolo e tue regole.Un esempio è, se tu non vuoi che, per esempio, lavori in python, non vuoi che venga usato il tipo eni, che significa va bene tutto, ma vuoi che vengono usati dei tipi specifici.Io ho messo una regola specifica che diceva non puoi avere una funzione che restituisce un dizionario o che restituisce Annie, devi definire una struct ben definita con dei campi precisi perché io voglio capire questa funzione che cosa restituisce e poi tu modello, nella prossima sessione avrai utilità di capire in maniera esplicita che cosa restituisce questa funzione e non doverti andare a leggere come funziona la funzione per capirlo.Quindi, harness, in questo senso, è un insieme di regole deterministiche e non deterministiche che tu dai al modello per fare in modo che con maggiore probabilità ti dia la cosa che tu desideri.Poi c'è un terzo tipo di harness che è quella di comportamento del codice.Cioè, l'harness è sotto forma di test.E questo è un tasto dolente, perché anche qui i test sono sempre stati una buona idea.Non tutti i team li hanno sempre fatti molto bene, adesso sono diventati veramente vitali perché con il volume di codice che viene prodotto non avere dei test che con precisione definiscono che perlomeno la funzionalità del tuo sistema sia corretta, perché poi il tuo sistema può avere la funzionalità corretta ed essere rotto per tantissime altre maniere, ma la funzionalità è il grado zero, il sine qua non e salta fuori che non è facilissimo farlo in maniera efficace.Ora io sono fan del test Riven Development Dal 2002-2003 e quindi mi costa tantissimo dirlo, ma i test che scrivevamo a mano col TDD non sono più quelli che servono adesso.Adesso serve molto di più l'acceptance test, il test a livello di descrivi l'input è questo, l'output deve essere questo, fai una tabella di tutti gli input e tutti gli output, questo è quello che ti dà una buona confidenza, perché i test unitari a livello di funzione lasciano il tempo che trova, perché cosa succede? Che poi l'AI lo fa molto volentieri di farti dei test unitari che fissano il comportamento dei tuoi metodi, ma poi cosa succede? Che devi cambiare una virgola, cambia il test, cambia anche la funzione, cioè cambia l'implementazione e cambia il test.E a questo punto hai il dubbio, sì, ma il test mi protegge ancora, cosa sta testando? Questo è un test che mi protegge da errore in produzione o è una cosa che facciamo perché dobbiamo, ma non una specie di cargo cult.Se tu torni invece al concetto di testa-accettazione, il testa-accettazione è scritto in termini di cose che hanno importanza per il business.Uso lo stesso linguaggio in cui tu descrivi i criteri d'accettazione delle user story, quindi sono...molto più veritieri, molto più facili da controllare, e questo significa che il TDD come lo facevamo prima è un po'...non si fa più in quella maniera lì, insomma, diciamo.