各人一提到措施员,首先想到的是以下标签:苦逼,加班,熬夜通宵。可是,图纸加密,但凡事情了的同学都知道,其实大部门措施员做的工作都很简朴,代码CRUD可以说毫无技能含量,就算什么不懂依葫芦画瓢许多成果也能委曲做出来,做个多线程并发就算高科技了,措施员这行的门槛其实照旧较量低的。(这里说的是大部门,有些牛逼的,写算法、jvm等的请自动跳过)
是不是以为很抵牾,一方面事情不巨大,一方面却累成狗。有没有想干涉题出在那边?有没有想过期间都花在那边呢?
对付我小我私家来说,编码照旧一个相对轻松的活(我是认真公司it系统的,没有太多技能含量,数据量大,但并发量不大)。从事情到此刻,我加班编码的时间照旧较量少的,我到此刻为止天天还会编码,很少因为编码事情加班。
各人写的对象都是一些crud的业务逻辑代码,为什么各人这么累,加班加点每天都是格斗者?我从本身带的项目中调查中发明,大部门人的大部门时间都是在 定位问题 + 改代码,真正开拓的时间并不多。定位问题包罗开拓转测试的时候发明问题和上线后发明问题,改代码的包罗改bug和因为需求变换修改代码(后头专门开一贴说如何应对需求窜改)。
所以说,simple is not easy。许多人就是因为以为简朴,所以成果完本钱身测试ok了就算了,没有思考有没有越发好的方法。归根到底是因为编码习惯太糟糕,写的代码太烂,导致无法定位频繁修改频繁出问题。(后头我会具体讲一些我看到的大部门的编码问题。)
其实,对付小我私家来说,技能很重要,可是对付事情来说,编码的习惯比技能越发主要。事情中你口试的大部门技能都不需要用到的。事情中,因为你的编码习惯欠好,写的代码质量差,代码冗余反复多,许多无关的代码和业务代码搅在一起,导致了你疲于奔命应付各类问题。
所以我作为SE,不管接办任何项目组,第一步就是拟定代码框架,拟定项目组的开拓类型,把代码量减下去。事实上证明,这一步之后,各人的代码量能下去最少1/3,靠山的问题数下降较量明明,各人的加班会比之前少。
给各人一个直观的例子。下面是controller的一个删除数据的接口,我来之前各人写的这个样子的(其实一开始比这个还差许多),成果很简朴,输入一个工具id执行删除返回是否删除乐成。各人有没有以为有什么问题?
@PostMapping("/delete") public Map<String, Object> delete(long id, String lang) { Map<String, Object> data = new HashMap<String, Object>(); boolean result = false; try { // 语言(中英文提示差异) Locale local = "zh".equalsIgnoreCase(lang) ? Locale.CHINESE : Locale.ENGLISH; result = configService.delete(id, local); data.put("code", 0); } catch (CheckException e) { // 参数等校验堕落,这类异常属于已知异常,不需要打印仓库,返回码为-1 data.put("code", -1); data.put("msg", e.getMessage()); } catch (Exception e) { // 其他未知异常,需要打印仓库阐明用,返回码为99 log.error(e); data.put("code", 99); data.put("msg", e.toString()); } data.put("result", result); return data; }
其实上面的代码也没有大问题。而我接办之后,我会开拓本身的代码框架,最后拟定代码框架交付的代码如下(这是controller的部门):
@PostMapping("/delete") public ResultBean<Boolean> delete(long id) { return new ResultBean<Boolean>(configService.delete(id)); }
用到的技能就是AOP,也不是什么高妙技能。怎么样?代码量就一行,特性一个都没有丢。这就是我们项目组此刻的controller的样子!(假如刚好有我带过的项目组的人,看到ResultBean<>应该很熟悉应该知道我是谁了)
所以说技能无所谓坎坷,看你怎么样用。上面的代码简朴说一下问题,第一,lang和业务没有什么干系,我后头的代码框架去掉了(不是说我后头的代码没有这个成果,是把他埋没起来对开拓人员透明白,利用的技能就是ThreadLocal)。第二,前面谁人代码,实际上干活的就只有一行,其他都和业务代码没有一毛钱干系,我的代码框架内里完全看不到了。
利用的技能真的很简朴,可是编码结果很是好,软件开发,因为各人不要因为利用的技能低级就以为不重要!!利用这套框架后,各人再也不需要大部门时间都写一些无聊的代码,可以有越发多时间进修其他技能。说实话,在我项目组的开拓人员都是较量幸运的,以为能学到对象,不是像其他项目组,软件开发,写了几年都是一样的CRUD代码,固然我较量严厉,可是照旧愿意待在我项目组,究竟加班比其他项目组少啊。