时间戳转换器

unix编程艺术——摘录一

日期:2022-12-12     来源:fenqinearl    作者:fenqinearl    浏览:310    java教程

本文目录

1、unix编程艺术——摘录一

2、读《unix编程艺术》一感

技术图片

Unix哲学

Unix本身所作出的榜样体现出来的。从整体上来说,可以概括为以下几点:
1.模块原则:使用简洁的接口拼合简单的部件。
2.清晰原则:清晰胜于机巧。
3.组合原则:设计时考虑拼接组合。
4.分离原则:策略同机制分离,接口同引擎分离。
5.简洁原则:设计要简洁,复杂度能低则低。
6.吝啬原则:除非确无它法,不要编写庞大的程序。
7.透明性原则:设计要可见,以便审查和调试。
8.健壮原则:健壮源于透明与简洁。
9.表示原则:把知识叠入数据以求逻辑质朴而健壮。
10.通俗原则:接口设计避免标新立异。
11.绒默原则:如果一个程序没什么好说的,就沉默。
12.补救原则:出现异常时,马上退出并给出足够错误信息。
13.经济原则:宁花机器一分,不花程序员一秒。
14.生成原则:避免手工hack,尽量编写程序去生成程序。
15.优化原则:雕琢前先要有原型,跑之前先学会走。
16.多样原则:决不相信所谓“不二法门”的断言。
17.扩展原则:设计着眼未来,未来总比预想来得快。


关于编程

技术图片

看到该做的就去做——短期来看似乎是多做了,但从长期来看,这才是最佳捷径。
如果不能确定什么是对的,那么就只做最少量的工作,确保任务完成就行,至少直到明白什么是对的。
要良好的运用Unix哲学,你就应该不断追求卓越。你必须相信,软件设计是一门技艺,值得你付出所有的智慧、创造力和激情。否则,你的视线就不会超越那些简单、老套的设计和实现;你就会在应该思考的时候急急忙忙跑去编程。你就会在该无情删繁就简的时候反而把问题复杂化——然后你还会反过来奇怪你的代码怎么会那么臃肿、那么难以调试。
要良好地运用Unix哲学,你应该珍惜你的时间决不浪费。一旦某人已经解决了某个问题,就直接拿来利用,不要让骄傲或偏见拽住你又去重做一遍。永远不要蛮干;要多用巧劲,省下力气到需要的时候再用,好钢用在刀刃上。善用工具,尽可能将一切都自动化。
软件设计和实现应该是一门充满快乐的艺术,一种高水平的游戏。如果这种态度对你来说听起来有些荒谬,或者令你隐约感到有些困窘,那么请停下来,想一想,问问自己是不是己经把什么给遗忘了。如果只是为了赚钱或是打发时间,你为什么要搞软件设计而不是别的什么呢?你肯定曾经也认为软件设计值得你付出激情……
要良好地运用Unix哲学,你需要具备(或者找回)这种态度。你需要用心。你需要去游戏。你需要乐于探索。

技术图片



Unix的故事

小型实验原型系统的后继产品往往备受令人讨厌的“第二版效应”折磨。由于迫切希望把所有首次开发时遗漏的功能都添加进去,往往导致设计十分庞大、过于复杂。其实,还有一个因不常遇到而鲜为人知的“第三版效应”:有时候,在第二系统不堪自身重负而崩溃之后,有可能返璞归真,走上正道。
最初的Unix就是一个第三系统。Unix的祖辈是小而简单的兼容分时系统(CTSS,Compatible Time-Sharing System),也算曾经实施过的分时系统的第一代或者第二代了(取决于不同的定义,具体我们在此不作讨论)。Unix的父辈是颇具开拓性的Multics项目,该项目试图建立一个具备众多功能的“信息功用体/应用工具(information utility)”,能够很漂亮地支持大群用户对大型计算机的交互式分时使用。唉,Multics最后因不堪自身重负而崩溃了。但Unix却正是从它的废墟中破壳而出的。
------------------------------华丽的分割线-------------------------
Unix于1969年诞生于贝尔实验室的计算机科学家Ken Thompson的头脑中。
Thompson曾经是Multics项目的研究人员,饱受当时几乎作为铁律而到处应用的原始批量计算的困扰。然而在六十年代晚期,分时系统还是个新鲜玩意儿。计算机科学家John McCarthy(Lisp语言的发明者)几乎是在十年前才首次发表了分时系统的构想,而直到Unix诞生前七年的1962年才第一次真正部署使用,因此当时的分时系统尚处实验阶段,像喜怒无常的野兽,性能极不稳定。
那个时代计算机硬件的原始程度,恐怕亲历者现在也很难以记清。那时最强大的机器所拥有的计算能力和内存还不如现在一个普通的手机。2视频显示终端才刚刚起步,六年以后才得到广泛应用。最早分时系统的标准交互设备就是ASR-33电传打字机——
个又慢又响的设备,只能在大卷的黄色纸张上打印大写字母。Unix命令简洁、少说多作的传统正是从ASR-33开始的。
当贝尔实验室(Bell Labs)从Multics研究联盟中退出时,Ken Thompson 带着从Multics激发的灵感—如何创建一个文件系统一一留了下来。他甚至没能留下一台机器来玩自己编写的“星际旅行”,这是个科幻游戏一—模拟驾驶一艘火箭在太阳系中遨游。Unix就在一台废弃的PDP-7小型机3(图2.1)上问世了。这台PDP-7成为了“星际旅行”
的游戏平台和Thompson关于操作系统设计思路的试验场。
Unix的完整起源故事可参见[Ritchie79],这是从Thompson第一个合作者 Dennis Ritchie的角度讲述的。Dennis Ritchie后来以Unix的合作发明者和C语言的发明者而闻名于世。Dennis Ritchie、Doug Mcllroy和其他一些同事,已经习惯了Multics环境下的交互计算方式,不愿意放弃这一能力。Thompson的PDP-7操作系统给了他们一条救生绳。

PDP8

PS:

分时系统:多终端共享,多用户操作交互式系统。

读《unix编程艺术》一感

相关文章

程序员幽默:66条让你笑爆肚皮的程序员段子

{...程:x语言入门—>x语言应用实践—>x语言高阶编程—>x语言的科学与艺术—>编程之美—>编程之道—>编程之禅—>颈椎病康复指南。3、还没上大学的时候,高三暑假,}

读书笔记《unix编程艺术》一

{Unix设计的统一思想:一切皆文件。Linux是一个采取了Unix的设计思想,初始行为表现与Unix相同的操作系统,但Linux中的源码并未有任何出自Unix。Linux符合一切皆文件的思想,其中读写操作都是处理文件描述符,...}

内核——简介

{1、系统概貌UNICS——>UNIX——>增加管道功能——>C重写UNIXv.0     v.1      v.2      v.51970                  1973 2、什么是内核?系统调用(systemcall):是内...}

再谈编程范式—程序语言背后的思想

{编程范式托马斯.库尔提出“科学的革命”的范式论后,RobertFloyd在1979年图灵奖的颁奖演说中使用了编程范式一词。编程范式一般包括三个方面,以OOP为例:  1,学科的逻辑体系——规则范式:如类/对象、继承、...}

自己喜欢的一些句子摘录-2018-04-24

{自己喜欢的一些文章中的句子摘录、、、编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋有...}

c语言嵌入式系统编程修炼之道

{ C语言嵌入式系统编程修炼之道——背景篇...1C语言嵌入式系统编程修炼之道——软件架构篇...41.模块划分...42.多任务还是单任务...53.单任务程序典型架构...64.中断服务程序...75.硬件驱动模块...96.C的面向对象化...1...}

第五章操作系统与计算机体系三层结构

{程序员————————————(做事的步骤)编程语言————————————计算机(CPU、内存、硬盘等)&nb}

python线程的用法函数式线程_thread和threading样例(代码片段)

{函数式线程写起来比较简单,但是功能没有threading那么高级,先来个函数式编程样例:#!/usr/bin/python#coding:utf-8#—————————————————&mdash}

读书笔记《unix编程艺术》二

{文本化文本化包含两种设计,一种是将应用数据存储在永久存储器(磁盘等)中文件格式,另一种是在协作进程之间传递数据和命令的应用协议。存储数据结构的文件格式通常在C++,python等中,将内...}

读书笔记《unix编程艺术》六

{...0c;尽可能把设计的复杂度从代码转移到数据中。数据驱动编程:把代码与代码要作用的数据划分清楚,在需要改变程序逻辑时,只需要编辑数据而不是代码例子:语法编辑器需要识别文档中的关键字,可将支...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号