Week3_代码复审
软件工程师的成长
一口气看完了十多篇的博客,心里的感觉五味陈杂。既有对未来道路的憧憬,也有对自己目前水平的无力感,与那些在这个领域打拼十几年甚至几十年的前辈相比,我不过也就是刚刚迈过行业门槛一条腿而已,前路尚长。
这么多的博客,也许关键词就是两个:热爱并且坚持、积累知识以及职业规划
一、热爱并且坚持
这些博主们,无论起点高低,只要最终功成名就的,都有一个共同点就是对计算机的热爱以及坚持。他们对于技术的坚持让我触动:这些人里,有的即使老师毫不靠谱上课讲的全无用处也可以坚持自己学习;有的人从小学就开始了专业学习然后一路遥遥领先;有的身处英文专业还能坚持对于计算机的热爱。
与他们之中的有些人相比,我算是幸运的,虽然没有从小身处那样专业的环境里面,也许一定程度上算是落后吧,但至少我是科班出身,不用忍受所谓的“针对野路子的歧视”,至少不也用每天绞尽脑汁跑到老师那里才能用上电脑。而且我也对技术拥有同样的热情。
不过这也不代表光有热情对我就够了,有一篇文章的备注是“光口头上说 “热爱” 是远远不够的”,虽然这篇文章并不能打开,但是仅仅是标题就足以触动我,某种程度上来说,我就是那种说的比做的多的人,总会想的很好,落实起来则经常会有较大的困难。同样,他们也给我了解决办法,那就是坚持,也许当我迷茫的时候,坚持做下去会是比原地等待迷茫思考更正确的选择吧。
二、积累知识
这一点是很多篇文章都专门强调的内容,基础知识十分重要,并且读书非常的有用,即使上课觉得没有用,也不要就让时间白白浪费掉。就算上课有用,覆盖面也不会太广,教科书之外的东西也没有人教,正所谓“师傅领进门,修行在个人”这一点其实我早就有所意识到了,单也仅仅停留在意识到的层面而已。知道各种竞赛很锻炼人,直到有些书非常好应该读一读,但是落实下去则有很大的困难。想想总是比做做更加的轻松。这一点也应该是我接下来所要改善的重点的重点。
三、职业规划
成功的人无外乎都有清晰的职业规划,即使与自己当前的环境相矛盾,但仍然有清晰的前进方向,这一点也是我需要学习的。例如那个英文专业的前辈,身处英文的环境,英文对他来说也不过是用来更好的学习计算机的途径而已,这一点是让人相当佩服的。而且软实力也是被强调了很多次。并且。未来我们不应该追求工资,职位,而应该追求能力以及经历,工资以及职位不过是它们的附属品。
我呢,虽然蛮早就有了对于计算机的兴趣,但是真正入门也是在大学才刚刚开始。进入大学以来,眼界可以说是得到了极大的提升,很多周围的人和事不断的刺激着我,让我渐渐有了野心,有了梦想,总想着自己有一天也会成为多么牛逼的人物。虽然有着看似伟大的抱负,但却有心无力,实力支撑不起梦想。与周围的技术大牛们相比,我的火候差的还远。对我来说,无论是哪个方面,周围都可以找到在那个方面碾压我的人,无力感对我来说一点不陌生。既然不能放弃,那么脚踏实地的努力提升自己的实力才是我现在阶段最应该做的事情。
未来希望以技术起家,拥有很厉害很厉害的技术,而且不仅仅是技术,其他方面也可以很厉害,以后可以拥有自己的事业。现在所做的事也都基本上是以这个为目的的。
代码复审:
复审对象:谢振威
Code Review Checklist
General
l Does the code work? Does it perform its intended function, the logic is correct etc.
是的,基本功能都已经实现,并且采用了面向对象的思路设计,已经经过之前的20个测试样例的测试
l Is all the code easily understood?
是的
l 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.
基本符合,一些变量名的命名习惯与我不太一样但是都比较好理解
l Is there any redundant or duplicate code?
没有
l Is the code as modular as possible?
使得
l Can any global variables be replaced?
有三个全局变量,可以通过参数形式传递以取消全局变量
l Is there any commented out code?
没有注释,只有一些被注释掉的废弃代码
l Do loops have a set length and correct
termination conditions?
使得
l Can any of the code be replaced with library
functions?
没有,所有的功能都是自己实现的
l Can any logging or debugging code be removed?
没有
Security
l Are all data inputs checked (for the correct
type, length, format, and range) and encoded?
没有,函数输入没有检查,错误的输入有可能导致崩溃
l Where third-party utilities are used, are
returning errors being caught?
没有
l Are output values checked and encoded?
没有,两个函数的返回值都是void
l Are invalid parameter values handled?
有,命令行参数可以处理错误形式
Documentation
l Do comments exist and describe the intent of
the code?
有文件,主要说明了地图格式,没有对于整个软件使用的说明
l Are all functions commented?
没有
l Is any unusual behavior or edge-case handling
described?
缺失
l Is the use and function of third-party
libraries documented?
没有记录
l Are data structures and units of measurement
explained?
没有
l Is there any incomplete code? If so, should it
be removed or flagged with a suitable marker like ‘TODO’?
代码都已经完成,所以也不需要标注”TODO”
Testing
l Is the code testable? i.e. don’t add too many
or hide dependencies, unable to initialize objects, test frameworks can use
methods etc.
是可以测试的,整个代码被封装起来了
l Do tests exist and are they comprehensive? i.e.
has at least your agreed on code coverage.
没有测试,所以不完整
l Do unit tests actually test that the code is
performing the intended functionality?
没有单元测试
l Are arrays checked for ‘out-of-bound’ errors?
没有
l Could any test code be replaced with the use of
an existing API?
没有测试
最新文章
- 第九周 psp
- css学习笔记 9
- 前端设计师也有必要学习seo,推荐一个seo博客
- jq封装的tab切换
- 禁用Resharper长代码自动换行的解决办法
- 使用 Hive 作为 ETL 或 ELT 工具
- SqlDevlepor注册表监听器设置
- SSIS使用OleDB和Ado.Net两种方式调用 存储过程
- CentOS6.4安装LAMP环境
- shell条件测试
- Linux命令初步了解
- PHP设计模式之单例模式(数据库访问)
- AndroidUI的组成部分GridView
- git入门(3)git checkout 和git branch分支的创建和删除
- 【python标准库模块五】Xml模块学习
- new Image().src资源重复请求问题
- Codeforces 1036C Classy Numbers 【DFS】
- etcd集群的搭建
- 吴裕雄 python 爬虫(3)
- Status bar and navigation bar appear over my view's bounds in iOS 7
热门文章
- HTTP 请求头中的 X-Forwarded-For,X-Real-IP
- Spring之Method Injection
- springbatch入门练习(第一篇)
- Centos7 搭建Go语言编译环境
- 在testbench从文件读入激励
- 【HNOI2018】游戏
- LOJ #2135. 「ZJOI2015」幻想乡战略游戏
- CDH上Cloudera Management Service 各个角色迁移至其他节点
- [51Nod1238]最小公倍数之和 V3[杜教筛]
- [CF1025F]Disjoint Triangles[极角排序+组合计数]