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

21 小时 7 分钟前
 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();
    }

}
8739 次点击
所在节点    程序员
87 条回复
iyaozhen
11 小时 18 分钟前
Java 魅力时刻
JobsHwang
11 小时 13 分钟前
具体看写在哪个层级的应用。
如果是业务应用的门户层,那就第一种。
如果是业务核心系统,那就第二种。
这点代码都算心智负担的话,得反思下自己源码是不是看少了.....
acerphoenix
8 小时 2 分钟前
java er 净干些脱裤子放屁的事,心比天高,总认为写的代码要适应超高并发,多变的业务;命比纸薄,没啥用一两年就全废掉
levelworm
7 小时 57 分钟前
扩展的代码等扩展的时候再改。但是很多程序员喜欢过度设计,也很难互相说服。只能说谁做决定谁大。
kkwa56188
4 小时 2 分钟前
脱了裤子放屁, 放完了再把裤子优雅的穿起来,主打一个仪式感
twig
2 小时 33 分钟前
这跟国内国外没关系吧……
jeesk
31 分钟前
没场景不好评价, 假设你的场景是启动应用就要执行一次,一个进程生命周期只执行一次,完全没毛病。


如果还要考虑任务队列,并发,那就要好好设计一番了。 那么第一种肯定没法用。

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

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

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

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

© 2021 V2EX