Pagina 1 di 1

Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 14:13
da boiler
Vi segnalo una perla:
https://www.se.rit.edu/~tabeec/RIT_441/ ... 20Code.pdf

Me la sono letta ieri pomeriggio e poi ieri sera una seconda volta, vista l'eccellenza dell'opera :mrgreen:

Si tratta di una raccolta di "regole" da seguire per evitare che colleghi o reviewers possano mettere il naso nei vostri codici sorgente (o perlomeno capirci qualcosa).

Si parte da quelle di facile implementazione e che piú che disturbare un po' non fanno:
Reuse Names
Wherever the rules of the language permit, give classes, constructors, methods, member variables, parameters and local variables the same names. For extrapoints, reuse local variable names inside {} blocks. The goal is to force the maintenance programmer to carefully examine the scope of every instance. In particular, in Java, make ordinary methods masquerade as constructors.


Ci sono anche consigli sull'architettura di programmi OOP:
Dummy Interfaces
Write an empty interface called something like "WrittenByMe", and make all of your classes implement it. Then, write wrapper classes for any ofJava's built-in classes that you use. The idea is to make sure that every single object in your program implements this interface. Finally, write all methods so that both their arguments and return types are WrittenByMe. This makes it nearly impossible to figure out what some methods do, and introduces all sorts of entertaining casting requirements. For a further extension, have each team member have his/her own personal interface (e.g., WrittenByJoe); any class worked on by a programmer gets to implement his/her interface. You can then arbitrary refer to objects by any one of a large number of meaningless interfaces!


Non mancano gli esempi di costrutti eleganti e/o esotici:
Jude the Obscure
Always look for the most obscure way to do common tasks. For example, instead of using arrays to convert an integer to the corresponding string, use code like this:
Codice: Seleziona tutto
char *p;
switch (n)
{
   case 1:
      p = "one";
      if (0)
   case 2:
      p = "two";
      if (0)
   case 3:
      p = "three";
      printf("%s", p);
      break;
}


Buona lettura e buon divertimento :ok:

Boiler

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 14:25
da nicsergio
Un paio di settimane fa avevo letto l'articolo Come scrivere codice ingestibile di Foto UtenteKirkegaard e mi ero divertito.
Direi che mi hai dato una lettura per una di queste sere. :ok:

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 14:27
da boiler
Ah, non avevo visto quell'articolo. Beh, ne è la traduzione, quindi nulla di nuovo per te ;-)

Boiler

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 16:35
da IsidoroKZ
Sono contento di essere un circuitale :D :D

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 16:56
da lemure64
A me basta quello che scrivo io con l'intento di scrivere al meglio; nomi autoesplicativi, incolonnamento rigorosissimo, amore per l'ordine... Ma tendo a commentare pochissimo e dopo una settimana mi scordo completamente quello che ho fatto. Non riesco più a riprendere vecchi progetti, non oso pensare a scrivere in quel modo. Difatti ci sono software che possono incasinare i sorgenti anche se non toccano il lato progettuale come per esempio accade nel PDF; si limitano a mischiare le indentazioni e sostituire gli identificatori, e poco altro.

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 17:56
da stefanopc
Non invidio per nulla chi dovesse per qualsiasi motivo copiare o manutenere un mio "codice" sorgente.
Mi stupisco già abbastanza che il compilatore lo comprenda.
Ciao

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 18:02
da brabus
Giuro, a tratti mi si accapponava la pelle della nuca. Terribile.

Adoro. :mrgreen:

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 18:54
da IlGuru
lemure64 ha scritto:Ma tendo a commentare pochissimo e dopo una settimana mi scordo completamente quello che ho fatto.


L'idea comunque è che durante il tempo passato a programmare nell'arco di quella settimana sei diventato leggermente un po' più bravo, quindi quando lo dovrai rifare da zero, per un evidente vantaggio statistico lo rifarai meglio.

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 22:15
da boiler
lemure64 ha scritto:A me basta quello che scrivo io con l'intento di scrivere al meglio; nomi autoesplicativi, incolonnamento rigorosissimo, amore per l'ordine...

Questa è la "grammatica" del liguaggio. Quello che probabilmente ti risulta difficile è trovare la giusta "retorica".

Non basta conoscere perfettamente l'italiano per essere un novello Manzoni.
Allo stesso modo c'è una grossa differenza tra chi ha imparato il C++ e chi lo sa usare per costruire un'architettura software vera.

Durante lo studio mi hanno fatto imparare C, C++, Java (e assembler). Ma non ho mai avuto una sola lezione di architettura. E ora mi accorgo che mi manca. Sto cercando di recuperare queste nozioni, ma da soli si fa fatica.

Non demordere, con il tempo si migliora ;-)

Boiler

Re: Come scrivere codice non mantenibile

MessaggioInviato: 22 mar 2021, 23:14
da boiler
brabus ha scritto:Giuro, a tratti mi si accapponava la pelle della nuca. Terribile.

Adoro. :mrgreen:

Vedo che abbiamo lo stesso gusto :mrgreen:

Boiler