众浏览器对IE的围攻--UNIX哲学的应用

简介:
unix的哲学是很伟大的,这里先列出来它们,很简单,我也不评论什么,评论相当于亵渎,还是静观吧: 
1、 模块性原则:写简单的,通过干净的接口可被连接的部件。 
2、 清楚原则:清楚要比小聪明好。 
3、 合并原则:设计能被其它程序连接的程序。 
4、 分离原则:从机制分离从策略,从实现分离出接口。 
5、 简单原则:设计要简单;只有当你需要的时候,增加复杂性。 
6、 节俭原则:只有当被证实是清晰,其它什么也不做的时候,才写大的程序。 
7、 透明原则:为使检查和调试明显更容易而设计。 
8、 健壮性原则:健壮性是透明和简单的追随者。 
9、 表现原则:把知识整理成资料,于是程序逻辑能变得易理解和精力充沛的。 
10、最小意外原则:在接口设计中,总是做最小意外事情。 
11、沉默原则:当一个程序令人吃惊什么也不说的时候,他应该就是什么也不说。 
12、修补补救:当你必须失败的时候,尽可能快的吵闹地失败。 
13、经济原则:程序员的时间是宝贵的;优先机器时间节约它。 
14、产生原则:避免手工堆砌;当你可能的时候,编写可以写程序的程序。 
15、优化原则:在雕琢之前先有原型;在你优化它之前,先让他可以运行。 
16、差异原则:怀疑所有声称的“唯一真理“。 
17、可扩展原则:为将来做设计,因为它可能比你认为来的要快。 
如果说你光看就已经觉得很了不起了,那么就再仔细想想,我们的生活中一定有例子,如果没有想出来,就听我扯犊子吧。今天在linux伊甸园看到了一篇中浏 览器围攻IE的文章,好奇的我安装了几个,发现竟然好多都是firefox,比如什么Redfox,Madfox之类的,我想它们为何不就叫 firefox,或者firefox的升级版本呢?后来想到它们都是开源的浏览器,内核肯定都是firefox的,但是肯定在一个地方分道扬镳了,各自体 现出的事自己独特的特性,这便成全了它们自己,使得各自独占了一方沃土,仔细想想这怎么可能,如果一个系统设计的牵一发而动全身的话,谁还敢改啊,谁还敢扩展啊,之所以一个内核加上一些策略性的东西摇身一变就成就了另一个东西,看来也只有遵循unix哲学的系统可以做到,像堆积木一样,内核提供的仅仅是机制,组件作为材料,加上自己的想法,一套系统就成型了,unix的哲学使得这种设计成为了标准,firefox就是这么设计的,因此才有了那么多的衍生浏 览器。 
以上浏览器的例子仅仅是例子之一,另外看一下linux,这里的linux不是指内核,而是指linux发行版,正是因为linux的高度低耦合,设计正 交化,内核和用户空间明确区分,这才使得各家开发自己的发行版成为可能,看看我的上一篇文章说的系统调用的重要性就知道为何linux设计是正交的了,如 果按照windows的方式,比如你调用一个api,首先进入的不是标准库或者内核,而是完全依赖windows的 kernel32.dll,user32.dll还有什么ntdll.dll,这些dll接管了应用程序的一切,而且这些dll是善变的,可悲的 是,linux下没有这些dll,mac os下也没有。仔细看看windows违背了17大原则的哪一些就知道windows多么..了,但是这并不是windows的错,windows的目标和unix不同,它在另一个方面是非常成功的,这个方面就是直接面对用户的需求,只可惜,这不是本文的内容。 

最后一个例子就是现在炒得沸沸扬扬的中间件技术,中间件之所以具有任意插拔的特性就在于它们是按照设计模式中的很多原则设计的,而unix的哲学几乎囊括 了所有的设计模式,包括很多的企业级应用,如果这么复杂的应用牵一发而动全身的话,各大资本家估计就都用算盘了。


 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273986


相关文章
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0
|
7月前
|
数据可视化 Shell UED
SAP Corbu Theme 在浏览器和 SAPGUI 应用中的使用场景
SAP Corbu Theme 在浏览器和 SAPGUI 应用中的使用场景
45 0
|
6月前
|
Web App开发 前端开发 JavaScript
|
1月前
|
存储 机器人
在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
【2月更文挑战第28天】在阿里云RPA中,你可以通过以下步骤来更改默认唤醒IE浏览器的地址
19 1
|
4月前
|
Web App开发 JavaScript 前端开发
JavaScript在IE和标准浏览器下的兼容性处理
JavaScript在IE和标准浏览器下的兼容性处理
41 0
|
4月前
|
前端开发 JavaScript Java
Web应用中浏览器与服务端的编码和解码
Web应用中浏览器与服务端的编码和解码
66 0
|
5月前
|
前端开发
border-radius 兼容 IE8浏览器
border-radius 兼容 IE8浏览器
40 1
|
5月前
|
Web App开发 移动开发 安全
IE浏览器,和Edge浏览器
IE浏览器,和Edge浏览器
|
5月前
|
JavaScript
兼容IE浏览器
兼容IE浏览器
31 0
|
5月前
|
数据采集 开发框架 JavaScript
基于.NET Core内置浏览器窗体应用程序界面框架
基于.NET Core内置浏览器窗体应用程序界面框架
47 0

热门文章

最新文章