Show pagesourceOld revisionsBacklinksBack to top Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit TeamsRecent ChangesSend via e-MailPrintPermalink × Table of Contents Resources:Diagrams:Projects:BASE:SAD:Development View SOLID Development View/High Level View Development View/DDD Components Development View/Rejection Development View/Version Control Service Development View/Branch Merging Testing View/Delivery Contracts Test Driven Development Resources:Diagrams:Projects:BASE:SAD:Development View (UP) SOLID SOLID Development PatternsSingleResponsibility\PrincipleOpenClosePrincipleLiskov'sSubstitionPrincipleInterfaceSegragationPrincipleDependencyInversionPrincipleAn object should haveone and only one reasonto change, meaningthat a class shouldhave only one job.Objects should beopen for extension,but closed formodification.Code to the mostabstractrepresentation(ie, a base class).clients should notbe forced to implement/useinterface/methodsthey do not require.Entities must dependon abstractions noton concretions.(JGI).SVG | PNG | TXT Development View/High Level View CoreModule1Module2ModuleXDependenciesXAPIAPIAPIBusiness specific logic, keptindependent (therefore moremaintainable) from the Coretechnology used to automatethe Business Specific logicHandles Principals, Roles, Sessions,Auditing, Diagnostics, Telemetry andIntegration to other serviicesand other required (but expensiveto develop in a timely manner)Core System concepts.Multiple external services(IDA, Db, SMTP, KeyVault,Blob/Queue/File Storage, MalwareDetection, Telemetry, ReportGeneration, etc.leveragesleveragesleveragesappropriatelymanagedaccessappropriatelymanagedaccessappropriatelymanagedaccessSVG | PNG | TXT Development View/DDD Components Domain Driven Designed System OverviewService Facade(APIs)ApplicationServicesInfrastructureServicesShared(Models)DomainServicesVendor Libsand Svc Clients«Faded»DataServices«Faded»OtherServicesAPIsprotectorchestrateuseorchestrateuseuseSVG | PNG | TXT Development View/Rejection example 1 2 1->2 3 2->3 6 2->6 4 3->4 7 6->7 7->3 8 7->8 8->4 SVG | PNG | TXT Development View/Version Control Service WorkstationALMVersion Control ServicePersonalRepositoryManaged Distributed RepositoryDeveloperusecloneSVG | PNG | TXT Development View/Branch Merging example 1 2 1->2 3 2->3 6 2->6 7 6->7 7->3 SVG | PNG | TXT Testing View/Delivery Contracts User StoryDelivery ContractDefinitionsAutomatedDelivery ContractDeveloped byBusiness Analyststo capture StakeholdersDefined Goals andConstrained Objectives.Developed byDelivery Contract Specialists(aka Testers).Developed byDevelopment Specialists,submitted to the ContinuousDelivery Service to ensureQuality by Automation,on every Code commit.one or more11-*coded up asSVG | PNG | TXT Test Driven Development BAs writefeature as UserStory,with alternateand exceptionsflowswrite succinct specificautomatable tests*before* development beginsThis tests the test itself,as well as ensuring the featuredoes not already exist --voiding the reason todevelop a new feature.Run the test toensure new test fails asno development has beginwrite the code to pass the testrun the single test to provethe new code worksrun the tests to ensure thatthe new code works -- withoutbreaking existing testsrefactor and run the testsagain to ensure that therefactoring did not breakexisting testswrite new tests to push thefunctionality further andrepeat, or move on to nextfeaturenofeature complete?yesSVG | PNG | TXT /home/skysigal/public_html/data/pages/resources/diagrams/projects/base/sad/development_view/home.txt Last modified: 2023/11/04 23:29by 127.0.0.1