• 个人博客作业2


    一.是否需要有代码规范

       1.不同意该观点。每个人都有各自的代码风格,当单独工作时不会产生什么影响。但当进行团队项目合作时,正如文章中提到的面对“代码集体所有制”时,多样的风格变成了团队的阻碍。团队间的协作少不了代码之间的分配与合作,此时个人必须也应该服从于集体。统一的代码规范有助于统一的维护,也能减少队内纷争,从而让队伍更加团结有效率;而且也利于另一篇文章中提到的代码复查。所以制定一套合格的代码规范,根本不是一件浪费时间影响效率的事,事实正好相反。

       2.不同意。对于软件工程中的团队合作这件事,个人的艺术天分不应该发挥在代码规范上,更不应该成为阻碍团队协作与成果的借口。代码规范是团队合作的基本保证,是整个团队保持一致性的关键。艺术天分完全可以用在其他方面。

       3.不同意。不强求何来规矩?如果总是有例外的话,规范根本无法维持下去。法律不会给任何人“例外”的权利,代码规范对于一个团队同样如此。

       4.不同意。代码规范是一个团队共同使用的,会对日后的项目工作产生巨大作用。经过团队共同商讨出的代码规范,往往会比个人决策出的代码规范更加合理,更能让大多数人满意,更有利于项目的后续进行。另外,团队合作毕竟是一个协作、磨合、相处的过程,有些事情“集中制”更加有效,有些事以民主的方式往往更好。

    二.代码复审

    参考http://blog.fogcreek.com/increase-defect-detection-with-our-code-review-checklist-example/给出的代码复审各项标准

    (一)代码整体

        1.代码是否能够正常工作?是否能够达到预期的功能,逻辑是否正确:未实现全部功能,实现了生成式子并运算的功能。将生成结果及答案写入txt功能为未实现。

           逻辑正确性:(1)对于关于0生成限制不完善。 例:输入n=10 r=2,输出的式子中分子包含0。 0/1+0/1+0/1.

                            (2)计算部分有错误:关于连续减法、除法均有错误。 例:29-29-29=0    

                            (3) 检测负数产生功能不完善。 例子同上

        2.代码是否易于理解:代码结构分明,也有合适的注释,变量命名也规范,可读性强。

        3.是否符合你们的代码规范?通常包括括号的位置,变量和函数的命名,每一行的长度,格式以及注释:在我自己看来符合自己能接受的代码规范,代码清晰。

        4.是否有冗余代码:在Expression.cs中,分情况处理子表达式式时(多个combine方法),各种情况是有很大相通性的,可以将多个方法合并成一个,加控制变量控制即可

                                 在SubExpression中也是一样,多个方法有相似性

        5.模块化程度:划分代码时以表达式为划分核心,分为了Expression Expression SubExpression 等多个模块,模块化程度较高

        6.全局变量是否能够被替代?:无全局变量

        7.是否有被注释掉的代码:含有被注释掉的代码

        8.循环是否设置循环长度以及是否可以正确结束:无死循环存在,循环均可正确结束

        9.是否有代码能被库函数代替:对c#不太熟悉,库函数的了解不是很多。。。

        10.可以删除任何日志记录或调试代码吗?:无日志记录和调试代码

    (二)安全性

        1.所有的输入/输出数据都被检查(检查格式是否正确,长度,类型以及范围等)并且编码过了吗?:输入参数未检查,当输入参数不合法时,未能正确处理给出错误信息。如输入-r 0,程序会直接不正常结束

               输出方面此项目并未涉及检查。但能正确处理,输出分数对应组成部分

        2.哪些地方使用了第三方程序,返回的错误信息是否全部被捕获了?:未涉及第三方程序

        3.不合法参数:第1条中已提到,输入不合法参数未被处理

    (三)文档

        未涉及文档

        1.是否有文档来解释代码?

        2.所有的函数是否有加上规格?

        3.是否对不寻常的行为或边界情况处理进行描述?

        4.是否有记录对第三方函数的使用情况?

        5.对数据结构和度量单位解释了吗?

        6.有不完整的代码吗?如果是这样,应该是删除或标记等一个合适的标记“待办事项”? 

    (四)测试

        1.代码是可测试的吗?即是否添加太多隐藏的依赖、是否能够初始化对象、测试框架可以使用方法等:代码可以进行测试

        2.测试是否存在?以及它是否做到了完全覆盖?: 未设计测试代码

        3.单元测试是否测试到了代码能否达到预期的功能?:未设计测试代码

        4.哪些测试代码是可以用已经存在的API来代替的?:未设计测试代码

        5.数组越界检查:并未进行数组越界方面的检查与处理,存在风险。

    总结,性能上并不是十分理想,一些边界情况的处理不到位。但在代码规范上做的较好,而关于测试与文档环节,现在可能还并未涉及。

  • 相关阅读:
    L3-013. 非常弹的球
    L2-020. 功夫传人
    L1-039. 古风排版
    Innobackup备份过程
    MySQL物理备份的过程
    数据库表设计
    MySQL启动排错
    redo的类型和作用
    描述undo的三个作用
    redo log和binlog的纠缠
  • 原文地址:https://www.cnblogs.com/wcysoftware/p/4841222.html
Copyright © 2020-2023  润新知