个人作业-Week3
1. 软件工程师的成长
同学们在上这门课的时候,还是大三,你的困难和迷茫,别人一定有过。请看看别人怎么学习的,有些是科班,有些是野路子,有些成功,有些失败。 请读完下面所有博客(也可以再读一些你觉得有意思的博客),谈谈自己的感想,你现在的条件比他们如何?你对计算机的热爱仅仅是口头的么?IT专业的技术道路,职业道路,社会道路怎么计划呢
感想:如果要在计算机这条道路上走的更远,需要基础扎实,更需要不断的学习和创新。
条件:与他们中的一些人相当甚至更好
我对计算机的热爱不仅是口头上的,在平时的学习生活中,我也十分愿意使用编程的方法解决一些实际的问题。
计划:以后可能会读研,进入公司工作,职业道路和社会道路的规划简而言之就是先做一个程序员,然后通过参与不同的项目不断提升自己,使自己的水平不断提高。
2. 代码复审
每位同学复审其结对编程的伙伴的个人项目,并写一个个人博客报告复审结果
General
- Does the code work? Does it perform its intended function, the logic is correct etc.
◦ Yes.
- Is all the code easily understood?
◦ Yes.
- Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.
◦ Yes.
- Is there any redundant or duplicate code?
◦ Yes.
- Is the code as modular as possible?
◦ Yes.
- Can any global variables be replaced?
◦ Yes.
- Is there any commented out code?
◦ Yes.
- Do loops have a set length and correct termination conditions?
◦ Yes.
- Can any of the code be replaced with library functions?
◦ No.
- Can any logging or debugging code be removed?
◦ No.
Security
- Are all data inputs checked (for the correct type, length, format, and range) and encoded?
◦ Yes.
- Where third-party utilities are used, are returning errors being caught?
◦ No.
- Are output values checked and encoded?
◦ No.
- Are invalid parameter values handled?
◦ Yes.
Documentation
- Do comments exist and describe the intent of the code?
◦ No.
- Are all functions commented?
◦ No.
- Is any unusual behavior or edge-case handling described?
◦ Yes.
- Is the use and function of third-party libraries documented?
◦ No.
- Are data structures and units of measurement explained?
◦ No.
- Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?
◦ No.
Testing
- Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.
◦ Yes.
- Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.
◦ No.
- Do unit tests actually test that the code is performing the intended functionality?
◦ Yes.
- Are arrays checked for ‘out-of-bound’ errors?
◦ No.
- Could any test code be replaced with the use of an existing API?
◦ No.