Ho un codice che è quasi identico, ma usa tipi assolutamente diversi, senza ereditarietà tra loro, sulla variabile principale. Nello specifico, sto scrivendo un analizzatore con Roslyn per C # e VB.NET, con i seguenti tipi:
Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax
Mi chiedo se, poiché il codice sta facendo la stessa cosa, dovrei tenerlo il più possibile ASCIUTTO, dividere il meno possibile in metodi separati (ma identici diversi dal tipo), oppure separarlo completamente perché due metodi non sono correlati e le modifiche future potrebbero forzare una versione a cambiare, ma non l'altra (anche se è improbabile)?
Modifica: circa un anno dopo, ho raggiunto lo stesso problema e il team di Roslyn mi ha aiutato a risolverlo: scrivi una classe base che prende generici e ha un parametro TAttributeSyntax
che fa la maggior parte del lavoro. Quindi, scrivi le classi derivate con il minimo di dati che richiede un tipo specifico.