2016/11/06 第750期

写可读性强的 SQL

很少人喜欢写 SQL,尤其是各种内嵌一大坨的那种。本文介绍了一些对 SQL 代码风格进行美容的小技巧,或许能让写 SQL 的过程变得更愉快一点。

上次我教 marketing 与 PM 写 SQL 后,最近再将本文介绍给他们,他们就能自己写复杂点的 SQL 了,间接节省了工程师们的时间(不用再来求工程师帮忙了)。

Error Handling in Node.js

两种异常:Operational errors,程序员预期的、可以正确恢复的异常,catch 之;Programmer errors,程序中的 bug,程序员没料到的,没法正常恢复的异常,没必要 catch,fail hard、fail fast。

这两种异常在 Java 里也被称作 Checked Exceptions 与 Unchecked Exceptions(包括 RuntimeException 与 Error 两类与其子类)。

Google 重做 Android 的那天

Android公司在03年成立;05年卖给Google后假想敌是微软的Windows Mobile、模仿对象是黑莓、使用物理键盘;07年iPhone推出,Android推倒重做;08年秋正式推出。

现在 Android 是全球装机量做大的操作系统。90年代、21世纪初的所有软件公司都怕微软;谷歌怕微软的手机操作系统垄断后,也会顺便垄断手机上的搜索引擎,谷歌就没戏唱了。07年 iPhone 发布会之时,Android 创始人 Andy Rubin 正在拉斯维加斯的计程车上看发布会视频,他急忙让司机停车,好让他把视频看完;他那时候知道,iPhone 才是真正的敌人。

Getting beyond MVP

上线了外观看似精美、实际上是胶水浆糊做的 MVP 并检验了 idea 后,下一步该怎么让后台代码变得更好维护、更好地快速迭代?先搭 CI,有简单的测试,开发新功能时随手逐步重构底层代码。

手写编程日志让你成为更好的程序员

准备纸介质的笔记本,用笔写。修补 bug 时,描述一下症状、帮助自己理解;设计算法时,记下各个步骤;记下小小成就、记下心得体会。手写让你放慢速度,有思考的空间。

又是一个 writing is thinking 的例子。