优化代码的重要性

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45131085

工作将近一年了,从事软件开发也有三年多了,也写过不少的代码,但整体上来看,代码质量很差。一方面

是缺乏编程方面的经验,写出的代码不能够考虑全面地情形;另一方面可能是需求设计的频繁性变动,导致代码的结

构的不稳定性变动。这些都直接或间接地影响代码的质量,而代码质量的好坏将会直接影响到产品的性能和用户体

验。这些都会无形中影响用户对产品的喜爱程度和关注程度。不可否认,质量较好的代码,逻辑性相对比较地清晰,

代码结构亦是比较地清晰。自然而然,代码中类和方法的长度就会相对简短。简短的代码活的更长久(没有程序员不

喜欢简短的代码)。这样,做出来的产品问题相对就会较少。

然而,大多数情况是这样的:开发人员仅仅关注功能是否得以实现,很少关注是如何实现的,往往是以“堆代

码”的形式去实现功能。可能是项目赶进度,来不及太多的考虑,也可能是开发人员能力有限。开发者自己甚至都不

明白代码的内部逻辑是什么样子的,这样代码往往由于逻辑混乱导致代码量较大。显然,可以断言,这样的代码十有

八九是存有问题的。一旦出现问题,开发人员需要花较多时间对代码逻辑进行理解,由于代码量较大,修改过程无形

又会增加额外的代码量。甚至出现一个问题的修改完成导致其它问题的出现。久而久之,类和方法就会变得臃肿不

堪。而产生这样问题归根结底的原因是开发人员不能够完全理解自己所写代码的逻辑。在《程序员修炼之道:从小工

到专家》一书中有这么一句话:不要写出自己所不能了理解的代码,那样只会加速系统的腐烂。程序员很有必要对自

己所写代码进行思考和理解。

何为质量较高的代码呢?可能较多人会想到多用一些设计模式,尽量多一些高大尚的东西。但是,在我看来,

代码未必非得使用一些设计模式才显得上是质量较高的代码。针对开发业务的程序员来说,我觉得代码逻辑的清晰性

是很重要的。其次是代码的整洁性,优先使用较短的类和方法,那样出现问题也比较容易发现问题所在。程序员能够

完全理解自己所写代码,并对其进行持续优化形成代码逻辑清晰、代码量简短的代码称得上是质量较高的代码。(纯

属个人理解,有不同意见可以讨论)

针对某一个功能,在最初开发的过程中,如果时间允许,大多数程序员都会认真对待,尽量把代码写的简短;

也有部分程序员,只是为了实现功能而写代码,没有认真思考,导致实现上逻辑混乱,明明几行代码可以实现的功

能,却用了几十行,甚至上百行。这就是所谓的“堆代码”的开发方式吧。单纯地为了实现功能而去编码,并未考虑

代码质量的好坏。如果不考虑对代码进行重构,这样的代码会对系统带来很多潜在的危险。就我个人而言,在最初完

成编码任务时,自我感觉都是良好的。但是经过一段时间后,再返回来从整体看自己写的代码,就会发现很多的问

题。两个能够合并的方法未进行合并;某些全局变量是没有必要创建;某些方法可以抽取为一个公有的方法...这些都

或多或少地导致代码不够稳定。

在对代码有了一个整体上的理解后,对代码进行了简单地重构,消除全变量和某些局部变量,抽取方法.......通

过这一系列的搬移代码,原有的代码被改的面目全非,但是逻辑却比之前更加清晰,代码量更加简短。我想经过这一

次的代码优化,功能将会变得比之前稳定一些,事实证明我的想法是对的,但是还是存有不少的问题,但是这时候,

如果出现某些问题,能够很快地进行定位,相比之前在一个上百行代码、局部变量很多的方法中寻找bug,要省不

少时间。

又经过一段时间,我再次浏览已写过的代码,又发现代码并不是很好,很多地方还需要进行调整和修改。这

次,我又按照之前的做法,减少全局变量和局部变量的数量、减少方法中代码的长度、抽取部分方法.......通过一

些列的修改和搬移,原有的代码改动很大,但不至于面目全非,逻辑比之前更加清晰了,能够基本完全理解某一部分代码是做什么的,以及为什么要这么写。我想经过再一次地代码优化,功能将会更加稳定,事实又一次地证明我的

想法是对的。

之所以举出上面的例子,是为了阐述持续性地对代码进行重构和修改是很有必要的。代码并不是在开发完成

后就像一潭死水一样,不去使之“流动”和“改变”,而是应该经常性地回过来审视已写代码,对其进行批判和思考,对其进行整理和重构。使之变得更加完美,使之质量有所提高。但是,大多数的程序员根本没有做到经常性地对代码进行审视和评判,以及整理和修改。在没有了解重构之前,我自己也经常那么做的。大体上的做法是,开发任务完成后,就可以拍屁股走人了,等后续有问题再说,没有问题就那样了。这样的做法其实是不好的,首先,体现在对自己所写代码不负责;其次,体现在没有一颗精益求精的上进心;最后,归根结底还是体现在一个“懒”字上
,认为是在为公司干活,没有必要那么卖力,自己做完就行了,再说公司也没给涨工资......这些想法在我看来都是不理智的。在公司上班干活学技术都是为自己以后的发展做铺垫的,怎么能说和自己无关呢!再说每一次对自己的代码进行修改和优化,本身就是提高逻辑思维能力的过程,怎么能偷懒到不思进取呢!

希望此文得以共勉!不断持续努力进步!同时希望本文对你有所帮助!

时间: 2024-10-09 12:31:02

优化代码的重要性的相关文章

Android 优化代码代码写作习惯代码规整

今天我想说说代码习惯: 刚开始学Android时相信很多新手都会有一个疑问,我们作为菜鸟除了技术上的不足到底哪点比不上大神呢?相信问这个问题的新手,肯定是一个不服输的人(不能叫愤青吧,我认 为愤青貌似是个贬义词)所以喜欢问问题,但是一些经验丰富的大神有的时候就会说自己百度,不行谷歌,这么简单的问题还问!这可能深深的伤害到我们菜鸟,但挺多时候是应 该我们自己动手找自己研究,其实作为菜鸟不是不喜欢动手自己找自己写,只是想有个捷径站在巨人的肩膀上,但是事实却不是这样的因为所有的问题要想记得更牢固,更清

给Ajax 优化代码

给自己的代码优化一下function Dream_Ajax(url, parms, fuSuccess, fuError, isAsync, isPost, retrueType) { /// <summary>Ajax自定义请求</summary> /// <param name="url" type="string">请求url</param> /// <param name="parms"

Android 性能优化:使用 Lint 优化代码、去除多余资源

读完本文你将了解到: 前言 什么是 Lint Lint 工作方式简单介绍 从命令行运行 Lint Android Studio 中使用 Lint 团队中建立代码规范利器提升降低问题的等级 Lint 虽好也不能贪杯 在 Java 代码中忽略 Lint 警告 在 XML代码中忽略 Lint 警告 Gradle 中配置 Lint 自动删除查找出来的无用资源文件 总结 Thanks 前言 在保证代码没有功能问题,完成业务开发之余,有追求的程序员还要追求代码的规范.可维护性. 今天,以"成为优秀的程序员&

dispatch_once优化代码性能 转

有些变量只需要初始化一次(如从文件中读取配置参数,读取设备型号等等),可以使用dispatch_once来进行读取优化,保证只调用API一次,以后就只要直接访问变量即可 范例如下: static BOOL isTestMode; + (BOOL)isTestMode { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSNumber* obj = [[[NSBundle mainBundle] infoDiction

通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释 可复制直接使用 娱乐 可封装 函数

1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释 2 3 import random 4 number = random.randint(1,99)#设定答案(可以假设成年龄吧) 5 amount = random.randint(3,8) #设定猜测次数 6 print('本次游戏次数为',amount,'次') 7 8 count = 0 #设定初始次数 9 while count <= amount: #条件成立无限循环 10 try: 11 guess

通过限时写代码,优化代码的方式。

1.通过限时写代码,优化代码的方式. 1.containerView ->frame:self.window.bounds containerView.frame = self.window.bounds 初始化窗口跟window一样大 2.命名:View:containerView label:userNameLabel 3.内存管理:1.View ->alloc —>对应着有一个release 4.window的内存管理: 1.把strong改为retain 2.重写dealloc方

JavaScript工作机制:V8 引擎内部机制及如何编写优化代码的5个诀窍

概述 JavaScript引擎是一个执行JavaScript代码的程序或解释器.JavaScript引擎可以被实现为标准解释器,或者实现为以某种形式将JavaScript编译为字节码的即时编译器. 下面是实现了JavaScript引擎的一个热门项目列表: V8- 开源,由Google开发,用C++编写的 Rhino - 由Mozilla基金所管理,开源,完全用Java开发 SpiderMonkey-第一个JavaScript引擎,最早用在Netscape Navigator上,现在用在Firef

java算法插入排序优化代码

原文:java算法插入排序优化代码 代码下载地址:http://www.zuidaima.com/share/1550463280630784.htm 一个细节让插入排序更具效率 运行此方法需要为main方法传递参数 package com.zuidaima.sort; /** *@author www.zuidaima.com **/ public class TestSort { public static void main(String args[]){ int l = args.len

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能&#39;menufile

通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile 1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码---优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile' 2 #!usr/bin/env python 3 #-*-c