怎么能说屎山呢。
客户的各种变态要求的功能都实现了啊。
满足了需求了啊
所以还是一个看脸的时代。。至于里面是什么,没人在乎。。
前端入门容易,导致前几年,一大堆人转行做前端。
说句实话,前端怎么着也是软件开发。没有系统计算机知识,就如同莽夫和你谈论诗词歌赋。
接手过N个项目,很多项目都很难改动。
难点不在于算法多难,而是在于代码质量太差或者耦合度极高。
比如想从components里面抽取某一个日历组件,用于另一个项目。结果发现,几乎快把老项目代码全部迁移过来了。(分散到N个组件的ts类型、全局类型、全局less、零散组件、全局配置、等等乱七八糟一大堆。还有各种强制要传递的参数,非必要性的东西,不能给默认值?)
还有死活不拆组件的,一个文件及千行代码,搜索一个变量,出现了几百个位置。
比如搜索:data,res之类的。
还有但凡能Ctrl+C、Ctrl+V的,绝对不多动一下脑子。
下列代码见过无数次,江湖俗称:俄罗斯套娃
// 包这么多层不累?屎山代码 function fn() { if(a){ if(b){ if(c){ // ... 此间还有无数个if }else{} }else{} }else{} // ...code return false; } // 不能这样改一下? function fn(){ if(!a) return false; if(!b) { // ...code } if(!c) { // ...code } }
还有类似的,你还好意思问我整不整齐?
var nick = '张三'; // 后台返回的某个值 if(nick === '张三' || nick === "周六" || nick === "李马" || nick === "李四" || nick === "王五" || nick === "脑壳" || nick === "麻子" || nick === "哈麻批"){ // ...other code; } // 哟吼,你瞅瞅。。。这还能再复制几份。 if(nick !== '张三' || nick !== "周六" || nick !== "李马" || nick !== "李四" || nick !== "王五" || nick !== "脑壳" || nick !== "麻子" || nick !== "哈麻批"){ // ...other code; } var checks = ['张三','李四','王五','哈麻批','脑阔疼']; // 你难道不能这样?不一定非说ES5语法,你for循环也比写硬代码好。 // reduce、filter、some、无数种解决办法。。。 if(checks.includes( nick )){ }
上述是相对夸张的写法,便于理解。
我觉得前端,Code即可见,所有的代码都可以直接的展示出来,
所以更应该把自己代码,当作艺术品。
如果只是把它单纯当作工作,那你很难获得个人的提高。
吃饭的家伙不扎实,即便将来创业,你也绝对不是核心技术合伙人的。