谈谈“烂代码”
什么样的代码是烂代码?
我个人根据自己的经历总结一下烂代码的几个特征:
- 不复用、封装
相同的逻辑只会复制粘贴 - 不模块化
没有清晰的模块划分,模块与模块的耦合也没有概念
下面举几个亲身实例:
在前端的发展中,组件化是一个十分重要的概念,各大框架也都给出了自己的实现。
这里以 Vue 为例,我曾经见过“高人”,这么写:
这样写的意思就是讲所有组件的样式都统一放在 assets 文件夹下然后在组件里逐个去引入。我觉得这样的方式简直糟糕透了。
- 这样的方式完全违背了组件内聚的思想。
- 在需要修改的时候还得再进入 assets 文件夹下去找对应的样式文件进行修改
我也能理解样式代码过多需要单独抽离成为一个文件,但是也应该是跟组件的 dom 在同一个目录下,如果脚本部分的代码也很多,正好也抽离出来,三个文件放在一个目录下,这样才是更为“内聚”的做法
面对对象是一个很普及的概念
这里以 Java 为例,在 Java 里,如果两个类有相同逻辑的方法时,应该怎么办?
做法一:复制粘贴相同的逻辑
Class A {
void eat(){
System.out.println('eating...');
}
}
Class B {
void eat(){
System.out.println('eating...');
}
}
这么写,如果有需求改动,比如把 eating 换成 eated,这样就得分别到两个类中进行修改,更加合理的做法应该是,让两个类继承自一个父类,就可以复用这个 eat()方法了
Class Parent{
void(){
System.out.println('eating...');
}
}
Class A extends Parent{}
Class B extends Parent {
}
但是现实中我遇到很多的程序员都是复制粘贴第一种方式
当然这里得声明,我的代码写的也不一定就好,但是我觉得上面的两个例子真的让我很不能理解。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于