关于前端开发的几点感悟

引言

  • 做前端开发时间不算长,虽然在很多方面仍是小白,但是毕竟也悟出了一些东西,借此平台分享,也算是自己成长道路上的一点积累;

广度还是深度

  • 自己对这个问题纠结了好久,最后得出的结论是:不用纠结,just do it!下面引用实验室一位牛人的看法,以此告诫自己just do it才是最重要的!
  • 在一无所知的时候,当然是广度重要,需要先知道、后深入;
  • 在知道了一些后,当然是深度更加重要,不同的框架、语言、知识都是相通的,如果真正将一门技术、一门语言学深入、甚至达到了精通,并且能够抽象出来一种适合自己的学习方法,那么学习其他技术也会触类旁通;

学习一门新技术的方法

  • 了解技术的应用状况和应用前景:
    • 在知乎、博客上搜索;
    • 这项技术多少人在用、哪些公司在用;
    • 这项技术处于上升还是下降阶段,是否会一直流行;
    • 确定深入学习的路线图:
    • 了解业内评价较好的专业书籍导论、目录;
  • 进行第一遍普及性学习,此阶段的目标不是深入理解,而是会用、上手、基础性代码跑通:
    • 官方文档、W3Cschool总结性文档;
    • 公开课(比如极客学院);
    • 入门博客;
    • 入门书籍;
  • 在学习深入到一定程度后,会发现一个瓶颈,那就是会用、但是不明白原理。此时应当进行第二遍研究性学习,此阶段目标不是广度,而是对某一技术点的深入挖掘,要达到看懂源码、完全了解内部运作机制的程度:
    • 确定需要深入挖掘的几个技术点;
    • 专业性书籍;
    • 专业性博客;
    • 官方文档细节;
    • 在github上搜索别人的代码,阅读优秀代码;
    • 自己实践一个小项目;
  • 分享和提升:
    • 在研究过程中产出自己的理解,试着写github和blog等,分享自己的思想;
    • 回过头看看在”第一遍普及性学习”中的疑问是否解决;

Web系统开发流程

  • 我还没有真正步入职场,但是根据在实验室的项目经历,也能悟出一些在web应用开发过程中的团队合作技巧和注意点;
  • 首次讨论,不考虑技术细节:
    • 系统的逻辑架构;
    • 系统的物理架构;
    • 系统需要哪些页面,之间怎样跳转,大概设计什么页面功能;
    • 讨论后写wiki文档,让大家再想想细节,确定可行的方案;
  • 第二次讨论,确定主要技术点的具体方案:
    • 用户需求定稿;
    • 页面样式设计图定稿;
    • 数据库设计定稿;
    • 系统主要技术点定稿,确实困难的技术点要确定几个备用技术;
    • 讨论后将系统总体任务分解成小任务,提issue分配到人,确定时间进度;
    • 原则:同一个页面交给同一个人去做和维护;
  • 开发过程:
    • 原则:只考虑把东西做出来,暂不考虑性能问题;
    • 每个点:新建分支、写代码、commit和push、备份代码和数据库到本地、及时合并代码到master;
    • 及时和用户、产品经理沟通(如果有双重管理更应如此),沟通好再开工,避免用户需求的更改导致重复劳动;
    • 开发文档写在wiki;
    • issue完成及时关闭;
  • 整体完成后上线测试:
    • 考虑性能问题;
    • 考虑代码优化;
    • 考虑测试中遇到的各种实际问题;

搜索技巧

  • 刚开始用google的时候总是搜不到自己想要的东西,原本以为是自己英语太渣,现在看来是没有掌握住“关键词”,下面就把我总结的常用的搜索技巧分享给大家;
  • js官方文档:MDN
  • 扩展内容:cuntomized
  • 实例内容:example
  • 搜教程:tutorial doc
  • 搜下载:download
  • 代码测试器:plunker
  • 同级概念:… vs …
  • 搜快捷键:
    • 代码补全:code/hint/completion/assist
    • 代码格式化:code format
您的支持是对我最大的鼓励!