全部博文(512)
分类: IT业界
2013-01-17 17:53:07
以下描述中的概念:代码 和 软件 概念经常出现,表述上没做认真区分.读者可认为“软件就是一堆代码”,即可。
新的一年来临,想聊聊技术上的一些看法,望和同行多多交流。
很久没写成篇的文章,思绪上也比较凌乱。在此以关键词的形式,来谈谈软件开发中的一些方法和原则。
实践 、简单、 唯一、 高内聚 低耦合、测试驱动、迭代
1、实践
首先是实践,这个最重要。无论你是学习技术还是应用开发都是如此(在工作中,经常是边学习,边应用开发)。学习上,看书学理论是重要,但是一定要实践,
具体的就是敲写代码,去测试验证知识点和你的想法,在开始学习新知识时候,去找示例是个好方法。
应用开发中,这主要是在工作中。首先不要过度设计,不要画太多的图。基本的思路确定后,在辅助一些基本图,比如类图,核心流程图(交互图)后,就要动手写代码。然后去测试、去迭代。
2、简单
能解决问题的方案是好的。你的目的是解决问题,不是为了展示你的个人魅力(哎,程序员们好似99.999%都是喜欢在代码炫耀,理解万岁啊)。但是一定要记住
解决问题是根本目标,不要过于追求高难度、新奇、很牛等。能用简单方法解决问题, 除了过几天你能记住自己写的代码外,在项目后期 好处也是多多啊,很容易就能学会,节省时间,提高效率。而且迭代,变更修改都会变得简单。
3、唯一
唯一,在此是指 函数、接口、类、模块等概念。在代码中,相同功能,一定要用唯一相同的概念表示(实现和使用)。比如一个功能不要搞成几个函数,要用同一个函数。实际编码中,完全相同的确不多,但是相似的甚多。而这就需要我们来抽象了,把共性抽象出来,用唯一来表示。比如对几个相似的共能,没经验的程序员一般遇见一个实现一个;而有经验但是很懒的程序员,有时有忽略或蔑视了这个抽象过程。这两种都不是好现象,随着代码的庞大,你的维护将是恐怖的,而且很容易顾此失彼,造成bug。开始养成个好习惯,好处大大。
4、高内聚 低耦合
学过设计模式的,这个没有不知道的。这也是简单思想体现。分割复杂;划分边界;降低类、模块等关系复杂度。
一句话,必须坚守的原则!
5、测试驱动
这也是重要的不能再重要的原则了。写完代码,不是仅仅给别人看的;更重要的是要编译器来分析产生机器码,让机器来运行。首先要能通得过,对于服务器,还要要求性能必须高、而且要稳定。测试是检验代码的功能、性能、稳定唯一途径。是天才,也不能让自己的脑袋来运行代码,还要靠机器。
需要强调的是,测试要结合实践。这不仅仅是工作中开发的重要,必需的方法,也是你学习新知识,提高认识的重要途径。
另外,对于服务器开发、一定要有压力测试来测试效能。特别是框架和核心模块代码(大部分调用最多的代码)。服务器开发中,这个往往被忽视,以为功能ok了就好,呵呵,实际差的远呢。
6、迭代
你认为写一次代码,就万事大吉。在软件开发中 这是行不通的。首先需求是变化的,所以代码必然有被变化的可能,另外即使固定需求,开始也存在分析设计上的不完善等因素。所以代码必须面对变化这个天然的事实。如何进行呢?不断迭代。这个过程中,主要是修改、重构的过程。但是注意不是为了重构而重构,重构必须事出有因。 大致上看,重构的起因有:客户具体需求变化;代码效能低下;不满足设计和软件原则(比如以上简单,唯一,高内聚,低耦合)。 这些都是原因,我们必须通过重构来迭代。记住软件产品是不断演化的。
我们不但要代码满足客户端需求;还要代码是高效能的;还要她是一个优雅的艺术品,而不是一个复杂的、枯燥的东西。