Principles of Package Design by Matthias Noback
Author:Matthias Noback [Matthias Noback]
Language: eng
Format: epub, mobi
Publisher: leanpub.com
Published: 2014-04-18T04:00:00+00:00
The Common reuse principle
In the previous chapter we discussed Release/reuse equivalence principle. It is the first principle of package cohesion: it tells an important part of the story about which classes belong together in a package, namely those that you can properly release and maintain as a package. You need to take care of delivering a package that is a true product.
If you follow every advice given in the previous chapter, you will have a well-behaving package. It has great usability and it’s easily available, so it will be quickly adopted by other developers. But even when a package behaves well as a package, it may at the same time not be very useful.
When you group classes into packages there are two extremes that need to be avoided. You may have a very nice collection of very useful classes, implementing several interesting features. If you release all the classes as one package, you force your users to pull the entire package into their project, even if they use just a very small part of it. This is quite a maintenance burden for them.
However, if you put every single class in a separate package, you will have to release a lot of packages. This increases your own maintenance burden. At the same time users have a hard time to manage their own list of dependencies and keep track of all the new versions of those tiny packages.
In this chapter we discuss the second package cohesion principle, which is called the Common reuse principle. It helps you decide which classes should be put together in a package and what’s more important: which classes should be moved to another package. When we are selecting classes or interfaces for reuse, the Common reuse principle tells us that:
Download
Principles of Package Design by Matthias Noback.mobi
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Deep Learning with Python by François Chollet(12579)
Hello! Python by Anthony Briggs(9917)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9796)
The Mikado Method by Ola Ellnestam Daniel Brolund(9780)
Dependency Injection in .NET by Mark Seemann(9340)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8303)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7763)
Grails in Action by Glen Smith Peter Ledbrook(7698)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(7100)
Microservices with Go by Alexander Shuiskov(6870)
Practical Design Patterns for Java Developers by Miroslav Wengner(6783)
Test Automation Engineering Handbook by Manikandan Sambamurthy(6725)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6419)
Angular Projects - Third Edition by Aristeidis Bampakos(6140)
The Art of Crafting User Stories by The Art of Crafting User Stories(5660)
NetSuite for Consultants - Second Edition by Peter Ries(5595)
Demystifying Cryptography with OpenSSL 3.0 by Alexei Khlebnikov(5404)
Kotlin in Action by Dmitry Jemerov(5067)
