使用正确的算法和数据结构
本文翻译自”Use the Right Algorithm and Data Structure“,来自于《程序员应该知道的97件事》一书中的某个章节。 一家拥有多个分行的大银行抱怨说他们为出纳员新买的计算机运行得太慢了。这件事儿发生在电子银行以及ATM机使用普及程度远不及现在的那个年代。人们更多的是亲自到银行办理业务,这些运行超慢的计算机使得大家排起了长队。因此,这家银行威胁计算机供货商要结束他们之间的供货合同。 ...
本文翻译自”Use the Right Algorithm and Data Structure“,来自于《程序员应该知道的97件事》一书中的某个章节。 一家拥有多个分行的大银行抱怨说他们为出纳员新买的计算机运行得太慢了。这件事儿发生在电子银行以及ATM机使用普及程度远不及现在的那个年代。人们更多的是亲自到银行办理业务,这些运行超慢的计算机使得大家排起了长队。因此,这家银行威胁计算机供货商要结束他们之间的供货合同。 ...
本文翻译自"Fulfill Your Ambitions with Open Source",来自于《程序员应该知道的97件事》一书中的某个章节。 如果你在工作中没能开发那些可以实现你雄心壮志的软件,那你将有很不错的机会。也许你正在为一家庞大的保险公司开发软件,然而你实际上却宁愿供职于Google、Apple、Microsoft或是你自己初创的公司去开发下一个对世界影响巨大的软件。如果你去为你根本不关心的系统开发软件,那你永远也实现不了你心中的抱负。 ...
当今的软件开发更多是团队合作,团队的所有成员均工作在同一份代码库上。这样即便是有了先进的版本控制管理工具(诸如Subversion、Git等),出现冲突(Conflict)的情况也是在所难免的。这就需要你学会解决冲突。 以Subversion为例,多数人在学习这类工具时都选择了浅尝辄止,仅仅停留在会使用update和commit这些常用的命令上。这样大家就错过了那些可以帮助你快速解决冲突的命令,以致很多人无论遇到任何冲突情况都采用了低效的全手工处理的方式。实际上不同的冲突情形处理的方式是有差别的。某些情况下,利用类似svn resolve这样的命令可以帮你快速解决冲突。我们应该有意识地采用一些专业的做法,不是吗?^_^ ...
本文翻译自”You Gotta Care about the Code“,来自于《程序员应该知道的97件事》一书中的某个章节。 即使不用大侦探福尔摩斯,我们也能知道优秀的程序员能写出好代码。糟糕的程序员…则不能。他们生产出代码巨兽,而其他人则不得不去清理。你想写出好代码,对不对?你渴望成为一名优秀的程序员。 ...
自从换装Ubuntu后,就一直使用Thunderbird。很是喜欢Thunderbird超快的搜索速度、按主题组织和展示Mail以及易用的快捷键。不过这两天Thunderbird一直在给我制造麻烦。通过Top查看,我发现我的Thunderbird一直在持续占用20%-30%的CPU,这导致我的本子变得很慢。虽然能看到这个进程,但是并不清楚Thunderbird究竟在做什么。开始怀疑它在后台压缩文件夹,我遂显式对每个mail较多的文件夹进行了一次压缩。压缩后Thunderbird似乎安静了一会儿,不过好景不长,不久那个进程又开始运转起来了。我怀疑这是个Bug,于是有了升级Thunderbird的想法。 翻看了一下Thunderbird的菜单,发现它似乎不支持在线升级更新。我使用的版本是3.0.6,官方最新稳定版本为3.1.9。下载最新安装包后菜发现这个包不过就是一个压缩的文件夹,文件夹里有Thunderbird可执行程序和一切它依赖的资源文件。这样看来Thunderbird的升级实际上就是一个“替换”的过程。 ...
本文翻译自"Improve Code by Removing It",来自于《程序员应该知道的97件事》一书中的某个章节。 少即是多。这是一句有些陈腐的短小格言,但有时它确实是正确的。 在过去的几周里我对代码库所作的改善工作之一就是删除了其中的几大块代码。 ...
本文翻译自”Know How to Use Command-line Tool“,来自于《程序员应该知道的97件事》一书中的某个章节。 现今,很多软件开发工具被打包成集成开发环境(Integrated Development Environments,IDE)提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE,当然还有很多其他类似的工具。很多程序员喜欢使用IDE,这不仅是因为IDE容易使用,而且IDE还可以让程序员无需过多考虑一些过程中的微小细节,特别是构建过程。 ...
近期产品线研发体系正式将Review Board这款优秀的基于Web的代码评审开源工具引入到开发过程中,作为产品线内各项目组进行代码评审的辅助工具。我对Review Board近两年多的关注总算没有白费,算是有了一个还算不错的结果。不过Review Board的正式使用并不代表一种结束,反而恰恰是一个新的开始。我们下一步要关注的是如何用好Review Board,让它真真正正地为改善产品质量和开发效率出力。 ...
作为程序员,每天最主要的姿势就是坐姿。随之而来的就是各种职业病:腰酸、背痛、颈椎疼,重者要么是腰间盘突出,要么是严重的颈椎病。每个程序员心里都清楚,避免这些职业病的最好方法就是工作期间记得多做些身体活动。但一旦进入工作状态后,我们就没有了时间概念,很难“自拔”。 ...
本文翻译自"The Professional Programmer",来自于《程序员应该知道的97件事》一书中的某个章节。 什么是专业程序员? 一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责,会对他们的估计负责,会对他们的计划承诺负责,会对他们的错误负责,会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。 ...