zoukankan      html  css  js  c++  java
  • 个人博客作业Week2

    一、是否需要有代码规范。对于是否需要有代码规范,请考虑下列论点并反驳/支持:

    1.这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。

    我不赞同这种说法。现今软件开发已经不仅仅是一个人的工作,动辄上万行的代码是一个庞大的工程,一个好的软件从设计到实现再到测试,整个过程要求团队所有成员的通力配合,而不是某几个人的单打独斗。既然强调配合,就要考虑到团队的效率问题,代码规范就是用来保证团队效率的最有效手段之一。试想如果每个团队中的程序员都用自己的个性风格来写代码,当代码需要被其他人使用时,他人需要花费大量的时间去阅读他的代码,去熟悉他的风格,这将造成一笔极大的时间开销。如果大家都按照统一的规范去完成自己的代码,这样不单给了代码的使用者极大的方便,也给自己阅读代码带来了方便,从而有效地提高了整个团队的编程效率,省去了许多不必要的麻烦。

    在我看来这就是一个tradeoff的过程,团队中的程序员可能会牺牲一些个性,会牺牲自己独特的风格甚至是更高效的代码,但是这样的牺牲带来的是整个团队编程效率的提高,是最终高质量软件的生成,相比之下,这样的tradeoff还是很划算的。

    2.我是个艺术家,手艺人,我有自己的规范和原则。

    我不赞同这个观点。好的程序员可以和艺术家媲美,他对于代码的创造力甚至不亚于艺术家对于颜色和线条的掌控。但是这并不意味着他可以完全像个艺术家一样为所欲为,因为程序编写毕竟是一项规范化的工作,它不同于可以完全自由发挥的艺术创作。如果仅仅是做一些小软件和个人项目,完全按照自己的规范去编写代码是没有问题的,然而在软件工程化方法中,一个好的程序员若想像艺术家一样创作出好的软件,他就必须遵守一些共同的编程规范,因为此时的软件开发已经不是他一个人的事情了。

    3.规范不能强求一律,应该允许很多例外。

    我不赞同这个观点。规范之所以称为规范,就是要给整个团队制定一个共同的规则和约束以保证效率。如果规范中有了太多的例外,这就势必会在同一规范下工作的程序员间造成不必要的困扰。一旦规范中允许了有个别例外,不同的人就会找不同的理由去为自己的例外开脱,长此以往会造成整个规范体系的崩溃。

    4.我擅长制定编码规范,你们听我的就好了。

    我不赞同这个观点。每个人都会有自己的编程习惯,我们很难说清孰优孰劣,一些特定的习惯可能会提高个人的编程效率。好的编码规范应该是综合考虑整个团队的编程风格之后的一个折中,这个规范尽可能地照顾了大多数团队成员的编程习惯。所以编码规范决不能仅仅由团队中的某个人制定,而应该是整个团队共同参与制定的结果。

    二、代码测评

    对同伴项目进行代码审查的结果:

    Code Review CheckList

    General

    代码是否能够正常工作?

    可以正常工作

    所有的代码都简单易懂吗?

    部分代码缺乏注释,难以理解

    是否符合你们的代码规范?

    并没有事先商量好代码规范

    是否存在一些冗余或者重复的代码?

    存在冗余代码,可以将特定功能写进函数以降低冗余

    是否做到了尽可能的模块化?

    模块化较差偏向过程化

    有没有一些被注释的代码?

    循环的长度是否规整?循环是否有正确的终止条件?

    部分循环没有

    Security

    所有的输入数据都被检查?

    第三方程序的使用?

    未使用第三方代码

    输出值是否经过了检验?

    经过了检验

    是否有对无效参数进行检验?

    对部分无效参数进行了检验

    Testing

    可测试性?

    可进行单元测试

    是否已经做了测试?

    未做测试

    单元测试的效果?

    大多数单元模块运行正常

    数组是否有越界?

    评测总结

    代码总体质量一般,由于未采用模块化的编程思想导致整体结构较乱,想要单独测试某个模块功能较难,建议之后采用模块化编程,同时优化代码结构,减少不必要的函数。

  • 相关阅读:
    高并发处理(一)页面静态化
    高并发处理(二)图片服务器分离
    五百强企业某部门视频面试题汇总
    access和sqlyog的使用
    条件查询
    primary select |||| case primary select
    win10 + ubuntu16 双系统安装
    ubuntu16 下安装python3.6 和Anaconda3
    import nltk nltk.download('reuters') [nltk_data] Error loading reuters: <urlopen error [Errno 11004] [nltk_data] getaddrinfo failed>
    共现矩阵
  • 原文地址:https://www.cnblogs.com/acewjh/p/4846668.html
Copyright © 2011-2022 走看看