zoukankan      html  css  js  c++  java
  • 工作阶段性总结


    到杭州工作快三个月了,一直跟随着公司的快节奏,很少让自己停下来总结总结。积累的多了,若是不总结,这些积累的东西可能也会随着时间慢慢丢失了吧…

    在公司做的工作内容与我自己所写的项目大致相同,公司的项目是前后端分离,我只需要关心后端的接口服务,偶尔抽个包之类的,这些事情做起来不说游刃有余,倒也没遇到多少瓶颈,还算是挺顺利的,也很有激情。激情是因为通过工作的内容,我能学到很多技术优秀的用法,比我曾经用的好得多的。

    async包,我以前是没有用过的。异步的机制在node来说是再正常不过的事了,而我也就简单的用用它的回调,感觉好像就这样了,其实我不知道的还有很多。async包能够将运行效率成倍的提升,例如其中的parallel、map等方法,有段时间,我在工作中疯狂的用这些方法,真入迷…但是这个包诱发的是我对其原理的兴趣,我想了解这些功能是如何实现的,因此,我在慢慢的啃源码…

    测试。关于javascript的测试,自己也有用过,使用jasmine来写的。到公司之后,接触了should、supertest、mocha、istanbul等包,这一套工具对测试来说,以我目前的水平已经足够用了。在践行测试先行之后,能将这一套工具初步的用起来,我的接口的测试代码均在500-600行左右,多的能有1000多行。为什么能写那么多行,除了基本的结果数据、边界、权限等,主要是造数据的代码太多了。没有忘记熊节老师的提点(写了这么多重复代码你也好意思- -),将造数据的代码提取了方法,获取登陆状态的也进行了封装,能精简的就精简,但还不够自动化…感觉这三个月,加上测试代码,妥妥的有一万行代码了…测试这块,我很想再提高的,想再精简一点,能自动化就最好了,得多逛逛github吧~

    健壮性。这个词,在龙湖的时候是经常提起的,健壮性、可读性、可靠性…而实际的工作中,程序出了bug崩溃了,才让我真正明白了何谓健壮性。nodejs作为单线程的语言,一旦有一处调用出问题了,那么整个程序便会挂掉。举个工作中的例子吧,比如,前台一个请求,需要一个数据列表,我收到这个请求之后去数据库查找,找到相关数据之后,为了显示的完整行,可能还需要返回这些数据的创建者信息,那么我就用这些数据存储的创建者的id去查找然后在返回的结果中给创建者信息赋值。这个过程中,假如某条数据没有存储创建的id,或者这个id对应的创建者不存在了,那么你调用data.creater/user.name,就会报错。随之而来的就是程序整个挂掉。正式运营的项目挂掉的严重性我就不提了,就说说怎么处理这些脏数据所造成的威胁吧。目前来说,我有三种处理方式:

    1. 在你觉得可能会出现问题的代码那里加上try catch块,在catch/finally中对其做处理
    2. 直接给个默认值,比如data.creater = data.creater || ''
    3. if条件判断

    除技术方面之外,在做事这块,也有很多体会(大多时候是被喷了- -、)。

    公司的项目是前后端分离,那么上线之前得有个联调阶段,这之间就可能会出一系列问题…比如,接口文档的字段写错了,前后端可能一方用正确的字段,一方可能不改,联调的时候就会出现

    “诶,你这少返回了一个字段啊喂” 
    “没有啊,我测试过了的” 
    “...你来看看”
    “我靠,你这字段错了,明显单词拼错了嘛”
    “你看文档,我们按文档来好吧”
    “文档定错了我们也按文档来?balabalbala”
    “...”
    

    比如,前后端联调都过了,

    “兄弟,你那边显示没问题了吧“
    ”没问题,我都看过了,数据有了“
    ”那行,棒棒哒~“
    ”...“
    

    快上线的日子到了,

    ”那孩子,这接口是你写的吧,测试过了没“
    ”没问题的,老大,我和前端测过了,ok的“
    ”那你来看看数据怎么才10条!!“
    

    蹬蹬蹬的跑过去,打开console,看了看返回数据,

    ”诶,你看,我这分页的数据有传给他啊“
    ”那当时联调的时候怎么没解决呢?这是你做的东西,你不跟进确认吗?你做的东西被糟蹋了你还淡定的跟我说你传了?是,前端是有责任,那你呢?balabalabala“
    

    感觉自己都要被喷死了…实话说,这一天我的状态是崩溃的థ౪థ

    成长的过程是痛苦的,我觉得我一定是成长了很多,这也是我这天唯一能高兴的点…

    这个故事告诉我,

    1. 自己做的东西一定切实的确认它成功的落地了,也就是说不仅要保证自己这边的东西没有bug,还得确认调用的人那边也没有问题,这算是对自己负责吧。
    2. 做事情,一定得和同事保证信息的畅通性、实时性,有什么问题、哪里有改动,需要通知的一定得互相知会到位。

    然后呢,我觉得应该总结出一个最重要的事,

    一有什么问题浮现在脑海里马上就不假思索的提出来,这并非是件对我们有帮助的事情。
    

    有时候,坑是自己挖的,自己掉进去了,也只有自己默默地爬了(含泪总结థ౪థ)…

    总的来说,这三个月过的还行(至少没找家里要钱),三思而后行,三思而后问,谋定后动。接下来,这些总结的东西需要学而时习之,最后还是对接下来的事情定个计划:

    1. 继续研究async包,尽力搞懂其原理
    2. 继续研究大文件读取写入(这个是自己某次偶然遇到),对node的文件操作有自己的心得
    3. 不辜负豪情大大的提点,在前端方面还是要自己多努力,做一个自己demo
    4. 对express框架进行更深入的理解

    加油,baby

  • 相关阅读:
    用html5标记一段文章模块
    自定义事件
    html5表单
    对canvas封装的js库
    canvas
    第五周进度总结
    第七周进度总结
    大道至简阅读笔记
    第六周进度总结
    第三周进度总结
  • 原文地址:https://www.cnblogs.com/wfsovereign/p/4947246.html
Copyright © 2011-2022 走看看