猛禽的编程艺术

编程是一门艺术

原创 好的服务器系统收藏

Edward Guo在我的《放毒记》里与我探讨了一下他的不同意见,我觉得有必要收藏一下:

edguo 发表于2006-12-24 21:39:46
抱歉说几个不太同的观点:

1. Linux做服务器还行(以前的公司邮件服务器用FreeBSD是很不错),做桌面应用还差~5辈,RedHat7以前玩了一下,命令行倒是没什么已经, 但因为中WinGUI毒太重,觉得KDE/GNOME的思维很离奇,实在受不了,也许也是因为年纪大了转不过来;不过既然客户端要选用(无论你是乐意还是 被迫)就不如走一套路,否则成本很高。

2. 我觉得Windows Server现在已经足够稳定,足够我们大多数客户使用;聘请Windows管理员比较容易,除了补丁多以外我觉得没什么大毛病。我觉得GUI和内核分离 较稳定的说法和以前说要省1K内存是一样道理的,GUI内核会越来越稳定,非GUI内核会越来越不稳定,纯属本人个人看法。

3. 实用为王,不要太过程序员。
Raptor 发表于2006-12-26 13:55:28
1、我可没有说LINUX做桌面比WINDOWS强,只是比以前的LINUX强多了。

2、 对于要求不高的公司内部应用当然是没有问题,但是放到INTERNET上呢?大负载的应用呢?WINDOWS的TCO优势也就在于WINDOWS的管理员 容易找,但是技术上要差很多——系统的安全性和性能优化之类的工作不是打打补丁就行的,而技术好的WINDOWS管理员代价也不低。

至于GUI与内核的关系就让事实来证明吧。这跟1K内存根本是两码事。我的观点与你相反,GUI内核只会越来越不稳定。否则CPU也就没有必要弄个保护模式了——这无疑是要增加额外的开销的。

3、我这里说的都是针对程序员的,用户需要他们自己知道,便是错了那也是他们自找的,但是程序员应该知道怎么样才是对自己好。^O^
edguo 发表于2006-12-27 16:47:12  IP: 58.251.82.*
1. 还是那句:成本。服务器和客户端的技术路线不同,成本很高。

2. 我就知道招商银行网上银行相当大量采用了Windows服务器,大家可以去攻击一下(不过也许我很out他们已经换了也不一定),我们的客户(一省级部 门,)外网也使用WindowsServer 也没啥问题;大负载嘛,请大家上Microsoft.com去测试一下(今天地震影响不算,呵呵)。
Windows 管理真的不需要什么很高水平,当然你随便拿个街边货当管理员是不行的,你说的配置好的Windows服务器我真的觉得也是要求不高啊(也许是我自己水平 低)。以前单位见对面组的人搞IBM主机我就觉得他们的维护成本太高了。虽然我比较讨厌M$的霸道,但是该佩服的还是要佩服。

GUI和内 核分离是否越来越不稳定我无法证明,但是Windows越来越稳定大家可以看得见(那是设计的提升),不要认为我取巧,那是事实。大家当年省1K内存是有 用的,198x年,BillGates还说过640K内存足够任何的人使用,但是随着内存的极大扩充,你省那个1K就没什么意义了。如果我认为我跟定M $,如果不是在非常有必要的情况下,我不会考虑那么一点所谓的稳定性而去转用其他平台(除非足够吸引例如我使用Linux能赚客户更多的钱而客户觉得很值 得或者客户要求我一定要用Linux我没有办法)。我认为所谓的稳定与否绝大多数在乎你的软件设计水平,而不是操作系统或者编译器。

保护模式跟GUI没什么关系,如果可以,Linux不用保护模式而刚好跑一些垃圾软件不知道会否那么“稳定”。

3. 说太程序员嘛主要是看了那些跟贴不是针对猛兄。其实说这些废话我肯定不是有什么恶意的,也不用认为我走Windows路线就专门跟Linux过不去。举个 例子吧,我手下的程序员在我们对功能进行评审的时候,我问他如果客户要这样这样你现在的给出的界面功能应该怎么做,他回答我要A->B->C ->...->K,那样的结果往往是给我K的。我们干程序员这行这么久(以第一次靠写程序赚钱开始,我就12年),这里发表意见的人可能往往 也自得其乐技术上感觉比较良好(包括我),但是真的能当饭吃的才是好技术,而很多程序员(连我自己在内),很多时候总是畅游在技术享受之中,不把客户、项 目、产品的利益放在首位,往往是要吃亏的。大家都知道程序员吃青春饭,这种亏还真的想一直吃下去?

得罪之处万望海涵。

--
Edward Guo
Raptor 发表于2006-12-28 14:57:23  IP: 203.94.2.*
1、不知道你的意思,是指什么成本?服务端的成本本来就比客户端高啊

2、 既然都银行了,当然不介意用专业人士,我也承认WINDOWS配置得好,安全性一样可以不错。拿MICROSOFT的网站没什么好说的,WINDOWS都 是他们开发的,他们当然能够比别人用得好,但不是所有用户都有这样的实力——给你一个更好的例子:NASDAQ网站也是用WINDOWS服务器。但这没有 普遍意义,只要简单统计一下大的门户网站,这才是典型的大负载应用,有几个是用WINDOWS的呢?
你觉得要求不高那是因为你已经达到一定的程度,但事实上达到这种技术程度以后,去维护*NIX服务器也不会太困难,只是需要一个习惯的过程而已。
WINDOWS 越来越稳定,那是因为以前的WINDOWS太不稳定,但是跟*NIX相比还是有差距的。水平再高的人也难免犯错,而一旦出错,在WINDOWS下的风险就 明显要大一些,而相对来说,*NIX的保护更为全面。GUI与内核隔离只是其中一个方面,仅以这个方面来说,在*NIX下一个用户进程的GUI错误只会表 现为一个SOCKET CLIENT的问题,而WINDOWS下将可能导致GDI部分的严重错误。内存大小的问题和这个完全不是一类的问题,所以我另外举了保护模式为例,保护模 式出现的目的就是为了隔离OS内核与用户进程,当用户进程出错时,会引起保护中断,使系统内核能够及时控制状况,改进系统的稳定性。GUI与内核分离本质 上正是这一思路的延伸,而WINDOWS为了显示性能(桌面应用对此的需求很强烈)将二者紧密结合,这将会带来一定的风险是显而易见的。

3、 我靠写程序赚钱的时间没有你长,而且我不做专职程序员已经好几年了,现在身份相当于客户这边的系统维护人员。但如果哪个软件供应商做出的软件像你的手下那 样实现功能,那我也是要K他们的。不过如果你认为*NIX下的应用是如你所说的这样,那就是你的误解了。很多WINDOWS下要点N次鼠标的操作,在 *NIX下只要一行命令就可以搞定——唯一不同的只是操作方式上的不同。
界面好看,操作直观固然是客户利益的一个方面,但是这更多的还是表面现象,当一个系统在运行一段时间以后,客户却开始需要做一些如时不时重启一下之类的“维护操作”时,这时客户的利益已经不同了。
一个真正好的服务端,并不是一个维护起来简单的系统,而是一个在绝大多数时候根本不需要维护的系统。
edguo 发表于2006-12-29 10:40:51  IP: 58.251.85.*
成 本是指撇除设计等因素,单从开发和维护考虑,你可能要养四拨人,一拨在客户端要开发Windows程序或者页面,另一拨人要在服务器开发非Windows 程序(例如Linux),第三拨是维护服务器的人,第四拨是维护客户端的人(请不要告诉我B/S零维护,做的好点维护量其实大多都不是客户端本身),这里 面针对不同项目各个量不一样,不但涉及到成本管理(例如人员的可置换性),还涉及到员工的发展等其他问题,如果你能把其中一个或多个方面的成本显式降低那 才是高手。

不好意思,我又犯了以老卖老的毛病~~~ 其实我没那么老,因为第一次赚程序钱是在上大学的时候~~我应该属于程序员转型没做好的那种,现在还得兼行程序员角色,所以我力劝现在读大学的小舅子主修 Computer Science的同时应修管理、经济和人文等社科,那是程序员的软肋。

对此,令狐也给我发来了他的观点:

我没做过管理员,但是我用了一段时间的Linux,而我LP以前正好做过Windows的系统管理工作。因此我从使用的角度扯两句吧。
一 个好的Windows系统管理员,绝不是一件简单的工作。对一个公司上千台电脑进行管理时,编写自动化任务可以说是不可缺少的一件工作。而这时, Linux的难度比Windows要小很多,因为在Linux上你面对的仍然是你熟悉的命令,只是用Shell将他们组合一下而已,甚至远程执行也只需要 用ssh就可以搞定。而Windows下,你就不得不新接触一件叫做"Host script"的工具——而它既不同于控制台命令,又不同于窗口操作。这是一个额外的知识,需要额外的学习,学习是要成本的。—— 而我LP的朋友所在的另外一家公司,他们的系统管理员因为不了解这个,是一台一台手工操作的,有一次公司病毒发作,我LP的朋友因此连续通宵了N天。(这 是实际发生的事情)
更糟糕的是,Host script使用的是COM,如果系统里没有现成可用的组件而需要自己开发时,难度就比在Linux下开发一个命令行工具难度更加大了,出错的概率也要高 很多(因为COM模型本身的复杂性)——这通常不是一个系统管理员干得了的,于是又要请一个COM开发人员过来,这又是成本。
总之,我现在使用 Linux最大的感受,就是他的KISS原则。Windows把维护和开发分得太开了,要么就是傻瓜式的操作,要么就是API编程。而Linux下借助脚 本的强大黏合能力,就提供了一个很不错的中间层次,在这个层次上,你不需要很精通正儿八经的开发,而又可以做比"傻瓜式"复杂得多的事情。这样可以为管理 维护带来很大的方便。
另外,在安全性方面,Linux的确未必比一个良好配置的Windows更安全,但是Linux有个好处就是他把安全性一开 始就让你知道。如果你不了解什么叫做用户权限、用户组、所有者,很多事情就干不了,所以你不得不一开始就去把这些了解清楚。而Windows最可怕的一点 就是把这些复杂的概念隐藏在易用性的背后——你哪怕对这些一无所知,也不影响你使用这个系统。因此很多人对安全性毫无概念,却自以为对Windows已经 很熟悉了,这才是Windows安全性问题的来源,我觉得。而把Windows的相关概念完全了解清楚,其难度并不比熟悉Linux更低。
另外再补充一点刚刚没说的。
其 实现在我觉得作为桌面,Linux也并不比Windows更难用,甚至在某些方面比Windows更加方便(比如连接我的A1200手机,呵呵)。关键是 你不能用使用Windows的思路去使用Linux。在Windows下,如果我要干一件事情,而这件事情正好Windows干不了,我就会上网找一份软 件,也许他不是特别符合我的需求,那么,我就忍了;要么就打开开发工具自己从头写一个,但这个难度一般比较大,周期也比较长;而在Linux下,我就会找 一份能完成核心功能的程序(比如看图、编辑之类的基础功能,这些一般都能找到),然后写个脚本组合一下。通常写完脚本之后,用起来比Windows下更方 便。而写脚本这件事本身也比Windows下编程难度要低得多。

暂告一段。

 

发表于 @ 2007年01月03日 13:46:00|评论(loading...)

新一篇: 傅里叶级数拟合实验 | 旧一篇: 一个批量更改文件名的Python脚本

用户操作
[即时聊天] [发私信] [加为好友]
猛禽
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
猛禽的公告
本站作者:猛禽
号:老鸟,别号:大叔,英文名:Raptor。

Creative Commons License
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
联系方式:

我常用的Extensions

微笑图书室 多背一公斤

文章分类
收藏
    0. 个人链接
    1. 猛禽的河蟹BLOG(RSS)
    2. 寻找世界的美丽(RSS)
    3. Mental Studio-个人主页(RSS)
    5. 猛禽专栏-CSDN上的个人专栏
    6. 猛禽文档-CSDN个人技术文档
    7. CSDN电子报
    1. CSDN BLOG
    1. 令狐虫
    2. 韩磊(RSS)
    3. lxpbuaa(桂枝香在故国晚秋)
    4. 一竿残照.金棣@CODELPHI
    5. deadcat's blog
    6. gigix(透明思考)
    7. ozzzzzz
    8. 蝈蝈
    2. 技术BLOG
    chechy
    CoolSlob
    FrameSniper(FS)
    hkbarton
    leeon
    SnowFlacon
    小伍
    小小
    小眼镜
    我的ACE,TAO
    摩托
    百合MM
    3. 洋人BLOG
    Allen Bauer
    Anders Ohlsson
    Danny Thorpe
    Don Box
    Herb.Sutter
    James Gosling
    Martin Fowler
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © 猛禽