Perché tendiamo a rendere le cose troppo complicate? [chiuso]

0

Il fatto che principi come KISS e YAGNI sono così popolari, parla chiaramente della nostra inclinazione a rendere le cose troppo complicate.

Questa inclinazione è parte della nostra natura o è parte della nostra cultura?

    
posta Emanuil Rusev 01.10.2011 - 11:36
fonte

4 risposte

6

Alex Papadimoulis di thedailywtf ha scritto un articolo molto interessante che tocca questo argomento: link

Fondamentalmente dice che molti dei lavori che svolgiamo sono poco stimolanti o noiosi, il che porta i programmatori intelligenti come te a complicare eccessivamente il design per continuare a godersi il lavoro. Ti è familiare? Sono certamente stato colpevole di questo.

La conclusione sarebbe che è nella nostra natura cercare le sfide, ma che vogliamo generare una cultura in cui scrivere codice stimolante e software di costruzione sono fondamentalmente due cose diverse.

Io stesso trovo che il lavoro richiede almeno qualche sfida e divertimento, perché senza questi è molto difficile rimanere concentrati e fare il lavoro giusto. Quindi direi che vogliamo creare una cultura in cui il codice stimolante fa parte dello sviluppo del software, purché sia ben testato e in effetti riesca a completare il lavoro senza complicazioni eccessive. E posso davvero godermi un software che è conciso e al punto molto più che un software che è sovradimensionato.

    
risposta data 01.10.2011 - 12:16
fonte
3

Consideriamo le cose semplici quando le abbiamo pienamente comprese. Ciò è supportato dall'elaborazione delle sette del carico, che sono sistemi molto complessi perché sono poco conosciuti.

La maggior parte dei programmi si verifica nella zona "non ancora compresa", perché i progetti più comprensibili sono già stati programmati in precedenza. (In quanto importante controesempio, consideriamo i compilatori e la teoria del compilatore.) Quindi, è nella natura dell'ingegneria del software produrre cose complicate perché non abbiamo ancora risolto completamente il problema, per capirle nel processo e poi ridefinire il codice. KISS e YAGNI cercano di sopprimere le nostre tendenze a costruire troppo codice troppo presto.

Conclusione: fa parte della nostra natura.

    
risposta data 01.10.2011 - 11:52
fonte
0

Penso che un fattore di contribuzione considerevole sia l'aspettativa che i requisiti cambieranno. Questo è più chiaro con YAGNI: sta esplicitamente attaccando l'idea "Non ne ho ancora bisogno, ma potrei in futuro".

    
risposta data 01.10.2011 - 12:06
fonte
0

la risposta ha due parti. il primo è la prospettiva dello sviluppatore e l'altro come prospettiva dell'utente.

l'utente intende fare in modo che tutto sia il più semplice possibile. l'utente non sa nulla dello sfondo, dei demoni, dei processi, dei processori, ecc. l'utente non vuole sapere nulla di ciò. e questo non dovrebbe essere una condizione per usare un programma.

la parte sviluppatore è piuttosto complicata dal momento che il processo di sviluppo è piuttosto complicato. come sviluppatore dovresti essere un buon designer, un buon programmatore, un buon tester e molto altro. un sacco di codice è costruito durante la comprensione, come ha detto Thiton. e secondo me: il più codice sembra essere costruito in fretta. orari e concorrenza portano all'urgenza. così tanti problemi con il brutto codice potrebbero essere evitati se si potesse impiegare più tempo per la codifica. non la frettolosità del denaro.

la mia conclusione: cattiva gestione dei processi e tempi rari.

    
risposta data 01.10.2011 - 12:06
fonte

Leggi altre domande sui tag