zoukankan      html  css  js  c++  java
  • 结对编程-队友代码分析

    优点:

    1.命名规范:

    变量严格按照“代码命名规范文档”命名,易懂,且变量注释写的比较详细;

    代码截图:

    2.处理问题细致:

    (1)题目前面的标号进行了细节化:

    运行结果:

    (2)高中问题中考虑了tan90不存在的情况,并避免了这种情况;

    (如果出现这种情况,退回到上一次的for循环,重写题目,这个是自己没有考虑到的)

    代码截图:

    3.增加了需求

    需求文档中并没有明确表示根据账户生成相应的文件夹,但是这里实现了,能避免不必要的空间浪费;结合实际情况,在只有一个用户使用这个程序的情况下,用户不需要去找自己账号所对应的文件夹,提高了用户体验;

    我自己因为懒,虽然考虑到了,但是没有去查,没有实现。

    代码截图:

    4.代码量浓缩,没有功能重复性的代码,总程序只有300多行,不像我,搞了600多行,依然有很多重复性的内容。。。

    缺点:

    1.代码浓缩的坏处:

    很多功能堆在一个函数里,不利于解读和维护,函数SetProblem()内代码较多,占所有程序的一半还多,实现过程注释不够,逻辑架构分不开,导致阅读起来有些困难;

    2.bug:

    (1)需求中操作数的个数和范围与需求不符;小学题目中出现了只有一个操作数的情况,而且操作数出现了0和0.5;

    如图:

    操作数的取值范围1~100可以通过一个do...while循环实现;

    在阅读了代码之后,发现出现0.5是因为开方的时候把'^'当成符号处理,而0.5当成数字处理,而在for循环中用了同一个变量表示操作数和指数(包括2和0.5)导致操作数里也包含了0.5;

    (2)初中和高中的题目中需求没有完全实现,有的题目中不包含平方或开方(三角函数)中的一个,只有一个操作数;

    3.程序中使用的goto语句较多,虽然是在比较简单的模块,但是结构化程序设计中不建议使用goto语句,容易造成程序流程的混乱,使理解和调试程序产生混乱。

    总结:

     通过分析别人的代码,能对照自己代码的不足,找出他人代码bug的同时也能反思自己代码的不足之处,是很好的学习方法;在做个人项目过程中,有些模块,其实自己没有思路,实在想不出来会去网上查别人相似的代码,然后再写,但是,感觉这位大佬的代码似乎纯个人思路啊,而且还增加了一部分需求,佩服,感觉如果时间再多一些能实现的更好。

  • 相关阅读:
    【Django总结】Django警告Not Found: /favicon.ico
    【性能学习】Windows自带性能监控工具perform
    【Linux学习】定时任务和后台运行相关命令
    【Python学习】Python 写Windows Service服务程序
    【Django总结】ORM
    【Python学习】Python requests.post方法中data与json参数区别
    【Pycharm学习】Pycharm散记
    【Pycharm学习】离线安装插件
    【Mysql学习】索引操作
    [HG]奋斗赛G
  • 原文地址:https://www.cnblogs.com/wujingxuan/p/9711360.html
Copyright © 2011-2022 走看看