代码审查不是用来……

| 技术技巧 | 8条评论
48

在我们公司里要执行代码审查。这是我们每天的例行工作。事实上,今天的我们正是从这种一直坚持探索的漫长道路上走出来的。我们尝试各种技术、方法和工具,直到我们走到今天的成就(但这并不是说我们就此停步)。

我是如何反编译D-Link路由器固件程序并发现它的后门的

| 技术技巧 | 6条评论
302

基于上面的字符信息可以看出,这个/bin/webs二进制程序是一个修改版的thttpd,提供路由器管理员界面操作功能。看起来是经过了台湾明泰科技(D-Link的一个子公司)的修改。他们甚至很有心计的将他们很多自定义的函数名都辅以“alpha”前缀:

代码重构方向原则指导

| 技术技巧 | 15条评论
77

重构是一种对软件进行修改的行为,但它并不改变软件的功能特征,而是通过让软件程序更清晰,更简洁和更条理来改进软件的质量。代码重构之于软件,相当于结构修改之于散文。每次人们对如何对代码进行重构的讨论就像是讨论如果对一篇文学作品进行修订一样无休无止。

番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的

| 技术技巧 | 20条评论
222

如果你经常读一些关于提高工作效率或时间管理类的博客,一定听说过番茄时间管理法(Pomodoro Technique)。这是一种极好的帮助你集中注意力、获得更高工作效率的方法。

走开,我们在编程(第二部分)

| 技术技巧 | 15条评论
46 我们在编程

通常,我更欣赏不按时长来看一个人的工作。很简单,有些人一天在办公室里工作12个小时,但只有很少的实际工作成果。加班加点短期冲刺可能会有效,我们有时也这样做,一般是因为有了重大的产品问题或产品发布前的最后一拼。

KISS My YAGNI

| 技术技巧 | 2条评论
26

我们都知道KISS (Keep It Simple, Stupid)和 YAGNI (You Ain’t Gonna Need It)软件开发原则,然而,过度复杂的软件仍然随处可见。

Reddit排名算法工作原理

| 技术技巧 | 6条评论
52 算法

这是一篇继《Hacker News 排名算法工作原理》之后的又一篇关于排名算法的文章。这次我将跟大家探讨一下Reddit的文章排名算法和评论排名算法的工作原理。Reddit使用的算法也是很简单,容易理解和实现。这篇文章里我将会对其进行深入分析。

嘎嘎叫的小狗——快乐的鸭子类型

| 技术技巧 | 1条评论
23

鸭子类型是我目前在Ruby语言里最喜欢的一个“功能特征”,主要是因为它能让我们轻松的写出漂亮的代码——毕竟,你无需再担心类型:你可以把精力全部集中到你想发送的消息上,以及你需要打交道的对象能发挥的功能上。

Hacker News 排名算法工作原理

| 技术技巧 | 4条评论
56

这篇文章我要向大家介绍Hacker News网站的文章排名算法工作原理,以及如何在自己的应用里使用这种算法。这个算法非常的简单,但却在突出热门文章和遴选新文章上表现的异常优秀。

8300英里之遥的合作开发

| 技术技巧 | 5条评论
46

每次跟我那些阿根廷的朋友说起我在和一个俄罗斯人合作开发Listboard.it时,他们都会问“你是怎么做到的?”很显然为什么他们会这样问。丹尼斯和我相距8300英里(大约1.3万公里),

如何有效的进行道歉

| 技术技巧 | 7条评论
59

因为人需要和其他人共同生活,所以道歉的这种事情在所难免。我们偶尔的会遇到这种时候(希望不是经常),我们搞砸了事情,或大或小,我们需要给某人一些交代。

皮克斯动画讲故事的22条法则

| 技术技巧 | 5条评论
185

对于一个人物,你赞美的应该是他的不屈不挠,而不是他的成功。

面向“接口”编程和面向“实现”编程

| 技术技巧 | 8条评论
53

如果你已经读了我的前几篇关于面向对象范式因为受到Rust and Go等语言的影响而发生变化的文章,看到了我正在研究的Rust设计模式,你会发现我对Rust语言十分的偏爱。

教你如何做需求调研:忽略极端情况

| 技术技巧 | 4条评论
53 需求调研

通常人们有个误解,认为我们有计算机,它们应该解决我们的所有问题,甚至一些极端情况。极端情况——根据定义——只会发生在极端条件下,缺少一定的投入,用常规的方式很难处理。

编码风格不是编码规范

| 技术技巧 | 10条评论
88 编码风格

我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。如果看到一个函数的括弧在同一行上没有闭合,我的眼睛会喷血。如果看到有人没有恰好的在两个函数间留一空行,我的小腿会抽筋。