中年码农大战精英经理

nie  •   •  29692 次浏览

一早起来吐个槽心的事,让大家开心开心

 

n年不写代码的经理,最近老给中年码农戴帽子。今早竟然心血来潮代码review。啥bug木有看到,但是。。。

 

业务要求如下,根据起始日期寻找一组业务记录。如果没有填写开始日期,则列出所有小于截止日期的。如果没有填写截止日期,则列出所有大于开始日期的。

 

原来的程序是开始日期和截止日期都是必填,现在选填。包子楼主,于是乎在后端进行了一个小小的处理,如果没填开始日期,放入1900年1月1日。如果没有截止日期放入2100年1月1日。

 

结果。。。

 

恶骂“你还是senior,你hardcode什么鬼?这有多么愚蠢,多么不灵活,你知道么?未来怎么办?将来接手代码的人都不知道找不到记录是因为这两个小小的日期”

 

心里暗暗回嘴

 

你这公司能撑过2100年么。。。

36 条回复
  • 呼呼怪
    #1

    你没问他不然我改到3000?哈哈哈哈哈

  • leciel
    #2

    这种日期我司只会在unit test里看到产品里出现这种代码...是我也得骂。

    楼主干了多少年了?写出这种代码要自省。

  • #3

    你这个。。。我以为只有印度人才会这样胡乱写code呢。作为思维严谨的华人码农, 做不出这种事。 难怪manager要code review。

  • lisagliu
    #4

    我不懂码农只觉得好想笑,谢谢楼主一大早的贡献

  • nie 楼主
    #5

    祝你开心一整天!

  • baronbaron
    #6

    楼主没问题吧后来的人看到这些hardcode确实会问为什么,楼主把注释写清楚就好了。

  • leciel
    #7

    Boundary check unit test一定要过的产品中的有关data validation的不确定数据应该用配置文件。

    随便在代码中加一个硬日期确实不是老鸟应该犯的错误。

  • #8

    lz的确是小聪明了

  • date123
    #9

    我是reviewer的话,我也骂这写的啥code啊,还老鸟。
    如果担心range 太大,search出的结果太多,设一个limit ,可以和当前时间有关,也可以和result size 有关,也可以pagination 。当然作为reviewer,我还要问为什么设置这个limit

  • #10

    楼主hardcode居然有道理了目测便宜行事是码农大忌

    你懂的

  • nie 楼主
    #11

    来,熊猫君助我上十大!

  • #12

    沙发剧情反转,楼主是经理

  • nevermoi
    #13

    ..from datetime import date

    today = date.today()

    a_hundred_year_later = today.replace(today.year)

    # comments for reason to do this

  • nevermoi
    #14

    忘了+100我不知道怎么撕
    我尽量不被撕

  • nie 楼主
    #15

    老板,还能不能好好玩耍了谁让你剧透了?!

  • nie 楼主
    #16

    层主是认真的请问这是哪国语言。。。微软阵营的么?

  • #17

    楼主此处有掌声你终于把那个死熊猫给耍了!
    哈哈!

  • 滚雪球
    #18

    正确的做法是把这些hardcode都放在util文件里面代码里面应该显示为DEFAULT_END_DATE,这样就能通过code review了,程序文件里面的常量都应该用大写字母显示而且取个别人看了就懂的名字。这就是所谓的readabale啊,既解释了2100是什么东东,又可以轻易忽悠过半桶水的manager。

  • date123
    #19

    那就不懂这个发帖的动机了程序员被骂了,心里憋屈,发个帖发泄一下能理解。
    要是楼主是经理,人也骂过了,还上网故意用程序员的口吻发个帖,是想耍人玩呢还是想大家再帮他骂几句?

    哪个做软件的经理手下没几个不咋的的程序员呢,还上网角色扮演来吐槽的,真不多见。

  • #20

    顺便问问 开始日期 和 截止日期 皆为空的话 怎么处理啊??

  • nie 楼主
    #21

    按照其他精英的标准,你也通不过不过我欣赏认真回答的人

  • iND
    #22

    楼主的意思是,他通过偷懒(取巧)的方式把 3 种 conditions 合并 1 个来处理,就不必写好多 else if 了。
    回帖都和他那经理一样,貌似都没 get 到楼主的用心啊。

  • nie 楼主
    #23

    知音不怕多喝一碗再走吧!

  • nevermoi
    #24

    python 啊写test case很舒服

  • #25

    纯粹拿requirements来看,严格来说你的implementation并不符合要求新的业务需求是:搜索条件中,开始日期和截止日期,不是两个都必填,但至少有一个必填,搜索应该只按照已填写的条件:
    1. 只填开始日期:where transaction_date >= v_begin_date
    2. 只填截止日期:where transaction_date <= v_end_date
    3. 都填:where transaction_date >= v_begin_date and transaction_date <= v_end_date
    跟hard coding和灵活性无关,跟correctness有关。

  • nomadass
    #26

    我觉得楼主default date没啥问题perfect code never releases to production.
    开n个文件去找一个default value,基本的cohesion呢....

  • nie 楼主
    #27

    层主是认真的赞!

  • #28

    呵呵 目测楼主rp有问题

  • 滚雪球
    #29

    差不多就好了不然岂不是整天加班

  • nie 楼主
    #30

    玻璃心评论的是智商,测出来的是情商

  • 嘉兽
    #31

    有考虑过以后对数据挖掘造成的负担吗?这种看似不重要其实很重要的数据一下子就被你们弄脏了。
    不强制输入日期是为了增加ui效率还是为了增加数据库效率还是为了增加后期逻辑效率呢?
    楼主说了系统其实还是会赋予一个数值的只是骂程序员不应该草率的写成静态数值而是应该做动态数值,其实对于数据挖掘来说造成的危害更大。要是都是1900年或者2100年那么数据挖掘还能把他们归为异类,要是都是动态的话反而无规律可寻,会影响数据分析的结果。
    已经是精英经理连这些都没有为公司的未来考虑,差评啊。前人种树后人乘凉是每个有担当的精英经理人必须做的事情。同九年,汝何秀!

  • nie 楼主
    #32

    有了熊猫君的参与,生活好滋味

  • nie 楼主
    #33

    囡囡你是蓝翔毕业的么?挖之前请问问园丁。

  • 绿豆芽
    #34

    哈哈哈哈哈哈,什么鬼?这是给大人读的冷笑话还是给小孩读的故事书?认真脸

  • #35

    hehe 楼主一直为十大这种琐事而烦恼

  • nie 楼主
    #36

    【吐槽八卦】中年码农大战精英经理

    一早起来吐个槽心的事,让大家开心开心

     

    n年不写代码的经理,最近老给中年码农戴帽子。今早竟然心血来潮代码review。啥bug木有看到,但是。。。

     

    业务要求如下,根据起始日期寻找一组业务记录。如果没有填写开始日期,则列出所有小于截止日期的。如果没有填写截止日期,则列出所有大于开始日期的。

     

    原来的程序是开始日期和截止日期都是必填,现在选填。包子楼主,于是乎在后端进行了一个小小的处理,如果没填开始日期,放入1900年1月1日。如果没有截止日期放入2100年1月1日。

     

    结果。。。

     

    恶骂“你还是senior,你hardcode什么鬼?这有多么愚蠢,多么不灵活,你知道么?未来怎么办?将来接手代码的人都不知道找不到记录是因为这两个小小的日期”

     

    心里暗暗回嘴

     

    你这公司能撑过2100年么。。。

    该帖荣获当日十大第2,奖励楼主18分以及27狮城帮币,时间:2018-06-21 22:00:01。

狮城帮

狮城帮是关于分享和探索新加坡的地方

马上注册

已注册用户请 登录