话说软件开发中的规范性


    这个话题要从最近工作中接触到的一些问题说起:大概情况是这样的,公司年前收购了一家公司(以下简称Y公司),虽然行业领域相同,但从业务模式到技术框架都是截然不同的。我们原有采用的是C#、.Net架构,Y公司全栈采用Java,Dubbo微服务架构,本人刚好在公司主导了几个Java项目实践,被分配到接手Y公司的部分项目。几个月下来,感触颇多,简记如下:

  • 项目模块缺乏整体规划,同一功能出现在项目的多个模块中,重复代码比比皆是;
  • 与第三方平台接口不规范,比如与X团的API接口中需要获取Token及加密,这样的接口本可以在一个地方统一实现,但却散落在各个地方,且用法不一;最奇葩的是明明对方的结果有返回代码(returnCode)和响应消息(message),却偏偏要自己定义一个枚举类来解释返回代码,最要命的是这个枚举是不完整的,结果就是有些代码找不到就抛出了一个异常”找不到对应的代码“云云,在调试过程中一头雾水—难道不能直接用人家的代码和消息吗?
  • 对于底层协议调用没有统一封装,最典型的比如HTTP协议,几乎所有的十几个项目中都有HttpUtil,从Header到PUT/GET/POST都要层层处理,不知道有OkHttp,更有上层封装Retrofit可以直接用吗?还有Json处理,甚至String处理都要写一堆,还各个项目各自为政,结果是出现了一堆无用的代码,臃肿还不能保证效率和正确性。

    上面的问题都可以归结为代码的规范性,如果大家是一个团队,就应该互通有无,有所分工,不要重复造轮子,首先要利用已经有的开源框架,其次要有统一的底层框架;这样既能提高整体效率,也保障了代码的稳定性和可维护性。试想,如果一个地方出了问题,比如第三方接口做了变化,那么上述的编码方式岂不是要改几十个地方?

    其实规范性的重要性不言而喻,大家都懂,特别是对于团队开发而言,更是如此。那为什么实际执行下来就这么难呢?其实是一个团队领导力的问题,当今互联网行业,许多是赚快钱,只求快速上线,不出bug就行,至于怎么实现的,什么规范性、复用性,不值一提。但是仔细想想,日积月累,这些东西就变得了“负”能量,时刻在影响着你的产品质量,当然也包括成本。到最后,大家都改不动了,习惯了差,没有了改的动力,到这时候就是整个团队的悲哀了。说到底是一种文化和精神,如果一个公司只求眼前利益,没有对细节和质量的追求,那么永远也成为不了一家伟大的公司,为之工作的员工也只能浑浑噩噩,打更混日子了!

我的前半生(技术人生)

(-)缘起

    冬季的北京,有些晴冷、干燥,位于望京的这个科技园有些荒凉,倒是旁边的街道上停得满满当当的车显得不甚协调。好在只在这里呆两天,现在已经坐在回上海的高铁上,窗外飞速飘过一排排光秃的树梢,黄土地上还有一些亮晶晶晶的积雪,心情有些放松。旅途的意义就在于让你能在周而复始的平日生活中得到一丝喘息,换一种方式放空心情。

    回想一天前还彻夜未眠地赶一个上线的项目,直到早上8点多,上车后两个小时、上班前一刻才搞定。这一切只是想在出差的两天能够让上海的两个小伙伴能够继续工作。没人催促,只是凭着一腔热情、卑微的自尊心和责任感自我驱动。这样的情况最近两年,每半年就会出现两三次,就是遇到一个技术问题,就会不眠不休,直到攻克为止。妻在一旁直心疼,总是提醒我注意身体,我也隐约中觉得不妥,可事情总是这样重复发生。有时候会忍不住想是不是年纪大了,珍惜时间?心中总不免泛出一丝的酸楚和无奈,另一方面,却还是有些成就感的。

    写博客的想法一直有,总觉得就这么每天干些和年轻人一样的事,写写代码,攻克一个又一个自己觉得了不起、别人也许不屑一顾的难题,有点蹉跎人生的感觉。加上这段时间同事、上级也鼓励我搞搞副业、做做分享,人生多一种可能,也给自己留点后路,传道授业总是越老越值钱的,这是一个可以做到老的事业。马云退休后不也当了“乡村教师”嘛,于人是一种帮助,于己也是一种慰藉,何乐不为?加上如今无处不在的媒体渠道,各种网红层出不穷,这些东西已经不泛传播渠道了。

    要写的内容也很多,但主要围绕技术主题,夹杂着一些人生体会,自勉也希望能给他人以启发。

(二)现状

    本人现在年近半百,明年就是本命年,两鬓已然斑白;目前就职一家民企信息技术部,抬头还是资深开发工程师,手下两名刚入行两三年的小伙伴,收入在上海勉强能够在中等水平;名下入门级小车一辆,50多平的蜗居一套附带百万房贷,膝下有一子即将高考;另有小女尚在咿呀学语,甚是喜人,余生唯此而有奋斗之动力。

    此等境况可谓不堪,但比起不写代码、管理不上路、尽是茫然空虚的那些年,重拾技术让我又觉得脚踏实地,找到了失落的自信。

———回到了湿漉漉的上海,闻到了熟悉的味道,暂且分割,回头再续———


(三)新起点  

    —相隔大半年,终于想起还有这一未完篇。期间见识了旷世未见、影响世界的疫情大战,以及随之而来的中美各种混战,仿佛变了天。所幸还有赖以生存的工作和温馨舒适的家,每日有妻女相伴,小儿也度过高考之役,不算太坏。外面的世界风云变幻,愈发显得小环境的安宁祥和,有生如斯,夫复何求?

     昨日看一个技术视频讲程序员如何做副业,说到公众号、培训等等无不是技术分享,和前期所想的技术博客并无二致,是原创还是转载、主题怎么确定?这些都是问题,但关键是要开始探索,终究会找到适合自己的方向的。

    早上上班途中想起了博客的笔名或者名号,就叫“信码由缰”吧,借用这个成语暗含码农人生、自由不羁之意,内容上也是关于软件行业的各种随想。第一篇是关于最近在工作中看别人的代码引发的规范性、封装性和框架(第三方)方面的感想,以此为起点,开启技术博主的人生旅程吧。

继续阅读“我的前半生(技术人生)”