目录
本文将从计算机系统结构、软件开发基础、使用软件工具、软件开发技术和软件开发流程多个角度,列出初级工程师在软件开发过程中的常见缺陷。以下内容,来源于我工作和公益教育活动中发现的普遍问题,希望能引起初级工程师、高校教师以及技术管理者的注意。
计算机系统知识
大部分初级工程师缺乏以下计算机系统知识,注意力只在软件开发,而不会考虑软件所处的系统环境。以下要点都是需要在软件开发时注意的。
计算机系统结构
- 磁盘大小
- CPU 多核
- 内存大小
- 网络以及所用端口
软件运行需要的系统资源以及正常运行状态
- CPU 使用率
- 内存使用率
- 磁盘使用率
- 网络吞吐量
软件开发基础
- 无法在分析和设计中灵活使用面向对象的概念。例如代码包含大量的case或switch语句,没有运用多态;定义一体化的可变记录包含所有与数据相关的属性,为了区分变种必须检查与该记录关联的标记,而不是为各种数据创建一个类层次结构。前者容易出错,增加了设计的不稳定性;
- 不能理解Spring系列框架的基本原理;不理解Spring系列框架中注解方法; 不能掌握Spring 系列框架模块的使用方法;
- 不熟悉Tomcat服务器的基本原理;
- 不熟悉常用的计算机英文术语;
- 不熟悉Servlet和Web应用的结构和功能,无法运行Web应用的时候,将责任推给IDE。:(
- 不能从性能角度优化代码,如SQL语句,如Java语句;
- 不能理解HTTP协议;
- 不能理解AJAX的原理;
使用软件工具
- 害怕学习使用新的工具,害怕做深入的研究;
- 不系统查看官方文档,查看零碎的博客文章;
- 需要查询某些内容的时候不用搜索关键词方法,而是用滑动;
- 未掌握阅读方法:先泛读,再精读,通过导航栏提高阅读速度;阅读时不应该逐字逐句,而是要基于意群阅读;
- 不需要调试的时候使用了过多的调试,影响工作效率,需要注意认真阅读程序错误信息并结合相应知识解决问题;
- 需要学会在合适的时候使用相应的工具;
- 需要系统性地阅读书籍,并养成良好的学习习惯;
- 不喜欢看文档,过多使用视频。
软件开发技术
- 未用面向对象的方法设计类,未自觉使用UML画用例图、类图、时序图等;
- 未认真思考如何设计方法;
- 不遵循编码规范;
- 未在适当的时候采用代码重构技术;
- 参考开源代码某些方法的写法时,过多使用调试方法,而不是经过分析理解后写出正确的语句;
- 考虑问题不全面,有时候因为基础知识的缺乏和理解不深刻导致不仔细;
- 直接将需求转化为程序语句,而不是进行分析后抽象出重要特征;
- 需要掌握必要的口头和书面交流方法,如总分总表达等。
软件开发流程
- 对软件开发生命周期缺乏系统认识,缺乏规划,未经全面分析和设计后才开始开发工作,总是喜欢直接写代码;
- 缺乏贯穿在整个流程的质量意识,没有为荣誉而战的意识。可参考【实战技能】编写卓越的代码_苹果二的博客-CSDN博客
希望初级工程师能积极改掉以上所说的缺陷,积极努力养成好的工作习惯,成为优秀的开发者。也欢迎留言与我讨论。