In azienda lavoro per cui voglio migliorare il modo in cui scriviamo software: progettiamo le nostre applicazioni più SOLID
. Siamo stati in un nuovo progetto per alcune settimane e ho provato ad applicare alcune buone pratiche nel suo design. Per esempio, accoppiamento libero programmando contro interfaccia invece di una classe concreta, iniezione / inversione di dipendenza da controllo, separazione delle preoccupazioni ecc. Questo è tutto inteso come un trampolino di lancio per testare lo sviluppo guidato nel (lontano) futuro.
Nell'applicazione che stiamo sviluppando dobbiamo calcolare un punteggio in base a un sondaggio compilato da un utente (un sondaggio ha categorie che hanno domande / risposte). Ho suddiviso i calcoli in più classi e interfacce successive (calcolo del punteggio di una domanda, categoria, sondaggio, ecc.).
Inoltre, nel front-end (Web Form ASP.NET), ho suddiviso molte parti di pagine in controlli utente separati. Ad esempio: un 'widget' che mostra i punteggi culumativi nell'applicazione o un widget per mostrare tutti i file relativi all'applicazione. Questi sono tutti controlli utente separati.
Ora ci sono alcune settimane nel progetto e scopro che alcuni dei miei colleghi (specialmente quelli di età superiore) si lamentano:
- Non essendo in grado di trovare un'implementazione di un'interfaccia direttamente, ma è necessario "cercare" l'implementazione
- Ci vuole più tempo per trovare l'implementazione di un particolare markup in prima pagina
Inoltre non vedono il punto di dividere funzionalità separate nei controlli utente perché a volte (di solito) il controllo utente viene utilizzato solo su una pagina. Io, al contrario, trovo che funzioni meglio poiché mantiene il code-behind di una pagina stretto e snello.
La mia domanda è: applico le buone pratiche nel modo sbagliato o ci vuole semplicemente del tempo per abituarmici?
Nota : fino a poco tempo fa abbiamo sviluppato un software con accoppiamento stretto (ad esempio classi statiche, mai utilizzare interfacce, utilizzare il controllo utente solo quando necessario).