ousterhout-build-deep

di Rob Zapp2 installazioniNessun likeAggiornato il 5 ottobre 2026Categoria: Ingegneria

Cosa fa

Usa durante la scrittura o la modifica del codice, prima di considerare il compito completato, ogni volta che la modifica aggiunge un nome esportato o importabile, crea un modulo, una classe, un componente, un helper, un hook, un servizio o un wrapper, o centralizza codice ripetuto. Checklist per l'autore per costruire moduli profondi: nomina la decisione che il confine nasconde, supera i test di profondità e invarianza, risolvi i problemi invece di spostarli, non dividere mai solo in base alla dimensione e termina con una breve nota di design. Compagno compatto di ousterhout-quality-program, che rimane la lente completa di revisione.

L'installazione apre questa scheda nella tua app desktop AgentsRoom. Se l'app non è ancora installata, verrai portato alla pagina di download.

SKILL.md

---
name: ousterhout-build-deep
description: Usa durante la scrittura o la modifica del codice, prima di considerare il compito completato, ogni volta che la modifica aggiunge un nome esportato o importabile, crea un modulo, una classe, un componente, un helper, un hook, un servizio o un wrapper, o centralizza codice ripetuto. Checklist per l'autore per costruire moduli profondi: nomina la decisione che il confine nasconde, supera i test di profondità e invarianza, risolvi i problemi invece di spostarli, non dividere mai solo in base alla dimensione e termina con una breve nota di design. Compagno compatto di ousterhout-quality-program, che rimane la lente completa di revisione.
---

# Build it deep (Ousterhout, author-time)

Stai scrivendo codice, non revisionandolo. Esegui questo sulla tua modifica prima di dichiarare il compito completato.

## 1. Gate

La modifica aggiunge un nome esportato/importabile, crea un modulo, una classe, un componente, un helper, un hook, un servizio o un wrapper, oppure centralizza codice ripetuto? Se no, salta questa skill. Rinominazioni, codemodifiche, modifiche a configurazioni/dati e correzioni di una riga sono esenti.

## 2. Prima di scrivere il confine

- Trova come questo repository risolve già un problema di questa forma e seguilo a meno che tu non possa spiegare perché no. Leggi la documentazione e i tipi correnti della dipendenza: un'API richiamata a memoria è un'affermazione, non una fonte.
- Scrivi prima il commento dell'interfaccia: cosa promette, cosa nasconde. Se non riesci a nominare la decisione nascosta (un formato, una politica, una regola, una scelta di schema), il confine non dovrebbe esistere. Inseriscilo inline.
- Nominalo nel linguaggio del dominio. Se l'unico nome onesto è `utils`, `helpers` o `manager`, il taglio è nel posto sbagliato.

## 3. Due test

- **Profondità.** L'interfaccia deve nascondere sostanzialmente più di quanto espone. Un wrapper che inoltra i suoi argomenti è un costo senza beneficio; eliminalo.
- **Invariante.** Estrai codice condiviso solo quando protegge una regola condivisa. La prova è la co-modifica: le copie sono state corrette o modificate insieme nella storia. Somiglianze che cambiano indipendentemente restano duplicate.

## 4. Una correzione deve rimuovere il problema, non spostarlo

- Sei cast spostati in un helper generico per cast sono ancora sei cast. Scrivi il mapper tipizzato che i cast stavano mascherando.
- Non aggiungere un parametro o flag che spinga una decisione sui chiamanti a meno che i chiamanti non sappiano davvero qualcosa che tu non sai. Assorbi il caso difficile all'interno.
- Preferisci semantiche dove il caso di errore non può sorgere piuttosto che far gestire ogni chiamante.
- Spostare complessità essenziale del dominio in un altro file non è semplificazione.

## 5. Sotto pressione di "pulisci questo" o "questo file è troppo grande"

Non dividere mai solo per dimensione. Un modulo da 400 righe che nasconde una decisione batte quattro moduli da 100 righe che perdono le stesse giunzioni. Chiedi quale decisione nasconde ogni divisione; se nessuna, non dividere.

## 6. Sicurezza

Codice esistente: blocca il comportamento attuale con un test prima di approfondirlo. Codice nuovo: scrivi il test che definisce il comportamento previsto.

## 7. Report

Se il gate è scattato, termina il tuo messaggio finale con una nota di design di 2-4 righe: ogni confine che hai aggiunto e la decisione che nasconde; duplicazioni lasciate intenzionalmente e perché; qualsiasi superficialità accettata e perché.

Per una chiamata contestata o una revisione completa, carica `ousterhout-quality-program`.

Tag

designarchitetturaprogrammazioneousterhoutauthor-time

Approfondimenti

Ingegnere DevOpsCopywriterSviluppatore FrontendCommercialeSviluppatore BackendCoach e FormatoreArchitetto SoftwareConsulente LegaleIngegnere QAAmministrazione e FinanzaSviluppatore Full-StackDesigner CreativoSviluppatore MobileRicercatoreIngegnere di SicurezzaRisorse Umane e Selezione
Project ManagerTraduttoreEsperto GitData AnalystSpecialista SEOContabileSpecialista LocalizzazioneComunicazione e PRBrainstormerOperations e LogisticaSpecialista MarketingAssistenza ClientiAssistente del progettoBuyerCommunity ManagerAssistente Personale

Scarica AgentsRoom

Esegui tutti i tuoi agenti AI, su tutti i tuoi progetti, da una sola finestra.

Scarica AgentsRoomGratis

App companion: monitora i tuoi agenti in movimento

Usa Claude, Codex, Antigravity CLI o un altro provider IA.

Installa l'estensione
Chrome Web Store

Invia bug e richieste direttamente nel tuo backlog pubblico.

Agenti che leggi come una conversazione

Ogni agente ha un ruolo, una faccia e un thread che leggi come un'app di messaggistica.

Vista conversazione

Vista conversazione di AgentsRoom: il lavoro di un agente AI di coding mostrato come chat
Multi-progetto
Multi-provider
Multi-agente
Stato in tempo reale
Diff e commit
App mobile
Anteprima live
Team di agenti
Test browser
Dev guidata da backlog
Libreria di prompt
Libreria di skill
Vedi tutte le funzionalità