code review 把国外的同事气到吐血

17 小时 48 分钟前
 midsolo

国外的同事来国内出差,趁着这个机会,邀请他跟我们一起进行 code review......

公司的代码没办法拿出来,只能临时写个伪代码让大家鉴赏一下:

/**
 * 代码鉴赏:执行 1 个任务
 */
public class JavaTasteSample {

    public static void main(String[] args) {

        // 国外同事:1 行代码就搞定,简洁明了
        // ==(浪费了大量的时间在做过度设计,毫无意义的炫技)==
        new Thread(() -> System.out.println("task1 running...")).start();

        // 国内同事:高内聚低耦合,把具体要执行的任务跟线程进行分离,方便扩展......
        // ==(这老外太 low 了,连设计模式都不懂,估计不会写代码)==
        new Thread(new Task(new TaskInnerSupport())).start();
    }

}

interface TaskInner {

    void execute();

}

abstract class AbstractTaskInner implements TaskInner {

    @Override
    public void execute() {
        runTask();
    }

    abstract void runTask();

}

class TaskInnerSupport extends AbstractTaskInner {

    @Override
    public void runTask() {
        System.out.println("task2 running...");
    }
    
}

class Task implements Runnable {

    private TaskInner inner;

    public Task(TaskInner taskInner) {
        inner = taskInner;
    }

    @Override
    public void run() {
        inner.execute();
    }

}
8262 次点击
所在节点    程序员
85 条回复
msaionyc
12 小时 15 分钟前
这也是一种护城河
lscho
12 小时 14 分钟前
java 仔是这样的,能理解
NoKey
12 小时 7 分钟前
工作量,代码量,绩效巴拉巴拉的,老外有没有?
你写一行?
你这个月的代码量怎么这么少?
喊你把你做的事情,写个 ppt 讲一下
你说这里,我起了一个线程?
我这里运用了 xxx 模式,能有效 xxxx ,利于后续扩展 xxx
比一下?外行领导喜欢听哪个?
那么多公司,用户就几十上百人,你看看架构师要设计多大并发?
动不动就千人级,万人级,最后就那么几十人。。。
为啥。。。
卷呗
fkname
12 小时 4 分钟前
最近看了下重构,这是典型的代码坏味道之夸夸其谈未来性
oczizx
12 小时 1 分钟前
我之前组里就有个同事,无论怎样的业务代码在他手里都是一层套一层再套一层。遇到这种技术扎实的同事就偷着乐吧。。这种事这种人在 Java 上真的特别常见我只能说。。。。。
alexluo1
12 小时 0 分钟前
过度设计增加心智负担,太累了
ultimate
11 小时 54 分钟前
搁这开发 Spring 呢
y547679519
11 小时 50 分钟前
职场新人是这样的,老手都不会提前优化,前面搞那么合理,以后技术的 KPI 不就没有优化空间了么
darkengine
11 小时 49 分钟前
这个“以后”可能是 never /doge
jorneyr
11 小时 27 分钟前
这大概就是内卷的具像化吧。
lishere
11 小时 21 分钟前
面向“面向对象编程”编程,去翻一翻百度的 paddle 系列代码,你会气吐血
Exception615
11 小时 3 分钟前
@midsolo 过早优化是万恶之源 ------ 唐纳德·克努特
redca
10 小时 57 分钟前
炫技一点用没有,解决实际问题才是关键。 再牛的技术也要解决实际问题才可以。 这样多写代码,只能是浪费电,浪费时间, 当然公司如果按代码行数 kpi 那没得说, 建议在扩展一下~
WngShhng
9 小时 51 分钟前
我记得之前在哪里看的,日本的程序员每个 if 都要包装一下,防止未来拓展,当时还被称为一种好的实践,好像是这篇: https://medium.com/@sohail_saifi/why-japanese-developers-write-code-completely-differently-and-why-it-works-better-de84d6244fab
wu00
9 小时 50 分钟前
虽然不用 java ,大概率选 2
- 不做任何设计先按流水代码写,后续继续迭代此处时再来做设计,实际上后续不管是自己还是其他人来接手的时候都是倾向于"复制粘贴"、"保持风格一致",谁 TM 有时间给你去做设计做重构,想多了!就跟到处打的 TODO 注释一样

- 别以为统计代码行数是互联网段子,如果你们公司在用项目/代码管理工具,那大概率会统计工时/代码,只是你不知道或者没明面上拿来做绩效
nicebird
9 小时 50 分钟前
未来是多久?几个月内没有扩展需求,就选 1.
kakki
9 小时 40 分钟前
Java 讨人厌就是因为 Javaer 讨人厌,说的就是你国内同事。
RangerWolf
8 小时 51 分钟前
我称第二种为 “防御性编程”
twogoods
8 小时 37 分钟前
所以你们最终的结论是啥?评论里也有不同意见的;拿你这个例子其实两种都可以,我觉得当时写成啥就啥吧别改了,但总有人拿着一个理由非要叫你改成另一种,codereview 最烦的就是这个。review 重点看思路和逻辑,看看有没有 bug ,风格这种不是特别糟糕的就别没事找事了...
aecra
8 小时 7 分钟前
就因为 javaer 这种样子,我到现在都不想继续学 Java ,每次都是开个头就受不了了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1170635

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX