linux
分类: 系统运维
2013-01-23 20:51:01
完成一个系统或者一个软件有很多种方法,这个时候考虑的不应当是具体的细节,因为细节太多,知识太有限,就算考虑了,因为这些局限,也不可能考虑完全,那是具体实现的具体方法而已,需要考虑包括安全性、可靠性,当然也仅仅是之一而已。
如果来实现安全性与可靠性,安全性应该分为系统安全和数据安全,要保证这两方面的安全,方法一是备份,但这样治根不治本,就算数据有再多的备份,同样也可能被破坏。方法二是权限管理,即不同的操作拥有不同的权利,这样可保证数据、系统操作的安全性。
对于软件而言,想要完成一个软件的目的不难,只要有了思路,就可以很快的完成任务,问题是如何写出一个好的软件,这才是比较难的。通常评价一个好的软件,包括可读性,可维护性,可扩展性,可复用性,可移植性。现在大多数人都遵循一些开发方式,但是这些开发方式的真正目的是什么,他们可能根本不清楚,周围也有很多这样的人,不敢妄加评价这种做法的好坏,因为我的思想还不足以解释这其中存在的真理。
何为可读性?对于软件代码而言,为什么要阅读?不仔细的思考是无法得出答案的,其中思考的每一步逻辑都有真理的闪烁,看似微不足道,看似简单!也许我有点走火入魔。首要因素是简洁、明了。认识软件就是认识事物,认识事物之前最先了解的应该是目的。以面向对象的方式来编程,构建一个实体,这个实体就是可以提供认识事物的途径。一个事物应该包括它有什么,他能够做什么。
关于分离性,想要了解事物,应该将这个事物单独分离出来,那么对于事物的管理,就更加的明确,对于软件函数、软件实体而言,应该以一个什么样的尺度来进行分离,是需要思考的,我认为将软件函数,实体的划分应该依据它完成的功能而言,这是因为我们对于软件关心的就是它实现的功能。另外不仅仅是简单的软件实体,软件函数进行分离,而应该将所处的环境也尽量进行分离,应该在使用函数、实体时,通常设计到得不仅仅是函数和实体本身,还有他周围的环境也要分别对待处理,比如它所在的文件。这应该称为软件的分离性,一个实体和函数,不会是单独完成事情的,肯定会和其他类进行协调,那些协调就会产生交集,这个交集所设计到得操作应该属于哪个实体和函数拉?我认为应该将它独立于相协调的两个实体,因为这样的功能并不是两个实体所需要的,放在任何一个实体或函数当中,都会污染实体,违背了可读性原则。
最近感觉到这些,慢慢的感觉面向对象和面向过程,可能之前按一步一步的来写就是面向过程,而对世界有了思考,对认识事物有了一定的思考。如果将代码和社会联系起来,认识代码像认识事物一样,那慢慢的也许就会趋于面向对象编程。