有2种思路。
一种是尽可能地将能隐藏的东西隐藏起来,将能封装的功能封装起来,提供给developer的只是一些傻瓜级的API。程序员可发挥的空间很小,比如甚至都不需要知道数据库表。
另外一种是选择好合适的技术架构,做好基础设施的搭建,比如异常处理,权限,工作流。只提供简单的封装,程序员有足够的灵活度。
显然,前者的情况,程序员会比较没有动力。优势是系统的核心程序员无法触及,相对安全。有不少公司都是这种情况,程序员的流动性相当高,不过老板也不在乎。
而后者的情况,程序员会有较高的积极性,容易成长,团队的融合会比较不错。更加符合敏捷的思路。但也许产品或者项目的规模大了后,会导致失去控制。
也许还是应该具体情况具体分析吧 !
一种是尽可能地将能隐藏的东西隐藏起来,将能封装的功能封装起来,提供给developer的只是一些傻瓜级的API。程序员可发挥的空间很小,比如甚至都不需要知道数据库表。
另外一种是选择好合适的技术架构,做好基础设施的搭建,比如异常处理,权限,工作流。只提供简单的封装,程序员有足够的灵活度。
显然,前者的情况,程序员会比较没有动力。优势是系统的核心程序员无法触及,相对安全。有不少公司都是这种情况,程序员的流动性相当高,不过老板也不在乎。
而后者的情况,程序员会有较高的积极性,容易成长,团队的融合会比较不错。更加符合敏捷的思路。但也许产品或者项目的规模大了后,会导致失去控制。
也许还是应该具体情况具体分析吧 !
本文探讨了两种软件设计思路:一种是高度封装和隐藏实现细节,限制开发者对底层的访问;另一种则是提供灵活的架构,鼓励开发者创新。前者强调系统的安全性,后者更侧重于团队的成长性和敏捷性。
3797

被折叠的 条评论
为什么被折叠?



