产品展示
联系我们

热  线 :0373-3052965

张经理:13903800507 (微信同号)

申经理:13937360304(微信同号)

邮  箱:375686247@qq.com

公司地址:新乡市中原路与郊委路口黎明大厦4楼

非常好的设计(胡杨广告)

2017-02-07  来自: 新乡市胡杨广告制作中心 浏览次数:400

对于一个好的设计,我们往往会说其应当具备可维护性,这是为基本的要求。其它的要求,比如性能、资源的占

用等都应当在满足可维护性的情况下再去考虑的。但可维护性是一个非常笼统的词,可以说一个词包含了很多的东

西,比如,可读性、可扩展性等等,都可以当作是可维护性的内容。我在日常工作中,对于一个好的设计,有一些

自己的想法,主要是体现在“四性一痛”。

 

    第一,一个好的设计应当具有“一致性”。一致性就是对于相类似的问题采用同样的方法去处理,而不是对于

类似的情况,在case1中采用的是设计A,而在case2中采用的是设计B。对于这种设计,其往往很难维护。需要说明

的一点是,一致性可以包括设计方法的一致性、函数命名的一致性、注释书写格式的一致性等等。在一致性上一个

好的例子是:UNIX/LINUX中对于文件和设备的处理都是采用open()/close()/ioctl()/read()/write()这五个函数来

实现的,当我们在UNIX/LINUX上编程时,只要说到打开设备或是文件,我们就知道应当如何做了。再来看看一致性

不好的一个例子:比如CLIB中的malloc()/free(),这是一对用于分配和释放内存(Heap)的函数,在函数的命名上

应当说其一致性并不好,在我看来malloc()/mfree()就要比它好些,不同之处就是在free()函数名的前面加了一个m。

一致性好的软件,不论是维护或是阅读都让人觉得舒服和自然,这一点是非常重要的!

 

    第二,一个好的设计应当具有“完整性”。打一个比方,比如我们的程序需要写一个模块用于管理某种类型的

资源,因此,我们写了一个allocate()函数用于对这一资源进行分配。从完整性的角度来看有allocate()就应当有

free()或是release()。因此,我们的设计应当包含free()或是release()。完整性好的设计往往给模块的使用者带

来某种程度的灵活性和便利性。

 

    第三,模块之间的“正交性”。正交性体现在模块之间不应当存在功能重叠的部分,对于模块之间存在重叠的

部分,往往表明我们需要抽象出另一个模块,从而将重叠的部分转移到这一新模块中。

 

    第四,设计的“简单性”。这里的简单不是指我们考虑欠缺,而是指在我们将问题考虑周全后,找出一种简单

的设计和实现方法。简单性包括代码逻辑的简单性和代码语句的简单性。简单意味着容易维护、理解,简单本身就

是一种美!

 

 

    我想对于一个好的设计,作者可以问问自己:我在设计这个模块时“痛苦”过了吗?如果没有,那存在

两种可能;一是问题很简单或是我们自己的水平很高,所以不需要更多的思考去实现它;另一种可能就是这一设计

有可能是一个“头痛治头,脚痛治脚”的设计。好的设计,我们往往需要在很多方面进行权衡,在设计初期是非常

痛苦的一件事,但随着设计的完善,我们会发现“这一设计就是我想要的、就应当是这个样子的”,到时自己会觉

得这个设计很舒服,真的体现了“苦尽甘来”。

 

    对于上面所提到的一些好的设计的特点,在我们的工作中可能不是一次性设计到位的,但是我们必须将这些特

点记在心中,并随着工作的进展实现它们。

关键词: 非常好的设计(胡杨广告)           

新乡市胡杨广告制作中心,专营 印刷彩印 广告物料 标牌制作 各种雕刻 平面设计 不锈钢制作 等业务,有意向的客户请咨询我们,联系电话:0373-3052965

CopyRight © 版权所有: 新乡市胡杨广告制作中心 网站地图 XML 备案号:豫ICP备11032787号-1


扫一扫访问移动端