河北沧州网站建设,国外网站设计版式欣赏,网站优化公司哪家便宜,cpa广告联盟网站建设教程作者#xff1a;邹溪源#xff0c;长沙资深互联网从业者#xff0c;架构师社区特邀嘉宾#xff01;一1#xff09;有一天#xff0c;我的朋友Y童鞋分享了他正在做的一个内部开源项目#xff0c;这个开源项目从外表上看#xff0c;跟目前市场上那些代码生成器本没有特别… 作者邹溪源长沙资深互联网从业者架构师社区特邀嘉宾一1有一天我的朋友Y童鞋分享了他正在做的一个内部开源项目这个开源项目从外表上看跟目前市场上那些代码生成器本没有特别大的区别所以我兴趣并不大。在他给我介绍了一下具体需求之后我才体会了他的意思并提起了那么一丢丢兴趣。。毕竟听起来有点“鬼扯”为啥因为他居然试图依靠这个项目来生成”单元测试“。。。。他定义好数据库表和结构然后就生成逻辑方法和代码、以及界面还同时把“单元测试”代码给生成了免得程序员要花时间去思考代码逻辑之余还要想怎么写出可测试代码。我这样生成的代码还有灵魂么。。他有啊编写高可测试代码不就是我辈中人这些有追求的码农应该实现的目标么我这种模式怎么越看越想埃里克埃文斯大佬说的“Smart UI”模式啊。。他你倒这么说也有那么一点点像。2我当然能够生成单元测试倒也可以。毕竟大部分单元测试看起来似乎是一模一样的。无外乎就是“ Arrange\Act\Assert”AAA操作猛如虎测试代码一把梭。他我这个东西生成的代码除了看起来提高了单元测试覆盖率之外其实并不能提高代码的质量。我是什么逼得你要花时间去开发这样的代码生成器呢他还不是被这班菜鸡开发者们产出的劣质产品闹腾的。我不是想着省测试的钱又能提高产品的质量么就自然而然只能靠压榨“程序员”来实现了。但是让我来对这么多人的代码进行审查还是太难了。这不用单元测试来操作不就可以了3我你们太难了。为啥这么赶啊他这不是甲方爸爸要加需求他说得倒是好加需求也就几行代码多简单。但是我们这边就得忙翻天太特么累了。我那能不能多招几个测试他端到端测试只是看起来将缺陷扼杀在摇篮而已实际上。。隐藏在冰山下的缺陷呢。。客户就是小白鼠啊。再说我们现在家业太小测试有两个了再招就请不起了。。功能是不能少的bug是不能多的我只能想想单元测试这种办法了。我好吧。。我们也一样。。二1之前有个朋友老张介绍了一个故事仿佛跟这个有点类似。他有幸参与了一个交通信息化的项目这个项目的业主是国企单位属于“体制内”的企业。在过去一波有一波的信息化发展过程中这些体制内的企业仿佛成为了许多IT企业竞相薅羊毛的对象。为啥国企项目多、钱也不少关键是国企对软件质量要求不高啊。许多企业借助国企项目他们依托所谓“快速上线”的神器将中华民族艰苦奋斗的精神发挥到了极致公司能够在最短的时间内将原本停留在脑海里的软件快速的转化成为实现并部署到甲方爸爸的现场环境中。至于软件的质量、软件的工程化水平对不起不重要用户体验性能功能可用性重要么不重要。先快速上线回款再说。于是这些企业获得了业绩的腾飞老板们赚得盆满簸赢好不自在。而且老板们还会吹我们公司最大的优点就是在逆境下生存的能力能够在最短的时间消化需求做出最符合客户需求的软件。好吧仿佛这也是软件工程的一种方向快速开发。。。。2然后有那么几年市场突然间就“做烂“了。一方面国家将投资方向重点放在了房地产领域对信息化的投入也逐渐收紧了许多另外一方面企业过去匆忙上线了太多的软件系统不同软件系统之间的对接沟通困难操作过程缺乏连贯性使得基层员工开始抗拒这些”看似“能够带来效率提升却容易出现各种质量问题导致自己过去几天工作量返工的所谓”信息化“系统另外大家也都很清楚效率提升其实带来的是”裁员“首先被裁的…总之有那么一段时间国企对信息化是“弃若敝屣”的。三1但随着“互联网”和“共享出行”的兴起又让这个概念重新热炒了起来。老张他们公司也有幸接到了一个这样的项目公司还是一家非常大的出租车公司拥有二十多家子公司员工超过2万人。这个项目的目的是打通出租车和旅客的关系借助于手机实现快速出行同时打通企业内部信息孤岛让总公司领导能够第一时间看到各种数据的流转情况为建立科学决策提供依据。老张被选为这个项目的负责人。在项目启动会上他意气风发向业主和公司老板们保证将带领公司团队与甲方团队一起以饱满的姿态打响这场战役为业主的业绩腾飞贡献自己的一份力量。然而但项目启动后他才深刻的明白这究竟是一个怎样的坑。2首先是业主关系由于业主是一家涉及大几万员工和二十几家子公司的大型集团公司需要梳理的业务表单非常复杂业务流程和体系远比甲方爸爸预想的要复杂得多。其次是开发周期短不知从何时起国企对于软件系统的印象就是“简单、容易、很快就能实现”仿佛一个需求只要说出来这般不要命的程序员们就能很快的实现功能。当老张跟他们提到需求太多根本做不完时甲方爸爸甚至说怎么可能有做不出来的软件系统是不是你能力不行再次是外部系统多由于不同的子公司往往采购了不同的系统要统一对接到一个系统 。还有就是涉及的技术点多需要在许多领域进行专门的技术攻关由于公司暂时缺乏相关资源使得开发过程屡屡收到阻塞。3经过长达几个月的需求调研老张编写了一份超过一千页纸的需求规格说明书并获得了业主的批准但项目正式开始时他却只获得了短短半年的开发周期。此时他手上能够调动的开发者资源才不过10余人。为了干完这个项目他和项目团队的成员不得不牺牲周末和假期辛苦坚持了半年才把项目功能都开发完但在项目实施环节时由于子公司与总公司的意见不统一根本用不起来。最终项目崩盘公司倒闭甲方将近一年的投入近乎白费。老张和项目团队也白白辛苦了大半年还得去劳动仲裁找老板讨薪。回顾这段时光时老张说了一段话企业信息服务化的项目看起来合同工价很高其实都是坑啊。有的业主根本不懂什么叫“合适的软件”。在互联网如此发展的今天这些业主要的还是“快速开发”。但凡想到什么就往里面加程序员不猝死太难了。往往今天提明天就要用了一次就不用了我根本不知道这些软件干出来有什么意义。四仔细想想许多传统企业领导想转型到互联网不就是这样么恨不能一天就把项目干完干完项目就“升官发财”至于项目能不能用谁知道呢。。也许他们要的并不是软件而是一种“代码生成器”。嗯输入“甲方爸爸的一万种需求”输出“一个功能齐全、包容万物、自由变化的软件”。。作为有追求的码农们我们能像Robert大叔在《代码整洁之道-程序员的自我修养》一书中写的方法选择“拒绝”么。额。。生存要紧。。偶尔吐吐槽饭还是得恰啊。长按订阅更多精彩▼如有收获点个在看诚挚感谢