程序的组织(1)

程序的组织可以分为代码的组织,功能的组织协同和存储的组织。面向过程,面向对象,面向切面,微服务,SOA等其实都是这个范畴,这些东西也不是编程所独有的,很多东西都可以在现实的生产生活中找到,其本质也是社会生产生活组织的一部分。这些程序组织的方法也并不是相互孤立的或者排他的,是可以相互应用和协作的。程序组织所涉及的基本对象是代码,功能和数据。外部关联对象当然就是团队成员和客户等。

而要理解和用好这些核心的基础就是抽象和分类。分类和抽象是相互作用的。这里面,抽象是基本功,抽象的目的是为了分类和简化实现。分类的好坏会影响到组织效果,所以分类的方法和依据都十分重要。

1)面向过程:该组织方法是按功能分类,代码和功能的组织保持一定程度上的一致性。

2)面向对象:该组织是按照对象,所以对象的分类很关键,这个时候的代码和对象分类并不一定要保持文件上的一致性。

3)面向切面:基于面向对象的组织方法下,增加功能的一种方法,本质是面向功能的组织方法。面向切面在代码级要慎用,Spring的AOP设计本身就是一个非常糟糕的设计。实现AOP这块,我建议是在更高的系统级去构思。

4)微服务:本质是面向功能的分类组织方法,核心是粒度的控制。

5)SOA:本质是面向功能的分类组织方法,微服务也可以算作是一种SOA,只是一般来说SOA的粒度会大些,而微服务是细粒度功能组织模式。

其实从更高的维度来说,组织方法论是非常重要的内容,编程并不是很特别,作为程序员要突破这种局限,这样才能面向各行各业进行拓展和应用。

猜你喜欢

转载自blog.csdn.net/hawksoft/article/details/108415233