博客阅读体会

  阅读了十几位软件工程师前辈的博文,了解了前辈们作为一名软件工程师的成长经历,我有一些感触。

  这十几位前辈们的经历有着很大的差别,有的科班出身,有的则完全自学成才。不同的经历使得前辈们看问题的视角,表达的观点也有所不同。这些不同的观点中,也存在共同之处,体现在以下方面:

  前辈们都有着对于计算机科学,对于软件开发的热情,也很看重这一点。有的前辈初高中期间就有机会接触到计算机编程,在接触计算机过程中产生了兴趣,进而进行了实践。实践带来的成就感又进一步激发了兴趣。在自主的实践过程中培养了geek精神。在这样最初的兴趣的引导下,培养了专业的技术和对计算机科学的热情。而有些前辈在进入大学选定计算机专业后才接触到计算机,而他们也在深入地学习中逐渐培养了对计算机科学的热情。这份热情是职业自豪感的来源,也是做好一名软件工程师的必要条件。

  前辈们的主动精神和学习能力都非常强。计算机行业变化日新月异,能够在行业中立足、进步需要软件工程师具有很强的学习能力和主动精神。(即便是行业发展缓慢,想获得突出的成果也需要自己进行探索,学习基础教学以外的知识)这一点,对于非科班出身的从业者来说要求更高,毕竟在达到相同高度的情况下,没有人引导相较于有人引导难度更大一些。

  最后,我想关于科班教育提出我的看法。通过前辈们的博文,可以了解到,大部分前辈是科班出身,但也存在“半路出家”,非科班出身的软件工程师。有的博客中对于科班出身的必要性和重要性也有所讨论。对于这个问题,我的观点是:科班出身不是成为一名优秀软件工程师的必要条件,当然更不可能是充分条件;然而科班教育所要培养的是扎实的基础和开阔的眼界,这是成为一名优秀软件工程师的重要条件。这个观点不难论证,我想也很容易接受。其中我想强调的是基础的重要性,这也是很多人容易忽略的地方。

  

代码复审

  我对我的搭档陈鸿超同学的第一次作业进行了复审:

  根据http://blog.fogcreek.com/increase-defect-detection-with-our-code-review-checklist-example/提供的Code Review Checklist进行评价

General

  • Does the code work? Does it perform its intended function, the logic is correct etc.
  • 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.
  • 命名规范性上总体做的不错,但还可以提升。程序中的类成员函数,变量,以及局部,全局变量都是使用驼峰法进行命名,个别变量没有遵循该规则。
  • Is there any redundant or duplicate code?
  • No
  • Is the code as modular as possible?
  • 程序中的部分功能模块做到了封装,顶层内容还可以进一步封装
  • Can any global variables be replaced?
  • 几乎不存在全局变量,但对顶层内容进行封装后可以避免全局变量的存在
  • Is there any commented out code?
  • 存在被注释掉的函数
  • Do loops have a set length and correct termination conditions?
  • Yes
  • Can any of the code be replaced with library functions?
  • 大概是没有
  • 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?
  • Yes?
  • Are invalid parameter values handled?
  • No

Documentation

  • Do comments exist and describe the intent of the code?
  • Yes
  • Are all functions commented?
  • 主要功能函数均有注释
  • Is any unusual behavior or edge-case handling described?
  • No
  • Is the use and function of third-party libraries documented?
  • No
  • Are data structures and units of measurement explained?
  • Yes
  • 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.
  • 如果完成顶层的封装,将更利于测试
  • Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.
  • 工程文件中不存在单元测试项目
  • Do unit tests actually test that the code is performing the intended functionality?
  • No
  • Are arrays checked for ‘out-of-bound’ errors?
  • Yes
  • Could any test code be replaced with the use of an existing API?
  • No

个人作业—Week3的更多相关文章

  1. 个人作业-Week3

    个人作业-Week3 1. 软件工程师的成长 同学们在上这门课的时候,还是大三,你的困难和迷茫,别人一定有过.请看看别人怎么学习的,有些是科班,有些是野路子,有些成功,有些失败. 请读完下面所有博客( ...

  2. 个人作业Week3

    个人作业week3 一.  调研,评测 1.我的使用体验 版本:IOS版   BUG_1: 点击单词本中的“同步”后,会提示登录Microsoft账户.登录成功立即开始同步单词本.在单词本同步过程中, ...

  3. [buaa-SE-2017]个人作业-week3

    个人作业-week3:案例分析 分析产品:Bing词典 Part1:调研&评测 1.软件评测和Bug汇报 这次我选择Bing词典的原因是在于,首先我使用过的词典软件较多,平台涵盖PC端.网站. ...

  4. 个人作业week3——代码复审

    1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编 ...

  5. 个人作业-Week3:代码复审

    软件工程师的成长 我在上大学之前,对于软件工程师之类并无概念,并且高初中的电脑课也从未提及过写代码之类的东西,更多的都是一些教一些办公软件的使用(笑,明明电脑课总是因为老师“有事”变成其他课,根本就没 ...

  6. 团队博客作业- Week3

    成员介绍 韩青长  测试 我是韩青长,技术小白,抱着对软工的好奇和对未来工作的憧憬选了这门课.暂时选择了测试的工作,也对开发和UI有一定兴趣.从前上帝创造了我们,现在轮到我们来创造自己的软件了~ 陈彦 ...

  7. 个人作业 - Week3 - 案例分析

    调研与评测 真实用户采访: 用户姓名: 刘斯盾 用户的背景和需求: 用户是一位计算机专业学生,需要浏览技术博客来扩充自己的学识. 用户使用博客园证明: 产品是否解决用户问题: 在码代码过程中遇到的很多 ...

  8. 个人作业week3案例分析

    调研产品:博客园 第一部分 调研和评测 1.bug 1.不同种类浏览器的支持存在差异 bug描述:在不同浏览器下,部分博客内容显示的格式有明显不同 可尝试用下面两种不同的浏览器打开这个博客网址:htt ...

  9. 个人作业——week3

    1.软件工程师的成长 拜读了多位优秀前辈的文章后,感觉十分复杂,虽然说不上是醍醐灌顶的那种大彻大悟,但是确实的感觉到自己内心中某个部分被真切的感触到了.推荐的文章语言都比较平易近人,感觉就像是和多年未 ...

随机推荐

  1. 腾讯 or 华为 =》 求职者的困惑

    本文目的: 希望有老司机指点迷津 个人背景: 本人软件工程专业,硕士研究生,2017年7月毕业,个人喜欢Java开发,希望有机会从事Java分布式应用开发 故事背景一: 本人2016年4月份参加了腾讯 ...

  2. jsp实现一条横线中间有字的样式

    实现样式: ---------------------------------------------------- xxxxxx ---------------------------------- ...

  3. 从C++研发到前端工程师

    前言 伴随着今天收到了网易的前端offer,我的转行面试告一段落.能拿到网易的offer很意外,也弥补了去年网易校招被刷的遗憾.虽然从c++转行到前端不是一件很困难的事,但是也说不上轻松,反正我用了整 ...

  4. Hibernate 的dialect 大全

    RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS3 ...

  5. Adobe Flash builder 4.6破解教程(以win764bit为例)

    首先安装软件至默认路径: C:\Program Files(X86)\Adobe下 然后: 1.C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6 ...

  6. JavaMelody监控SQL

    前言 前面讲过了Javamelody的基本配置,这里简单的介绍下,如何使用Javamelody来监控JDBC以及SQL. 手码不易,转载请注明:xingoo 在网上搜索很多资料,仅有开源社区上的两篇帖 ...

  7. Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)

    接上篇<WebApi服务URI加密及验证的两种方式>,在实际开发中,仅对URI进行加密是不够的,在传输层采用SSL加密也是必须的. 如果服务寄宿于IIS,那对传输层加密非常简单仅需要配置一 ...

  8. HTML-正则表达式

    常用HTML正则表达式      1.只能输入数字和英文的:       <input onkeyup="value=value.replace(/[\W]/g,'') "  ...

  9. 【POJ 2942】Knights of the Round Table(点双连通分量,二分图染色)

    圆桌会议必须满足:奇数个人参与,相邻的不能是敌人(敌人关系是无向边). 求无论如何都不能参加会议的骑士个数.只需求哪些骑士是可以参加的. 我们求原图的补图:只要不是敌人的两个人就连边. 在补图的一个奇 ...

  10. java多线程synchronized底层实现

    一直想把这个特别重要的关键词的底层实现搞明白.(当然现在也没有完全明白,如果有错误以后修改这篇文章) 首先,这个关键词synchronize可以说是个语法糖,它的具体用法网上很多博客都讲的比较明了了. ...