美文网首页CodeArtisan@IT·互联网程序员
你当我想写“垃圾代码”吗?

你当我想写“垃圾代码”吗?

作者: 王亟亟 | 来源:发表于2016-07-24 11:05 被阅读376次

    转载请注明出处:王亟亟的大牛之路

    先安利:https://github.com/ddwhan0123/Useful-Open-Source-Android

    最近会把收纳库的结构重新编排下(因为现在里面的内容已经会卡挂浏览器了,需要优化下)

    最近的2礼拜的周中几乎每天都是11点到家,有时候是出去运动有时是加班干活,感觉这个繁忙程度是这两年来最忙的了,而且感觉还会继续下去。

    本来前两天就想写些什么但是一直有事被拖延了,今天正好休息,又有空余的时间就把最近遇到的种种写一下,并且对这些天的一些情况做一些总结

    故事背景:

    之前一年一直做内部SDK开发,公共Lib库的编写以及项目底层“架构”的工作,7月月头换了个公司。

    一开始被分配的工作也和之前做的工作内容类似,然后因为企业在整“敏捷开发”,然后被业务部门的Leader“相中”就被安排需要去做了业务。

    本身本着配合,理解,服从的角度准备着手开始干活,然后就是 忙爆炸(也许是我之前没接触过类似形式,反正到现在还没完全适应)

    敏捷开发:

    这个名词现在看来并不是新鲜名词,但是并不是所有公司都玩这套,这里用我的理解来描述下我眼中的“敏捷”是什么东西

    项目版本 : 1.0.0

    下个版本: 1.1.0

    新版本迭代周期:10个工作日

    功能点 40个 (40个功能点,理论上没有交集)

    参与人员 5个小Team

    怎么个有运行法呢?

    git 有一个共有库 叫 1.1.0版本(它本身没有东西),他有个分支叫1.1.0_Dev(周期内过测的都会commit到这里),1.1.0_Dev下面自己建个本地分支叫 1.1.0_Dev_1~~1.1.0_Dev_40(这个本地分支就自己命名了,反正测试 产品 UI UX说OK了就往1.1.0上面合)

    git环境大致如此

    Team的概念是什么?

    我们5个组去把40个功能点做掉,不是平均一个组8个,抢到就是谁的,反正2礼拜全得干完,干不完怎么办?加班

    这里的40各功能点也不全是移动端的工作量可能有纯 前端的,可能有纯后台的,可能有合作开发的。

    这里面就出现了这么个问题,一个Team可能同时背着1~2个功能点(一般来说会尽量均衡前后端的工作量,但是这也是理论状态,几乎不可能完全均衡)

    然后这就造成了什么情况?

    前端/移动端的任务横向 Team与Team的交叉会越来越多,很有可能你在别人没Commit的代码上修改,然后中午吃好饭别人把代码一合并,你一脸闷B,造成了多余的工作量,万一出现难处理BUG怎么办?加班!2个礼拜1版本的大方向不许变

    后端相对情况还好,因为架构师会对数据库整体模型做很好的处理,所以不会对表结构,数据结构有很大的影响,只是对数据的增删查改,并且一般不同Team都会在独立的迭代空间。

    但是前端/移动端页面会有交叉!!交叉!!!懂不懂!!?

    因为别的Team的BUG会影响你,你的BUG会影响你,任务点设计不均衡会影响你,工时预估不正确会影响你,ABCDEFG都会影响你

    这一系列造成一个什么结果?

    根本停不下来,这是真的停不下来!!加班!!!


    垃圾代码的产生


    业内有个不成文的“规定”,业务代码不需要质量,能执行就行

    长期写着这种“满足领导要求,满足UI设计,满足项目需求,满足业务逻辑”的代码对自己有什么好处么?

    很多时候作为底层的“码农”我们并没有选择权,然后我们的青春就浪费在了重复写垃圾代码里,浪费在了“项目目标里”,自己得到的也就是比正常小白领多一点的薪水,但是自己的发展空间被严重限制了。

    为什么说这些是垃圾代码?

    一开始接手项目,到完成第一个功能点花了我2天。

    第一天,“这TMD写的是啥?”

    第二天上午,“我应该快猜出来了!”

    第二天下午,“算了吧,我还是自己重头实现吧”

    第二天晚上10点,“唉,我自己从头写一晚上就写完了,猜原有的代码却猜了2天”

    我不知道其他刚接手的小伙们是怎么干活的,至少我一开始是一脸闷B。

    1觉得接手一个项目的代码起码让我看个 2 3天得让我知道我在干嘛?我看的是什么?然而现实跟我说了“No,以后再说,先实现现有任务点”

    给我的感觉是,等我这阶段功能点实现完估计项目又变“脸”了。。。

    在我的理解里,项目的开发周期分为2部分。

    第一部分基本实现,也就是我们常说的,能运行,没有大错,性能有待提高。

    第二部分,提高,优化,封装,等等。

    在我现在的项目体系下这部分肯定不会归到“初创人员手里做”,因为他们要去做新的功能点了

    谁做? 架构组做?

    估计花时间找类也是个技术活。

    这一系列的结果导致项目代码越来越大(3成都是重复代码),后面接手的人脑子里全是问号。。。

    有句话是这么说的,源码其实是没有用的,更重要的是算法和思想,然而重要的部分被 项目周期“压榨了”。

    到最后有一天,项目实在过于臃肿了,要重构,要优化,这些锅都会甩给程序员,高层:“这些菜鸟写的都是些什么东西?”

    我在这里想说的是,你当我想写“垃圾代码”吗???

    这篇写的有点负面,不够正能量。。但是 这就是事实。。唉。。。

    各位,加油,努力,保重身体哦!!

    相关文章

      网友评论

      • 齊葩:我已经机智的脱坑了。
        齊葩:写自己的代码让别人说去吧
        王亟亟:@齊葩 WHAT
      • apkcore:我们公司开始也用敏捷开发,累得要死关键是代码质量上不去,现在还是用传统开发
        王亟亟:@Trash 需要极为强大的底层架构和开发人员水平的高度统一 有残次不齐就会产生偏差

      本文标题:你当我想写“垃圾代码”吗?

      本文链接:https://www.haomeiwen.com/subject/kunwjttx.html