按功能划分Package,而不是按层

泡在网上的日子 / 文 发表于2016-02-18 22:38 次阅读 Package

原文:Package by features, not layers 

按层来划分packages就像按照专业,而不是按照团队来划分工人。

想象一下这种荒谬的场景:

管理层公司,工程师公司,人力资源公司以及市场营销公司,工程师公司只有程序员,没有管理、市场营销或者人力资源;

根据是什么东西来打包而不是根据其职能打包可以让你寻找代码的时间快十倍。

blob.png

图 1 - 按功能划分package的一个小例子


好处

  • 看到代码结构你就能辨别这个app是干嘛的(图1);

  • 更加模块化;

  • 代码切换更容易;

  • 更高级别的抽象;

  • 功能和层都分离开来了;

  • 可读性更强以及更易维护的结构

  • 更高的内聚;

  • 更易扩展;

  • 更少遇到改动无关类或者文件的情况;

  • 添加或者移除功能要容易很多;

  • 更多可复用的模块。


你同意我的说法吗?你是用的什么方法呢?

收藏 赞 (33) 踩 (3)
上一篇: 使用Clean架构开发Android应用详细指南
原文链接: A detailed guide on developing Android apps using the Clean Architecture pattern 译文链接: 在Android应用中使用Clean架构 自从开始开发安卓应用,我一直感觉我可以做得更好。我看过不少烂代码,其中当然有我写的。安卓系统的复杂性加上烂
下一篇:要写易删除,而不易扩展的代码
原文出处: 枫声 YONGFENGS BLOG 译者序 本文托管在 GitHub 上: https://github.com/freedombird9/code-easy-to-delete ,欢迎 Star 或纠错。 好的文章总是见解独到,功底深厚而逻辑清晰。这是一篇关于如何设计、架构代码的文章。文章的观点新颖而有力。作者