尚学堂 老师好!

上海:15201841284

广州:020-2989 6995

深圳:0755-23061965

武汉:027-8798 9193

西安:029-8822 8155

软件开发中工程师需要克服的10大障碍

  软件开发过程中最艰巨的任务是什么?尚学堂采访了尚学堂软件开发部的工程师们发现他们大部分人认为在软件开发过程中最艰巨的任务其实不是代码.

  更多精彩内容以及学习资料,尚学堂论坛bbs.bjsxt.com免费下载。

  尚学堂软件开发工程师们:写代码是一种锻炼,一种逻辑思维上的锻炼,相比于开发人员在日常工作中要执行的其他任务,它可显得可爱多了.如果你觉得自己才刚刚跨入这个行业,只能算个业余程序员,那么为了确保能跻身专业领域,有些障碍你必须得克服……

  1.解释做了什么

  解释软件开发过程是很让人崩溃的一件事.那些不会写代码的家伙可能在这一行有所了解,但是正如定义所说的,他们不会写代码.在他们眼中,我们就是一群待在昏暗的房间中弓着背噼里啪啦敲键盘的程序猿.

  2.可视化解决方案

  假设给定一组简单的--难听点说就是考虑不周的--需求,你需要制定数据存储库、代码结构、算法、通信协议,以及只要能解决业务问题就得去完成的各种技术内容.然后,还需要用一种通俗易懂,哪怕是外行人也能明白的方式解释出来,并在规定期限内交付给客户.

  3.预估交付时间

  这是每个开发人员的噩梦.试想一下,以前一点也没有接触过的任务,突然要你确定完成它所需要的时间,是不是有点天方夜谭呢?可能曾经也写过类似的代码,但是却并不是在有着相同问题和限制的同一个系统中,好吧!

  这个时候,那真的只能靠经验了.但是大多数程序员会低估时间,原因可能是因为他们只考虑了编码这部分而忽略了其他.

  4.借鉴别人的代码

  条条大路通罗马,解决方案也是.借鉴别人的代码可能意味着要花上很多时间去研究上千行代码以了解整个的思路.而且,要是恰巧原先的开发人员一点也不留注释和文档的话--甚至只是个半途而废的半成品项目--那就更加令人头大了!

  5.范围蠕变和你自认为神奇的功能

  敏捷开发会造成范围蠕变,这让人既沮丧又无奈--特别是当你突然心血来潮要加点什么愚不可及的功能的话,更甚.结果如何你自己心知肚明,你的团队也明白失败没商量.但是客户其实知道得更清楚,所以要是失败不可避免地降临时,那么就全都是你的责任,因为你居然不相信客户的眼光.

  6.优化不足和过度优化之间的平衡

  复杂的软件永远达不到完美的境界.我们不可能无限制地优化,这也是为什么软件项目从不在规定日期到来之前发布的原因.

  另一方面,很多人都会抱有"先就这样吧--以后再来改进"的心态.现在这些代码是可以好好工作,但是这些人也明白这会成为明日的烦恼和失败.当然,你不会再来修复和调试了,它们会被留给下一个可怜的开发人员.

  7.测试代码

  既可以自己编写单元测试,也可以组团通过软件来测试,不过不要妄想能发现所有bug……

  复杂的软件可能会包含成千上万行代码.系统可能有着数十亿种可能的相互作用和路径,想要全部测试是不可能的.

  同样的,一个软件在不同的条件下,不同的系统里碰到的软件不同,其交互的结果也不尽相同.我们没办法测试所有可能的情况.

  想要编写出好的单元测试是一件既繁琐又艰难的工作.在理想情况下,测试应该在软件开发项目开工之前就写好--但是要是我们先写这个的话,我们怎么向客户解释四个星期过去了为什么一点进程都没有?

  单元测试不会突出显示每一个bug.虽然我们都希望能有一个专门的小组来编写测试然后积极去发现问题,但是由于现实条件的限制--成本控制和时间限制,这对于很多项目而言都是奢望,所以大都需要开发团队自己来编写测试.而他们在编写时总是会无意识地避免任何不妥当的边界情况.

  程序员会用一种逻辑方式去解决问题,但是用户很少会这样做;所以有时候用户会帮我们找到一些我们自己察觉不出来或者根本想不到的问题.

  8.写代码文档

  写文档的确是费时又费力.很少有开发人员擅长并愿意花时间去写/阅读文档.

  9.处理硬件问题

  我们每天都需要处理各种技术问题,例如硬盘崩溃、驱动冲突、软件故障等等.虽然这并非是我们软件开发人员的工作,但是要是不解决这些的话,我们是没法继续工作的.

  然而很多人却会莫名其妙地认为,搞IT的就应该懂所有关于电脑的东西.当他们碰到问题,他们第一时间想的就是联系我们来解决,而且不管什么问题都这样,真心是让人无语又崩溃.

  10.和人打交道

  上述任务通通可以总结为"如何与人打交道".令人奇怪的是,非专业人士不会去指点飞行员应该如何驾驶飞机,也不会跑去和电工说我的房子需要重新布线等等,但是他们却非常喜欢在软件开发上面指手画脚,提供各种异想天开的点子.

  更多精彩内容以及学习资料,尚学堂论坛bbs.bjsxt.com免费下载。

  • 北京校区
  • 西安校区
  • 山西校区
  • 武汉校区
  • 深圳校区
  • 上海校区
  • 广州校区
  • 保定招生办
  • 黑龙江项目办

北京京南校区:北京亦庄经济开发区科创十四街6号院1号楼 赛蒂国际工业园
咨询电话:400-009-1906 / 010-56233821
面授课程: JavaEE+微服务+大数据     大数据+机器学习+平台架构     Python+数据分析+机器学习  人工智能+模式识别+强化学习   WEB前端+移动端+服务端渲染

地址:陕西省西安市高新区西安软件园西区创新信息大厦A座三层尚学堂

电话:029-88228155 / 18291433445

山西学区地址:山西省晋中市榆次区大学城大学生活广场万科商业A1座702

武汉学区地址:武汉市东湖高新区光谷金融港B22栋11楼
咨询电话:027-87989193

深圳校区地址:深圳市宝安区航城大道U8智造产业园U6栋3楼
咨询电话:0755-23061965 / 18898413781

上海尚学堂校区地址:上海市浦东新区城丰路650号
咨询电话:021-67690939

广州校区地址:广州市天河区车陂街道大岗路5号中侨广场2栋321室(四号线车陂站D出口,或brt车陂站)
咨询电话:18948349646

保定招生办公室

地址:河北省保定市竞秀区朝阳南大街777号鸿悦国际1101室

电话:15132423123

黑龙江项目办
地点:哈尔滨市松北区博文路青年部落孵化器1层
电话:15321415678
Copyright 2006-2021 北京尚学堂科技有限公司  京ICP备13018289号-19  京公网安备11010802015183   营业执照
网站维护:北京尚学堂科技有限公司昌平分公司