小姜哥的2019年总结

前言

时间过得飞快,又一年过去了,又到了年根儿。

2019年主要有收获两个,一是有了一个女儿,马上八个月大,可爱同时调皮;另一个是头一次带二三十人的团队,两个对我来说都是不小的挑战。

由于真的很忙,过去一年几乎没有写任何博客,借这次总结多写一些。

团队

因为支持的需求方进一步增多,也会采用了一些方法来保证顺利进行,下面简单列举两例。

需求对接

为了更好的理解清楚需求,评审前或者评审时搞清楚如下几个问题。

1、做这个需求的原因?他会给用户带来什么价值?

2、什么样的用户会用到这个特性?他在什么场景下使用?他会怎样使用?

3、达到这个目的有没有其他手段?是不是一定要开发?

4、这个需求如何衡量他的有效性?

为了更好的落地,评审后做如下几件事儿。

1、列清楚会上不确定的点,写清楚需要谁在什么时间确定或者解决,发到项目开发群里。

2、列清楚需要谁在什么时间提供哪些资源,发到项目开发群里。

3、自己的技术方案是什么样的,有哪些不确定性,事前研究。

4、出现不符合预期的情况及时反馈,大家一起解决。

需求的最终点是上线或者下线,对,是的,对于长期在线上的产品需求的终点是上线,对于有时效性短期在线上的产品需求的重点是下线,在终点之前的所有工作都是在为终点做准备。

我曾经见过一些个人或者团队只闷头开发,不规划整个开发流程和节奏,不规划上线方案,干到哪里算哪里,最后加班加点把项目搞上线,上线之后出一堆问题。

高手都是在预防问题,正如扁鹊说他大哥医术最好,二哥次之,他最差。因为他大哥是治病于病情发作之前,二哥是治病于病情初起之时,他是治病于病情严重之时。

与UI同学合作

之前给UI同学做过一次分享,期间提到了如何保证UI质量的问题,讨论的结果是所有涉及到UI的改动都得经过UI同学。

当然为了保证工作效率实际执行的方法是涉及到颜色、尺寸、位置的改动都需要UI同学参与。注意参与这两个字,也就是说不一定出UI稿,比如要改某一个颜色值,UI同学直接提供一个颜色值也是可以的,如果真的要出UI稿才能保证质量那么UI同学和前端同学都会有自己的判断,大家都是很专业的。

招聘 & 面试

今年有多位新同学加入到团队,有校招,有社招,整体上团队的实力又有了提升。既然大家加入到这个团队,我就要帮助大家成长,我不完全认可成长是个人的事儿,成长需要团队氛围,以前我也是被领导从愚昧的巅峰推下去的。

今年面了很多人,期间也发生了一些有意义或者有意思的事儿,下面列举几个典型。

校招

秋季校招加春季校招累计招聘了5个同学,面了多少人,粗略估计得有七八十吧。

阅读全文 »

小姜哥的2018年技术总结

前言

真的很快,又到了年根,说是年根儿真的很形象,一年就像是一颗树,消耗的就剩下根儿了说明一年快结束了。

今年打算公开,有一些东西不方便写,也不会太长。

主要会分成旧工作总结,新工作介绍,新技术及我的观点,其他方向技术能力扩展。所有都是从技术视角来写的,非技术会单独总结。

2018年最大的变动是换了一份工作,发生在4月末五月初。

阅读全文 »

使用xca自签https证书实现公司内网https化

我们都知道可以用openssl来自签https证书。其实有一个小工具可以图形化操作,叫做xca,链接地址 https://hohnstaedt.de/xca/

虽然是德国域名,语言还是很友好的,全是英文的,不会因为看不懂德文而烦恼。

自签名证书是什么原理?我们的系统中会带有一些公认被信任的根证书,用受信任根证书私钥签发的证书也会被认为是安全可靠的。如果我们自己弄一个根证书安装到系统中并且信任那么用这个根证书私钥签发的证书也就会被信任。说起来简单,其实背后有特别多的知识。

我不认为公网服务用自签证书合适,对用户的要求太高,但是实现公司范围内的https化或者测试使用是没问题的,在公司范围内可操作性非常高,更何况我们还可以开发一个客户端来完成这件事儿,新员工入职系统中直接装根证书。

阅读全文 »

你可能不知道的Node.js和NPM

前言的前言

这篇文章来自内部分享,目的是让大家会用并且用好Node.js和NPM,毕竟会用和用好还有很大的距离。

另外就是让大家从每天都打交道的工具中听出来新东西。

前言

今天跟大家分享一些实用但很少有资料一次性说清楚的知识,不限于Node.js和NPM,包含一些常识性的知识,会对大家工作学习有比较大的帮助。

希望达到的目标是大家能把Node.js和NPM用好。最不济的情况是遇到问题的时候能知道往哪个方向查。

先做一个小调查。

阅读全文 »

X Y Problem

定义

提问者问了一个自认为可以解决问题的方案,而不是直接提问实际要解决的问题。这实际上浪费了提问和提供帮助双方大量的时间。

  1. 某人想做X
  2. 他不知道怎么做X,但是他觉得Y是一个可行的方案
  3. 但是他也不知道Y怎么做
  4. 他找人问Y问题怎么解决
  5. 帮助他的人觉得Y问题很奇怪
  6. 在浪费的很多时间之后帮助他的人明白他实际想解决X,而Y方案实际上又解决不了X问题

例子

  1. 小明想获取文件的扩展名
  2. 小明认为截取文件名的最后三个字符就是文件扩展名
  3. 小明不知道如何截取最后三个字符
  4. 小明问大明如何截取最后三个字符
  5. 大明告诉了小明如何截取最后三个字符
  6. 小明程序运行不正确
  7. 小明觉得大明给的方案有问题
  8. 小明又来问大明
  9. 反复沟通后大明告诉了小明扩展名可能不止是最后三个字符
  10. 大明帮助小明正确的获取到扩展名

如何避免

  1. 告诉帮助你的人实际要解决的问题
  2. 给帮助你的人足够的信息
  3. 提供你尝试失败的方案给对方

来源

来自http://xyproblem.info,有修改。

Lua学习笔记(基础入门)

简介

  1. lua是一个轻量小巧的脚本语言,编译后一百多K
  2. 用标准C编写
  3. 以源码形式发布
  4. 设计目标是为了嵌入其他程序
  5. 支持面向对象
  6. 自动内存管理
  7. 可以扩展其他软件的能力,如nginx(openresty)

环境安装

mac

1
$ brew install lua

执行

1
$ lua test.lua

基本语法

注释

单行

1
-- 单行注释

阅读全文 »

web前端应届生技术图谱

上篇回顾

上一篇写了一些注意事项。

正文

这篇文章主要帮助应届生梳理一下应该具备的技能,希望可以帮助即将毕业的朋友们。面试找工作和考试不一样,没有大纲,也不是只学好学校书本上知识就OK。主要是下面这张图,后面会有适当的文字用来解释,方便大家理解。


阅读全文 »

使用cnpmjs.org搭建私有npm源

前言

淘宝NPM 让很多技术同学过上了爽快的日子,因为访问npmjs.com有时候真的很慢很慢,真的感叹阿里的财大气粗。而且cnpm还开源了,网址为cnpm/cnpmjs.org 。很多公司使用cnpmjs.org搭建了自己的私有npm源,如美团。下面简要的写一下步骤。

正题

首先要选择版本,选择的是2.19.4,是最新的稳定版。从tag来看alpha发到alpha 15版本,beta没发,但是npm上的最新版本的tag确实beta1,这里实在没明白。

cnpmjs需要数据库支持,我们选择MariaDB,安装什么的不说,现在假设已经有一台MySQL可用。

我们选择下载源码部署,把代码clone到本地,并从tag 2.19.4创建一个分支。

阅读全文 »