当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 大教堂与市集 说明: 本文的作者Eric Raymond是Open Source Software领域的领袖,这方面许多 新的思想正是从他那儿产生的,同时他也是UNIX上最流行的Email软件Fetchmail 的作者。
 

 

 ·最简单的自定义控件    »显示摘要«
    摘要: asp.net提供自定义控件的机制,本文记叙生成一个简单自定义控件的方法。 一般地,web页面处理发生错误时,可以在页面上显示错误信息,也可以通过javascript的alert提示信息。在asp.net中实现alert的一种方法是定义自定义控件。 小鸡射手的promptcontrol实现如下,实在算是最简单的自定义控件啦,:-) [defaultproperty("message&q......
 ·php扩展中如何遍历数组?    »显示摘要«
    摘要:/** 版权归phpsalon.com所有,未经许可,严禁任何形式转载** author: wenlong wu*/ 前段时间一网友问我在写php扩展的时候如何遍历数组呢,现将代码贴出来,并做相应的解释。 php_function(print_array) { zval *z_array; // 外部传入的数组 int count, i; zval **z_item; if (failure ==......


大教堂与市集——Eric Raymond
上一页   ...   这显然应是计算机替我做的事.(实际上,依据rfc1123的5.2.18节, sendmail应该做这件事).但是没有一个现存的pop客户知道怎样做!于是这就给 我们上了第一课:   1.每个好的软件工作都开始于搔到了开发者本人的痒处. 也许这应该是显而易见的(“需要是发明之母”长久以来就被证明是正确的), 但是软件开发人员常常把他们的精力放在它们既不需要也不喜欢的程序,但在 linux世界中却不是这样——这解释了为什么从linux团体中产生的软件质量都如 此之高.   那么,我是否立即投入疯狂的工作中,要编出一个新的pop3客户与现存的那 些竞争呢?才不是哪!我仔细考察了手头上的pop工具,问自己“那一个最接近我 的需要?”因为:   2.好程序员知道该写什么,伟大的程序员知道该重写(与重用)什么.   我并没有声称自己是一个伟大的程序员,可是我试着效仿他们.伟大程序员 的一个重要特点是建设性的懒惰.他们知道你是因为成绩而不是努力得到奖赏, 而且从一个好的实际的解决方案开始总是要比从头干起容易.   例如,linux并不是从头开始写linux的.相反的它从重用minix(一个386机 型上的类似unix的微型操作系统)的代码与思想入手.最后所有的minix代码都消 失或被彻底的重写了,但是当它们在的时候它为最终成为linux的雏形做了铺垫.   秉承同样的精神,我去寻找良好编码的现成的pop工具,用来作为基础.   unix世界中的代码共享传统一直对代码重用很友好(这正是为什么gnu计划不 管unix本身有多么保守而选取它作为基础操作系统的原因).linux世界把这个传 统推向技术极限:它有几个t字节的源代码可以用.所以在linux世界中花时间寻 找其他几乎足够好的东西,会比在别处带来更好的结果.   这也适合我.加上我先前发现的,第二次寻找找到了9个候选者——fetchpop ,poptart,get-mail,gwpop,pimp,pop-perl,popc,popmail 与 upop).我 首先选定的是“fetchpop”.我加入了头标重写功能,并且做了一些被作者加入 他的1.9版中的改进.   但是几个星期之后,我偶然发现了carl harris写的“popclient”的代码, 然后发现有个问题,虽然fetchpop有一些好的原始思想(比如它的守护进程模式), 它只能处理pop3,而且编码的水平相当业余(seung-hong是个很聪明但是经验不足 的程序员),carl的代码更好一些,相当专业与稳固,但他的程序缺少几个重要的 相当容易实现的fetchpop的特征(包括我自己写的那些).   继续呢还是换一个? 如果换一个的话,作为得到一个更好开发基础的代价, 我就要扔掉我已经有的那些代码.   换一个的一个实际的动机是支持多协议,pop3是用的最广的邮局协议,但并 非唯一一个,fetchpop与其余几个没有实现pop2.rpop,或者apop,而且我还有一 个为了兴趣加入imap(internet message access protocol,最近设计的最强大的 邮局协议)的模糊想法.   但是我有一个更加理论化的原因认为换一下会是一个好主意,这是我在linux 很久以前学到的:  3.“计划好抛弃,无论如何,你会的”(fred brooks,«神秘的人月»第11章)   或者换句话说,你常常在第一次实现一个解决方案之后才能理解问题所在, 第二次你也许才足够清楚怎样做好它,因此如果你想做好,准备好推翻重来至少 一次.   好吧(我告诉自己),对fetchpop的尝试是我第一次的尝试,因此我换了一下.   当我在1996年6月25日把我第一套popclient的补丁程序寄给carl harris之 后,我发现一段时间以前他已经对popclient基本上失去了兴趣,这些代码有些陈 旧,有一些次要的错误,我有许多修改要做,我们很快达成一致,我来接手这个 程序.不知不觉的,这个计划扩大了,再也不是我原先打算的在已有的pop客户上 加几个次要的补丁而已了,我得维护整个的工程,而且我脑袋里涌动着一些念头 要引起一个大的变化.   在一个鼓励代码共享的软件文化里,这是一个工程进化的自然道路,我要指 出:  4. 如果你有正确的态度,有趣的问题会找上你的,但是carl harris的态度甚 至更加重要,他理解:  5.当你对一个程序失去兴趣时,你最后的责任就是把它传给一个能干的后继者.   甚至没有商量,carl与我知道我们有一个共同目标就是找到最好的解决方 案,对我们来说唯一的问题是我能否证明我有一双坚强的手,他优雅而快速的写 出了程序,我希望轮到我时我也能做到.
...   下一页
 ·dns与bind学习笔记 4    »显示摘要«
    摘要:dns与bind学习笔记 1 dns与bind学习笔记 2 dns与bind学习笔记 3 10. 什么是dns数据库?有什么用?一个域的dns数据库是由该域的主名字服务器的系统管理员维护的一个文本文件集合。这些文本文件成为区文件。就是你在"named.conf"中定义的file。他们包括2种类型的项:分析器命令(如$origin和$ttl)和资源记录(resource reco......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE