Kommentarer
- Jeg ' er ikke sikker på om dette er det du ' tenker på, men jeg finner mange smarte utviklings ting på Forrst .
- Hva med en tittel på " Referansekilder for designmønstre
eller " Ressurser for designmønster " (siden jeg ikke ' t betyr " referanse " som bare " ser opp på etterspørsel ") og flytter alle listegjenstandene inn i kroppen (eller fjerner den)?
Svar
Designmønstre: Elementer av gjenbrukbar objektorientert programvare kommer veldig nær min definisjon av en kanonisk bok om designmønstre. I følge sin wikipedia-artikkel (vektlegging min):
Den opprinnelige publiseringsdatoen for boken var 21. oktober 1994 med copyright 1995, og fra og med juli 2010 sto boken i 38. utskrift . Boken ble først gjort tilgjengelig for publikum på OOPSLA-møtet i Portland, Oregon, i oktober 1994. Den har hatt stor innflytelse på feltet programvareutvikling og blir sett på som en viktig kilde for objektorientert designteori og praksis. Mer enn 500 000 eksemplarer er solgt på engelsk og på 13 andre språk .
Ward Cunningham , en pioner i designmønstre, vedlikeholder en online katalog over bokens mønstre på WikiWikiWeb Og ifølge Wikipedia-artikkelen om designmønster (igjen, vektlegging min):
Designmønstre fikk popularitet innen informatikk etter at boka Design Patterns: Elements of Reusable Object-Oriented Software ble utgitt i 1994 av den såkalte «Gang of Four» (Gamma et al.).
Det er ganske mange andre bøker det er referert til i samme artikkel som bemerkelsesverdig i sjangeren:
- Mønsterorientert programvarearkitektur Volum 1: Et system av mønstre , av Douglas Schmidt, Michael Stal, Hans Rohnert og Frank Buschmann,
- Patterns of Enterprise Application Architecture av Martin Fowler,
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions ., Av Hohpe, Gregor og Bobby Woolf, og
- Head First Design Patterns , av Eric T. Freeman, Elisabeth Robson, Bert Bates og Kathy Sierra.
Av de jeg har lest Fowlers bok, er den svært innflytelsesrik og god å lese. På visse punkter er det litt vagt for min smak, men generelt er det en hyggelig bok. Det er en online katalog av mønstrene som er inkludert i boka, med minimale beskrivelser.
Jeg har også skummet gjennom Head First Design Patterns, og hvis du har lest noen annen bok i Head First-serien, er den av samme høye kvalitet og like morsom som flest bøker i serien :
Head First er en serie innledende instruksjonsbøker til mange emner, utgitt av O «Reilly Media. Det understreker en uortodoks, visuelt intensiv, leser-involverende kombinasjon av gåter, vitser, ikke-standard design og layout, og en engasjerende samtalsstil for å fordype leseren i et gitt emne.
Begrepet «designmønster» er noe vagt, ettersom enhver generell gjenbrukbar løsning kan betraktes som et designmønster. Jeg har alltid lagt merke til en tendens til å påføre etiketten på løsningene beskrevet i en av de bemerkelsesverdige bøkene jeg har listet opp ovenfor, og nærmere bestemt Gang of Four og Fowler-bøkene. Designmønstre følger ikke en unik utviklingsprosess, de er normal programvareløsning s som tilfeldigvis er enormt gjenbrukbare, og de er ekstremt vanskelige å identifisere .
Men hvis du sammenligner katalogene på nettet for begge bøkene med innholdet i språkspesifikke bøker, vil du merke at de ofte brukes som maler. Så jeg vil si at begge bøkene er veldig nær å være kanoniske referanser, med GoF-boka som den viktigste fra et historisk perspektiv, selv om begge bøkene er begrenset til objektorientert programmering .
Kommentarer
- +1. Egentlig ønsket jeg å gi deg +5, men akk at ' ikke er tillatt.
- Hele mønsterorientert programvarearkitekturserien handler om mønstre i forskjellige typer systemer – Volum 1 handler om arkitektoniske mønstre og mønstre som krysser domener, Volum 2 handler om samtidige systemer, Volum 3 handler om ressursadministrasjon i nettverks- / distribuerte systemer, Volum 4 handler om distribuerte systemer, og Volum 5 handler også om mønster språk som referanse for de øvrige 4 bindene. Gitt spørsmålet, tror jeg at Volum 5 også kan være aktuelt, men jeg har ikke ' t brukt for mye tid med det … ennå.
- @Yannis denne og hodet først er generelt basert på statiske typede språk. Er det noen gode bøker for dynamiske språk som python.
- @ ravi404 norvig.com/design-patterns
Svar
The Gang of Four-boken – Designmønstre: Elementer av gjenbrukbart objekt- Orientert programvare er sannsynligvis det nærmeste vi har en industristandard på designmønstre.
For en mer tilgjengelig introduksjon, Head First: Design Mønstre er også bra. Ikke la deg skremme av det «trendy» omslaget, da det er en god lesning og sannsynligvis vil hjelpe deg med å forstå konseptene i GoF-boka mye lettere hvis du leser den først.
Svar
Når som helst, noen steder i verden sliter noen med de samme problemene med programvaredesign som du har. Du vet at du ikke vil finne opp hjulet på nytt (eller verre, et flat dekk), så du ser på Design Patterns – leksjonene de har lært av de samme problemene. Med Design Patterns får du dra nytte av andres beste praksis og erfaring, slik at du kan bruke tiden din på … noe annet. Noe mer utfordrende. Noe mer komplisert. Noe morsommere.
Du vil lære om mønstrene som betyr noe – hvorfor du bruker dem, når du skal bruke dem, hvordan du bruker dem (og når IKKE bruker dem). Men du vil ikke bare se hvordan mønstre ser ut i en bok, du vil vite hvordan de ser ut «i naturen». I deres opprinnelige miljø. Med andre ord, i virkelige applikasjoner. Du vil også lære hvordan mønstre brukes i Java API, og hvordan du utnytter Javas innebygde mønsterstøtte i din egen kode.
Du vil lære de virkelige OO-designprinsippene og hvorfor alt sjefen din fortalte deg om arv kan være være feil (og hva du skal gjøre i stedet). Du vil lære hvordan disse prinsippene vil hjelpe neste gang du er «opp en bekk uten et mønster.» din egen med kollegaen din (og imponere på cocktailpartygjester) når han tilfeldig nevner sin utrolig smarte bruk av Command, Facade, Proxy og Factory mellom sips av en martini. Du vil lett motvirke med din dype forståelse av hvorfor Singleton er ikke så enkelt som det høres ut, hvordan fabrikken misforstås så ofte, eller om det virkelige forholdet mellom dekoratør, fasade og adapter.
Med Head First Design Patterns vil du unngå flauheten ved å tenke at Decorator er noe fra «Trading Spaces» -showet …
Kommentarer
- Dette. Det ' er en veldig tilgjengelig lesing, og endret måten Jeg nærmer meg programvareteknikk helt.
- hele head first series er flott, spesielt for å starte devs.
- Jeg elsker boka, men hater absolutt omslaget! En ikke-programmerer kollega av min gikk forbi kontoret mitt her om dagen, så boka og sa " Head First Designer Mønstre? Skal du inn i motevirksomheten? "
- @Pete Hvorfor omslaget kan gi deg flere problemer. Hun lever tilsynelatende et dobbelt liv. fishbowl.pastiche. org / 2005/08/12 / …
Svar
Ja, det er en kjent bok om design n mønstre: Designmønstre: Elementer av gjenbrukbar objektorientert programvare og forfatterne blir ofte kalt «The Gang of Four» (GoF) og refereres til i nesten alle tekster om designmønstre.
Kommentarer
- Også Martin Fowler ' s bok: amazon.com/Patterns-Enterprise-Application-Architecture-Martin/…
- Dette er ikke en bok om designmønstre. Det ' er en katalog med mønstre. Der ' en kort introduksjon til designmønstre i begynnelsen, men jeg tror ikke ' at introduksjonen er tilstrekkelig.
- @J ö rgWMittag Der ' s er ikke ' en unik prosess for å lage design mønstre, designmønstre er relativt små gjenbrukbare løsninger. Designmønstre skapes gjennom normale prosesser for programvareutvikling. Det som skiller dem er deres enorme gjenbrukbarhet. Den eneste relevante unike prosessen er å identifisere en løsning som et designmønster, og kataloger gjør det fint.
Svar
Designmønstre: elementer av gjenbrukbar objektorientert programvare
Fra wikipedia :
Designmønstre: Elements of Reusable Object-Oriented Software er en programvareteknikkbok som beskriver tilbakevendende løsninger på vanlige problemer i programvare design. Bokens forfattere er Erich Gamma, Richard Helm, Ralph Johnson og John Vlissides med et forord av Grady Booch. Forfatterne blir ofte referert til som Gang of Four, GoF eller Go4. Boken er delt i to deler, med de to første kapitlene som utforsker funksjonene og fallgruvene ved objektorientert programmering, og de resterende kapitlene som beskriver 23 klassiske designmønstre for programvare. Boken inneholder eksempler i C ++ og Smalltalk.
Svar
En av de beste designmønster-nettstedene rundt er Wards Wiki, den aller første wiki. Se http://c2.com/cgi/wiki?HistoryOfPatterns for en god startside i den.
I 1987 rådførte Ward og Kent seg med Tektronix s Semiconductor Test Systems Group som hadde problemer med å fullføre et design. De bestemte seg for å prøve mønsteret de studerte. I likhet med Alexander som sa at okkupantene i en bygning skulle utforme det, lot Ward og Kent representanter for brukerne (en trener og en feltingeniør) fullføre designet.
Ward kom med et «språk» i fem mønstre. som hjalp nybegynnerdesignerne å utnytte Smalltalks styrker og unngå svakhetene …
Ward og Kent ble overrasket over den (riktignok spartanske) elegansen i grensesnittet brukerne designet. De rapporterte resultatene av dette eksperimentet på OOPSLA 87 i Orlando. De skrev opp en panelposisjon og presenterte på Norm Kerths workshop om Hvor kommer objekter fra? De snakket mønstre til de var blå i ansiktet, og fikk mye enighet, men uten mer konkrete mønstre registrerte ingen seg.
I mellomtiden var Erich Gamma opptatt med å skrive og reflektere over objektorientert design i ET ++ som en del av doktorgradsavhandlingen. Erich hadde innsett at gjentatte designstrukturer eller mønstre var viktig. Spørsmålet var egentlig hvordan du fanger opp og kommuniserer dem.
Bruce Anderson holdt et foredrag på TOOLS 90 der ErichGamma var til stede; Erich likte samtalen. Bruce ga et papir på EcoopOopsla90 (Ottawa) og kjørte en BOF kalt Toward an Architecture Handbook der han, Erich Gamma, Richard Helm og andre kom inn i diskusjoner om mønstre.Det var første gang Richard og Erich møttes, og de innså at de delte vanlige ideer om nøkkelideene bak å skrive gjenbrukbar OO-programvare.
Like før ECOOP «91 Erich Gamma og Richard Helm, sittende på en taket i Zürich på en myldrende sommerdag, satt sammen den veldig ydmyke begynnelsen av katalogen med mønstre som til slutt ville bli DesignPatterns …
Ting ble virkelig rullende på OOPSLA-verkstedet som Bruce drev i 1991 Tilfeldigvis var Erich Gamma, Richard Helm, Ralph Johnson og John Vlissides alle der; de ble senere Gang of Four som forfattet Design Patterns boka …
Svar
Jeg tror at Refactoring to Patterns kan være nyttig rett og slett fordi den beskriver hvordan bestemt desing / kode kan omformes mot mønstre i GoF-boka. Dette kan bidra til å overvinne den innledende læringskurven. Åh, og det vurderer også «Mønster-lykke» 🙂
Du kan også finne de tre første volumene av mønsterorientert programvarearkitektur som en god lesning.
Svar
Denne opplæringssiden inneholder følgende underavsnitt
- Hensikt med hvert designmønster
- Real World Structure for designmønsteret
- En problemstilling
- Detaljert diskusjon om problemet
- Sjekkliste for hvordan man kommer fram til et mønster
- Tommelfingerregler mens du kommer til mønster.
- Kodebiter for designmønsteret som inkluderer C #, C ++, Delphi, Java og PHP
Dette nettstedet inneholder også veiledning om anti-mønstre, UML og refactoring.
Kommentarer
- SourceMaking-nettstedet ser enkelt ut ved første øyekast, men det ' virkelig en flott referanse. Bortsett fra designmønstrene, er noe av utviklingen, arkitekturen & antipatterns for prosjektledelse morsom. De ombygde løsningene kan faktisk hjelpe deg med å lagre et møte som ' går av stabelen. (Ikke dårlig for en designmønsterreferanse)
Svar
Den originale boka, «Design Patterns: Elements of Reusable Object Oriented Software «er en god ressurs for objektorienterte designmønstre.
Det finnes mange andre bøker der ute. Når jeg trenger en rask referanse og GoF-boken min er utenfor rekkevidde, har Wikipedia vanligvis nok informasjon om disse og andre designmønstre.
Det er de viktigste jeg bruker. Det bør også bemerkes at folk har begynt å bruke mønsterformatet på andre ting, for eksempel prosjektledelse.
Hvis du vil vite om antipatterns, som du bør være klar over, er det to bøker, «AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis» samt «Refactoring: Improving the Design of Existing Code» som har et avsnitt om kodelukt, et annet navn for antipatterns.
Svar
«Agile Principles, Patterns, and Practices in C #» av Robert C. Martin. Jeg tror han også har en Java-versjon av boka.
Dessuten, ikke et mønster i seg selv, men Domain Driven Design har noen gode konsepter selv om du ikke går for den fullstendige DDD-tilnærmingen.
* Ubiquitous Language * Code first approach (vs. DB first) * etc.
Svar
Hvis du er spesielt interessert i designmønstre i C ++ kan du prøve Modern C ++ Design av Andrei Alexandrescu.
Denne boken snakker om hvordan man kan implementere commonl y brukte mønstre som Factory, Singleton og Visitor i C ++. Det snakker også om veldig C ++ – spesifikke emner som smarte pekere, malmetaprogrammering og policybasert klassedesign.
Bokforfatter er en autoritativ ekspert , kjent for sitt
banebrytende arbeid med policybasert design implementert via metaprogrammering av maler. Disse ideene er artikulert i hans bok Modern C ++ Design og ble først implementert i programmeringsbiblioteket hans, Loki. Han implementerte også «move constructors» -konseptet i sitt MOJO-bibliotek. Han bidro til C / C ++ Users Journal under strekningen «Generisk < Programmering >» …
Kommentarer
- har du noe imot å forklare mer om hva det gjør og hva det ' er bra for? " Bare koblingssvar " er ikke helt velkomne på Stack Bytt
- @gnat: hvordan ' er dette?
- vel, den siste redigeringen din ser absolutt en forbedring ut for meg.Selv om lesere av svaret sannsynligvis ville ha nytte av en mer detaljert forklaring på hvem som er Aleksandresku
- @gnat: siden du åpenbart vet hvem han er, kan du gjerne redigere svaret mitt.