## 结语
到目前为止讲了那么多,一句话,要记住没有灵丹妙药。但好的软件架构会帮助代码保持清晰和健壮,还可以保持代码的可扩展性,易于维护。
我想指出一些事情。面对软件存在的问题,要报以本应当解决的态度:
* 遵守SOLID原则
* 不要过度思考(不过度工程化)
* 务实
* 尽可能降低(Android)框架中模块的依赖性
## 源代码
1. [Clean architecture github repository – master branch](https://github.com/android10/Android-CleanArchitecture)
2. [Clean architecture github repository – releases](https://github.com/android10/Android-CleanArchitecture/releases)
## 延伸阅读
1. [Architecting Android..the clean way](http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/)
2. [Tasting Dagger 2 on Android](http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/)
3. [The Mayans Lost Guide to RxJava on Android](https://speakerdeck.com/android10/the-mayans-lost-guide-to-rxjava-on-android)
4. [It is about philosophy: Culture of a good programmer](https://speakerdeck.com/android10/it-is-about-philosophy-culture-of-a-good-programmer)
## 参考资料
1. [RxJava wiki by Netflix](https://github.com/ReactiveX/RxJava/wiki)
2. [Framework bound by Uncle Bob](https://blog.8thlight.com/uncle-bob/2014/05/11/FrameworkBound.html)
3. [Gradle user guide](https://docs.gradle.org/current/userguide/userguide.html)
4. [Package by feature, not layer](http://www.javapractices.com/topic/TopicAction.do?Id=205)