2017年,是我人生中比较重要的一年。这一年,走出象牙塔步入社会;这一年,尚未佩妥剑,出门便是江湖;这一年,酒尚有余温,入口不识乾坤。总之,这一年,我开始参加工作。年轻人忌感慨,特别是任何领域都毫无建树的年轻人。废话不多说,开始总结这一年的工作。
2017年的工作主要分为两个阶段实习期和正式工作。实习期从2017年2月末至2017年5月初,正式工作从6月毕业至今。
一、实习期
实习期主要是熟悉部门的业务,了解工作的流程。起初,老大给我们讲了部门主要是做管网、燃气方面的系统,然后告诉需要安装的软件有哪些以及环境配置的流程。服务器采用微软的IIS,数据库采用SQL Server 2008,代码管理工具采用SVN。由于服务端代码采用C#编写,所以采用微软的VS编译。当时听到这么多软件都是微软的,我纳闷是不是还要兼容微软IE的6/7/8。然而,直到现在我还很少几乎没有写过兼容各浏览器的代码,只要谷歌chrome支持就ok了。对于前端开发人员来说,这无疑是福音!这样的弊端是导致当初死记硬背的那些主流浏览器兼容性问题遗忘的所剩无几。另外,工作任务的分配是采用tower,感觉这是一个非常棒的产品。
部门的主要产品是结合GIS(Geographic Information System,即地理信息系统)为水司或者燃气企业提供解决方案,属于构建智慧城市的范畴。实习期间并没有接触到地图的配置,甚至是运维(后台管理)都几乎没有打开过。对于系统的整体框架也没有一个全局的认识,只是老大和师兄吩咐做什么,就做什么,缺什么工具或组件就寻求help。实习期间的前半部分是自己在现有的框架里搭一个学生表,实现增删改查,目的是了解backbone的mvc思想。backbone是mvc框架的鼻祖,mvc即model(模型)-view(视图)-control(控制器)。尽管现在前端流行mvvm,mv*框架,backbone渐行渐远,但是backbone的思想确实挺有意思的。实习之前没有什么项目经验,这个学生表捣鼓了差不多两个星期,没有后台,用localstorage存储数据,而且没有体现出spa单页应用的特点。后来,科长把他入职时做的学生表给我们展示了一番,其实当时很纳闷不就一个学生表的增删改查吗,干嘛还要用到路由,弄这么复杂。当时的自己很无知也很可笑吧。程序实质上是有思想的,如果程序单纯地只是为了实现功能,而不考虑可读性可维护性可扩展性,那就是一个码农而不是一个工程师。程序是一种艺术,原先将它写成了一坨shi,现在以后我想将它写成一首诗。
学生表还没有来得及优化,就被分派到做实际的项目开发中,webgis3升级到webgis4。拿到任务的时候内心是很惶恐的,和另外一个前端实习生都很质疑就这么放心地把任务交给我们吗。事实证明,只要有大佬在,技术问题根本是不存在的。尽管其中也碰到一些坑,但是感觉得到上手项目是提高能力最直接最有效的途径。在功能做完后,原以为会有专门的测试人员,然而并没有。功能做出来后,研发和项目经理依次测试,项目经理测完就给客户部署更新。这样做方便研发人员对系统的整体把控更加到位,考虑更加周全。
二、正式工作
正式入职后,每天到公司工作的第一件事情就是用svn更新代码,再用vs编译服务端代码,然后打开tower查看昨天遗留未解决的问题和今天待完成的任务。任务按照紧急程度次序做,优化任务研发需求可以延后,客户线上的bug优先解决。
起初,拿到一个功能需求,我会立马就键盘啪啪的敲起来,在之后的工作中就反复地改代码。这是一种很愚蠢的做法。绍兴燃气项目的气量周报就是一个很典型的例子。正确的做法是首先要弄清楚业务流程,预想功能做好应该是什么样的,开发过程中要解决哪些技术难点。这种类似于写伪代码的思维模式对工作是很有帮助的。在那一次不断地挖坑填坑后,意识到这点后,这种错误明显地减少了。
在老大帮我写过几个服务后,以后的服务都是自己参照别人的代码写。复制粘贴也是一种很好的学习方式。之前没有接触过c#,但是你会发现代码都是有套路的,只要遵循程序语言的语法,其他的无非就是对数据库进行读写(curd)。因为我们的客户是针对特定的水司部门和燃气企业,用户有限日活不多,所以不需要做压力测试,反正目前就我接触到的项目数据不是很大。编写c#的工作会用断点调试,crtl+alt+p附加进程就基本可以满足工作一般的服务开发。当然这是在框架搭建好的前提下。
现在来说说前端这块。在我的理解中所谓的前端主要是负责渲染模板和注册事件。从服务接口传递参数获取到数据,将数据填充到页面中去;监听用户的操作(键盘和鼠标操作),仍然是去请求服务,返回数据。然而这个看起来很简单的道理,如果要结合实际的工作就不那么简单了,形形色色的前端框架做的大多是这个工作,但是殊途同归。考虑到工作的效率,项目的需求,在系统升级到web4的过程中,我们前端主要框架依旧沿用backbone。关于业务系统,我画了张流程图,链接: 部门的系统(产品)有很多,业务系统、巡检系统、工单产品等。但是多个系统应用的是同一套基础框架,然后在主页框架上做各项目的扩展和配置。还有一件印象比较深的事是在翻新旧产品时,需要一个富文本编辑器。在网上找了好久没有发现一款自己想要的合适插件,于是自己动手写了一个,算是真正意义上属于自己造的第一个轮子。
三、思考与展望
业余的时候,也研究过node.js,vue以及python、把这三者的基础知识过了一遍,也从github上克隆过相关代码,但是没有足够的动力坚持下来,浅尝辄止的后果就是花费了时间依旧感到很迷茫。js红宝书也过了一遍,还是很有收获的,emmm打算再把重要的章节详细的过一遍。
从事自己喜欢的工作是一件幸福的事,把喜欢的事做的最好才能说明发自内心的热爱。无论怎样或好或败,2017都已经成为了过去时,2018要更努力。