Design Patterns & Refactoring

文章推薦指數: 80 %
投票人數:10人

Hello, world! I'm SourceMaking. I will tell you a lot of stories about good software architecture and teach you how to create it with design patterns. 🤖📘🍻Hooray!After3yearsofwork,we'vefinallyreleasedanewebookondesignpatterns!Checkitout»   DesignPatterns&Refactoring Hello,world! I'mSourceMaking.Iwilltellyoualotofstoriesaboutgoodsoftwarearchitectureandteachyouhowto create itwithdesignpatterns.Iwillguideyouthroughanti-patterns, commonpitfallsandmistakesthatpeoplemakewhentheyplan,create,andmanagesoftwareprojects.Inthe end, Iwillteachyouhowtosmellabadcodeandimproveitwithrefactoring. Wecanstartfromtheverybeginningoryoucanpickatopicofinterest below. DesignPatterns Patternsarehigher-orderdesigns,whichoccurrepeatedlyinobject-orienteddesign.Theyhavebeen formalized,andaregenerallyconsideredagooddevelopmentpractice. Antipatterns Antipatternsdescribecommonmistakes,errors,andpeopleissuesthatcancauseasoftwareprojectto fail. Refactoring Refactoringisadisciplinedtechniqueforrestructuringanexistingbodyofcode, alteringitsinternalstructurewithoutchangingitsexternalbehavior. UML UnifiedModelingLanguagemakesitpossibletodescribesystemswithwordsandpictures.Especially notableusecasediagramswiththeirstickfiguresorthewidelyusedclassdiagrams. Facebook Twitter Contactus Login PremiumStuff DiveIntoDesignPatterns DiveIntoRefactoring ComputerScienceDistilled DesignPatterns Creationalpatterns AbstractFactoryDesignPattern BuilderDesignPattern FactoryMethodDesignPattern ObjectPoolDesignPattern PrototypeDesignPattern SingletonDesignPattern Structuralpatterns AdapterDesignPattern BridgeDesignPattern CompositeDesignPattern DecoratorDesignPattern FacadeDesignPattern FlyweightDesignPattern PrivateClassData ProxyDesignPattern Behavioralpatterns ChainofResponsibility CommandDesignPattern InterpreterDesignPattern IteratorDesignPattern MediatorDesignPattern MementoDesignPattern NullObjectDesignPattern ObserverDesignPattern StateDesignPattern StrategyDesignPattern TemplateMethodDesignPattern VisitorDesignPattern AntiPatterns SoftwareDevelopmentAntiPatterns TheBlob ContinuousObsolescence LavaFlow AmbiguousViewpoint FunctionalDecomposition Poltergeists BoatAnchor GoldenHammer DeadEnd SpaghettiCode InputKludge WalkingthroughaMinefield Cut-And-PasteProgramming MushroomManagement SoftwareArchitectureAntiPatterns AutogeneratedStovepipe StovepipeEnterprise Jumble StovepipeSystem CoverYourAssets VendorLock-In WolfTicket ArchitectureByImplication WarmBodies DesignByCommittee SwissArmyKnife ReinventTheWheel TheGrandOldDukeofYork ProjectManagementAntiPatterns BlowhardJamboree AnalysisParalysis ViewgraphEngineering DeathByPlanning FearofSuccess Corncob IntellectualViolence IrrationalManagement SmokeandMirrors ProjectMismanagement ThrowItovertheWall FireDrill TheFeud E-mailIsDangerous Refactoring CodeSmells Bloaters LongMethod LargeClass PrimitiveObsession LongParameterList DataClumps Object-OrientationAbusers SwitchStatements TemporaryField RefusedBequest AlternativeClasseswithDifferentInterfaces ChangePreventers DivergentChange ShotgunSurgery ParallelInheritanceHierarchies Dispensables Comments DuplicateCode LazyClass DataClass DeadCode SpeculativeGenerality Couplers FeatureEnvy InappropriateIntimacy MessageChains MiddleMan OtherSmells IncompleteLibraryClass Refactoringtechniques ComposingMethods ExtractMethod InlineMethod ExtractVariable InlineTemp ReplaceTempwithQuery SplitTemporaryVariable RemoveAssignmentstoParameters ReplaceMethodwithMethodObject SubstituteAlgorithm MovingFeaturesbetweenObjects MoveMethod MoveField ExtractClass InlineClass HideDelegate RemoveMiddleMan IntroduceForeignMethod IntroduceLocalExtension OrganizingData SelfEncapsulateField ReplaceDataValuewithObject ChangeValuetoReference ChangeReferencetoValue ReplaceArraywithObject DuplicateObservedData ChangeUnidirectionalAssociationtoBidirectional ChangeBidirectionalAssociationtoUnidirectional ReplaceMagicNumberwithSymbolicConstant EncapsulateField EncapsulateCollection ReplaceTypeCodewithClass ReplaceTypeCodewithSubclasses ReplaceTypeCodewithState/Strategy ReplaceSubclasswithFields SimplifyingConditionalExpressions DecomposeConditional ConsolidateConditionalExpression ConsolidateDuplicateConditionalFragments RemoveControlFlag ReplaceNestedConditionalwithGuardClauses ReplaceConditionalwithPolymorphism IntroduceNullObject IntroduceAssertion SimplifyingMethodCalls RenameMethod AddParameter RemoveParameter SeparateQueryfromModifier ParameterizeMethod ReplaceParameterwithExplicitMethods PreserveWholeObject ReplaceParameterwithMethodCall IntroduceParameterObject RemoveSettingMethod HideMethod ReplaceConstructorwithFactoryMethod ReplaceErrorCodewithException ReplaceExceptionwithTest DealingwithGeneralisation PullUpField PullUpMethod PullUpConstructorBody PushDownMethod PushDownField ExtractSubclass ExtractSuperclass ExtractInterface CollapseHierarchy FormTemplateMethod ReplaceInheritancewithDelegation ReplaceDelegationwithInheritance UML Introduction BasicPrinciplesandBackground IntroductiontotheCaseStudy Models,Views,andDiagrams InformationSystemsandITSystems TheModelsofourCaseStudy HistoryofUML:MethodsandNotations RequirementSpecification UML2.0 ModelingBusinessSystems BusinessProcessesandBusinessSystems OneModel—TwoViews ExternalView TheElementsofaView UseCaseDiagrams ConstructingUseCaseDiagrams ActivityDiagrams ConstructingActivityDiagrams SequenceDiagrams ConstructingSequenceDiagrams High-LevelSequenceDiagrams SequenceDiagramsforScenariosofBusinessUseCases InternalView PackageDiagram ConstructingPackageDiagrams ClassDiagram ConstructingClassDiagrams ActivityDiagram ModelingITSystems ExternalView TheUserViewor"Idon’tcarehowitworks,aslongasitworks." TheElementsofaView UseCaseDiagram QueryEventsandMutationEvents UseCaseSequenceDiagram ConstructingtheExternalView StructuralView ObjectsandClasses Generalization,Specialization,andInheritance StaticandDynamicBusinessRules ElementsoftheView ClassDiagram ConstructingClassDiagrams TheBehavioralView TheLifeofanObject TheElementsoftheView StatechartDiagram ConstructingStatechartDiagrams InteractionView SeeingWhatHappensInsidetheITSystem ElementsoftheView CommunicationDiagram SequenceDiagram ConstructingCommunicationDiagrams ConstructingSequenceDiagrams ModelingforSystemIntegration TerminologyofSystemIntegration MessagesinUML OneModel—TwoViews ProcessView TheBusinessSystemModelasFoundation ElementsoftheView ActivityDiagrams SequenceDiagram ConstructingDiagramsintheProcessView TheStaticView ElementsoftheView ClassDiagram ConstructingClassDiagrams TransformingDatafromtheITSystemtotheMessage"passengerlist" TransformationofUMLMessagesintoVariousStandardFormats Login Feedback



請為這篇文章評分?