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

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

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

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

一位前端工程师的Writing better code相关推荐

  1. 【职场】看一位前端工程师如何上班摸鱼

    这是对白的第 70 期分享 作者 l 霓虹(本文已获原创授权) 出品 l 对白的算法屋 大家好,我是对白. 今天给大家带来一篇我朋友霓虹写的摸鱼文章,他是一位前端工程师,擅长在公司里摸鱼,文笔清奇而搞 ...

  2. 美团第一位前端工程师竟是转行程序员!关于他的10年技术生涯

    从饭否到美团,潘魏增用十年的技术生涯,诠释了"长期有耐心"这句话的含义.在他看来,长期有耐心,其实也是延迟满足感.对从事的行业来讲,我们要把眼光放得更长远一些,十年后才有回报的生意 ...

  3. 如何面试一位前端工程师

    扎实的基础 很多面试者的简历中一定会写各种『精通』,这是非常有自信的表现,对于基础的考察,最好的方式还是笔试. 计算机学习无非也包括记忆和理解.前期记忆的内容颇多,也比较容易上手给人一种很快就可以『精 ...

  4. 如何成为更好的前端工程师?如何才能进入下一个阶段?

    我不断收到很多恰好在学习Web开发方面有丰富经验但被困于不断开发UI模板和项目的人的询问,这确实令人沮丧.更严重的是,他们如何才能进入下一个阶段? 这篇文章更像是备忘单或者清单,我认为这就像我们在友好 ...

  5. 2019年,为什么Web前端工程师薪资越来越高?

    随着最近几年来互联网的迅猛发展和普及,web前端工程师已经成为互联网时代软件产品研发中不可缺少的一种专业的研发角色. 特别是电商领域的互联网项目不断兴起之后,激烈的竞争让这里面的玩家对于用户体验提出了 ...

  6. 看,他们都转行做web前端工程师了

    web前端是个特殊而有趣的岗位,不是单纯的程序员,也异于UI设计师. 越来越多的人离开原来的岗位,投身于前端开发中: 设计师转前端 这种情况最常见,究其原因与web标准在中国的推广手法有关,我们最先接 ...

  7. 这个bug有点狠,到大西洋送外卖?成功逼疯前端工程师

    写半天代码,改一天BUG,这就是程序员的日常.大大小小的bug充斥着工作的边边角角,有些bug很有趣,但有些bug,可能会让你后悔不准备一把菜刀.找到bug后简直就是侮辱智商一样. 狂奔的蜗牛是一家外 ...

  8. 前端工程师掌握这18招,就能在浏览器里玩转深度学习

    参加 2018 AI开发者大会,请点击 ↑↑↑ 作者 | Vincent Mühler 译者 | 刘旭坤 整理 | Jane 出品 | AI科技大本营 [导读]TensorFlow.js 的发布可以说 ...

  9. 5 位阿里前端技术专家论:前端工程师的成长和发展

    前端夜话.活动邀请到了前端大咖 winter.百姓网技术顾问贺师俊(Hax).Swift 大神王巍(喵神).<CSS 世界>作者张鑫旭.阿里前端技术专家狼叔等 5 位前端大牛,聊聊前端工程 ...

  10. Web前端开发好学吗?谈谈一位学姐的前端工程师之路

    我的第一篇博客....... 我是一名工科女,因高考失利与理想的院校擦肩而过,从而选择了机电专业.毕业后找工作时才发现机电专业的工作并不太适合我.我的父母也支持我转专业求职,但这个过程有时会让我迷茫. ...

最新文章

  1. excel如果包含某个字就显示_Excel公式基础知识
  2. FPGA之道(33)Verilog数据类型
  3. html使用xml数据岛,html中的xml数据岛记录编辑与添加_xml技巧
  4. 使用adb命令查看Sqlite数据库
  5. 如此理解面向对象编程
  6. Java中的TreeSet集合会自动将元素升序排序
  7. 兵乓球- 经典街机游戏-python小游戏源码下载
  8. SAP License:SAP顾问是如何炼成的——SAP顾问的定义
  9. 20190827:(leetcode习题)合并两个有序链表
  10. 【NOIP2014】【Luogu2141】珠心算测验(枚举,合并两数组相同元素个数)
  11. 抽奖随机滚动_年会抽奖该怎么玩?
  12. windows下搭建tracker服务器
  13. 【STM32】串行通讯方式及USART串口通信
  14. 逻辑回归分类——信用卡诈骗
  15. 为什么一个还没毕业的大学生能够把 IO 讲的这么好?
  16. 医院预约挂号系统-系统结构
  17. BUUCTF NewStarCTF一些新知识记录
  18. 2021年中国跨境电商行业发展现状及5G技术在中国跨境电商的应用分析:交易规模达142000亿元,同比增长13.6%[图]
  19. VC维的来龙去脉 | 火光摇曳
  20. jquery的ajax()方法与生命周期

热门文章

  1. 欢迎访问我的博客园,希望对你有所帮助
  2. JAVA作业 17-05-18
  3. 多线程开发必须知道的概念
  4. Java开发笔记(一百二十八)Swing的图标
  5. 配置远程jupyter notebook
  6. 转载金阳光测试:关于产品的三类文档
  7. 程序运行时被用户删除了工作目录后崩溃
  8. 【吐槽】火车票一票难求啊
  9. Netty4.0学习笔记系列之三:构建简单的http服务
  10. 大数据项目之dmp用户画像