前言

前段时间,接手了一个外包公司给我们公司做的项目页面,整体修改下来苦不堪言,这段填坑经历也让我理解到了代码质量与代码后面持续性维护的重要性。不能舒服了自己,恶心了下一个接手人。我就以这次这个项目的一丝丝感受分享给大家。

1.尽量不要使用冷门框架或者自己的框架

这次这个项目的第一个恶心点就是他使用的是他们自己内部的框架(听说是自己框架,也可能开源了),网上搜不到任何可以帮助的信息。遇到了问题的时候我就只能一步步的去试,或者看一下页面其他模块类似功能部分是如何写的,大大降低了我的效率和精力。所以做项目,尽量使用成熟度和使用度更加高的热门框架。若一定要用自己的或者冷门的框架,请一定要写一份详细的文档,方便以后填坑人快速填坑。

2.尽量避免全局变量

我虽然没有深入研究这个框架,但是也了解了其中的一些机制。它是一颗全局树,然后不同组件的所有方法变量都挂在这棵树上了。通过框架的监听,在html绑定一个元素后,全局树上同样会为这个元素的所有方法做出定义。也就是说不管我有没有用到这个元素的某个方法,它都会给你定义出来给你去使用,对代码量的消耗无疑是巨大的。所以整个全局树的文件代码量将近一万行。虽然我做修改的时候对我影响不大,但是觉得以后编码过程中尽量避免使用全局变量。

3.尽量把让文件更好阅读

我觉得小项目是可以按文件类型来分类的,但是涉及到组件大几十个的时候,就眼花缭乱了。我不得不借助IDE的搜索功能来找到文件。一个js文件夹中密密麻麻的文件看的人头疼,当然也包括html文件夹。更好的应该是组件所需要的文件都放在同一个文件夹内,这可能与个人的编码习惯有关了,养成良好的习惯利己利人。

4. 尽量不要跨平台

这是我最想吐槽的一点了。同样的前端框架,vue,react 等都可以在windows上编码运行,为什么你要在liunx上才能跑起来???耗费近一天时间装好docker才能将你跑起来。所以编写的代码千万不要出现跨平台的情况,弄得后来接手的人一脸懵逼。就算你写了再详细的说明,就算你写了再强大的脚本,在不会这个系统的人面前也是做无用功。只会让后来的人心里不舒服。

5. 注释真的很重要

这次这个项目一个很耗时间的地方就是查看它的某些功能的实现。因为只有零星的注释,所以要一步一步才能慢慢理解其中作用。所以注释虽然不会编译到打包文件中,但是请在源码中写清楚注释,不能偷懒,因为以后可能也会出现自己的代码自己不认识的情况。

结语

相信各位都对代码质量有自己的见解,我提到的仅仅是冰山一角,也是我这次接手项目中遇到困难的痛点。但是难免自己的代码会交接给另一个人。我们要做到的应该保证挖的坑更好找,更加规整,更加浅,好让后来的人不会绊倒。

原文链接:tech.gtxlab.com/pit.html


作者简介: 张栓,人和未来大数据前端工程师,专注于html/css/js的学习与开发。

转载于:https://juejin.im/post/5ca5720e518825440b3b0e4a

如何避免前人挖坑,后人填坑相关推荐

  1. 传统行业转型微服务的挖坑与填坑

    原文:传统行业转型微服务的挖坑与填坑 一.微服务落地是一个复杂问题,牵扯到IT架构,应用架构,组织架构多个方面 在多家传统行业的企业走访和落地了微服务之后,发现落地微服务是一个非常复杂的问题,甚至都不 ...

  2. 开源android项目到jcenter,手把手教你将Android项目开源到JCenter两种方式以及挖坑和填坑(一)...

    - 前言 开发中,或多或少都会用到无私的程序猿分享的开源项目,Androidstudio中使用开源也很方便 例如家喻户晓的Rxjava,只需要一句话compile 'io.reactivex:rxja ...

  3. 详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 一.pyqt5的UI中嵌入matplotlib的方法 1.导入模块 导入模块比较简单,首先声明使用pyqt5,通过Figu ...

  4. Android 开发总结分享(一)挖坑与填坑

    做了快一年的Android开发,近期想总结一下这一年工作感受,分享一点我工作中遇到的BUG,然后分析并解决问题的思路吧,我尽量把过程写得详细些,这个系列共三篇文章.如有写的不对的地方,欢迎各位开发者指 ...

  5. Linux挖坑脚本,Windows环境下写Linux sh脚本的一次挖坑和填坑

    最近在研究Docker集群和安装的时候,需要准备若干台机器.所以我为节约时间,打算批量复制VM机器,然后用sh脚本命令执行机器名称和IP等基础配置信息的修改. 具体操作:我在windows环境下,用N ...

  6. 作为程序员,你是填坑的还是挖坑的?

    你是否经常遇到这样的情景:负责开发的项目遇到线上bug,心想这不是我的锅,先不管了,放着吧:代码写完后,隐隐感觉有问题,可程序跑得通,先用着吧:接手一个老系统,这什么破代码,算了,改吧改吧将就用吧-- ...

  7. WebBrowser,挖坑,跳坑,填坑

    最近在 C# Asp.net 平台上的一个项目中用到了 WebBrowser 控件.自然而然就进入了 一连串的坑了.用网络上一同行的话"用WebBrowse,就是在给自己挖坑". ...

  8. DIY M328晶体管测试仪 挖坑 填坑

    网上挺火的晶体管测试仪看着很不错,买成品感觉不个性.!嘿嘿.没事网上爬了几天感觉也不是很复杂,所以就有了以下的坎坷.其实这东西是个老外开发的.咱们今天只聊硬件不聊软件.第一编程环境为GCC AVR俺不 ...

  9. 【微访谈】挖坑的热情似火,填坑的想方设法——对话中讯网联•孙浩

    小e的话: eSDK微访谈终于在万众期待下上线啦!在这里,你可以倾听IT人分享经验.职场心得,在这里,你也可以了解华为更丰富的产品.eSDK更广泛的应用:在我们的访谈中,"加班". ...

  10. 写给自己——瞎写瞎画坑规(自己挖坑自己填啊!!)

    今日正式启动的瞎写瞎画坑,某2要争口气,自己来填啊!请把自己的灵感与异想都丢进坑里吧!人可疯,觉可省,不可一日不填坑!Orz 虽然最后这句话要打5折的,但是比没有强吧-- 此坑是为了sm懒断筋的废物- ...

最新文章

  1. OneFlow系统设计
  2. vuepdf转换html,Vue网页html转换PDF(最低兼容ie10)的思路详解
  3. none 和 host 网络的适用场景 - 每天5分钟玩转 Docker 容器技术(31)
  4. MySQL第8天:MySQL索引优化分析之SQL慢
  5. 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...
  6. 周五话营销 | 数据分析强势解决营销人三大痛点
  7. 使用spring boot+shiro+jwt+mybatis-plus搭建项目框架
  8. android 栏目编辑,android – 编辑文本导致内存泄漏
  9. python---(3)Python安装
  10. sql查询前50条_您必须知道的前50条SQL查询
  11. CenterCrop图像裁剪原理
  12. 【Quartz】 JobListener、Triggerlistener、SchedulerListener介绍与使用
  13. 图学习(二)K-armed Bandit based Multi-modal Network Architecture Search for Visual Question Answering
  14. 干货:分析学中常用的3种分析方法!
  15. GCC编译过程及使用
  16. 米塔之家.方声 | 专访元宇宙社交平台“比邻星球”联合创始人兼CEO董含灵
  17. 青岛美迪康医疗科技有限公司
  18. ACP敏捷知识点汇总
  19. 【木头Cocos2d-x 004】HelloWorld倒底怎么玩?
  20. 喜马拉雅android sdk接入,喜马拉雅(com.ximalaya.ting.android) - 8.0.1.3 - 应用 - 酷安

热门文章

  1. 程序员有话说 | 我成了敲代码的“佛教徒”
  2. html 中thead标签,HTML thead 标签
  3. Instrument初识
  4. 树莓派系列二:openCV之头像添加国旗
  5. 疯狂python讲义豆瓣评分_书榜 | 计算机书籍(9.16-9.22)销售排行榜
  6. 固态硬盘装win7系统怎么安装教程
  7. 自定义chromium浏览器
  8. 人工神经网络概念及组成,人工神经网络基本概念
  9. JAVA实现ECC加密 eclipse
  10. 睡眠麻痹 CSP HSP