<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>学习 on Tony Bai</title><link>https://tonybai.com/tags/%E5%AD%A6%E4%B9%A0/</link><description>Recent content in 学习 on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Fri, 07 Nov 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/%E5%AD%A6%E4%B9%A0/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 的“简单”幻象：易于上手，难于精通</title><link>https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master/</link><pubDate>Fri, 07 Nov 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master/</guid><description>本文永久链接 – https://tonybai.com/2025/11/07/go-simple-illusion-easy-to-learn-hard-to-master 大家好，我是Tony Bai。 “Go 语言看起来如此简单，我的这种假设是错的吗？” 近日，一位刚接触 Go 几个月的新手在reddit golang论坛发出了这样一个真诚的提问。他感觉 Go “超级简单”，并好奇自己是否因...</description></item><item><title>Ubuntu Server 14.04安装docker</title><link>https://tonybai.com/2014/09/26/install-docker-on-ubuntu-server-1404/</link><pubDate>Fri, 26 Sep 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/09/26/install-docker-on-ubuntu-server-1404/</guid><description>近期在研究docker这一轻量级容器引擎，研究docker对日常开发测试工作以及产品部署运维工作能带来哪些便利。前些时候刚刚将工作环境从 Ubuntu搬到了Mac Air上，对Mac OS X的一切均不甚熟悉，给docker研究带来了不便，于是打算在VirtualBox中安装一Ubuntu Server作为docker之承载平台。这里记录一下安装配置过程，主要为了备忘，如果能给其他人带来帮助，我会...</description></item><item><title>关于编程语言学习的一些体会</title><link>https://tonybai.com/2013/10/22/some-experience-about-learning-programming-language/</link><pubDate>Tue, 22 Oct 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/10/22/some-experience-about-learning-programming-language/</guid><description>_Learn at least one _new language every year_.                                               — Andy Hunt and Dave Thomas_ 自己一直是“每年学习一门新语言”的忠实拥趸，曾先后认真地学习了Haskell、Common Lisp、Python、Go等语言，对Prolog、Scala、...</description></item><item><title>利用ZooKeeper服务实现分布式系统的配置数据同步</title><link>https://tonybai.com/2013/08/28/implement-config-sync-for-distributed-system-with-zookeeper-services/</link><pubDate>Wed, 28 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/28/implement-config-sync-for-distributed-system-with-zookeeper-services/</guid><description>_很多时候，一旦习惯了某些事情，也就习惯了它们的恶劣，习惯了它们的丑陋，习惯了它们“赋予”你的各种痛苦。                                                                                                                                                    ...</description></item><item><title>利用ZooKeeper服务实现分布式系统的Leader选举</title><link>https://tonybai.com/2013/08/23/leader-election-using-zookeeper/</link><pubDate>Fri, 23 Aug 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/08/23/leader-election-using-zookeeper/</guid><description>每次与Java组的同事们坐下来谈技术、谈理想、谈人生时，Java组的同事总会向我们投来羡慕的眼光：卧槽！又是自己开发的工具，太NB了。这时C程序 员们的脸上就会洋溢出自豪的笑容，然后内心骂道：谁让我们没有现成的呢。另一个空间里的某些“无C不欢”们或者某些“C Guru”们会骂道：靠，有了也不用，自己写！ 有时候，C程序员真的有一种下意识：不情愿使用其他语言开发的工具、框架或服务，且比其他程序员更爱...</description></item><item><title>也谈代码行统计</title><link>https://tonybai.com/2013/07/24/thoughts-about-lines-of-code-statistics/</link><pubDate>Wed, 24 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/24/thoughts-about-lines-of-code-statistics/</guid><description>一直在纠结要不要就这个话题写点什么，之前梳理过一些思路，但感觉这个题目似乎没什么大意义。不过将东西憋在肚子里的滋味总是不好受的，最终我还是选择写出来一些，即便它真的没有什么意义^\_^。 事情缘于近期领导让我负责的一个内部任务：制定组织内的代码行统计标准并实现标准化的工具。就是这个任务促使了我对代码行统计重新做了一番考量。 **对代码行统计的理解** 代码行统计这个活动不是软件开发过程中的关键路径...</description></item><item><title>Python脚本命令行变量的实现</title><link>https://tonybai.com/2013/07/09/an-implementation-of-python-commandline-variables/</link><pubDate>Tue, 09 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/09/an-implementation-of-python-commandline-variables/</guid><description>我们知道Make工具是支持命令行变量的，这种手段为我们提供了很好的灵活性，我们可以通过敲入不同的命令行参数来决定Makefile脚本的行为。 make \[variable1=value1 variable2=value2 ... ... \]。 \Makefile CMODE = 64-bit ifeq ($(CMODE), 64-bit)     CFLAGS += -m64 endif al...</description></item><item><title>代码评审，由人治过渡到“法治”</title><link>https://tonybai.com/2013/07/08/code-review-from-rule-of-man-to-rule-of-law/</link><pubDate>Mon, 08 Jul 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/07/08/code-review-from-rule-of-man-to-rule-of-law/</guid><description>事实证明：有效的代码评审(Code Review，也有叫代码审查的），对保证代码质量具有十分重要的作用。因此这两年来我一直尝试着在这块不断改进和完善，以期望能形成一套合理、规范、有 效且高效的代码评审流程，这包括引入在线代码评审系统、走查和在线评审结合、规范评审Request的规模与有效性、设立评审专员等，用心不可谓不良苦 ^\_^。大家也的确形成了及时提交Code Review Request或...</description></item><item><title>跨过BUG查找的"最后一公里"</title><link>https://tonybai.com/2013/06/18/walk-through-the-last-mile-of-bugfix/</link><pubDate>Tue, 18 Jun 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/06/18/walk-through-the-last-mile-of-bugfix/</guid><description>_如果你看到一个C程序员在通宵熬夜神情紧张地对着电脑敲代码或阅读代码，多数只有两种可能：一是为了赶进度；二就是查找内存Bug。_                                                                                                                               _— 个人感悟_ ...</description></item><item><title>《Understanding and Using C Pointers》要点先睹为快</title><link>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</link><pubDate>Tue, 28 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/28/understanding-and-using-c-pointers-keypoint-preview/</guid><description>_如果你问十个C程序员：你觉得C语言的核心是什么？这十个程序员都会回答：指针。_ 指针具备成为C语言核心的两个关键要素：**强大**与**争议**。 \* **指针的强大**源自于其天生与机器内存模型的适配。使用指针让代码紧凑，并可获得仅次于汇编代码的执行效率；使用指针可以让C程 序员毫不费力地尽情操纵着内存中的每个byte甚至是bit；使用指针可以为C程序员提供无与伦比的操作灵活性。总之，在C语...</description></item><item><title>再谈C语言位域</title><link>https://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/</link><pubDate>Tue, 21 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/</guid><description>我在日常工作中使用C语言%E2%80%8E)中的位域(bit field)的场景甚少，原因大致有二： \* 一直从事于服务器后端应用的开发，现在的服务器的内存容量已经达到了数十G的水平，我们一般不需要为节省几个字节而使用内存布局更加紧凑的位域。 \* 结构体中位域的实现是平台相关或Compiler相关的，移植性较差，我们不会贸然地给自己造“坑”的。 不过近期Linux技术内核社区（www.linu...</description></item><item><title>buildc 0.3.0版本发布</title><link>https://tonybai.com/2013/05/11/buildc-0-3-0-release/</link><pubDate>Sat, 11 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/11/buildc-0-3-0-release/</guid><description>自buildc正式在项目中应用以来，我们收到了许多同事针对buildc演进的意见和建议。其中确实有些易用性的问题是在最初设计时未考虑周全的，尤其是.buildc.rc中的配置，同事们对该文件的配置已经“怨声载道”了。 .buildc.rc是用来配置某开发者在开发过程中使用的第三方库所在subversion repository信息的，例如： a\_repository = (&amp;#39;SVN库地址&amp;#39;, &amp;#39;...</description></item><item><title>也谈Commit log</title><link>https://tonybai.com/2013/05/09/also-talk-about-commit-log/</link><pubDate>Thu, 09 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/09/also-talk-about-commit-log/</guid><description>在版本控制工具大行其道的今天，作为程序员，势必要每天与各种版本控制系统（比如Subversion、Git、Mercurial等）打交道， 每天不commit几次代码都不好意思说自己是专业程序员^\_^。不过commit代码可不止敲入commit命令这么简单，对于一个专业程序员 来说，我们还要关注每次commit所携带的背景信息，这里暂且称之为“commit context”。在每次commit时，...</description></item><item><title>推动知识管理的这两年</title><link>https://tonybai.com/2013/05/03/the-past-two-years-to-promote-the-knowledge-management/</link><pubDate>Fri, 03 May 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/05/03/the-past-two-years-to-promote-the-knowledge-management/</guid><description>掐指算来，部门知识管理的推广工作已有两年了。两年时间不能算短，但对于知识管理这件事来说，只能算是热身阶段，我们依旧站在起跑线上，或者稍乐 观地讲我们只是刚刚迈出了万米长跑的第一步。 下面是这两年来部门内部知识库建设的一个Timeline： \- 2011年中旬，我所在产品线私下在一台PC上建立了基于MediaWiki的知识库。 \- 2011年末产品线在部门内部做了有关知识库与知识管理实践的分享。...</description></item><item><title>C,C++开源项目中的100个Bugs</title><link>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</link><pubDate>Wed, 10 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/</guid><description>俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目，诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析，找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析，倒不如在编码时就提高自知自觉...</description></item><item><title>Hello，Sublime Text 2</title><link>https://tonybai.com/2013/04/01/hello-sublime-text-2/</link><pubDate>Mon, 01 Apr 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/04/01/hello-sublime-text-2/</guid><description>用惯了Vim后，也会有一种尝试新Editor的冲动，这回Sublime Text 2满足了我的这个需求。据说Sublime Text是目前最火的代码编辑器之一，我周围为数不多的几个比较Geek的同事都已经开始使用Sublime Text 2或用了很长时间了，其官方网站首页的Feature Demo也的确非常地炫。 **安装Sublime Text 2** 我的实验环境Ubuntu 12.04.1 ...</description></item><item><title>简析指针与多维数组</title><link>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</link><pubDate>Thu, 28 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/28/pointer-and-multi-dimension-array-in-c/</guid><description>上一篇文章中对多级指针做了简要分析，其实只有当指针与多维数组以及函数联合在一起使用时，麻烦才算真正到来。 **零、数组****与数组名** C语言)中的数组的一般声明形式如下： T arr\_name\[n\]; /\* T为类型，n为数组元素个数 \*/ 从**内存布局**角度来说，数组T arr\_name\[n\]就是内存中连续的内存单元，每个内存单元的长度为sizeof(T)，数组的起始内...</description></item><item><title>简析多级指针解引用</title><link>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</link><pubDate>Sat, 23 Mar 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/03/23/multi-dimension-pointer-in-c/</guid><description>指针是C语言)中公认的最为强大的语法要素，但同时也是最难理解的语法要素，它曾给程序员带来了无数麻烦和痛苦，以致于在C语言之后诞生的很多新兴 语言中我们再也难觅指针的身影了。 下面是一个最简单的C语言指针的例子： int a = 5; int \*p = &amp;amp;a; 其中p就是一个指针变量。如果C语言中仅仅存在这类指针，那显然指针不会形成“大患”。经常地我们会在代码中看到下面的情形： int \*\*q...</description></item><item><title>关于Python Package下的Module import方式</title><link>https://tonybai.com/2013/01/24/the-module-import-way-under-python-package/</link><pubDate>Thu, 24 Jan 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/01/24/the-module-import-way-under-python-package/</guid><description>2012年有一个目标我没有达成，那就是深入学习和使用Python语言。这个目标被其他学习任务和工作无情的抢占了，当然最主要的原因还是我重视不够^\_^。 近期恰逢有一些Python工程的开发工作要做，就顺便略微深入地学习了一下Python：看了几本Python的英文大部头，比如《Learning Python 4th Edition》、《Python Essential Reference 4th...</description></item><item><title>2012小结</title><link>https://tonybai.com/2012/12/18/my-summary-of-2012/</link><pubDate>Tue, 18 Dec 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/12/18/my-summary-of-2012/</guid><description>趁着世界末日尚未到来，赶紧将2012年总结一番，即便是末日也不能留遗憾不是^\_^。 2012年总体过得还算充实： \*《七周七语言》终于出版了； \* 写了近80篇Blog，虽离目标预期还有差距，但也给我带来了不小的精神愉悦； \* 为《程序员》杂志写了两篇文章，虽然都是短文； \* 读了30多本书，还有10多本尚未读完，不过年初制定的“扫存书”目标没能达成，因为依然不断地有大量的新书加入^\_...</description></item><item><title>谈谈如何写好Mail</title><link>https://tonybai.com/2012/11/28/how-to-write-a-good-email/</link><pubDate>Wed, 28 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/28/how-to-write-a-good-email/</guid><description>Mail(在这个时代，Mail默认的含义早已变成了Email，也就是电子邮件)是我们在工作中常用的表达和沟通方式之一。与IM工具、拿起电话直接Call、会议等相比，Mail容许相关干系人用更多的时间去了解背景、理解问题和思考解决方案，而不用立即予以答复。 我们每天都会发出和收到几十封甚至上百封Mail，但这并不意味着我们写的Mail就都是合格的。一些人的Mail，无论从格式还是内容，都会让人看起来...</description></item><item><title>个人时间管理的一些实践体会</title><link>https://tonybai.com/2012/11/23/some-experience-on-personal-time-management/</link><pubDate>Fri, 23 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/23/some-experience-on-personal-time-management/</guid><description>时间是人类最宝贵的财富之一，我十分认同这点，因此我在个人时间管理以及工作效率上也是一直追求持续改善的，期望能在最短的时间内产出更多有价值的成果，尤其是工作时间里。 我知道的时间管理思想主要有三种： \* 四象限理论。这是我们经常谈到的传统时间管理理论，它告诉我们如何根据待办事项的重要和紧急两个属性对待办事项进行分类和优先级确定。我个人觉得这个理论是时间管理的基础，后续无论是GTD理论还是番茄时间理...</description></item><item><title>使用squid搭建http代理</title><link>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</link><pubDate>Wed, 21 Nov 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/11/21/setup-http-proxy-with-squid/</guid><description>近期在做一些基础设施搭建的过程中，又遭遇到了公司http代理的问题。主要是很多主机上的工具只支持不带身份鉴权信息的http\_proxy设置，如只 支持诸如：export http\_proxy=&amp;#39;http://10.10.1.1:8090&amp;#39;，而不支持export http\_proxy=&amp;#39;http://tonybai:passwd@10.10.1.1:8090&amp;#39;这种形式的配置。 或是其命令行选项...</description></item><item><title>2011·读过的书</title><link>https://tonybai.com/2011/12/22/book-list-i-have-read-in-2011/</link><pubDate>Thu, 22 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/22/book-list-i-have-read-in-2011/</guid><description>2011年我的确读了不少书，掐指算来纸版和电子版加在一起近50本，其中以技术类居多，但其他方面的也有一些。这里列出来做个简单回顾。 一、技术类 · 《你必须知道的495个C语言问题》 早在这本书出版前，其译者已经在网上完成了C FAQs的翻译(在这里)。这本书是基于最新C FAQs做了重新整理(包含C99)。虽说是最新，但因C语言近几年来变化很小，内容与之前译者在网上公开的那个免费版本相差不多。这...</description></item><item><title>2011小结</title><link>https://tonybai.com/2011/12/21/my-year-end-summary-of-2011/</link><pubDate>Wed, 21 Dec 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/12/21/my-year-end-summary-of-2011/</guid><description>2011年眼看就要接近尾声了，这里也对自己在2011年的&amp;#34;所作所为&amp;#34;做个小结^\_^。 这一年来工作之外的我过得还是比较充实的，从下面的数字也可以看出： \- 写了81篇博文 \- 开源了2个工具(CBehave和buildc) \- 合译了一本书（&amp;#34;Seven Languages in Seven Weeks&amp;#34;，不过尚未出版） \- 读了近50本书（通过豆瓣读书统计） \- 新学了一门语言 – ...</description></item><item><title>CBehave – 一个C语言行为驱动开发框架</title><link>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</link><pubDate>Mon, 15 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/15/cbehave-a-bdd-framework-for-c/</guid><description>Behaviour-Driven Development，即行为驱动开发在业界早已不是什么新鲜玩意了。我之前也略有了解，不过一直没有&amp;#34;深入钻研&amp;#34;。直到今年年初InfoQ的几篇有关BDD的文章才让我对BDD有了更多的认识。与TDD一样，C语言在BDD领域依旧是一个&amp;#34;后进分子&amp;#34;，在多数主流语言(Java，C#，Ruby等)都已经拥有比较成熟的BDD框架(如JBehave、SpecFlow和Cucumb...</description></item><item><title>行为驱动开发导引</title><link>https://tonybai.com/2011/08/10/introducing-bdd/</link><pubDate>Wed, 10 Aug 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/08/10/introducing-bdd/</guid><description>本文翻译自Dan North的文章&amp;#34;Introducing BDD&amp;#34;。 我遇到了一个问题。当我在不同环境的多个项目中使用和教授类似测试驱动开发(test-driven development, TDD)这样的敏捷实践时，我总是能遇到来自程序员们相同的困惑和误解。他们想知道从哪里开始、测什么不测什么、一次测试多少、谁来调用他们的测试以及如何理解为什么一个测试失败了。 越是深入TDD，我越能感觉到我对...</description></item><item><title>聆听编程“古训”</title><link>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</link><pubDate>Tue, 10 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/10/listen-to-old-maxim-respectfully/</guid><description>市面上关于优秀编程风格和习惯养成的书籍还真不少，其中“叫好又叫座”的书诸如《代码大全》、《编程精粹:编写高质量C语言代码》、《编程匠艺》、《重构》以及《Clean Code》等。不过前些天我在网上下载了一本名为《The Elements of Programming Style》的电子书，看过此书后，我才知道开创编写优秀风格代码之路的鼻祖是谁（不知道是否还有比这本书更加古老的且系统地讲述优良编程元...</description></item><item><title>只对代码无法表达的东西写注释</title><link>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</link><pubDate>Thu, 05 May 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/05/05/comments-only-what-the-code-cannot-say/</guid><description>本文翻译自”Comments Only What the Code Cannot Say“，来自于《程序员应该知道的97件事》一书中的某个章节。 我们知道理论与实践之间存在差异。在实践中，这个差异远大于其在理论中所描述的那样 – 一份对注释（comments）的观察数据也证实了这一点。理论上，通常的注释代码的想法听起来是值得的：它可以为读者提供更多的细节，可以解释发生了什么事情。有什么能比自我帮助...</description></item><item><title>使用正确的算法和数据结构</title><link>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</link><pubDate>Tue, 19 Apr 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/04/19/use-the-right-algorithm-and-data-structure/</guid><description>本文翻译自”Use the Right Algorithm and Data Structure“，来自于《程序员应该知道的97件事》一书中的某个章节。 _一家拥有多个分行的大银行抱怨说他们为出纳员新买的计算机运行得太慢了。这件事儿发生在电子银行以及ATM机使用普及程度远不及现在的那个年代。人们更多的是亲自到银行办理业务，这些运行超慢的计算机使得大家排起了长队。因此，这家银行威胁计算机供货商要结束...</description></item><item><title>借开源实现你的雄心壮志</title><link>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</link><pubDate>Sat, 26 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/26/fulfill-your-ambitions-with-opensource/</guid><description>本文翻译自&amp;#34;Fulfill Your Ambitions with Open Source&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 如果你在工作中没能开发那些可以实现你雄心壮志的软件，那你将有很不错的机会。也许你正在为一家庞大的保险公司开发软件，然而你实际上却宁愿供职于Google、Apple、Microsoft或是你自己初创的公司去开发下一个对世界影响巨大的软件。如果你去为你根本...</description></item><item><title>你应该关心你的代码</title><link>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/22/you-gotta-care-about-the-code/</guid><description>本文翻译自”You Gotta Care about the Code“，来自于《程序员应该知道的97件事》一书中的某个章节。 即使不用大侦探福尔摩斯，我们也能知道优秀的程序员能写出好代码。糟糕的程序员…则不能。他们生产出代码巨兽，而其他人则不得不去清理。你想写出好代码，对不对？你渴望成为一名优秀的程序员。 好代码不会凭空冒出来。它也不是什么需要各大行星排成一列时靠运气才发生的事情。为了写出好代码...</description></item><item><title>通过精减来改善代码</title><link>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</link><pubDate>Thu, 17 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/17/improve-code-by-removing-it/</guid><description>本文翻译自&amp;#34;Improve Code by Removing It&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 少即是多。这是一句有些陈腐的短小格言，但有时它确实是正确的。 在过去的几周里我对代码库所作的改善工作之一就是删除了其中的几大块代码。 我们编写软件时一直遵循着XP的（译注：极限编程，eXtreme Programming）原则，包括YAGNI（即You Aren&amp;#39;t Gonn...</description></item><item><title>知道如何使用命令行工具</title><link>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</link><pubDate>Wed, 16 Mar 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/03/16/know-how-to-use-command-line-tool/</guid><description>本文翻译自”Know How to Use Command-line Tool“，来自于《程序员应该知道的97件事》一书中的某个章节。 现今，很多软件开发工具被打包成集成开发环境（Integrated Development Environments，IDE）提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE，当然还有很多其他类似的工具。很多程序员喜欢使用...</description></item><item><title>专业程序员</title><link>https://tonybai.com/2011/02/24/the-professional-programmer/</link><pubDate>Thu, 24 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/24/the-professional-programmer/</guid><description>本文翻译自&amp;#34;The Professional Programmer&amp;#34;，来自于《程序员应该知道的97件事》一书中的某个章节。 什么是专业程序员？ 一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责，会对他们的估计负责，会对他们的计划承诺负责，会对他们的错误负责，会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。 ·如果你是一名专业程序员，你将对你自己...</description></item><item><title>持续学习</title><link>https://tonybai.com/2011/02/23/continous-learning/</link><pubDate>Wed, 23 Feb 2011 00:00:00 +0800</pubDate><guid>https://tonybai.com/2011/02/23/continous-learning/</guid><description>本文翻译自&amp;#34;Continuous Learning&amp;#34;，来自于《97 Things Every Programmer Should Know》一书中的某个章节。 我们生活在一个引人入胜的时代。软件开发分布在全球各地，你知道那里有很多人可以胜任你的工作。你需要不断学习以保持你在市场上的竞争力。否则，你将变成一条恐龙，专心从事某一个工作，直到有一天，你不再被需要或者你的工作被外包给了其它更为廉价的开发人...</description></item><item><title>'Manna' – An extremely attractive fiction</title><link>https://tonybai.com/2006/09/07/manna-an-extremely-attractive-fiction/</link><pubDate>Thu, 07 Sep 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/09/07/manna-an-extremely-attractive-fiction/</guid><description>Our British English teacher Alex recommended a book called ‘Manna’ to us for its simple grammar and vocabulary. After reading it, we all agreed on that it was an extremely attractive fiction. The auth...</description></item><item><title>英语培训日记20060728</title><link>https://tonybai.com/2006/07/28/english-train-notes-20060728/</link><pubDate>Fri, 28 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/28/english-train-notes-20060728/</guid><description>最近南方台风肆虐，不知道是不是大连也受到了影响，天气也很糟糕，特别凉。今天由于两个同事临时有事回沈城了，我们就决定暂时休息一天。顺便抽出时间复习一下前段时间学习的内容。 在上次写作课上，Michael给我们讲了一下如何在正式写作中给句子加标点，的确这各问题让我们很头疼。他给我们举了三个例子： \[Ex.\] (1) It’s too far to walk to school it is snow...</description></item><item><title>英语培训日记20060719</title><link>https://tonybai.com/2006/07/19/english-train-notes-20060719/</link><pubDate>Wed, 19 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/19/english-train-notes-20060719/</guid><description>大连今天终于放晴了，一大早上强烈的阳光就穿透玻璃窗射进屋内。看来昨晚洗的一些衣服可以很快的干了。 今天Alex给我们上的是pronunciation课，他首先按照音标表，分别给我们纠正发音，包括各种Vowels和Consonants，他建议我们练习发音的最好方法就是拿个Recorder录下你的发音，然后听录音，直到你认为&amp;#39;You are comfortable with your pronunci...</description></item><item><title>英语培训日记20060717</title><link>https://tonybai.com/2006/07/18/english-train-notes-20060717/</link><pubDate>Tue, 18 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/18/english-train-notes-20060717/</guid><description>自从来到大连后，大连的雨好像就没停过，问我大连本地人，他们也说最近雨下得太频繁了。就连我们的外教Alex也说他昨天洗的衣服不知道什么时候才能干。不过大连有一点好处，那就是凉快，有些时候可以说有些&amp;#39;冷&amp;#39;，有点夸张吧^\_^，今天下班的时候感觉就冷冷的。 今天是中教口语课的最后一节Read-Retell课了，今天的内容是一些commercial affairs，有点难，特别是有些术语不常用，解释起来比...</description></item><item><title>英语培训日记20060714</title><link>https://tonybai.com/2006/07/14/english-train-notes-20060714/</link><pubDate>Fri, 14 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/14/english-train-notes-20060714/</guid><description>终于租到一间还算像样的房子了，毕竟属于出差，艰苦就艰苦点吧，毕竟比学生宿舍要好，起码不会定点熄灯。昨天我们几个学员以及所有可以出场的家属和Alex以及其GF一起去吃了一次barbecue，路边大排挡，新疆人的摊位，蛮有中国特色的，肉烤得很不错。Alex这个英国人很能喝，按他的说法：Ten bottoms of beer。昨天我们还发现Alex的中文很好，他在课堂上可从来不和我们说中文，他在中国只待...</description></item><item><title>英语培训日记20060712</title><link>https://tonybai.com/2006/07/12/english-train-notes-20060712/</link><pubDate>Wed, 12 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/12/english-train-notes-20060712/</guid><description>这两天一直在忙着找房子，本来到这是想好好学英语的，但是由于安排上的不妥当，导致我们浪费了好多功夫找房子，而且短期房难租而且死贵死贵。我们连续花了2天下午+晚上才搞定一个房子，离公司大约20分钟脚程，如果一切顺利，明天的这个时候，我们已经搬到新租的房子里了。 随着学习的深入，新鲜感逐渐消失，觉得每天学习的内容也没有什么好说的。今天写作课，老师讲解了两种mail的写作方法，分别是’ASK FOR A ...</description></item><item><title>英语培训日记200607010</title><link>https://tonybai.com/2006/07/10/english-train-notes-200607010/</link><pubDate>Mon, 10 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/10/english-train-notes-200607010/</guid><description>一大早就被震耳欲聋的雷声所惊醒，外面哗哗的下着大雨，估计也就是早上三四点钟，继续睡。昨晚GF和我说她们寝室要看世界杯决赛，我想那时那刻她们正在电脑前&amp;#39;朦胧地&amp;#39;欣赏着意大利和法国队的表演呢。早上7点闹钟把我们都叫醒了，可是外面的雨依旧那样的大。 我们趟着积水来到教室，中教口语老师依旧不见踪影，我们猜测是雨太大了，堵车或者是叫不到Taxi，大约等了半个多小时，我们的中教口语老师Susan才气喘吁吁的跑...</description></item><item><title>英语培训日记20060707</title><link>https://tonybai.com/2006/07/07/english-train-notes-20060707/</link><pubDate>Fri, 07 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/07/english-train-notes-20060707/</guid><description>这是自从大学毕业以来第一次连续上五天课，第一感觉就是疲倦，甚至比上班还要累。也许会有人说我&amp;#34;身在福中不知福&amp;#34;，也许吧。看着大连软件园周围那些匆匆忙忙的年轻人的身影，也许我的确该感到&amp;#39;幸福&amp;#39;。 今天是商务英语写作课的第一节，老师也安排从最基础的Business Letter开始。其实说到英语信函，很多人会记得在初中英语教材中就有涉及，只是当时老师不会讲的如此之细，侧重点也不同罢了。如何能写出&amp;#39;goo...</description></item><item><title>英语培训日记20060706</title><link>https://tonybai.com/2006/07/06/english-train-notes-20060706/</link><pubDate>Thu, 06 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/06/english-train-notes-20060706/</guid><description>今天是中教口语课的第一天，给我们上课的是一位女士，看起来很是和蔼可亲的。今天大连的天气有些糟糕，一直在淅淅沥沥的下着小雨，早上起来的时候嗓子有些肿痛，吃了点药，好些了。 中教口语老师根据她的课程安排首先给我们上了一节简单的’Read-Retell’课程，课程内容很简单，老师准备了四篇类似笑话的短文，让我们其中之一A先看上3分钟，然后像我们其中的一个B复述短文的大意，B在听完A的复述后，再向C复述，...</description></item><item><title>英语培训日记20060705</title><link>https://tonybai.com/2006/07/05/english-train-notes-20060705/</link><pubDate>Wed, 05 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/05/english-train-notes-20060705/</guid><description>今天是英语培训课程的第二天，前两节是中教听力，后两节则是外教口语，外教口语课每天都有两个学时，以保证我们有足够的时间和外教交流。 在正式开始听音之前，老师还是把前天测试写作时出现的问题给我们讲解了一番，那是一道商业信函写作，老师给我们指出了我们共同犯的几个错误。首当其冲的就是信函的格式问题，首先是称呼。我们四个人居然写出了四种方法，很是搞笑，分别为： Dear Mr. Middleman Dear...</description></item><item><title>英语培训日记20060704</title><link>https://tonybai.com/2006/07/04/english-train-notes-20060704/</link><pubDate>Tue, 04 Jul 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/07/04/english-train-notes-20060704/</guid><description>昨天其实是培训的第一天，只不过没有上课罢了，昨天进行了一系列(A Series Of)的英语测试，包括凯思英语测试、听力和写作、口语摸底测试，其中只有凯思测试当场能看到成绩，估计我的成绩不咋的，毕竟好久没有进行过这方面训练了，成绩单如下： 词汇能力：166 综合表达：198 听力理解：206 综合填空：155 总分：725 但正如一位同事所说，如果现在考得好，那么结业测试不就显不出来你有所进步了么...</description></item><item><title>突破英语句型之'不耻下问篇'</title><link>https://tonybai.com/2006/06/20/learn-some-sentential-form-for-asking/</link><pubDate>Tue, 20 Jun 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/06/20/learn-some-sentential-form-for-asking/</guid><description>脱口而出，’不耻下问’乃英语学习之真精神也，这里我们要学习一些经典的’问句’。 一、How …? 1、How about …? How about taking a walk? How about parking here? How about going for a trip? 2、How do you like … ? How do you like living in China? How ...</description></item><item><title>突破英语句型之'生存必备篇'</title><link>https://tonybai.com/2006/05/29/learn-some-sentential-form-for-living/</link><pubDate>Mon, 29 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/29/learn-some-sentential-form-for-living/</guid><description>学过英语的人可能都有这样的一个困惑，那就是：虽然学了很长时间英语，也掌握了5、6千的单词，但就是说不出来一句半句完整的英语来。这是为什么呢？最近看到了疯狂英语李阳的’突破句型’一书，里面的一句’句型就是一切’让我茅塞顿开。突然觉得要想学好口语，掌握一些日常最基本的句型(sentence patterns)真是必不可少亚。李阳的’突破句型’一书对常用句型的总结还是蛮全面的，而且对各句型的使用情景有说...</description></item></channel></rss>