《淘宝技术这十年》读书笔记

技术演变

个人网站 2003/05-2003/12

LAMP

linux + apache + mysql + php

分库

读写分离, 备份

个人网站的升级 2004/01-2004/05

mysql->Oracle

myISAM write的时候要lock整个表

企业级Java网站 2004/06-2006/12

php->Java

php的sql relay会死锁

分模块同步开发, 开发完后分模块替换

Java MVC框架

struts1.x->WebX

iSearch

分库

DBRoute

缓存TBStore

Berkeley DB

key->hashed key->mod->server

缓存变动较少的信息

更新数据库的时候要同步更新缓存

大字段存储位置

db -> cache -> fs

CDN网络

创造技术 2007/01-2007/12

文件系统TFS

针对小文件

图片处理在nginx上进行

图片读取多级缓存

缓存Tair

TBStore, TDBM

分布式, config server, data server

iSearch

多份相同数据, 单行->矩阵

分布式电子商务操作系统 2008/01-2012/12

服务化

标签服务/属性服务/用户信息服务/交易服务 -> 模块化

中间件

服务注册 HSF

RPC(TCP/IP)

OSGI

消息 notify

异步

服务注册等

分布式数据访问 TDDL

分布式存储

访问路由

多向非对称复制

存储扩展

CommonDAO -> TDDL -> 愚公数据迁移, 精卫数据复制

session框架

开放平台

memcached

hadoop

大牛的话

正明

找到自己感兴趣的, 花时间投进去, 通过实践后的知识积累比只看书本有用得多. 我看过一本操作系统方面的英文书, 其中引用了一段中国人的格言:”I hear and I forget. I see and I remember. I do and I understand.” 荀子说”不闻不若闻之, 闻之不若见之, 见之不若知之, 知之不若行之.”

正祥

一个人如果把做成事作为目标, 该他得到的东西一定会顺理成章得到. 但是如果把上升作为主要目标, 做同样的事, 结果就会完全不一样. 你的心态会最终决定你的成就.

毕玄

现在如果没有什么特殊情况的话, 我会花很多时间看技术方面的文章或者图书, 写代码的时间可能每天只有两三个小时. 每隔一段时间回去想一想将来干什么比较好, 因为写代码时间会过的很快, 要经常跳出来想一想.

至于晋升, 重要的是在这个过程中你回顾了你一年做了什么事情, 对公司有什么贡献, 技术上有哪些成长. 我们要看技术方面的专业性, 然后看你的技术对公司的业务发展有多少贡献. 还有一点, 我比较看中的是, 也许你不在其位, 但能够跳出自己的范围, 想到公司未来会面临什么问题, 怎么解决, 如果能落实就最好了, 不管你落实的技术含量有多高, 关键是你解决了什么样的问题. 如果你能做到这些, 你这个人对公司就非常重要.

在校招的时候, 我比较欣赏的学生往往是那些”不务正业”类型的. 我经常会问他们, 你有没有利用业余时间处于自己的技术兴趣做的一些小东西. 这样的学生我们通常会比较感兴趣, 我认为这样的学生是真正喜欢技术. 聪明程度一般就可以的, 他能够进入这些不错的学校, 智商是不会有什么问题的.

放翁

第一个是做事要自己思考后再去问别人, 而不是一遇到问题就找人求助. 第二个是不断地打破自己的一些想法, 你不要担心自己今天已经做了50%的工作, 要是推导重来, 前面的事情都白干了. 我现在带的两个新人成长很快, 但是都有类似的经历, 就是一个东西被我反复推翻重做, 在这个过程中就是不断地成长, 要思考我为什么让你推倒重做, 若想不清楚, 下次重做的概率会更大, 这样慢慢地就学会了思考.

吴翰清

从基本功做起, 研究常见的漏洞, 把它查出来, 并去分析它, 不要用它来做坏事. 另外, 去看看公开的漏洞, 研究一下漏洞的利用技巧.

云铮

兴趣是最好的老师, 坚持是达到梦想的唯一途径, 当然, 在个人发展的不同阶段寻找到合适的导师很重要, 看准方向会事半功倍. 在刚刚参加工作还没有形成自己的判断时, 方向有两个来源, 一个是个人的兴趣, 一个是找一个你非常佩服且能掌握未来方向的人. 当然, 如果这两者正好重合, 那么剩下的就是脚踏实地坚持.

多隆

发现问题, 解决问题, 不要绕开问题的本身; 多做事情, 不会吃亏, 即使不是你的事情.