`
cpsing
  • 浏览: 70647 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

如何编写高质量的代码

阅读更多

最近做这个项目,现在是测试,发现了许多问题,对于我,应该想一想,如何提高自己编写的代码的质量,尽可能少出bug

对于web项目:

第一点:web界面设计

当界面风格版式确定以后,需要做如下工作:

    1 确定页面上需要哪些控件,这些控件的重要属性,如状态,如只读性,如长度,可输入长度,如可见性。

    2.添加脚本验证逻辑,保证不会产生非法数据。

    3. 这些控件,哪些会有用户动作,这些动作会影响其他的控件的哪些属性,这些控件的状态会发生什么变化,显示什么数   据。
    

第二 :在编写代码之前一定要写详细设计,象编写代码一样,编写注释,作为详细设计。然后根据注释,写代码

       1。从url接收参数,要注意check

       2.从数据库读取数据要注意 无数据 和 null 两种情况。

       3. 赋值的时候,要注意数据类型转换,在做数据类型转换的时候,要注意被转换的数据,有多少种case,这些case在

         转换的时候会不会发生异常

       4.在把值显示到页面的时候,要注意应该显示什么格式,需不需要转换格式。

        5. 定义变量的时候,要注意类型,是不是应该定义为这种类型。

        6.编写有返回值的方法要保证每个路径都要有返回值。入口参数要检查,输入参数也要进行检查。

 第三: 在写访问数据库代码的时候注意如下事项

     首先要明确是否需要事务,应该把那些防到该事务里面。

      1.首先应该明确此项操作会涉及哪些表,在这里,建议把数据库设计文档浏览一遍,检查一遍,是否真的明确了。

      2.分别对这些表进行分析,明确对各个表的操作,更新,插入,还是删除,还是查询。在明确了以后,要再浏览一遍这个表,该项操作涉及对哪些字段,限制条件字段有那些。对于更新,更新哪些字段,限制字段有哪些。对于插入,需要把哪些字段插入,值是什么。当分析完一个表以后,要再分析一下,对这个表操作完以后,会影响哪些表,需不需要同步相关表。

   ---------------------注意主键

--------------------对于select 要注意按什么字段进行排序

   3。测试的时候有三步需要一一对应,插入之前数据、数据库的数据、在显示之前的数据。插入操作检查:记录条数。每个字段的数据都要一一对应。

第四: 学习TDD开发技术,以及web测试框架,以及单元测试工具。形成良好规范的编码风格,严格遵守。形成自己的编码流程。     

第五:编写代码的时候,不要一步就能编写出质量特别好的代码,要一固作气,先实现功能,再进行重构。

 第六: 修改代码:先想以下的范围(有类似的错误吗,相似的代码有类似的错误吗),然后再改动。

1.编写有输入参数的函数时要现进行防卫语句的编写,
2.当把某一个值赋予某个变量时,要注意右边的变量:
声明了吗?可能为空吗?可能为那些值?可能包含抛出异常或不合法的值吗?
3.对于包含session的程序,要注意何时赋予的值?何时清空它?
4.对于某项操作,要注意现保留现场,操作,清理现场(释放资源)

第七:用一个对象的时候一定要检查该对象是否为null

分享到:
评论
2 楼 cpsing 2007-04-07  
路在哪?我在找…..
    1 从程序员,到系统分析,到项目经理。条件:必须是大公司,工资高,福利好,有完整的发展曲线;个人对软件开发有持续的热情。
    2 转行到大型企业,事业单位,政府做信息化方面的工作(可以说是网管)。生活有保障,不必太辛苦。条件:一定的能力,一定的人际关系。
    3 考研,考博再深造,出国或留校搞教学,培养一代不如一代的本科生,闲时打着大学的名义做做项目,赚个房钱。条件:高学历,一定的经济基础和家庭背景。
    4 创业:这个谈起来大发了。这里只说条件:很好的项目,创业精神,一定的经济基础。
    5 共享软件:很多程序员的梦想,自己写个软件全世界的卖,光注册费够一家人生活的了。成功少数,但只要有的都发达了。如ACDsee,优化大师,超级兔子,千千静听(可到共享软件区查询)。但我告诉你,这方面基本是没法干了,写个小东西挣钱玩玩可以,要靠他吃饭,饿死吧。条件:过硬的专门的软件技术,富有创意的头脑。
    6 网站:基本情况和共享软件差不太多,只是比共享软件更好干点。但奇迹照样有,可看看hao123的神话和现在很牛的80后的富翁。关键你有没有这个本事和这个命了。
    7 行业信息化咨询顾问:随着各个行业信息化的普及,企业对这方面人才需求很大。真正实现信息化的企业都需要这样一个既懂软件,又懂行业知识的人员,他和网管还是有区别的,他的要求更高些,更像一个自由职业者,专家类型的,这样的人放在企业里小的是个主管,大的是个副总。条件:很深的行业内部的技术或管理经验,较强的软件开发或实施经验;通常35岁以上才是成熟人才,因为经验是要经过历练的。其实就是个人物了。
   8 转行,彻底的转行。干不下去,精力不够了,脑子不灵了,钱太少。只要你够理由,你就走。从新开始另一段新的生活,有什么了不起的,哪里也饿不死我这个干软件的。


   我是哪种人,我说我是第8种人,看看能不能兼第5,6种人。我大学由于种种原因没毕业,最高学历是高中,呵呵。就学历而讲,能干到我目前这个水平我觉的可以了,是时候激流勇退了。就职业规划和财富而言,我这几年走的路并不成功,最起码无奈的转行本身就是一种失败。就我的人生而言,我觉的很成功。我了却了自己的一个人生梦想,在短时间内品尝了一个“高科技”行业的酸甜苦辣,技术出身也使我比别人多了一份淡定和从容。现在我可以放下这段旅程,再来一个新的开始。
   程序兄弟们别自卑,说到优势我们有很多:
1、 聪明的头脑,较高的智商。有人说程序员呆,不会为人处事,只会和机器打交道,没前途没希望。我告诉你,程序员愿意和机器打交道是因为他专注于技术,是职业特点,如果我们程序员的头脑用到一般行业,企业,政府单位里去耍耍阴谋诡计,骗骗人,卖卖产品或套套别人的话,我敢说,他们十个人也玩不过我们一个人。俗一点:就他们那点智商,也就骗骗鬼啊。
2、 创新精神,学习能力和频繁的知识更新速度。做软件的都知道,干一行的软件,就得学一行的知识,这一行的知识越丰富,软件才可能写的越好。我们都具备着很好的学习能力,学习新知识,新技术的能力。不敢说每个做过的行业我们多么了解,最起码我们总是站在风头浪尖上,高屋建瓴,问题看得远,想的长(要不你怎么去设计数据库啊,呵呵)。我们能以非专业人士的角度,系统的分析出一个行业某方面的流程,那当我们就做的这个行业时,我们对我们的能力还没有信心吗?
3、 扎实的工作态度,未雨绸缪的危机意识。扎实的工作态度是每个合格的程序员都应该具备的,因为我们要对代码负责;谈到危机意识,我想大多数程序员都和我一样吃者碗里的,看着锅里的吧,也是被社会逼的没办法。其实这都成了我们的优点了,以后从事哪个行业,都需要这两点精神。
我要走了,去干个和软件根本不搭边的行业,我去干是因为我是老板之一,而且钱绝对比现在好赚。过年的时候,我有个外甥刚大学毕业,非要做软件,我给他了以下建议,算是为后来者留一点东西:
  1 能进大公司就别去小公司,在大公司里你能接受真正正统软件开发教育,比到小公司当个什么啥都干,啥都不精的主管强。
  2 不断的学习,注意技术积累和更新,那是你唯一的资本。
  3 做软硬件结合方面的开发,单片机的开发,嵌入式系统的开发,比较有前途而且门槛高。但凡基于数据库的开发,不管是.NET平台的,J2EE平台的,VC,DELPHI,PB,VB都是扯淡,其核心价值是开发人员的经验而不是技术本身。因为真正的核心技术都在国外,中国没有,我发现不管那种语言,最好用的类库或组件都是老外写的。
  4 要有个好点的学历,别像我一样。毕竟是个高学历的行业,学历低人家都瞧不起你,你的发展也很有限 。30岁之前,可考虑弄个高程,CCNA,数据库管理员之类比较有含金量的证书打扮打扮自己,过了35岁其实意义就不大了。

    何去何从,我们都有自己的路要走。我转行了,我就不再是程序员了吗,不!我只是不在做为别人打工的职业程序员了,我要做自己的终身程序员。闲来时我会为自己写程序,写我愿意写的。当写程序不再是一种职业而是一种兴趣和热情时,他才会陪伴我一辈子。我还会再来CSDN,做为一个非专业认识,一个轻松的真正的程序员而来。未来的一天,当我老的时候,不管那时我有什么成就,或不名一文,如果别人问起我以前是干什么的,我希望仍能自豪的回答:“我曾经是一名软件工程师”。
1 楼 cpsing 2007-03-03  
用 Eclipse 插件提高代码质量

相关推荐

Global site tag (gtag.js) - Google Analytics