Come affrontare l'argomento delle cattive pratiche di programmazione con il collega [duplicato]

3

Il mio collega di sviluppo sta producendo numerosi blocchi di codice che sono un po 'preoccupato in realtà non rende facile lettura e potenziali problemi in futuro. Ho provato a dare piccoli consigli lungo la strada senza dire in modo blando ciò che penso, ma la sua tecnica sembra non cambiare mai.

Normalmente non sarei preoccupato, ma all'inizio del nostro progetto non abbiamo mai identificato alcun standard di programmazione specifico e ora sto davvero cominciando a comportarmi un po 'perché devo passare attraverso il suo codice e provare a eseguirne il debug.

Un piccolo frammento di una piccola parte del codice è come tale.

foreach(DistributionRecord record in _manager.Distributions)
{
    foreach (Engine.Model.DistributionModel.LossFromAtmosphericConditionsEnum NLossAt
                    in Enum.GetValues(typeof(Engine.Model.DistributionModel.LossFromAtmosphericStructureEnum)))
                    if (record.NlossAt.ContainsKey(NLossAt))
                        if (record.NlossAt[NLossAt].ContainsKey(DistributionModel.LossFromAtmosphericConditionsEnum.Atvolat))
                            _indirect[GetIndirectSourceEnumFromEnterpriseType(record)] += record.NlossAt[NLossAt][DistributionModel.LossFromAtmosphericConditionsEnum.Atvolat]
                                * _manager.Scenario.Management.EmissionFactors.EmissionFactorIndirectBackgroundVolatisation;

                foreach (Engine.Model.DistributionModel.LossOffEnum lossOff in Enum.GetValues(typeof(Engine.Model.DistributionModel.LossOffEnum)))
                    if (enterprise.NlossOff.ContainsKey(lossOff))
                        if (enterprise.NlossOff[lossOff].ContainsKey(DistributionModel.LossTypesEnum.lossleach))
                            _indirect[GetIndirectSourceEnumFromEnterpriseType(record)] += record.NlossOff[lossOff][DistributionModel.LossTypesEnum.lossleach][NutrientEnum.N].Value
                                * _manager.Scenario.Management.EmissionFactors.EmissionFactorN2OIndirectBackgroundLeach;
}

Ho parlato con il capo e senza dire esplicitamente che ha spiegato le mie preoccupazioni ecc. Non so cos'altro fare.

Non sono sicuro se questo è appropriato per questo forum, ma qualsiasi consiglio sarebbe apprezzato in sostanza su come posso affrontare questo con il mio collega. O forse sto solo diventando irrealistico e devo entrare nel mondo reale nel senso che alcune persone scrivono il codice ed è ok?

    
posta dreza 23.02.2012 - 21:56
fonte

2 risposte

5

Parla con il tuo capo dell'istituzione di un processo di revisione del codice. Quindi puoi mostrargli quali sono i problemi ufficialmente e come bonus, ci si aspetta che li risolva prima di distribuirli. Ovviamente il tuo codice verrà esaminato e le modifiche saranno richieste anche per questo.

    
risposta data 23.02.2012 - 22:00
fonte
0

Venite con gli standard di programmazione concordati per commissione (entrambi voi e forse il vostro capo coinvolto). Quindi la discussione sul codice scritto prima del problema non è un problema. Anche come HLGEM menziona (e ho upvoted) recensioni di codice. Ma senza lo standard concordato sulle recensioni potrebbe finire per provocare discussioni accese.

    
risposta data 23.02.2012 - 23:53
fonte

Leggi altre domande sui tag