我最鄙视的程序员

今天在技术群里看到关于优秀程序员特质的话题,让我想起多年前的一个同事,一个我最鄙视的程序员。

他的名字叫李伟(化名),是入职没多久的员工,我所在的开发二组和他在的一组,以前没有过工作交集。某一天上级安排我们两组人合作开发一个小额贷款项目,在基础服务上构建一个可以灵活对接多个贷款渠道的系统。

我最鄙视的程序员
  • 渠道对接层:承接渠道的原始数据,解密并解析为我方可以处理的格式和字段。每个渠道对应一个独立的微服务,调用业务融合层的接口,完成业务流程。
  • 业务融合层:处理渠道编号和订单、还款等业务映射关系。融合多个流程整合到一个接口中,对外提供标准化的接口,类似中台的概念。

一组的组长安排他做了几个重要的事情,具体是定义订单、还款等接口,调用更底层的业务接口实现自己的接口业务。我们对接流量渠道,调用他定义的接口完成业务流程。通常新人做事难免磕磕碰碰,但是项目的时间很充裕,做一些重要的事情也能更好的展示自己的水平。我认为他的组长的安排没有问题。

我们先开会学习和讨论了产品流程,目的是让每一位开发人员都知道数据结构和走向。为了确保我们的进度,我建议他先给出接口定义,再找个会议室,双方评审一下接口,确认无误后通过maven发布依赖包,这样我们就可以填充代码了。他答应了先给接口定义,但是拒绝评审接口,理由是这个东西很简单,不用大费周章。我考虑了一下,等他给出接口定义,我们认为有问题就指出来,算是非正式评审。整整过了一周,他的接口终于来了,总共4个接口,每个接口里面有6、7个方法。这个事情拖延了一周,让我有点不快了。

他给接口的方式让人耳目一新,直接把接口源文件甩了过来。公司有一套采用RAP2搭建的API管理系统,还是他们一组牵头做的。作为一个新人,应该先熟悉公司有哪些辅助开发的系统,就算同事不告诉你,也要主动问。更妙的是,他的源码一行注释也没有,好在代码的英文单词都是常见的,我们勉强能看懂。

我们内部评审之后,发现有几个方法的入参有9个之多,于是建议他封装在一个JavaBean里面。

List queryLoanOrder(String channelId, String orderId, Integer userId, Bigdecimal minAmount, Bigdecimal maxAmount, Date startTime, Date endTime, Integer pageSize, Integer pageNo);

他有些不悦,认为意义不大,缺了参数继续加就行。毕竟不是我管理的人,我不想花心思教育,只说这是公司代码规范,希望他务必改一下。他不情愿地改了入参,结果都变成了JSONObject。

List queryLoanOrder(JSONObject jsonObject);

我问他为什么要用JSONObject,得到的回复是:这样更灵活,往JSONObject里面 put key / value 就能增加参数。我直接来个灵魂三问:1. 必须要看文档才知道key是什么,value的类型是什么,而你又不给文档;2.采用不明确的入参,Hibernate Validator肯定用不了,打算怎么做参数校验;3. JSONObject有什么特别之处?用Map也是一样的。在我的拷问之下,他又屈服了,改成了JavaBean。如果他有足够的理由说服我,我倒是敬他是条汉子。

进入接口联调阶段,我们的同事事先跟他约好周二下午四点联调订单接口。到了周二下午,我们调了几次订单接口,发现返回结果不理想,把数据发给他看看。

“接口实现我还没写好呢,结果当然不正确。”
“那你为什么答应联调呢?”
“只是联调,调通了就行,为什么一定要完全正确?”
“什么时候可以完全正确呢?”
“提测之后,测试人员测出问题了,我就改改。”

我意识这个人不行,马上跟他的组长反馈了问题。再与他沟通的时候,表现的更不积极了,无论事情大小,都要一催再催。我有查阅所有相关项目代码的权限,闲来无事看了看他的代码。在一个订单接口实现里面发现这样的写法:

if(orderId == null || orderId.length == 0) {
    throws XXXX;
}

我友好的提醒了他:StringUtils的运用是基本功,这个写法可以改成 StringUtils.isBlank(orderId)

“不是一回事吗?”他淡淡的回了一句。
“代码能跑,只是底线,不是及格线”,我终于愤怒了。

后来,一组组长让他走人了,没过试用期。这是我见过基本功最差、态度最不端正的程序员。我不知道他怎么被招聘进来的,招聘流程肯定有问题,他的组长也有失职之处。

Original: https://www.cnblogs.com/xiaoyangjia/p/16414604.html
Author: 编码砖家
Title: 我最鄙视的程序员

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578105/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 设计模式-单例模式

    目的:为了保证一个类在程序中只有一个实例,并且能被全局访问 场景:全局线程池 要点: 通过 Test::Instance()获取类指针 class Test { public: s…

    Linux 2023年6月8日
    0115
  • shell加密

    如何保护自己编写的shell程序要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1、加密 2、设定过期时间,下面以shc工具为例说明: 一、下载安装shc工具s…

    Linux 2023年5月28日
    0106
  • redis后台启动

    打开redis.conf文件 把daemonize设置为yes posted @2021-11-25 15:30 HongMaJu 阅读(73 ) 评论() 编辑 Original…

    Linux 2023年5月28日
    0108
  • MySQL注入 利用系统读、写文件

    MySQL能读写系统文件的前提 不同系统、不同的数据库版本有细微差异,以下实验在Windows10和Mysql 5.7.26下操作; 1.拥有该File的读权限 、 该目录写的权限…

    Linux 2023年6月6日
    0133
  • 实验一 密码引擎-4-国䀄算法交叉测试

    任务详情 0 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码…

    Linux 2023年6月8日
    0118
  • 《Redis开发与运维》——(八)理解内存(脑图)

    posted @2021-01-09 15:08 雪山上的蒲公英 阅读(122 ) 评论() 编辑 / 返回顶部代码 / Original: https://www.cnblogs…

    Linux 2023年5月28日
    0122
  • 文件夹图标修改软件 FolderIco

    本来文件夹图标是可以自定义的,只要找好图片,在软件中把图片格式转换成ico,再在文件夹属性中设置图标就可以了。 但是我发现转换出来的ico不够清晰,只有256*256,在大图标模式…

    Linux 2023年6月6日
    0132
  • 分布式系统架构理论与组件

    1.分布式系统的发展 在计算机发展的早期,一直都是集中式计算,计算能力依赖大型计算机。随着互联网的发展,繁重的业务需要巨大的计算能力才能完成,而集中式计算无法满足要求,大型计算机的…

    Linux 2023年6月6日
    0122
  • Isilon 的OneFs常见操作命令(一)

    1背景知识: Isilon的oneFS是基于Free BSD的,FreeBSD 是一种类UNIX操作系统,因此有些类似Linux操作系统的常见命令可以直接使用,但有些又略微差别,需…

    Linux 2023年6月6日
    0155
  • WEB自动化-05-Cypress-元素交互

    5 元素交互 元素识别和操作是UI自动化测试的基础,下面一起来学习一下在Cypress中的元素交互操作吧。 5.1 元素定位器选择 每一个测试用例都包含对元素的定位识别和操作等。因…

    Linux 2023年6月7日
    0122
  • TCP三次握手 四次挥手

    最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,…

    Linux 2023年6月7日
    0106
  • protobuf 的交叉编译使用(C++)

    为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,在进程间通信或者设备之间通信能够提高通信速率。下面介绍 …

    Linux 2023年6月7日
    0162
  • shell join详解

    首先贴一个,join –help 然后来理解下。 join 【命令选项】 文件1 文件2 //命令选项可以很多, 但文件只能是两个 先从重要的开始说,join 的作用是…

    Linux 2023年5月28日
    094
  • 离线版centos8安装docker笔记

    嗨嗨哈哈,已经很久没有坐下来胡编乱造一点笔记了,平时云服务器搞惯了,一个命令就安装好了docker了的,但这次生不逢时的新机房就没那么幸运了,有多不逢时超乎想象,不仅仅服务器没有外…

    Linux 2023年5月27日
    0150
  • JAVA环境变量配置

    java环境配置 下载jdk地址如下: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载安…

    Linux 2023年6月7日
    0130
  • Linux 服务器安全(基本)

    Original: https://www.cnblogs.com/libin-linux/p/16656644.htmlAuthor: LB_运维技术Title: Linux 服…

    Linux 2023年6月13日
    0113
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球