Is er een canoniek boek over ontwerppatronen? [gesloten]

Reacties

  • Ik ' m niet zeker of dit is wat je ' denk erover na, maar ik vind veel slimme ontwikkelingsdingen op Forrst .
  • Wat dacht je van een titel van " Referentiebronnen voor ontwerppatronen

of " Ontwerppatroonbronnen " (aangezien ik ' t bedoel " referentie " als alleen " opzoeken op verzoek ") en al het lijstmateriaal naar de body verplaatsen (of verwijderen)?

  • .NET Design Patroon en architecturale richtlijnen
  • Voor sommige fatsoenlijke implementaties, keek ik naar die op dofactory (didn ' koop de boeken echter niet).
  • Aangezien deze vraag een compleet en uitgebreid antwoord kreeg, ' heb ik gesloten de andere ontwerppatronen vragen als duplicaten van deze om het aan te duiden als de canonieke Q & A en antwoordpaar voor dit onderwerp.
  • Answer

    Design Patterns: Elements van herbruikbare objectgeoriënteerde software komt heel dicht in de buurt van mijn definitie van een canoniek boek over ontwerppatronen. Volgens zijn Wikipedia-artikel (nadruk van mij):

    De oorspronkelijke publicatiedatum van het boek dateerde van 21 oktober 1994 met een copyright van 1995 en vanaf juli 2010 was het boek in zijn 38e druk . Het boek werd voor het eerst ter beschikking gesteld van het publiek tijdens de OOPSLA-bijeenkomst in Portland, Oregon, in oktober 1994. Het heeft grote invloed gehad op het gebied van software engineering en wordt beschouwd als een belangrijke bron voor objectgeoriënteerde ontwerptheorie en praktijk. Meer dan 500.000 exemplaren zijn verkocht in het Engels en in 13 andere talen .

    Ward Cunningham , een pionier op het gebied van ontwerppatronen, onderhoudt een online catalogus van de patronen van het boek op WikiWikiWeb . En volgens het Wikipedia-artikel over ontwerppatroon (nogmaals, nadruk van mij):

    Ontwerppatronen werden populair in de informatica nadat het boek Design Patterns: Elements of Reusable Object-Oriented Software in 1994 werd gepubliceerd door de zogenaamde “Gang of Four” (Gamma et al.).

    Er zijn nogal wat andere boeken waarnaar wordt verwezen in de hetzelfde artikel als opmerkelijk in het genre:

    Van degenen die ik het boek van Fowler heb gelezen, is het zeer invloedrijk en goed gelezen. Op bepaalde punten is het naar mijn smaak wat vaag, maar over het algemeen is het een leuk boek. Er is een online catalogus van de patronen die in het boek zijn opgenomen, met minimale beschrijvingen.

    Ik heb ook Head First Design Patterns doorgenomen, en als je een ander boek uit de Head First-serie hebt gelezen, is het van dezelfde hoge kwaliteit en net zo plezierig als de meeste boeken in de serie :

    Head First is een reeks inleidende instructieboeken over veel onderwerpen, uitgegeven door O “Reilly Media. Het benadrukt een onorthodoxe, visueel intensieve, voor lezers betrokken combinatie van puzzels, grappen, niet-standaard ontwerp en lay-out, en een boeiende, gespreksstijl om de lezer onder te dompelen in een bepaald onderwerp.

    De term “ontwerppatroon” is enigszins vaag, aangezien elke algemene herbruikbare oplossing als een ontwerppatroon kan worden beschouwd. Ik heb altijd een neiging opgemerkt om het label aan te brengen op de oplossingen die in één van de opmerkelijke boeken die ik hierboven heb genoemd, en meer specifiek de boeken Gang of Four en Fowler. Ontwerppatronen volgen geen uniek ontwikkelingsproces, het zijn normale softwareoplossingen s die enorm herbruikbaar zijn en extreem moeilijk te identificeren zijn.

    Maar als je de online catalogi voor beide boeken vergelijkt met de inhoud van taalspecifieke boeken, zul je merken dat ze vaak als sjablonen worden gebruikt. Dus ik zou zeggen dat beide boeken bijna canoniek zijn. verwijzingen, waarbij het GoF-boek vanuit historisch perspectief het belangrijkste is, ook al zijn beide boeken beperkt tot objectgeoriënteerd programmeren .

    Reacties

    • +1. Eigenlijk wilde ik je +5 geven, maar helaas ' is niet toegestaan.
    • De hele Pattern-Oriented Software Architecture-serie gaat over patronen in verschillende soorten systemen – Deel 1 gaat over architecturale patronen en patronen die domeinen doorsnijden, deel 2 gaat over gelijktijdige systemen, deel 3 gaat over resourcebeheer in genetwerkte / gedistribueerde systemen, deel 4 gaat over gedistribueerde systemen en deel 5 gaat ook over patroontalen als referentie voor de andere 4 delen. Gezien de vraag denk ik dat Volume 5 ook van toepassing zou kunnen zijn, maar ik heb ' niet teveel tijd eraan besteed … tot nu toe.
    • @Yannis deze en head first is over het algemeen gebaseerd op statisch getypeerde talen. Zijn er goede boeken voor dynamische talen zoals python.
    • @ ravi404 norvig.com/design-patterns

    Answer

    The Gang of Four-boek – Design Patterns: Elements of Herbruikbaar Object- Oriented Software komt waarschijnlijk het dichtst in de buurt van een industriestandaard voor ontwerppatronen.

    Voor een meer toegankelijke introductie, Head First: Design Patronen is ook goed. Laat je niet afschrikken door de ‘trendy’ omslag, want het is goed gelezen en zal je waarschijnlijk helpen de concepten in het GoF-boek een stuk gemakkelijker te begrijpen als je het eerst leest.

    Antwoord

    mg src = “https://i.stack.imgur.com/Fl7XR.gif” alt = “Head First Design Patterns” title = “Head First Design Patterns – boekbeschrijving op O ' Reilly Media”>

    Op elk moment, ergens ter wereld, worstelt iemand met dezelfde software-ontwerpproblemen die jij hebt. Je weet dat je het wiel niet opnieuw wilt uitvinden (of erger nog, een lekke band), dus kijk je naar Design Patterns – de lessen die zijn geleerd door degenen die met dezelfde problemen te maken hebben gehad. Met Design Patterns profiteert u van de best practices en ervaringen van anderen, zodat u uw tijd kunt besteden aan … iets anders. Iets uitdagender. Iets ingewikkelder. Iets leukers.

    Je wilt leren over de patronen die er toe doen – waarom je ze moet gebruiken, wanneer je ze moet gebruiken, hoe je ze moet gebruiken (en wanneer je ze NIET moet gebruiken). Maar je wilt niet alleen zien hoe patronen eruitzien in een boek, je wilt weten hoe ze eruitzien “in het wild”. In hun oorspronkelijke omgeving. Met andere woorden, in toepassingen in de echte wereld. Je wilt ook leren hoe patronen worden gebruikt in de Java API en hoe u gebruik kunt maken van de ingebouwde patroonondersteuning van Java in uw eigen code.

    U wilt de echte OO-ontwerpprincipes leren en waarom alles wat uw baas u vertelde over overerving fout zijn (en wat te doen). U wilt leren hoe deze principes u zullen helpen de volgende keer dat u “in een kreek zonder ontwerppatroon bent.

    Het belangrijkste is dat u de” geheime taal “van Design Patterns wilt leren, zodat u je eigen met je collega (en maak indruk op cocktailpartygasten) als hij tussen twee slokjes van een martini terloops zijn verbluffend slimme gebruik van Command, Facade, Proxy en Factory noemt. Je kunt je gemakkelijk tegenspreken met je diepe begrip van waarom Singleton is niet zo eenvoudig als het klinkt, hoe de fabriek zo vaak verkeerd wordt begrepen, of over de echte relatie tussen decorateur, gevel en adapter.

    Met Head First Design Patterns “vermijdt u de verlegenheid te denken dat Decorator iets is uit de” Trading Spaces “-show …

    Reacties

    • Dit. Het ' is een zeer toegankelijk boek, en heeft de manier veranderd Ik benader software engineering volledig.
    • de hele head first-serie is geweldig, vooral voor beginnende ontwikkelaars.
    • Ik hou van het boek, maar haat de omslag absoluut! Een niet-programmeur-collega van de mijne liep laatst langs mijn kantoor, zag het boek en zei " Hoofd eerst Designer Patronen? Gaat u in de mode-industrie? "
    • @Pete Waarom de omslag je nog meer in de problemen kan brengen. Ze leidt blijkbaar een dubbelleven. fishbowl.pastiche. org / 2005/08/12 / …

    Antwoord

    Ja, er is een bekend boek over desig n patronen: Design Patterns: Elements of Reusable Object-Oriented Software en de auteurs worden vaak “the Gang of Four” (GoF) genoemd en er wordt in bijna alle teksten over ontwerppatronen.

    Opmerkingen

    • Ook Martin Fowler ' s boek: amazon.com/Patterns-Enterprise-Application-Architecture-Martin/…
    • Dit is geen boek over ontwerppatronen. Het ' is een catalogus van patronen. Er is in het begin ' een korte inleiding tot ontwerppatronen, maar ik denk niet dat ' die inleiding voldoende is.
    • @J ö rgWMittag Daar ' s isn ' een uniek proces voor het maken van een ontwerp patronen, ontwerppatronen zijn relatief kleine herbruikbare oplossingen. Ontwerppatronen worden gecreëerd door de normale processen van softwareontwikkeling, wat hen onderscheidt, is hun enorme herbruikbaarheid. Het enige relevante unieke proces is het identificeren van een oplossing als een ontwerppatroon, en catalogi doen dat prima.

    Antwoord

    Ontwerppatronen: elementen van herbruikbare objectgeoriënteerde software

    alt-tekst

    Van wikipedia :

    Ontwerppatronen: elementen van herbruikbare objectgeoriënteerde software is een software-engineeringboek met terugkerende oplossingen voor veelvoorkomende problemen in software ontwerp. De auteurs van het boek zijn Erich Gamma, Richard Helm, Ralph Johnson en John Vlissides met een voorwoord van Grady Booch. De auteurs worden vaak de Gang of Four, GoF of Go4 genoemd. Het boek is verdeeld in twee delen, met de eerste twee hoofdstukken onderzoeken de mogelijkheden en valkuilen van objectgeoriënteerd programmeren en de overige hoofdstukken beschrijven 23 klassieke softwareontwerppatronen. Het boek bevat voorbeelden in C ++ en Smalltalk.

    Answer

    Een van de beste websites met ontwerppatronen is Wards Wiki, de allereerste wiki. Zie http://c2.com/cgi/wiki?HistoryOfPatterns voor een goede startpagina erin.

    In 1987 waren Ward en Kent in overleg met de Semiconductor Test Systems Group van Tektronix, die problemen had met het afronden van een ontwerp. Ze besloten om de patronen die ze hadden bestudeerd uit te proberen. Zoals Alexander die zei dat de gebruikers van een gebouw het moesten ontwerpen, zo lieten Ward en Kent vertegenwoordigers van de gebruikers (een trainer en een veldingenieur) het ontwerp afmaken.

    Ward bedacht een “taal” met vijf patronen die de beginnende ontwerpers hielp te profiteren van de sterke punten van Smalltalk en de zwakke punten ervan te vermijden …

    Ward en Kent waren verbaasd over de (weliswaar spartaanse) elegantie van de interface die hun gebruikers ontwierpen. Ze rapporteerden de resultaten van dit experiment op OOPSLA 87 in Orlando. Ze schreven een panelpositie op en presenteerden tijdens de workshop van Norm Kerth over Waar komen objecten vandaan? Ze spraken patronen totdat ze blauw in het gezicht waren, en kregen veel overeenstemming, maar zonder meer concrete patronen schreef niemand zich in.

    Ondertussen was Erich Gamma bezig met schrijven en reflecteren over objectgeoriënteerd ontwerpen in ET ++ als onderdeel van zijn proefschrift. Erich had zich gerealiseerd dat terugkerende ontwerpstructuren of patronen belangrijk waren. De vraag was eigenlijk hoe je ze vastlegt en communiceert.

    Bruce Anderson hield een lezing op TOOLS 90 waar ErichGamma aanwezig was; Erich vond het gesprek leuk. Bruce gaf een paper bij EcoopOopsla90 (Ottawa) en leidde een BOF genaamd Toward an Architecture Handbook , waar hij, Erich Gamma, Richard Helm en anderen in discussie raakten over patronen.Dat was de eerste keer dat Richard en Erich elkaar ontmoetten, en ze realiseerden zich dat ze gemeenschappelijke ideeën deelden over de belangrijkste ideeën achter het schrijven van herbruikbare OO-software.

    Vlak voor ECOOP “91 Erich Gamma en Richard Helm, zittend op een rooftop in Zürich op een zinderende zomerdag, stelde het zeer bescheiden begin samen van de catalogus met patronen die uiteindelijk DesignPatterns zouden worden …

    Het kwam echt aan het rollen tijdens de OOPSLA-workshop die Bruce in 1991 leidde Toevallig waren Erich Gamma, Richard Helm, Ralph Johnson en John Vlissides er allemaal; zij zouden later de Bende van Vier worden die het boek Design Patterns schreef …

    Antwoord

    Ik denk dat de Refactoring to Patterns kan eenvoudig nuttig zijn omdat het beschrijft hoe bepaalde ontwerpen / codes kunnen worden geherstructureerd naar patronen in het GoF-boek. Dit kan helpen om de aanvankelijke leercurve te overwinnen. Oh, en het overweegt ook over “Patroongeluk” 🙂

    Misschien vindt u ook de eerste drie delen van Pattern-Oriented Software Architecture goed gelezen.

    Antwoord

    Ontwerppatronen

    Deze tutorialsite bevat de volgende subsecties

    • Intentie van elk ontwerppatroon
    • Real World-structuur voor het ontwerppatroon
    • Een probleemstelling
    • Gedetailleerde discussie over het probleem
    • Checklist om tot een patroon te komen
    • Vuistregels terwijl u bij het patroon aankomt.
    • Codefragmenten voor het ontwerppatroon waaronder C #, C ++, Delphi, Java en PHP

    Deze site bevat ook een gids over Anti Patterns, UML en refactoring.

    Opmerkingen

    • De SourceMaking-site ziet er op het eerste gezicht simplistisch uit, maar is ' s echt een geweldige referentie. Afgezien van de ontwerppatronen zijn sommige van de ontwikkelings-, architectuur- & antipatronen voor projectbeheer hilarisch. De geherstructureerde oplossingen kunnen u in feite helpen een vergadering te redden die ' ontspoort. (Niet slecht voor een ontwerppatroonreferentie)

    Answer

    Het originele boek “Design Patterns: Elements of Herbruikbare objectgeoriënteerde software “is een goede bron voor objectgeoriënteerde ontwerppatronen.

    Er bestaan nog veel meer boeken. Als ik een snelle referentie nodig heb en mijn GoF-boek buiten bereik is, heeft Wikipedia normaal gesproken genoeg informatie over die en andere ontwerppatronen.

    Dat zijn de belangrijkste die ik gebruik. Er moet ook worden opgemerkt dat mensen het patroonformaat zijn gaan toepassen op andere dingen, zoals projectbeheer.

    Als je meer wilt weten over antipatronen, waarvan je op de hoogte moet zijn, zijn er twee boeken, “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis” en “Refactoring: Improving the Design of Existing Code” met een sectie over codegeuren, een andere naam voor antipatterns.

    Antwoord

    “Agile Principles, Patterns and Practices in C #” door Robert C. Martin. Ik denk dat hij ook een Java-versie van het boek heeft.

    Ook geen patroon zelf, maar Domain Driven Design heeft een aantal geweldige concepten, zelfs als je niet voor de volledige DDD-benadering gaat.

     * Ubiquitous Language * Code first approach (vs. DB first) * etc. 

    Answer

    Als u specifiek geïnteresseerd bent in ontwerppatronen in C ++, probeer dan Modern C ++ Design door Andrei Alexandrescu.

    Dit boek gaat over hoe commonl y gebruikte patronen zoals Factory, Singleton en Visitor in C ++. Er wordt ook gesproken over zeer C ++ – specifieke onderwerpen, zoals slimme aanwijzingen, metaprogrammering van sjablonen en op beleid gebaseerd klassenontwerp.

    Boekauteur is een gezaghebbende expert , bekend om zijn

    baanbrekend werk op het gebied van beleidsgebaseerd ontwerp geïmplementeerd via metaprogrammering van sjablonen. Deze ideeën zijn verwoord in zijn boek Modern C ++ Design en werden voor het eerst geïmplementeerd in zijn programmeerbibliotheek, Loki. Hij implementeerde ook het concept “move constructors” in zijn MOJO-bibliotheek. Hij heeft bijgedragen aan het C / C ++ Users Journal onder de naam “Generic < Programming >” …

    Reacties

    • zou je het erg vinden om meer uit te leggen over wat het doet en wat het ' is goed voor? " Link-only antwoorden " zijn niet helemaal welkom bij Stack Exchange
    • @gnat: hoe ' is dit?
    • nou, je recente bewerking ziet er voor mij zeker een verbetering uit.Hoewel lezers van het antwoord waarschijnlijk baat zouden hebben bij een meer gedetailleerde uitleg van wie is Aleksandresku
    • @gnat: aangezien u duidelijk weet wie hij is, kunt u mijn antwoord bewerken.

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *