2018忙忙碌碌

         很久没有按时更新博客了,近来确实忙出天际,最近两月也是工作这些年以来最为忙碌的日子。一个比较复杂的核心功能,由于第一次接触,又只是几瞥,只懂得大致流程,里面很多的业务包括细节都不太清楚,过需求的时候,还在帮忙着给其他部门做项目(demo改着改着就变成了客户端)以至于耽误了一个多星期,后来匆匆着手,还要一边负责写整个与linux数据交互的kafka服务。就是把任务信息发送到linux上,然后把linux上程序处理的数据全部接收,然后解析冗长的json字符串,最后存入到windows数据库中。大致有6个服务的样子。多线程的方式去交互这些数据。对于一些服务,本来一切顺利,默默熬了几个十一点把这些服务写完测完。毕竟前期耽误了很多时间,这下可以着手项目核心模块的开发。结果这个时候麻烦就来了,同事每每要解析后入库的数据的时候,都要让我去写测试数据,有些服务的测试数据关联两表,字段又多,测试数据中的某些栏位(文件路径)还要在Linux上真实有效(测试数据无效的话,服务会解析失败),这就不是一两分钟就能解决的事情了,毕竟是手动添加测试数据,而且每次都是急等着要数据,当时对kafka tool监听工具的使用也比较生疏,连续往盒子里面放数据,都是按照顺序在另外一盒子中取数据,只有等前面数据消费完才能去消费后来的测试数据,所以不管添加几遍新的数据,服务处理的始终是以前未处理的数据,当我强制清空盒子数据的时候,必须要在linux上重启kafka服务才可以,不然就会报错(花了二十分钟才找到这个原因),打这开始就挨骂,之后每天挨着骂频繁给他们写测试数据就耽误了很久的时间了,按道理说当服务写完,当有需要解析后的数据时,应该是各自负责写自己模块的测试数据,我频繁帮别人加数据耽误自己进度不说反而挨骂(只怪自己太好说话了,不懂得拒绝),晚上只能独自加班到十一点搞自己核心模块的事情。

       模块的业务并不是想当然的简单,涉及到非常多的状态要判断,web前台状态要实时用setinterval去跑,一个状态完成之后要去调用一个c++封装的exe程序,然后去监听返回值(每个exe都会返回多笔数据,数据中包含进度值),解析并写入数据库,前台又不断的去数据库刷进度值。一个完整的单个流程就需要五个exe要去调,界面中有些是自动setinterval跑,有些状态是手动点击按钮去setinterval跑。当时自己的思路就是web负责写数据,读数据(进度),然后再单独写服务来负责调用exe,然后监听接收的数据,更新数据库。逻辑可以走通。对于web来说难点就是 实时setinterval-状态判断,要记住当前界面的动作,还要监听之前的动作,以及中途随时出现的新动作,当前动作完成之后的下一个动作,会有很多的控制。对于服务来说要根据不同的状态调用不同的exe,然后监听对应的数据,有些exe可以同是执行一定的个数,有些exe必须单独执行,而且exe的顺序不能乱,一个人根本忙不过来,一边画界面,写模块代码,一边写服务,还要一边出帮他们写测试数据,有时候表结构说变就变,还要去改kafka对应的服务。真是顾此失彼,捉襟见肘。即使天天搞到十一点,十二点,周末也用上,进度仍然跟不上,web前端,web后台,windows服务 必须同时都通才能保证某一步骤的完成。而且调用完一个exe的过程又相当长,有时候十分钟,有时候半个小时,有时候一个小时,中间又涉及到(原图与画布图)坐标的换算,txt特征文件写入,提取,再换算,解析。。。等等,简直是海量工程啊,一个实在忙不过来,期间对于界面中的一个公用功能,比如文件列表状态(成功、失败),实在没时间去深究,直接把其他模块中的方法拷贝过来。却被骂,一直做无用功啊,全是抄袭别人的代码啊(我一个视图写了大概2000行的jq,公共功能直接粘贴的大概有50行吧,真是呵呵),这么简单的一个模块怎么每天进度这么慢啊,骂的身心俱疲,晚上搞到十一点,周末加班搞,白天还时常被这样骂,A股又是如此的喋喋不休,感觉真的要猝死,中途进来一个前端大概是偷懒把我某个界面中的js 替换了模板,是真模板因为DOM元素的id啥的一点没变和别的界面一样,这样肯定会导致我界面本来写好的功能就没有了,这也要算在我头上,说过去这么多天这么简单的查询和删除怎么还没写完,有一次白天被骂的准备反驳的时候,发现自己完全说不出来话,失声了,胸中一直一团气压着喘不过来,何必如此作践自己!想了很久,本打算把这个项目搞完再走,但是自己晚上熬夜加班,白天天天被骂,实在是坚持不了,直接提了离职,自认能力不足,无法胜任。各种劝之后,被提出了一些方案,把当前模块中可以细化的功能都分出去,这里也着重感谢一下新来的同事,帮了很多也很大的忙,让我可以把重心放在web主流程上,最后加班加点好歹赶上了最后约定的期限。

       项目是其他部门两年做完的,我们被要求两个月完成,而我负责的核心模块之前就被单独拿出来作为一个系统开发过。又在没有原型只有冷冰冰的img设计下,搞清楚业务细节着实不容易。 经过这次事情以后,发现自身确实存在很多问题需要反省,不能太老实,不要埋头一个人搞,不管时间再急,一定要搞清楚业务后再写代码。自己的工作量一定要有评估,包括难度,业务量等一定要让项目组长知道,不然你这边累死累活搞事,别人反而认为你做事拖沓,水平差。简单的东西迟迟做不出来。

        作为本身就是高危行业的程序员,虽然奔三还有好几年,我却发现自己真的是老了,身体上免疫力的直线下降,再也不复当年壮小伙的颠覆状态,大家都是面向工资编程,虽然钱很重要,但我向来认为如果做的开心,薪资相对少一点也没关系,毕竟在俗人的世界里也需要一点点卑微的尊严吧!相反,工资再高,却天天被骂的工作也没什么搞头,并且这还只是拦腰斩的武汉。

猜你喜欢

转载自www.cnblogs.com/Sientuo/p/10340344.html