一位前端工程师的Writing better code

代码优化与最佳实践
本文探讨了提升代码质量的有效方式,包括反复推敲代码、模块化设计、代码可读性、简单与愚蠢原则(KISS)、避免过早优化等关键点,强调了清晰逻辑和维护性的重要性。

提升代码最有效的方式是反反复复地推敲代码,

  • 过几个星期或者几个月再回头来看。

if else

  • if语句总有两个分支,else可能还出现重复代码,可以嵌套和缩进,但是是清晰和严密的。
  • 大量的截断写法和零散的if逻辑会让代码难以维护。
  • 无懈可击。// both template & js

模块化

  • 搞一个文件夹叫做module并不是模块化,真正的模块化不是文本上的区分,而是逻辑上的区分。
  • 要定义清楚输入和输出,要分析清楚真正的依赖是什么,能知道什么,不能知道什么。
  • 函数体避免过长。(一屏)
  • 定义工具函数。
  • 每个函数做到职责单一。
  • 避免通过全局变量或者外层的变量来传递信息。// global vs state management

可读代码

  • 函数和变量的命名。(sth. doSth.)
  • 局部变量应该定义接近在在调用它的地方。
  • 局部变量名字可以简短。// let age = getAgeFrom(user); let userAge = getAgeFromUser(user);
  • 不要重用局部变量。// 可以使用IIFE
  • 复杂表达式做成中间变量。// if ((xxx && yyy) || (mmm && nnn)) {...} => const isValid = (xxx && yyy) || (mmm && nnn); if (isValid) {...}
  • 合理的换行和空行。
  • code standard(lint) sometimes is evil

simple & stupid // KISS

  • 并不是语言或框架提供给你的特性就一定是对的。
  • 盲目的追求“短小”和“精悍”,或者为了显示自己头脑聪明,学得快,所以喜欢利用语言里的一些特殊构造,写出过于“聪明”,难以理解的代码。
  • 不要省略花括号。
  • 不要使用&&和||来控制代码执行流程。 if (a() || b() && c()) { ... } if (!a()) { if (b()) { c(); } }

注释和代码

  • code tell you what
  • comment tell you why

Some thoughts

  • 写代码时时刻设想你就是将来要来维护这坨代码的人。// Maintainence、Project vs Product
  • 先弄清楚问题是什么,再解决问题。// Code is the last step
  • 不要过早优化。

Duplication && Abstraction

  • DRY
  • The rule of three
  • Inheritance

Value object concept

Different Level

  • system level & application level
  • low level & high level
  • api level & business logic level

Engineer

  • 工程的本质,并不是去创造什么,而是去风险化,如何低成本、高效率、按时按量地完成既定的任务。
  • 好的解决方案不一定要采用最新的技术和框架,而是体现在实现的细节中,朴实无华但又足见功底,所以放下浮躁的心,放下对那些所谓新技术的追逐,扎实打磨基础,反复推敲方案,选择合适的技术去解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值