10 2012 档案
摘要:Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。 要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slav...
阅读全文
摘要:好的编程原则跟好的系统设计原则和技术实施原则有着密切的联系。下面的这些编程原则在过去的这些年里让我成为了一名优秀的程序员,我相信,这些原则对任何一个开发人员来说,都能让他的编程能力大幅度的提高,能让他开发出可维护性更强、缺陷更少的程序。我不要自我重复— 这也许是在编程开发这最最基本的一个信条,就是要告诉你不要出现重复的代码。我们很多的编程结构之所以存在,就是为了帮助我们消除重复(例如,循环语句, 函数,类,等等)。一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽 象。 http://en.wikipedia.org.
阅读全文
摘要:技术债务背后的隐含的意思是,走捷径(有意的技术债务)或者犯错(无意的技术债务)都会有开销,而且不处理这些捷径或者错误的话,开销会随着时间而增加。如果我们有一个财务债务,我们知道我们今天需要还掉多少钱,我们也可以计算出我们将来需要付多少利息。而技术债务却是模糊不清的,我们不知道我们已经欠了多少债了 – 你可能已经欠了许多无意的技术债务了 – 你也可能在不知情的状况下欠了许多债。我们没办法具体测量出我们已经花了多少了 – 我们已经付了多少利息了,如果我们今天不注意的话,我们将来也不会知道我们总共花了多少了。一些人试图将技术债务用具体的金融术语来表述。例如,根据CAST的软件报告,“对于应用程序,一
阅读全文
摘要:金钱很难成为我生活的驱动力。
阅读全文
摘要:Google Protocol Buffers是一种非常方便高效的数据编码方式(data serialization),几乎在Google的每个产品中都用到了。本文介绍protocol buffers的一种高级使用方法(在Google Protocol Buffer的主页上没有的)。 Protocol Buffers通常的使用方式如下:我们的程序只依赖于有限的几个protocol messages。我们把这几个message定义在一个或者多个.proto文件里,然后用编译器protoc把.proto文件翻译成C++语言(.h和.cc文件)。这个翻译过程把每个message翻译成了一个C++ .
阅读全文
摘要:1.Fiddler相对其他调试工具的优势HttpWatch 和 Firebug绝大多数前端开发人员都比较熟悉,但是HttpWatch虽然可以抓到每个 HTTP 请求的全部数据,但无法修改返回的数据;尽管Firebug可以修改 HTML和CSS,但是在调试CGI接口时无法干预HTTP请求的参数值和CGI返回的数据。而 Fiddler作一个 HTTP 调试代理,不但能够记录客户端同服务器之间的所有 HTTP 通讯数据,还能够修改请求数据和返回数据,也叫做“构造请求”和“模拟响应”。除此之外, 添加了willow插件的Fiddler 还可以:统计数据包、修改Host、请求重定向、编码转换、低网速模拟
阅读全文