V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ml1344677
V2EX  ›  程序员

请某 211 教授及研究生写的代码 大家品品

  •  3
     
  •   ml1344677 · 2019-12-02 10:26:40 +08:00 · 23499 次点击
    这是一个创建于 1578 天前的主题,其中的信息可能已经有所发展或是发生改变。

    QnPzgf.png QnPX4I.png

    节选 我寻思着你这 rule1,2,5 3 和 4 不吉利还是咋的? 其他逻辑部分不用说了 一坨屎 现在我要把他们团队的代码整合上线 真的要吐了

    第 1 条附言  ·  2019-12-02 11:52:17 +08:00
    1.给了远超过行业平均水平的钱
    2.内容是关于将业务人员写的规则转化为代码的任务
    3.希望这些人以后成为某些人的同事 嘻嘻
    4.记得好好搞研究 多发点论文哦
    157 条回复    2019-12-10 16:27:42 +08:00
    1  2  
    VEEX6
        101
    VEEX6  
       2019-12-02 15:45:27 +08:00
    一看就是堆代码量完成任务的,正常人都知道写个数组循环
    Chrisplus
        102
    Chrisplus  
       2019-12-02 15:51:33 +08:00
    so......what?
    27
        103
    27  
       2019-12-02 15:57:02 +08:00
    @felixlong 字典有 1w 个的话,平均和 map 查询 O(1)的时间相比就会慢 1 万倍
    HhZzXx
        104
    HhZzXx  
       2019-12-02 15:59:41 +08:00
    繁简转换这种,用数组是 OK 的,比起 hashmap 效率也更高,因为一方面占空间小,从而对 cache 更友好,另一方面常用的字集中放在一起,也对 cache 友好。用 hashmap 难以做 cache 优化。
    至于去除标点符号,图片中的写法效率很低。
    HhZzXx
        105
    HhZzXx  
       2019-12-02 16:02:44 +08:00
    继续繁简转换这个,需要利用字的编码等技巧使得可以 O(1)地从数组中获得所需的 index
    threebr
        106
    threebr  
       2019-12-02 16:07:08 +08:00
    码农的代码是产品, 搞科研的代码跑出来的结果才是产品, 代码写成什么样大多数人不关心
    iceEar
        107
    iceEar  
       2019-12-02 16:07:16 +08:00   ❤️ 20
    做研究就是这样,代码能跑通就行。因为研究过程从来就不是一条路直接走通的,中间会有各种弯路, 所以代码就是各种尝试的过程,打满了各种补丁,怎么快怎么来。不过,正常情况下,在实现了最终想要的效果之后,会先 clean code,再进行 release。
    你遇到的这种情况,有多种可能。第一,你们公司上面的人,在乎的就是跟高校合作,混个名声,而高校那边就是为了拿点项目经费。这样就好办事了,随便搞点东西跑通了,交差就是。各取所需,留下垃圾;第二,项目本身没问题,但是在项目进行过程中,贵司进行和高校对接的人,态度蛮横,居高临下,瞧不起人,让对方研究生觉得十分不爽,故意埋坑。
    楼主不用为研究生担忧,这帮人毕业走上工作岗位,不会写出这种代码。211 研究生虽然水,但智商也是正常的,不会随意写出这种代码。多花时间和他们沟通,完善调整代码,不要浪费时间在这里盲目自大,冷嘲热讽秀优越。祝项目顺利。
    Jrue0011
        108
    Jrue0011  
       2019-12-02 16:07:59 +08:00
    业务需求是实现一个规则引擎吗...为什么不用现成的? 另外如果本科学过正则而没用上那应该是人的问题,如果没学过的话其实还好吧...
    wangxiaoaer
        109
    wangxiaoaer  
       2019-12-02 16:08:51 +08:00   ❤️ 2
    都在说用循环,我寻思这东西不是一个正则搞定的吗?
    just1
        110
    just1  
       2019-12-02 16:15:19 +08:00 via Android
    @wenzichel 很多的是与其他领域的结合进行研究,这个如果你大学好好上不应该不知道。你当软件工程研究代码怎么写比较好看?
    zhangdawei
        111
    zhangdawei  
       2019-12-02 16:17:00 +08:00
    给一个科研机构做项目写代码,....
    fengpan567
        112
    fengpan567  
       2019-12-02 16:26:03 +08:00
    又不是不能用
    dengbt
        113
    dengbt  
       2019-12-02 16:26:16 +08:00
    写的通俗易懂,清晰明了。
    namek
        114
    namek  
       2019-12-02 16:29:20 +08:00
    一行搞定
    Geo200
        115
    Geo200  
       2019-12-02 16:41:49 +08:00
    说用数组那些是认真的吗?为什么不用正则?
    shyrock
        116
    shyrock  
       2019-12-02 16:54:57 +08:00
    刚毕业的研究生是 0 经验,未毕业的研究生是负经验。
    这代码怎么了?
    youngpier
        117
    youngpier  
       2019-12-02 17:02:09 +08:00
    @iceEar 同意,特别是很多老师根本不 care 企业合不合作,你司就是求着人家办事想说自己有产学研的经验混个 title。各取所需没啥,高校代码本来就是跑通了就行。PS: 很多其实根本通不过测试环境。 牛逼的学生也不会把精力放在横向项目上,主要还是低年级学生练手打杂。
    leavic
        118
    leavic  
       2019-12-02 17:11:53 +08:00
    按行数收钱
    fatpower
        119
    fatpower  
       2019-12-02 17:12:20 +08:00
    研究生又不是专业写代码的,LZ 这个优越感真是莫名其妙。人家要出来工作两年说不定比你还强
    darkalien
        120
    darkalien  
       2019-12-02 17:14:30 +08:00
    没毛病,功能 OK。非常常见的现象,见怪不怪。
    simo
        121
    simo  
       2019-12-02 17:15:16 +08:00
    你看到的代码只是最后结果,不能反推出产生原因和演变过程,可能的话,跟作者当面聊聊会有收获。
    举个例子,可能对方是编程新手,或者一开始只过滤一个字符,不定期的切换开发者同时加一条过滤,为了省事,每个开发者都不愿意重构?最后反正就这么长了
    lepig
        122
    lepig  
       2019-12-02 17:41:21 +08:00
    这种就是实现就行 管你什么代码质量。 所以 导致接手的时候 想骂他祖宗
    hjw45611
        123
    hjw45611  
       2019-12-02 17:42:49 +08:00
    有个朋友是 211、985 院校的研究生,他毕业论文里的论点数据图都是我帮他 P 出来的
    vipcc
        124
    vipcc  
       2019-12-02 17:48:25 +08:00 via Android
    加油写好代码
    ethanSong
        125
    ethanSong  
       2019-12-02 17:51:22 +08:00
    昨天我好朋友还跟我说,导师把他拉出去背锅去了,一问说导师找的项目,7 个任务的项目一年完成了一个,现在甲方过来问咋回事.....我朋友被拉去背锅了,朋友目前在上海某 985 读研一。
    by73
        126
    by73  
       2019-12-02 18:15:49 +08:00
    学术界向来如此,搞理论的跟搞工程的不一样。。要求学术界代码水平跟工业界持平,难度是等价于要求工业界的理论水平跟学术界持平。就简单来说,大家经常用语言敲代码,但是有谁能认认真真学下去 PL 的?

    扯点题外话,我有幸参观过学校 OJ 的源码,那才叫一个“辣眼”,听闻都是每年找几个毕业生(本科)给这个系统缝缝补补,就当毕设了。一群跟我一样没真正耕过田的去耕田,结果多数就是像楼主贴的这种代码一样。

    嘛,上级交给你的工作还是要完成的,大家都是为了一口饭。。
    12tall
        127
    12tall  
       2019-12-02 18:29:33 +08:00
    大四毕业设计就差不多是这样的风格,有一个 bug 和指导老师找了一下午,现在想忘都忘不掉,30 多页 C~~~
    drawstar
        128
    drawstar  
       2019-12-02 18:32:03 +08:00
    。。。
    我觉得能在最短时间内实现所要的功能,跑起来就行。
    就像某个命令要重复执行三次,我肯定会复制三行不会写个 for 循环
    hyserendipity
        129
    hyserendipity  
       2019-12-02 18:47:27 +08:00
    不不不,你想多了,这个全部是那个研究生写的,教授只会时不时 check 一下是否写完了。
    Lykr
        130
    Lykr  
       2019-12-02 19:06:40 +08:00   ❤️ 1
    @a7217107 为什么都在洗?这做不好不该不喷么?人家尊重你 211 教授头衔,给你高价,无论是自己敲还是学生敲,也得对得起这个价格吧,写的一手烂代码,说什么搞科研,被层层剥削也太逗了?你捞油水变成我的错了?
    另外,我很奇怪,都说术业有专攻,211 计算机教授带的是土木工程研究生吗?

    首先,我觉得楼上大多数都不是洗,只是客观地表示了自己的理解。

    这个代码屎不屎?当然屎。但作为成年人了,应该知道很多事情不是非黑即白的,看问题要一分为二。

    楼主这个帖子充满了主观臆断,“某”字这么一用等于一上来就给所有 211 的教授和研究生扣上帽子,对他们批判一番,读起来就是“211 高校的教授和研究生水平不行”的意思,我觉得这不是一个楼上有些人说的“只是摆个现象给大家看”的客观理性的态度。

    继续回答你的问题。

    首先,有没有想过,为什么这个代码这么烂,还能到上线这一步,外包的项目有没有“验收”,合同里有没有对代码质量的规定?楼主不满的对象应该是“某 211 教授及研究生”吗?谁是敌人?谁是朋友?你和楼主犯了类似的错误。

    其次,你觉得是因为企业“尊重 211 教授头衔”,才给高价的去做的,这个想法本身就是错误的。至于原因,很多人已经讲过了,这里就不再赘述了。当然,除了别人讲的那些外,其实里面还有很多 PY 交易。你只要知道,企业和高校的高层没有一个傻子,大部分情况下对于双方的高层来说是共赢的。

    至于你说的,“无论是自己敲还是学生敲,也得对得起这个价格吧”,“写的一手烂代码,说什么搞科研,被层层剥削也太逗了”:举个例子,你们公司有 5 个程序员,老板接了个两个月的项目,合同额 30 万,你们公司老板不可能敲代码吧?但是它一次性拿走 25 万,剩下的 5 万分给你们 5 个,一个月平均一个人能拿 5000,你觉得合理吗?我现在告诉你,高校的情况现在是,教授导师不停地接项目,一个项目几十万,上百万甚至上千万的都有,但干事的研究生能拿多少全凭导师一句话,就我了解目前最高的是中科院那边的研究生,一个月能有 3000,其他学校每个月大概是 300~1000,更有甚者一分钱都不给,拿毕业来要挟学生。我寻思 996 那会不都说拿多少钱,干多少活吗?此外,研究生还要干科研的任务,需要做 PPT,写专利,看论文,写论文,找工作……

    “你捞油水变成我的错了?”:还是那个问题。谁是敌人?谁是朋友?

    “都说术业有专攻,211 计算机教授带的是土木工程研究生吗?”:没错,术业有专攻,但计算机专业,尤其是研究生阶段,内部还会细分为很多不同的“术”,不是所有的计算机专业的研究生都能写好工程项目。觉得所有计算机专业的学生都能写一手优美的业务代码,就和觉得计算机专业毕业之后都应该会修电脑一样……
    shaozhiyuan
        131
    shaozhiyuan  
       2019-12-02 19:08:21 +08:00
    。。。这都有人洗吗。。
    hyy1995
        132
    hyy1995  
       2019-12-02 19:18:34 +08:00
    有的人就是真的只会读书,我见过。。。
    mxT52CRuqR6o5
        133
    mxT52CRuqR6o5  
       2019-12-02 19:21:47 +08:00 via Android
    代码肯定是烂的,锅甲方自己得背一半,行情没了解清楚
    zunceng
        134
    zunceng  
       2019-12-02 19:25:53 +08:00
    教授开发了一个程序可以把文字编译成代码。。。我编不下去了
    justforlook44444
        135
    justforlook44444  
       2019-12-02 19:36:52 +08:00
    @ml1344677
    送给你 4 个字,夜郎自大。
    教授还帮你写代码呢,数钱都忙不过来。
    superrichman
        136
    superrichman  
       2019-12-02 19:46:05 +08:00 via iPhone
    想想自己最开始写代码的样子 其实只要能跑就很开心了。
    UnknownR
        137
    UnknownR  
       2019-12-02 19:55:48 +08:00 via iPad
    @djs 难道袁隆平不种地?
    mediapig89
        138
    mediapig89  
       2019-12-02 20:15:20 +08:00
    @UnknownR 就是因为袁隆平种地所以他是工程院院士。杨振宁不会实验却是科学院院士。明白了么?
    拿出一段没有上下文的代码出来喷是没有意义的。
    cyannnna
        139
    cyannnna  
       2019-12-02 20:26:29 +08:00
    @iceEar 确实是这样。不过学界和业界脱节严重也是有目共睹的
    TheCure
        140
    TheCure  
       2019-12-02 20:34:35 +08:00
    计算机研究生, 教授绝大多数是菜逼, 学校里 没钱, 没场景, 没数据, 做个屁计算机
    secondwtq
        141
    secondwtq  
       2019-12-02 20:37:32 +08:00
    @callofmx 你这话有点毛病,需要“场景”和“数据”的不是“计算机”。
    先把这部分“计算机研究生”排除出去再说剩下的 ...
    djs
        142
    djs  
       2019-12-02 21:50:47 +08:00
    @UnknownR #137 要是袁老不会种地不得被你们喷死?
    zetary
        143
    zetary  
       2019-12-02 22:13:53 +08:00
    虽然可以理解,但是看着真的难受
    whwq2012
        144
    whwq2012  
       2019-12-02 22:42:28 +08:00
    这是 python 吧,用 python 的 list 装这些不就优雅多了
    zappos
        145
    zappos  
       2019-12-03 00:34:20 +08:00 via Android   ❤️ 1
    只能说你的耐性真好。。。换成我就直接开喷了
    jzq526
        146
    jzq526  
       2019-12-03 07:24:35 +08:00
    以前有篇文章,提到代码编写级别,最差的就是学习级别的,因为在学习,所以没有章法。然后就是能用级别的,作者本人是个大学教授,他特别说明,科研方面的代码,基本上都是能用级别的,应该就是你列出来的这种。
    pingpingping
        147
    pingpingping  
       2019-12-03 09:05:03 +08:00
    白猫黑猫抓到老鼠就是好猫
    mskf
        148
    mskf  
       2019-12-03 09:10:00 +08:00
    某 211 大学的教授和研究生+某个本科生的聊天记录:

    [图片]

    这就是你写的代码? python 课怎么上的?算法课怎么上的?害想不想保研了?
    guabimian
        149
    guabimian  
       2019-12-03 09:15:29 +08:00   ❤️ 2
    计算机这行你要把科研和工程能力分开就是扯淡 国内绝大多数科研做的就是工程研究,
    工程能力超低,连落地都搞不了,怎么做数据验证?

    不要再意淫天然认为 title 高的人工程能力差是因为他们科学理论研究强,忽悠能力强是真的。

    学术搞的好的工程能力不会太差。
    mshadow
        150
    mshadow  
       2019-12-03 09:34:43 +08:00
    当你明白,世界上 99%的代码都是 shit 的时候,就会非常淡定了
    NotFoundEgg
        151
    NotFoundEgg  
       2019-12-03 10:13:06 +08:00
    所以人家是教授啊 而大部分程序员都是搬砖的
    sayano
        152
    sayano  
       2019-12-03 10:15:33 +08:00
    这要是 cs 科班写的可以直接喷了....我一个非科班都弄不出这玩意来
    不过为啥会觉着老板会亲自写代码呢...配上这个标题很容易让人觉着酸吧
    learnshare
        153
    learnshare  
       2019-12-03 10:24:19 +08:00
    没啥好洗的,8 年前的大学老师还在讲:你们不要学 JS,这玩意都没法调试
    然而 8 年前 jQuery 都开始下坡了
    shuizhengqi
        154
    shuizhengqi  
       2019-12-03 10:33:19 +08:00
    震惊,王坚居然不会使用数组循环,甚至不能手写红黑树,这个院士一定是有阴谋!
    Blacate
        155
    Blacate  
       2019-12-03 14:54:27 +08:00
    哈哈哈 我我觉得我毕设的代码也和这个差不多
    开始前:我一定要按照代码规范 把代码写的赏心悦目
    进行中:今天好累哦 就玩手机休息一天把
    deadline 前: 代码就先糊起来再说吧 等有空了再重构一下
    答辩后:卧槽 这什么代码这么丑 算了 以后也不要用了 就这样吧
    xsen
        156
    xsen  
       2019-12-05 06:42:15 +08:00
    @canyue7897 你没看过开源的操作系统 /rtos 或浏览器的代码,就不要瞎逼逼,自以为是

    当然,从这个事情我也就理解有个冷笑话了:
    就是为什么国内各种大厂小厂开源的东西都不多——据说,是因为大部分都写的很烂,开源出来丢不起这个人

    不知道为什么,985/211 的研究生,还是 IT 相关专业的研究生,写成这样的代码还有人各种洗,真的不可思议
    wind315
        157
    wind315  
       2019-12-10 16:27:42 +08:00 via iPhone
    我不如,因为完全没看明白怎么回事
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3091 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:31 · PVG 22:31 · LAX 07:31 · JFK 10:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.