关于编码规范,每个程序员都有自己的看法,他们通常相信自己所奉行的规范是好的并且早已养成习惯,有些看法的意念特别强大,以至于上升到了一种信仰层面。

我个人觉得,编码规范不是个人习惯,比较好的态度是,信奉编码规范可以提升大家的效率,而坚守一个团队的编码规范,而不是,坚守某种固有的做法。至于

某种规范的条例是不是“很奇怪”,“不合理”,我们都可以讨论,但是讨论不代表不遵守,这才是比较职业化的态度。或者说,即便通过讨论,认定某个规范不合理,

Keep Reading — 1233 words totally

使用代理服务器收敛服务外网IP

在产品研发过程中,免不了遇到要接入外部服务的业务场景,例如:第三方支付、短信发送服务、邮件发送服务等等。这里面,不乏一些至关重要的服务,对安全要求性很高,为了便利,服务提供商,往往提出使用 IP 白名单的形式来进行辅助鉴权。若在过去,非常小的企业里,使用托管服务器作为企业的服务器的时代,这一般不在成为问题,一个是服务器本身数量很小,而且很稳定,另一方面,服务器是物理机器,其 IP 地址也相对稳定得多。

而现在,云计算作为一种价格低廉、扩展容易的形式,极大程度替换了原有的服务器托管形态的 IT 基础架构。在云计算的语境下,为了让资源能更高效利用,降低成本,云计算服务商往往采用动态分配资源,以及虚拟化技术的形式,来为企业提供服务。这就造成了哪怕是很小的企业,也有数量庞大的服务器数量(虽然它们是虚拟的),而且,因为动态分配,还可能造成服务器的 IP 并不稳定(因为,在不需要使用的时候,企业可以通过申请取消资源占用来节省开支,这样,如果再次分配,IP 地址就变化了)。

Keep Reading — 1308 words totally

所谓的 HTTPS 其实,指的是 HTTP over TLS/SSL,SSL 的意思是,Secure Sockets Layer,也即安全套接字层,是网景公司发明的一种传输层安全协议。因为对于网络信息基础架构太过重要,这个协议最后被国际标准化组织,标准化为 TLS,也即 Transport Layer Security,传输层安全协议,是 SSL 的后继者,从SSL 2.0 开始,后面一般不再称为 SSL 3.0,而称为 TLS 1.0,而 2016 年的互联网,主流都将往 TLS 1.2 以上发展。

Keep Reading — 1884 words totally

首先来剖题,这里三个关键字:基层,代表再往下,就是一线程序员了,再没有下级了;技术,这里我狭义定义为程序员,别的领域仅供参考;Leader,也就是组长,或者叫领导,选英文是因为,组长和领导,我都能问出一股“官僚”气味,不想传递这种意思。

如果用选、育、用、留四个字来概括人力资源管理,那技术团队的组建,其实,就是一个“选”字。这个地方,往往实践的时候能发挥很大的主观能动性,在公司来说,其实就是招聘,展开来讲,就整个都是招聘、选人的技巧和标准了,那真的偏题太远,不展开了。

更多想分享的,是“如何当好组长”,也就是 Leader,这么一个话题。

Keep Reading — 1949 words totally

今天,知乎《北美码农的包子铺》专栏里,提到了,跟老板 1 on 1 聊天时讲什么的话题,文章是站在一个员工的角度讲的。

正好,最近我在做绩效面谈,我想站在 leader 或者说 mentor 角度讲讲同一个问题。这样未免有些恬不知耻,也不能涵盖所有的情况,但是我觉得说不定还是能给新人一些参考。

逻辑思维,我只看过一期节目,但是一直印象深刻,就是讲我们这个时代的人,应该怎么自处,在这一期节目中,罗胖提到了“U盘型人才”,以及“手艺人”的概念。我深以为然。大体意思就是说,你在这个时代应该像一个U盘一样,有自己独特的功能,而且极其专业化,到了任何一个企业,插上就能用。这个话,有好几层意思,一个是说“专业”,有自己独特而且强大的技能,所以又叫“手艺人”;还有一层意思就是说,聘任关系,相比从前,表现出了更多的不稳定性,人才随时可以从一个企业“拔出”,然后“插入”到另一个企业。

Keep Reading — 2312 words totally

以前一直没有使用 zsh,理由是,这不是一个默认安装的 shell,我所工作的环境一般都是 Linux 服务器环境,一般系统默认不会安装这个 shell 的。另外,bash 我也没有使用得多熟练,为了逼自己熟练掌握 bash,不用 zsh。

听起来好有道理的样子,我竟然信了。这个里面,我忽略了最重要的一点,就是趣味。

其实,日常需要在 shell 下完成的事情,就那么一点,如果不是刻意去训练,使用任何一种 shell 的水平根本不会进步,如果刻意去训练的话,我想,任何一种 shell 都可以使用得不错的。而我这个人如果用不上,根本不可能去刻意训练的。

Keep Reading — 536 words totally

因为网络原因,可能导致某些静态文件无法被用户直接访问到,我这里提供一种解决方案。

我发现,不知因为什么原因,我博客里引用的 Google API 提供的静态类库和字体样式,是没法正确加载的。比如:

https:/ /fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext

Keep Reading — 736 words totally

你手下有一群很棒的工程师,并且,他们想要在自己的职业生涯中更进一步。由于他们付出的努力,他们的团队在成长,而你,想要对他们的工作成果有所表示,最显而易见的一个方式,就是让他们负责管理他们自己创建的团队,尤其,他们已经是团队的事实上的 Leader 了。但是,这真的是他们想要的么?或者只是他们所相信的“自己应该想要的”?

人事管理是一种(与技术)不同的技能

在工程世界广为人知的一个事实是,只要学会一整套新的技能,工程师就能达到一个技术的巅峰,而围绕他们这段职业生涯的“社交”和“软实力”则可能被忽略了。为了掌握这一整套技能,他们进行了无数的试错,并花费了他们绝大部分的时间。现在,他们却不是把时间花在写代码上——这是他们本来被奖励的原因。突然间,他们就从很擅长他们的工作,变得不擅长自己的工作,这摧毁了他们的自信和工作满意度。

Keep Reading — 2154 words totally

当我在使用git的时候,有三个东西的出现,一度让我非常困扰,就如题所述,staging,index,和cache。

比如,当我阅读git官网提供的电子书《Pro Git》的时候,最初一章里,就提到,文件在git里面,有三种状态,working copy,staging area,和 in repository。而在读一些man pages的时候,比如git-reset命令,又会看到index,这非常让人困扰。而git-rm 指令又有一个参数叫 –cached,其作用是”unstage and remove paths only from the index”,更加奇怪了,同时提到了stage和index,而参数名竟然是cached!!!

Keep Reading — 1261 words totally