一月份听过同事一场分享,其中提了一下个人发展中“关于知识体系的建立”,现在回想起来,已经毕业两年了,我自己的知识体系却还是破碎不堪(脑子里想了想,发现在技术方面我好像什么都懂点,知识面是铺的还可以,但是没有一个很深入,能秀一下的技术点,对自己蛮失望的吧),现在整理一下Web开发的整个过程,顺着这个过程分析分析自己,看看自己有多少不足。

Web开发

    关于WEB开发,最基本的流程就是:
  1. 需求分析
  2. 技术选型
  3. 服务器、运行环境部署等
  4. 开发
  5. 测试、上线

需求分析

    这一部分是和产品经理讨论,了解需求的过程。之前看过一些文章,看到大家说目前国内大部分公司里,在和产品讨论需求的时候对于developer来说很不友好,因为在产品需求上,开发人员是没什么话语权的。其实不然,是因为大部分开发人员的角度都是在技术角度思考需求,这对一个产品的发展不友好的。一个产品,我们需要思考的是它的定位,它是解决哪一特定人群的哪些问题,以及如何做出调整让它变得比竞品更有特色更吸引这一人群。当然,在这些方面产品经理的能力明显优于我们开发人员,但是在产品的核心功能的优化上、如何让产品更好的稳定的帮助解决用户、让用户体验更好的问题上我觉得这才是开发人员应该思考的,而不是拿到需求就开它是否好实现,会存在哪些问题。

技术选型

    一个产品的不同成长时期,可能技术也不太一样,刚开始会选择一种简单的语言,快速开发出产品来,等用户量或者一些原因发生再会进一步选择其他语言或者多种语言配合开发,所以这就不得不说一下语言了。
    目前后端语言我还是只擅长PHP,对Ruby、Python、Go、Java都还是可以看懂但是要做满足一定水准的开发还不行的阶段,前端语言会JavaScript、Css、Html已经落伍了,现在前端的框架、打包工具以及各种Css的扩展语言(Sass等)等都是前端必备的,我还是只停留在会前端语言的层面,后面一些用过,但是自己对它的原理的理解则是空白。
    语言从大的方面分为两种,一种解释型一种编译型,最大的区别就是后者需要先编译才能解释运行,前者则可以直接边编译边解释运行。一门开发语言最基本的结构就是:


再就是其开发规范,各种方式写法的性能,以及其运行方式、垃圾回收机制、框架等等。可现在我要学的还有很多,希望2019年能把Go和Python拿下,Java的微服务需要走一遍(之前看过一篇《停止学习框架》译文,确实,我们应该学习通用技能,而不是学习某些特定的框架)。

服务器、运行环境部署等

    服务器,目前用的最多的就是http服务器(当然一些内网之间的调用会选择其他的协议或者改版http),服务器系统现在主流是unix或类unix系统,我用的最多的是linux。所以,各种协议的原理、linux系统相关以及其基本的操作这是我在这个环节要具备的,现在我对协议的理解还是比较浅,linux的了解也很浅,只会基本的使用,所以之后2019我想我要学会shell以及能对各种协议有深层次的理解。

开发

    业务的开发,做了两年,有时候会有些厌倦情绪,我想了很久,为什么会有这种感觉,发现一个是自己觉得什么都能网上找到,都能看得懂,所以都是拿过来改一改就好了,所以做了一段时间也没有长进,这是因为我没有去搞清楚这个功能的通用原理,而只是抄作业一样的实现了(比如说下载excel,为什么要这么设置header头,为什么数据格式要这样拼凑,我没有去了解浏览器header相关知识和excel的代码实现格式,而只是按班就部的抄别人写好的代码,改一改)。还有就是眼光只停留在开发业务代码的层面,没有积极去想过怎么优化代码,优化框架,以及现在有没有新的更好的技术来实现。所以2019,我希望自己能对框架、编程思想、功能原理这几点上更多的思考(之前看了CI框架的源码,对MVC框架了解了很多,还造过MVC框架的轮子,现在怎么就没这么肯学了呢)。

测试、上线

    测试,基本上大部分公司都有专门的测试(大部分都是黑盒测试,只有大厂才有白盒测试),作为开发人员会PostMan或者一些自动化测试的工具就可以了,之前做过自动生成文档,但是自动化测试还没有做过,上线就涉及到版本控制(比较喜欢Git)以及自动化部署,这些都应该是早就应该会的。

    总结来看,今年的计划:
  1. 需求分析的时候,多站在产品角度思考,跳出开发身份限定。平时开发过程中更加追求完美,学习编程思想,读框架源码。
  2. 掌握Go、Python
  3. 搭建微服务
  4. 熟悉各协议原理
  5. 学习shell,更加深入的使用linux
  6. 对Nginx更加深入的了解(看完那本书)
  7. 了解Git原理,搭建自动化部署,编写自动化测试
  8. 英语还是继续学啊,三个月没记单词了!!!

写到最后,也不知道自己写了些什么,写作逻辑还是不行,脑袋里的东西以及思想这些东西,慢慢磨练吧,以前那个自己不知道去哪儿了。