Quote Originariamente inviata da .Kurt Visualizza il messaggio
E' possibile seguire alcuni principi che ti possono aiutare a migliorare questo aspetto. Che sia SOLID, che sia DRY, che siano design pattern o altro.
Quando inizio a leggere questi acronimi così fichi mi eccito.
Giuro
no, non è vero
Se il tuo progetto ha una copertura per unit test elevata, è ben documentata, ben commentato, con uno stile il più standard possibile, descrittivo nei nomi delle variabili/metodi/classi, allora io, te, e chiunque altro può capirlo e modificarlo.
Questa è la cazzata del giorno, lasciatelo dire.
E' una leggenda metropolitana "venduta" dagli spacciatori (e inventori) di acronimi.
Se vedi dall'interno com'è fatto un "vero" prodotto (cioè ad esempio composto da un milione di righe, non il programmello di 3K linee) vedi subito che "chiunque" significa "una dozzina di persone".
Talvolta anche meno.
E' un dato di fatto di banale cardinalità: quando un progetto supera la capacità di un singolo, per quanto abile, gli "acronimi" valgono pochino.
Se non fosse così, allora in qualsiasi progetto open source collaborerebbero al massimo una decina di persone, non migliaia.
In effetti sono proprio qualche decina di "veri" a lavorarci, più centinaia di rifinitori di aree ben circoscritte. Anche nei progetti più grandi (Linux ad esempio).
E' ovvio che se create codice non testabile, illeggibile, accoppiato, etc, sia impossibile per chiunque tranne voi di metterci mano. E dopo poche settimane neanche voi saprete più che farci.
Mah... Sarà... nessuno riesce a mettere mano a un progetto "serio", per il semplice fatto che è troppo grande.
O immagini di poter comprendere ogni singola riga di funzionamento di Windows 10 con tutti i suoi vari programmi di supporto, con 4 diagrammini?
Ugh. Va bene, in php non tutto è un oggetto, come invece accade in Ruby. E quindi? Neanche in C++ o Java. Ma diresti che C++ non è OO? O che sarebbe da buttare in favore di altri linguaggi che lo sono?
Guarda saranno 25 anni che ci sono "crociate" più o meno "violente" per stabilire se C++ è OO, o no.
O se lo è abbastanza, oppure no.
Dalle primissime, timide, estensioni di Stroustrup (dovrei avere ancora una sua dedica su una delle prime edizioni del suo mitico - ma scritto malissimo - libro)
PHP supporta la programmazione orientata ad oggetti: http://php.net/manual/en/language.oop5.php
La puoi usare, e non perché è "figo", ma perché è uno strumento utile. Che sia "completamente oo" importa relativamente poco se ti basta per fare quello che devi fare.
Ahhh... stai passando al Lato Oscuro... ovvero che a nessuna frega niente di quanto è fico (a parte i fanboy), basta che funzioni?
Benvenuto nel club