盒子
文章目录
  1. 入职
  2. 前端js和css方面的改进
  3. php方面
  4. nginx
  5. 其它
  6. 2016年1月
  • 阅读方面
  • 团队合作方面
  • 关于技术和技术选型
    1. 改进日常工作比日常工作重要
  • 总结
  • 呆在vs的2015下半年总结和反思

    入职

    7月15入职,刚来的时候连环境都没有熟悉就撸起袖子干活赶任务,当时的任务是修改外包第二期,整合外包一二期,让网站能够顺利上线

    1. 入职上手很快,第一天开始
    2. 时间很赶,做得还不够快,甚至当时还连续两天加班到凌晨。但是从结果看,还是慢了大半天才来得及上线
    3. 当时用gitlab记录得很详细,虽然要改的东西很多,但是都有条理(对比之前一段时间比较被动)

    前端js和css方面的改进

    • 后来网站正式上线,前端js都是写在框架的view里面,没有模块化,也没有打包压缩,仅仅是在不同的view之间复制黏贴。

    • 经过一段时间的改进,完成了js方面的模块化。模块化打包前端代码,围绕browerify、commonjs和gulp做了一套前端构建的方案

    • 再后来,把前端静态资源(js,css)打包完善,打包后上传到CDN

    • 完成了node上传七牛CDN的插件

    • 前端构建 改成为非覆盖式。通过分析git记录打包,上传js,css

    • 下一步计划是gulp的插件继续完善。并通过容器技术来保证构建环境的问题。主要是由于路径和node版本等问题,这套工具在其它电脑中使用会有问题。接下来的改进, 做一个node的镜像。把前端构建放在容器中处理。

    目前的生产环境如下图。下一步要改进的是,把基础库(框架)做重,加强效率方面,然后和jquery一起打包成boudle.js。view的业务逻辑js暂时没有需要改进的,就维持现在的情况——通过入口js脚本引用组件,然后打包,上传CDN。

    php方面

    • 之前没用过thinkPHP,经过一段时间熟悉了thinkphp之后,开始写php的代码,主要是控制器里的业务逻辑。优化了一部分代码,从yii2搬了一些工具函数过来。

    • 用户上传的图片原来是传到我们自己的服务器,后来改成上传的图片上传到七牛CDN。让专业的供应商来做,比我们自己去做这部分工作会好很多。当然风险的问题也需要考虑到,之后需要做一些图片资源的灾备处理,具体的做法还没有想得很清楚。

    • 完成微信jssdk的php开发,即微信公众号开发,完成了授权登录,调用图片接口,分享接口等

    • 完成网站的微信扫码登录,即微信开放平台(和微信公众号开发有区别)。

    nginx

    来之前还不知道有这个东西,一直用的是apache。确认入职(还没入职)后,就想着先逛逛网站,了解一下,通过看response才看到了openresty,当时也不知道这个和nginx有什么关系。
    入职后,在海鹏的帮助下也很快配置了一个简易的nginx开发环境。
    nginx方面,从不了解,到熟悉,到学习内容。当然这部分主要靠海鹏去支撑,我只需要了解就可以,关于nginx方面,后续继续慢慢研究学习。

    关于nginx还有一个没有完成的任务,就是给测试机做一个 proxy_pass,同一个域名下判断ip来跳转到测试内容。这个对微信开发测试非常重要,接下来要赶紧计划。

    其它

    • 项目路演的h5页面(后废除)

    • 完成业务需求

    • 移动端去jquery,目前使用原生代码,慢慢封装api。这一部分远远没有完成(挖了一个大坑)

    2016年1月

    研究docker容器,创建了一套基本的镜像,并用在本地(本地开发也基于容器)
    具体的学习和实践经历可以参见这篇记录
    记录用Docker创建一整套 php7+lumen+mysql5.7+openresty 开发环境

    阅读方面

    看了不少书,勉强算是达成了阅读方面的计划,但是屯了很多要看的书(咳…)。
    计划看完更多的书 《图解TCP/IP》 《TCP/IP详解》 《SICP》(大坑…) 《算法的乐趣》
    学习linux方面的内容,容器和docker方面的内容。前端继续挖坑。
    阅读angular2的源码(typescript部分,2/100)
    其它库的代码
    以及算法,计算机基础 so many many…
    另外,有一个比较大的毛病就是,我喜欢在心里列一个to read list。读过的书,就算没有完全吸收,我就按照读完全部的页数,就把它勾上了。也从来没有试过读一本书第二遍(小说除外)
    简单的来说,这就是刷书,而不是读书。其实阅读和页数是没有关系的,但我心中的完整性倾向让我非常在意这件事情,而没有去注意阅读之后有没有吸收。这种本末倒置的做法,在未来的日子里需要去注意,至于改进的方法还没有找到,慢慢来吧,书还是要刷的,实践遇到的问题就应该通过更大量的实践去解决。

    团队合作方面

    最大的失误,以前看到一个地方(页面,内容,小模块)不够好看,就找几个做到好看的参考例子,扔给设计师,让他们设计更好看的,然后改进。(命令式)
    但有一次用这种方式和pony沟通,发现非常失败,他连看都没去看参考…直接无视了我,我感觉我现在都没有学会怎么和他沟通…可能在vs的团队里,我需要学会间接沟通的方式。先向产品和团队leader反映,提供建议,然后再以建立项目issue的方式让他改进。这样或许会更好。
    第一次大家开会的时候,赖老师指出过,这个无关审美,是我见过更好的,就有一种纯粹的想让产品变得更好的心情。
    在这里不应该去指责团队成员的不配合,以前的命令式合作不行,就应该寻求另外的一种方式。
    总而言之,就是要探寻一种有效的团队推进方式(推进一切,不管是设计,还是优化性能,添加功能,还有用上更新的,更激进的技术)。任何人也无法阻止我改进一个产品。

    虽然美或者好不好看是主观的,但是应该有更符合大众,更简单,更清爽的设计规范是可以互相参考并吸取。

    关于技术和技术选型

    我觉得我在技术选型方面是一个比较激进的人。喜欢将比较新的技术应用到生产环境。可能这样不稳,会出现各种无法handle的问题
    但是一味的采用比较老旧的技术,缺少了很多特性,效率上也会缺失。这样就会丧失掉我们的竞争力(详细的论述应该看《黑客和画家》中为什么格雷厄姆要用lisp来创建网站。
    当然也可以采取中庸之道,但是这样就不够彻底。
    虽然我们是一家很明显的业务驱动的公司,只需要技术和产品能够不断的跟进,给予足够使用的支持(但是现在连这种支持的都没有做得很到位)。虽然个人的努力很渺小,但我从来都不会放弃希望……希望能构建一个强大且功能完善产品,包括打造能够完成数据收集、挖掘、分析的产品……通过这些强大的技术、数据和产品支撑业务,驱动公司。
    或许docker是一个很好的改变机会,至少在php上,我们可以选择去年10月才发布的php7
    至少可以拆分一个管理后台,用最新的mv*,用最新的php去构建一个更敏捷,更容易维护的项目。

    在我第一次见赖老师的时候,我展示过一个用angular1写的管理后台,当时我还很自豪的说,这个东西我只是用了一个星期就搞定了,后来不断的新需求,也很轻松地加了上去。甚至在做这个后台管理系统之前,我还不会用angular……只是觉得不错,应该ok就开始做了。这至少是一次技术激进成功的励志。

    但是现在,每一次看到 用jquery和乱七八糟的jquery-table堆起来的后台,我就深恶痛绝……

    每一次都选择都有特定的原因和仅能如此的条件土壤,只是很痛恨自己没有更早的开始对它开始改造。容忍它一直烂下去。对我们而言,这一部分是当初为了快速实现的技术债务。

    我现在的方案是,把管理后台单独拆分出来一个单独的域名(admin.vshares.cn)和项目文件夹, 然后是docker, php7, openresty, angular2, lumen

    对于现状,永远都是不满的,即使我费了很多心力去改进。
    我内心对于管理后台的评价是非常非常烂(D—),网站是很烂很烂(C-)。我还是要继续的改进的。包括使用更高效的框架,语言层面升级到更高版本,前端各方面的优化,不仅要模块化,还要有开发效率,不能仅仅是require一个jquery,还要构建更适合我们vs网站的工具或者库。node构建工具也是要更多的改进。另外自动化测试,包括前后端的,包括页面的,这个事情从来没做过,将来一定要跟上。晓伟的静态页面对比工具给我很深刻的影响。

    改进日常工作比日常工作重要

    gitlab是一个很牛逼的开源工具,但是gitlab.com是一个很烂的网站。
    犹豫的海鹏被我催了很多次,我费了很大的力气才把我们的项目从用gitlab.com转向用bitbucket。
    海鹏觉得这个是栋哥选的,PR的规范也是栋哥定下来的。所以他一直很犹豫换git仓库这个事情。但我厌恶恶劣工具的时候是毫不掩饰的,这驱动我去改进或者寻找更好的工具。
    栋哥用的是迅雷自建的git,也不清楚gitlab的状况,而且他也忙,跟他提一下这件事情就可以了,不需要说等他调研,等他回复。
    将在外君令有所不受。只要让事情向更好的方向就可以了(git push,pull更快,减少无谓等待)

    上周开始,经过我的努力推动连issue也不用在gitlab了,转向coding.net。 coding有一个很吸引人的功能,就是能粘贴微信截图,并且上传到它的CDN,这样大大省了建issue的时间。

    其实并不是我无脑追求华丽或者高大上的工具…只是一旦原来的东西有让人厌恶的情况,我就很难去忍受它。改进的想法会一直占据我的脑洞……

    改进或者就是这么一点一滴的积累的……每一次都这么小,这么不起眼。

    总结

    想做的事情很多,开的大坑更是不少(大雾……),常常要和犯懒的自己做斗争,这是一个痛苦而不可避免的过程。
    要承担更多更多的责任,要有更大的压力去驱动自己。2016要动起来。

    最后 “有进步不是因为你很努力了,只是因为你足够的菜”
    共勉