Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avIngvar Åström
1
KONSTEN ATT SKRIVA BRA ÅTERANVÄNDBAR KOD Pierre Setteskog, Pontus Munck 2012-06-08
2
Syfte/bakgrund Grundregler och designmönster Domändriven design Anti-patterns Guidelines Testdriven utveckling Diskussion INNEHÅLL
3
Syfte Enkelt att underhålla Smidigt att vidareutveckla Minimera buggar vid ny funktionalitet Förenkla enhetstestning Varför: I tider då kunder kräver mer och mer och ren produkt utveckling ibland kan bli för kostsam och tom Alphalib. Hinder: Plattform,kunskap, invanda företags mönster,roller. När skall man skriva återanvändbar kod.
4
Lär dig ditt verktyg! Resharper,Productivity Power Tools,.Net Reflector
5
Lär dig ditt verktyg! Kör mot debug kompilerat, inkludera.pdb och peka ut källfilerna.
6
Lär dig ditt verktyg!
7
Grundregler SOLID Design patterns / Anti-patterns KISS DRY YAGNI Böcker –Refactoring – Martin Fowler –Clean Code – Robert C Martin Autofac eller DI tänk ”If its not broken dont fix” it” vs Write once read many”
8
SOLID Single responsibility principle Open/Closed principle Liskov substitution principle Interface segregation principle Dependency inversion principle
9
Autofac Ta in alla externa beroenden genom konstruktorn. (Förutom string ) Registrera interface,abstrakt klass, klass, mest ärvda klass osv i uppstart. Autoregistrering,Multitenanty,Cache Decorate klass. Func (Funkar inte automatiskt i gammal autofac) Lazy (Funkar inte i gamla Autofac) IEnumerable IEnumerable (Kräver att man registrerar builder.RegisterModule(new ImplicitCollectionSupportModule());)
10
Domändriven design Koncept –Domain model (POCO) Entity, Value object, Aggregate –Service Hanterar operationer ”utanför” domänen –Repository Hanterar lagring av modellen –Factory Affärslogik – ändras sällan Infrastruktur – ändras oftare Rekommenderad bok –Eric Evans – Domain Driven Design
11
Anti-patterns Vanligt förekommande –Hardcoding –Magic numbers –Spaghetti code God object / Monster object Singleton object (statisk klass)
12
Guidelines Använd komposition istället för arv Undvik statiska klasser Hollywood principle –Don’t call the container, it will call you! Lägg inte alla knivarna i ett fack och alla gafflarna i ett annat. Dokumentera på fågelperspektiv nivå och kluriga delar. Försök göra så mycket som möjligt med så lite kod som möjligt och skriv tydlig kod Refaktorera
13
Testdriven utveckling Enklare + snabbare utveckling / test Möjliggör säker refactoring Specifikation + verifikation API design Dokumentation + exempelkod
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.