2015 dwx - komponenten und konsequenzen
Click here to load reader
Post on 12-Aug-2015
Embed Size (px)
- 1. danielfisher.com Daniel Fisher Komponenten und Konsequenzen Daniel Fisher | [email protected]
- 2. danielfisher.com danielfisher.com Developer, Architect, Coach, Trainer lennybacon.com Blog Justcommunity.de Mit-Grnder und Vorstand nrwconf.de Mit-Grnder und Organisator twitter.com @lennybacon Daniel Fisher
- 3. danielfisher.com EFFICIENT COMMUNICATION
- 4. danielfisher.com No more monoliths https://www.flickr.com/photos/senorwences/2366892425
- 5. danielfisher.com https://www.flickr.com/photos/inju/2647397230
- 6. danielfisher.com Change must be cheap https://www.flickr.com/photos/smull/432813187
- 7. danielfisher.com Feedback must be fast https://www.flickr.com/photos/thatguyfromcchs08/2300190277
- 8. danielfisher.com Component-based software engineering is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system. http://en.wikipedia.org/wiki/Component-based_software_engineering
- 9. danielfisher.com It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-termfor the software itself and for organizations that sponsor such software. http://en.wikipedia.org/wiki/Component-based_software_engineering
- 10. danielfisher.com Sorry this is *NO hot shit*! The idea first became prominent with Douglas McIlroy at the NATO conference on software engineering in Garmisch, Germany, 1968
- 11. danielfisher.com http://enterprisecraftsmanship.com/2015/01/10/how-to-build-microservices-wrong What about micro services?
- 12. danielfisher.com Don't reinvent the wheel!
- 13. danielfisher.com Nuf bla bla! So whats a component?
- 14. danielfisher.com https://www.flickr.com/photos/[email protected]/8059145606
- 15. danielfisher.com Divide and Conquer
- 16. danielfisher.com
- 17. danielfisher.com Separation of Concerns Single Responsibility Clean Code
- 18. danielfisher.com https://www.flickr.com/photos/lynsey_wells83/11054897226
- 19. danielfisher.com
- 20. danielfisher.com Explicit boundaries Autonomous Shared schema and contract Compatibility through Policy
- 21. danielfisher.com Ensure separation Ndepend http://www.ndepend.com/
- 22. danielfisher.com Component Component Component Domain ServicesDomain Objects API APIDDDTEC Layers Value Objects Aggregate Root
- 23. danielfisher.com The only thing really hard is making things really easy
- 24. danielfisher.com https://www.flickr.com/photos/shardayyy/5711563136
- 25. danielfisher.com Dependencies Core Directory Data DataModel Diagnostics ComponentModel DataModel.Data
- 26. danielfisher.com https://www.flickr.com/photos/archivesnz/8759939806 Source Control Repositories
- 27. danielfisher.com Branch Strategy Branch for stability Commit for stability
- 28. danielfisher.com Usual Repository Class Library Test Sample Class Library Class LibrarySample Test Test Class Library Test Sample Class Library Class LibraryExecutableSample Class Library
- 29. danielfisher.com Component Repository Class Library Test Sample
- 30. danielfisher.com Pros You just work with what you need Separation of concerns from the beginning
- 31. danielfisher.com Cons There will be lots of repositories There will be multiple histories/logs
- 32. danielfisher.com Consequences The need for a flexible SCM Aggregated feeds of history/logs
- 33. danielfisher.com Flexible version control GIT
- 34. danielfisher.com Tests
- 35. danielfisher.com Pros You only see and maintain relevant tests Feedback is delivered faster
- 36. danielfisher.com Cons Any?
- 37. danielfisher.com Consequences You need to change the way you did it before?
- 38. danielfisher.com Monolith solution or too many tests? NCrunch.NET http://www.ncrunch.net/ Wallaby.JS http://wallabyjs.com/
- 39. danielfisher.com Daniel Fisher Builds
- 40. danielfisher.com Builds A project consist of multiple builds Per branch? Check-In Nightly Feature Team Release It really depends on your business strategy and team organization!
- 41. danielfisher.com Pros Build can be parallelized Feedback is delivered faster You see where it breaks
- 42. danielfisher.com Cons There will be lots of builds There will be even more build results
- 43. danielfisher.com Consequences Build Process that supports build trees https://en.wikipedia.org/wiki/Topological_sorting Aggregated overview of build results
- 44. danielfisher.com Build Servers Good question!
- 45. danielfisher.com
- 46. danielfisher.com SOS
- 47. danielfisher.com Build Scripts https://www.flickr.com/photos/frf_kmeron/3587872772
- 48. danielfisher.com Build Process Checkout-Sources Generate-Code Set-Version Compile-Code Resolve-Dependencies Sign-Output Package-Output Publish-Package Analyze-Output Document-Output Test-Output Deploy-Package Test-Deployment Test-Integration
- 49. danielfisher.com Rake, Fake, Workflow
- 50. danielfisher.com IMHO Until you don't build value by writing build scripts avoid it
- 51. danielfisher.com Package Publication https://www.flickr.com/photos/leshaines123/5422165409
- 52. danielfisher.com Latest & Greatest vs. Old & Conservative https://www.flickr.com/photos/thomasletholsen/11139022726
- 53. danielfisher.com Package Publication NuGet NPM Bower
- 54. danielfisher.com Pros Orchestration of releases
- 55. danielfisher.com Cons Maintenance of multiple Package Repositories?
- 56. danielfisher.com Bug Tracking https://www.flickr.com/photos/goingslo/4523034319
- 57. danielfisher.com Software is not for itself! A Bug Tracker for each Product A category/tag for each project
- 58. danielfisher.com Roadmap https://www.flickr.com/photos/aigle_dore/5849712695
- 59. danielfisher.com Software is not for itself! A Feature plan for each Product A category/tag for each project
- 60. danielfisher.com Versions https://www.flickr.com/photos/jasonmichael/5396824640
- 61. danielfisher.com Software is not for support! One version number per Product for each Project
- 62. danielfisher.com READ LENNYBACON.COM FOLLOW @LENNYBACON LINK LINKEDIN.COM/IN/LENNYBACON XING XING.COM/PROFILE/DANIEL_FISHER FRIEND FB.COM/DANIEL.FISHER.LENNYBACON MAIL [email protected] CALL +49 (176) 6159 8612