程序员最头疼的七件事
懂点技术,瞎指挥
有人说不懂技术的瞎指挥很可怕,我倒是觉得懂点技术,然后指手画脚更可怕!
有个国企的项目,甲方负责人李总是个局里的二把手,不知道什么时候了解了一点编程的技术, 每次开需求会都是和我们大谈如何开发软件,他的口头禅就是: 这个需求,用个SQL从数据库一选不就出来了?!你们怎么得开发一周?!别想蒙我!
唉,他怎么能考虑到用SQL的like是效率极低的, 数据量大了是要崩溃的,我们得建立全文索引,需要用一套基于搜索的解决方案才行。
甲方的技术实力看起来这么“强悍”, 不懂技术的乙方负责人只好和稀泥:我们回去再评估一下。
懂技术的程序员在下面大眼瞪小眼。
代码都写玩完了,需求变了
这一点我不想多说,相信大家都深有体会。
虽然敏捷软件开发的方式对这个问题有一定的改善,但是无法根治,尤其是当客户觉得这个东西就是好,一定要实现的时候,程序员基本上是无能为力的。
必须得改! 不想改? 还想不想干了!
任务时间估算
我工作了这么多年了,遇到任务的时间估算,或者项目的工期估算还是头疼。
主要有两方面原因,一个是内因,即软件固有的复杂性,软件工程发展了这么多年,我们努力地让系统的各个模块独立,关注点分离,高内聚,低耦合。
但是还是没有办法像搭积木那样去开发软件。很多细节纠缠在一起,难以准确估算。还有一个很大的风险是:一个你预料不到的,很小的问题就能把你死死地拖住,让你耗费大量的精力。
另外一个原因就是外因,人和项目的因素。你把任务时间估算得多了,有人会挑战你,怎么需要这么长时间? 估算的少了,自己就默默加班忍受吧。
如果是项目倒逼工期,那任务估算就是一个摆设了。
到客户那儿去演示
为了做好一个演示,在公司把系统调试了很多遍,把演示的步骤一步步都准备好了,到了客户那里,可能是手贱点了一个什么东西,然后,系统崩溃了,演示进展不下去了。
经历过两次这样的事情后,每次演示我都变得战战兢兢,如履薄冰,不敢越雷池一步,严格按照脚本来走。
现场演示一个不成熟的产品确实是让人挺崩溃的事情。写到这儿,我不由得想起来老罗在台上满头大汗地演示TNT的场面......
写文档
代码好不容易写完了,刚刚喘口气,准备开始下一个工作,领导说,把文档也补一下,接口参数的含义都写上 ,程序员心里通常都会不爽,有所抵触,结果就是草草地写个文档出来。
为什么这样呢,因为实现功能的那些代码才是体现自己价值的,能够赚钱的工作,文档看起来只是附加品而已。工作做完了,谁愿意多干活呢?再说了,工作量估算的时候把写文档时间算进去了吗? 你都不给我时间,现在还让我写,不是让我加班吗?
如果想把工作做得漂漂亮亮,既有优雅的代码,又有完善的文档,必须得给文档工作留出时间才行。
修改遗留多年的代码
为了实现一个新功能,我得修改六七个文件,其中包括一个长达5000行的JSP,三个500行的函数,2个没人问津的存储过程,做这一切的时候,还得小心翼翼地不能破坏老功能,此中酸爽滋味,不知道别的行业能否体会得到?
你说这遗留代码烂吧,但是人家可以工作,你想重写吧,一是没有时间,二是重写了能保证每个犄角旮旯的业务点都覆盖吗? 所以只能采用渐进重构的道路,慢慢地把他改好。
能够从头开启一个新项目的同学,还是挺幸福的,好好珍惜吧。
Bug不可(难以)重现
人世间最痛苦的事就是明明有个Bug在我的眼前,我却无法重现它。
四五年前,我们有个运行良好的应用突然出了状况,一到下午两点左右就会毫无征兆地崩溃,查看了日志,根本没有报任何错误。在测试环境中想尽了一切办法进行模拟,总是无法重现。
这样的现象持续了一个多月,感觉就要绝望的时候发现了蛛丝马迹,北京时间的下午两点,是意大利的早上8点,那个时候,意大利的用户会登录系统,有些特殊属性的用户做了一个操作,触发了一个年久失修,普通用户根本走不到的代码分支,导致系统直接退出。
只用一行代码就Fix了这个Bug,但是重现的过程竟然长达一个多月!
程序员最头疼的七件事相关推荐
- 优秀程序员应该做的几件事【转】
为什么80%的码农都做不了架构师?>>> 下面是一些优秀程序员应该做的几件事,当然这只是建议,每个人都有不同的生活和学习方式,以下提供的几条也仅供参考. 程序员每天该做的事 1 ...
- 自学成为程序员_成为程序员不需要的10件事
自学成为程序员 Do you have what it takes to become a programmer? Chances are, you will base your answer on ...
- [转]读《程序员应该知道的97件事》
正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失败,每一座成功项目的丰碑下都埋葬着无数同类型的失败项目.大多数软件项目都像是一次典型的死亡行军 加班是一种习惯,并会逐渐产生依赖 编程远远 ...
- 程序员应该知道的97件事
转自:http://dearymz.blog.163.com/blog/static/205657420139243750104/ 正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失 ...
- 读《程序员应该知道的97件事》
原文链接:http://dearymz.blog.163.com/blog/static/205657420139243750104/ 正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失败 ...
- 《程序员应该知道的97件事》即将上市
一.出版信息 [书名]程序员应该知道的97件事 [作者]Kevlin Henney 著 [译者]李军 译 吕骏审校 [出版社]电子工业出版社 [书号]978-7-121-11756-5 [定价]45 ...
- 程序员最反感的十件事,你有同感吗?
程序员是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的.当然,既然是人,当然是会有性格的,也是会有脾气的.下面,让我来看看十件能把程序惹毛了的事情.一方面我们可以看看程序 ...
- 过年回家,程序员最怕的 5 件事
时间过得真快啊,一月接一月,一年又一年.程序猿工作繁忙,每天游离于代码之间,似乎已经忘记了时间的流淌. 话说又要回去过年了,作者是心有余悸的.已经习惯在大城市生活的一线码农,早已不能融入故乡那种风气的 ...
- 有理想的程序员必须知道的15件事
作为程序员,要取得非凡成就需要记住的15件事. 1.走一条不一样的路 在有利于自己的市场中竞争,如果你满足于"泯然众人矣",那恐怕就得跟那些低工资国家的程序员们同场竞技了. 2.了 ...
最新文章
- 互联网人才大迁徙:新基建人均月薪17895元,核心人才缺口420万
- PIC单片机 IIC通信及实现
- 任意长度的两个大数的乘法
- vue-router的路由
- 展讯康一:2020年推出5G芯片 第一桶金含金量最高
- 带你了解zabbix整合ELK收集系统异常日志触发告警~
- 【图像隐写】基于matlab GUI DCT数字水印嵌入+提取【含Matlab源码 1671期】
- 直播带货系统,实现直播间人数统计
- 去掉U盘写保护 修复u盘错误
- Java中区分中英文
- python青少年趣味编程-青少年趣味编程Python系列课程--2018-07-17
- 深信服服务器 重装系统,sangfor云服务器更换系统
- 技术科普:虚拟现实系统
- 黑白图片和黑白图片上色系统毕业设计,AI黑背图像上色系统设计与实现,AI黑白照片上色系统论文毕设作品参考
- iOS最全的三方库、插件、博客汇总
- 图深度学习——卷积神经网络循环神经网络自编码器
- 固体理论习题演练双时格林函数的运动方程
- OFDM完整仿真过程及解释(MATLAB)
- amd锐龙笔记本cpu怎么样_锐龙笔记本性能怎么样?看完这期评测你就懂了
- PYCHARM SHOTCUT
热门文章
- 好听的英文歌-阿黛尔两首
- 庆祝成为CSDN博客专家
- PL/SQL(英文版)中如何改变 字体大小
- Linux九阴真经之九阴白骨爪残卷3(DHCP、TFTP服务的安装与启动以及PXE安装Centos7)...
- 【自然语言处理】【词嵌入】dLCE:将词汇对比集成到近义反义的词嵌入中
- Java中float_java中float什么意思?
- 红队渗透靶场之W1R3S靶场(超详细!)
- linux 硬盘格式化,挂载,反挂载等操作
- python项目的构建setup.py
- 小妞会装机 -- 一个装机软件的开发笔记(八)