Come diventare bravo in analisi e progettazione orientata agli oggetti (OOAD)?

26

Diventare un buon analizzatore e designer può essere di grande beneficio per uno sviluppatore. Ma ci sono sicuramente degli ostacoli. Non tutti sono interessati a OOAD, e non ogni persona che è interessata conosce il percorso. Un buon OOAD dovrebbe conoscere più lingue OO? O dovrebbe avere progetti falliti? Come si può diventare un buon OOAD?

    
posta Saeed Neamati 26.07.2011 - 21:41
fonte

3 risposte

34

Le persone che non sono interessate stanno creando i propri ostacoli. Non posso preoccuparmene.

Per coloro che non conoscono il percorso, suggerisco:

  • Trovo che ogni lingua OO che imparo mi rende uno sviluppatore OO migliore. Molto può essere portato da ogni lingua in altri, purché tu trovi la comunità.
  • Tu impari più dal fallimento che dal successo, ma cerca di farlo nel tuo tempo libero. Professionalmente, fidati di quelli con più esperienza, almeno una parte del tempo - ma non aver paura di chiedere "Perché?".
  • Scopri tutti e cinque i principi SOLID e capisci perché esistono. Nessuna di esse è una regola, ma sono buone linee guida quando ti perdi.
  • Test Driven Development ha migliorato le mie capacità di progettazione OO rispetto a qualsiasi altra cosa abbia mai imparato.
  • Non sarai il tuo migliore fino a quando non passerai dalla sottochiavezione alla sovrastruttura e poi troverai il giusto equilibrio (più vicino a quest'ultimo).
  • In realtà, gratta tutto, non sarai mai così bravo come lo sarai dopo due anni.
  • Leggi un sacco di libri e blog, ma non prendere nulla come vangelo. Questo settore non ha ancora trovato, e potrebbe non trovare mai, un percorso perfetto.
  • Conoscere tutti i modelli di progettazione, ma non cercare luoghi in cui utilizzarli, semplicemente usali come facilitatori della comunicazione.

Spero che questo aiuti.

    
risposta data 26.07.2011 - 21:53
fonte
5

Penso che per apprezzare appieno il modello OO, devi avere esperienza che fallisce miseramente con le tecniche di programmazione non OO. Puoi capire OO dentro e fuori, ma per apprezzarlo e rispettarlo, deve essere uno strumento nuovo e brillante che sostituisce il vecchio arrugginito che non ha fatto bene il lavoro.

Mi sono autodidatta da solo 7 anni prima di imparare finalmente OO a livello universitario Java. Prima di allora, costruivo costantemente questi progetti e sarebbero diventati così grandi che avrei dimenticato quello che succedeva. Sarebbero ingombranti, non organizzati e richiedono molto di manutenzione per apportare modifiche minori. Fondamentalmente ho continuato a trovarmi impantanato con il mio codice e ricominciare da capo costantemente.

Mi ci è voluto un po 'per togliermi la testa dal design lineare che avevo adottato, ma una volta compreso appieno il modello OO era come Eureka! Sono stato in grado di codificare progetti molto più complessi da solo e la mia produttività è esplosa sul tetto dopo aver imparato concetti come l'ereditarietà. Non sto perdendo tempo a riscrivere il codice o ricominciare da capo, perché oggettivamente tutto ha un senso ed è solo intuitivo.

È mia opinione che ogni programmatore dovrebbe conoscere quante più lingue possibile. Questo li renderà un veterano più esperto, indipendentemente dal fatto che sia OO o meno. Una volta che capisci OO, puoi prendere quelle tecniche e applicarle ovunque siano implementate.

IMHO, se non capisci, o non hai voglia di imparare OO, sarai inadeguatamente equipaggiato sul campo di battaglia della vita. Sempre più aziende utilizzano le nuove lingue OO. Non vedo alcun motivo per non conoscere il modello OO di questa epoca.

A seconda di come la persona impara, spetta a loro su come vogliono imparare il modello. Imparo personalmente meglio quando qualcuno mi insegna, e quindi andare a lezione per Java I e Java II ha fatto davvero una grande differenza per me. Consiglierei di prendere lezioni di ingegneria del computer all'università, o semplicemente di andare online e cercare tutorial OO se non hai accesso ai corsi universitari o se vuoi imparare nel tuo tempo libero.

Quando ripenso a come mi è stato descritto, dico; una mela è una mela e un'arancia è un'arancia. Sì, entrambi cadono dagli alberi, ma sono due frutti totalmente diversi e lì sta la tua armonia.

    
risposta data 26.07.2011 - 21:59
fonte
0

Ci sono sempre degli ostacoli per gli interessati o meno, ma il contesto e la gravità possono variare.

Non è necessario che tu abbia bisogno di imparare più lingue per i concetti di OO, iniziare con una lingua che ti piace, in un periodo di tempo avrai una strong presa sulla lingua, postare questo è possibile esplorare alcune cose che hai già fatto e prova ad eseguire lo stesso su una lingua diversa. Le competenze in una lingua aiutano a passare a quelle nuove poiché si dovrebbe avere un benchmark per valutare.

Ogni progetto è un'esperienza di apprendimento piuttosto che il suo successo, ciò che è importante è il modo in cui hai adattato le funzionalità per il tuo uso migliore, a volte è utile leggere il codice degli altri e capire come e perché è stato fatto. Se riesci a ottenere un mentore sarebbe fantastico. Conoscere sempre il motivo Perché è stato scelto , Che ne dici di farlo in un altro modo. Prova a lavorare sulla tua logica e sul modello di progettazione e sottoponilo al tuo senior / mentore. In questo modo miglioreresti le tue abilità, forse all'inizio andrebbero direttamente nella pattumiera, ma poi hai tentato e imparato ciò che hai fatto di sbagliato. Iteratively starai sempre meglio.

    
risposta data 27.07.2011 - 05:34
fonte

Leggi altre domande sui tag