Prima di tutto, penso che la tua domanda abbia un argomento che è di grande importanza in questi giorni, ovvero pensare e documentare decisioni / intenzioni progettuali .
In Java, i principali meccanismi per esprimere davvero l'intento oltre a utilizzare solo le parole chiave disponibili sono le asserzioni e annotazioni , perché puoi indicare, ad esempio, condizioni pre / post, invarianti o anche le specifiche su parti dei tuoi programmi che possono essere su un livello più alto di astrazione di quanto possa essere il codice. Il vantaggio viene alla luce se devi leggere o mantenere un pezzo di codice scritto da qualcun altro e semplicemente non puoi capire la sua funzionalità.
In aggiunta a ciò, ogni parola chiave ha ovviamente una certa semantica e per questo esprime anche intrinsecamente alcune intenzioni quando la usa. In realtà, si potrebbe affermare che l'utilizzo di qualsiasi parola chiave predefinita in qualsiasi lingua potrebbe essere visto come una decisione progettuale, anche l'utilizzo di una lingua è già una decisione progettuale.
Il punto importante è che semplicemente non puoi esprimere tutte le tue intenzioni attraverso codice e commenti senza perdere la "grande immagine", cioè il codice è sicuramente non l'unica verità. Pertanto abbiamo un "costrutto" chiamato architecture che ha lo scopo di rendere visibili e documentare quelle decisioni di progettazione e le intenzioni che stiamo facendo mentre pensiamo a un sistema. Certo, possono essere applicati in codice per rendere il codice più leggibile e navigabile, ma il codice non dovrebbe essere il luogo principale in cui vengono dichiarate le intenzioni.