众浏览器对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


相关文章
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
1608 14
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
Unix Shell API
组合思维:Unix 哲学到底给现代编程带来哪些重要启示?
Unix哲学提供了一套简洁而强大的设计理念,这些理念在现代编程中依然具有重要的指导意义。通过模块化设计、组合工具、避免过早优化以及注重可复用性和可扩展性,开发者可以构建出更高效、更健壮的软件系统。希望本文能够帮助读者深入理解Unix哲学,并在实际开发中应用这些宝贵的设计原则。
469 25
|
Web App开发 XML 开发框架
技术心得记录:在IE浏览器中的奇怪页面表现
技术心得记录:在IE浏览器中的奇怪页面表现
334 0
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
754 17
使用Web浏览器访问UE应用的最佳实践
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
1449 1
|
JavaScript 前端开发
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
1164 1
|
JavaScript
VUE——如何兼容IE9|IE10|IE11浏览器
VUE——如何兼容IE9|IE10|IE11浏览器
403 0
VUE——如何兼容IE9|IE10|IE11浏览器
|
安全 网络安全
用IE浏览器访问网站提示证书错误
当你在Internet Explorer中遇到证书错误提示,通常是因网站SSL/TLS证书问题或浏览器安全设置需调整。解决方法包括: 检查时间设置 调整IE设置 安装证书 调整计算机时间
2196 3