IT领域中哲学原理的应用——个体与整体

个体与整体哲学原理在很多学科和领域中都会得到应用,今天就看看IT行业中有哪些地方应用了个体和整体的原理。

IT行业可以分为硬件、软件、网络三个领域,我们可以分别针对这三个领域来看下。

硬件方面,最基本的就是各种各样的电子元件,电容、电阻等等,这些基本的元素组成了电路。随着科技的发展,工业上采用了集成电路,把各种各样的元件集成在一块板子上,实现了一项功能,而这项功能是单个元件所不具备的,这正体现了整体具有个体不具备的特性的原理。而组装过计算机的同学都知道,想要组装一台兼容机,我们需要做的就是选购主板、显卡、声卡、CPU、内存、硬盘、机箱、显示器、鼠标、键盘等等组成部分,然后按照一定的方式组装在一起,就可以成为一台能够辅助我们工作、学习、娱乐的计算机了,各个部分缺一不可,但又可以用类似的组件来替换。

软件方面,在各种编程语言中,最基本的元素就是各种各样的关键字和符号,加上定义常量、变量的方法,我们就可以进行最基本的过程化语言编程。而程序执行的最基本三种结构就是顺序结构、选择结构和循环结构,这三种结构不断组合,就形成了各种各样程序。在面向对象的语言开发中,各种各样的变量、函数、方法组成了类、接口这些结构,进而形成了大型的软件系统。再复杂的软件系统也都是程序员们遵循各种语言之中的规律,从零开始,一行行代码编写出来的。

网络中也是一样,最基本的是各个网络设备,可能是一台计算机,也可能是交换机、路由器、防火墙等等,按照不同的方式组合起来(比方说星形、网状等等),就形成了一个个网络,世界各地的网络组合在一起,就形成了大家现在离不开的Internet。有了它,我们就可以把地球变成一个村子(不由地让我怀念当年在win95时代使用的一个台湾开发的软件,就叫做地球村,貌似现在已经没有了,当初在没有灵格斯的时代,是非常不错的翻译软件呢)。而IP地址的赋予也同样,分为四个部分,每个部分都是上一级的组成部分,是个体与整体的关系。

在以上三个方面中我们都会看到一种类似的情形,那就是最基本的元素组成稍微大一些的模块,像硬件中的集成电路、软件中的函数或者类、网络中的局部网络,一级一级递增,最终形成了大型的系统。而我们经常会把这叫做模块化。这种方式也给大家带来了非常大的方便。在硬件中,模块化之后的组件,我们可以很容易地通过插拔的方式来进行替换;软件方面,模块化编程让程序更容易维护,很多重构方法的目的也就是为了让程序的模块化程度更好,甚至OSGi做到了一定程度的极致,所有程序都是以模块的形式存在。

其实模块化的思想并不是仅仅在这个行业中存在的,也是从传统行业中借鉴过来的。像砖头,就是模块化最基本的例子,有了它,我们的建筑师们就不需要使用泥巴来盖房子了。

在软件开发的管理方面同样也有个体与整体原理的体现。

团队非常重要,在软件开发中也是一样,一般来说,一个团队中要有各种各样的角色,需求分析人员,设计人员,开发人员,测试人员,系统维护人员,项目经理,架构师等等,每个角色都是团队的组成部分,都有其各自的职责。各种角色相互配合,为了共同的目标努力,才能够让项目成功。如果大家不能够齐心协力,各自为战,甚至于相互倾轧,内耗,团队也就不能成为团队,项目的失败也就在所难免。

在当前流行的敏捷开发中,比方说Scrum框架中,也有对个体整体原理的应用。在做项目的时候,我们会把用户对整个系统的需求进行分解,形成一个一个的用户故事,然后基于用户故事来进行评估以及进一步分解,形成程序员可以选择和开发的backlog。各种各样的功能开发完成之后,就会组合起来,形成一个完整的系统。当然这个过程可能会每天进行,那就是持续集成。

 

而开发的进度也是一样,整个项目时间被切分为多个sprint,在每个sprint中我们都会完成特定的任务,并在每个阶段结束的时候对情况作具体的分析和调整,持续反馈,持续改进。当所有sprint完成的时候,也就是项目完成的时候。

总之,在IT领域,个体和整体原理可谓无处不在,那么如果我们能够理解这个基本的原理,并使用它来指导我们的工作和学习,必定会有更好的效果。

---分割线---下面的内容同样重要,:D----
如果您觉得这篇文章有趣或者有益,请在微信中搜索“happyprogrammer”或者“快乐的程序员”,关注我的微信公众账号,更方便地获得我分享的内容。
我会在其中分享自己各个方面的想法,编程、架构、敏捷、演说、育儿等等,目前正在写几个系列的文章,把自己在各个方面积累的一些经验更加系统地分享给大家,:)

 

 

posted @ 2013-11-25 09:40 侯伯薇 阅读(...) 评论(...) 编辑 收藏