学习Linux程序设计之路(1)UNIX程序设计哲学

UNIX程序编程有自己特定的风格,我们在学习UNIX程序设计的时候,应该尽量遵从这种设计风格,它能够最大限度地帮助我们避免一些问题。

    • 简单化

      许多有用并且好用的UNIX系统软件都非常简单,而且很小并易于理解。“小而简单”是一个值得学习的技术。越大、越复杂的系统就注定会包含越大、越复杂的错误,对于我们调试来说,是一件非常痛苦的事情。

    • 集中性

      让程序执行一个任务通常要比将所有功能串联在一起要好很多。臃肿的程序一般很难进行维护与使用,比起单一功能的程序来说,修改该程序的某一个功能很容易引发其他错误,并且影响其他功能的使用。在UNIX程序中,当用户出现新的需求的时候,我们通常将各种小工具组合在一起来实现一个更加复杂的任务,而不是试图将用户的需求放在一个程序中完成。

    • 可重用组件

      将应用程序的核心实现为库。具有简单而灵活的编程接口、文档齐备的库可以帮助其他人开发出同类程序,或者把这些技术应用到新的应用领域。dbm库就是一个例子,它是一组可重用的函数,而不是单一的数据库管理程序。

    • 过滤器

      许多UNIX应用程序可用作过滤器。也就是说,他们对输入进行转换并产生输出。正如你将在后面看到的,UNIX提供了一些机制,让我们可以把一些UNIX程序通过一种新颖的方式组合起来,以开发出相当复杂的应用程序。当然,这种类型的重用是靠我们前面提到的开发方法支撑的。

    • 开放的文件格式

      比较成功并流行的UNIX程序都是用纯ASCII码的文本文件或XML文件作为配置文件和数据文件。如果你在开发程序时采用了任一种做法,那你做对了!它使用户可以可以用标准工具来修改和搜索配置项,并且可以开发出新工具在数据文件上执行新的功能。ctags源代码交叉引用系统就是一个好例子,他把符号位置信息以适合于搜索程序使用的正则表达式的形式记录下来。

    • 灵活性

      你不能期待用户都能非常正确地使用你的程序。所以,你在编程时应尽量考虑到灵活性,尽量避免随意限制字段长度或记录数目。如果你能做到的话,则你编写的网络程序既能在单机上运行,也能跨网络运行。永远不要认为你知道用户想做的一切事。

原文地址:http://blog.51cto.com/13813797/2141893

时间: 2024-10-28 12:01:29

学习Linux程序设计之路(1)UNIX程序设计哲学的相关文章

学习linux/unix编程方法的建议(转)

假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码 其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数 安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式 系统编程推荐<高级unix环境编程>,黑话叫APUE还有<unix网络编程>这时候大概还需要看资料理解e

学习linux/unix编程方法的建议,学习Linux的四个步骤(转)

解答:学习Linux的四个步骤假设你是计算机科班出身,计算机系的基本课程如数据结构.操作系统.体系结构.编译原理.计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式系统编程推荐<高级unix环境编程>,黑话叫APUE还有<unix网络编程>这时候

资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档

文章转自:https://linux.cn/article-10311-1.html 手册页(man)是由系统管理员和 IT 技术开发人员写的,更多的是为了作为参考而不是教你如何使用.手册页对于已经熟悉使用 Linux.Unix 和 BSD 操作系统的人来说是非常有用的.如果你仅仅需要知道某个命令或者某个配置文件的格式那么你可以使用手册页,但是手册页对于 Linux 新手来说并没有太大的帮助.想要通过使用手册页来学习一些新东西不是一个好的选择.这里有将提供 30 个学习 Linux 和 Unix

转:学习linux驱动经典书籍

Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为<linux_device_driver 3rd Edition>,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了.但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的.除了这本Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini合著的经典大作外,另一本理论

Linux新手必看:浅谈如何学习linux

本文在Creative Commons许可证下发布 一.起步 首先,应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix问题1:版本的选择 北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的,linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举.原则是:我们没有必要把时间浪费在"装系统"上而应集中精力学习最有用的东

零基础学习Linux必会的60个常用命令

Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, 就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统. 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍. ◆ 安装和登录命令

忠告初学者学习Linux系统的8点建议

导读 新手或者说即将要入坑的小伙伴们,常常在QQ群或者在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:如何给添加的用户归属用户组,复制整个文件到另一个目录下面,磁盘合理划分,甚至配置IP,这些问题其实都不是很难的,只要了解了 Linux 的基础之后,就可以很轻易的解决掉这方面的问题.而有有些不伙伴他往往上一上来都想直接搞网站.开启sshd服务.ftp服务,根本没有想到要先了解一下Linux 的基础.你连走路都不会何来奔跑一说? 第一:学会使用Linux命令 时至今日Linu

[Linux]谈谈如何学习Linux操作系统

一. 选择适合自己的linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux 用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面我们就分类介绍. 1.1 初学者入门首选-redhat系列在学习redhat系列li

小白该如何学习Linux操作系统(1)

献给初学者:小白该如何学习Linux操作系统 一. 选择适合自己的Linux发行版 谈到linux的发行版别,太多了,可能谁也不能给出一个准确的数字,但是有一点是能够必定的,linux正在变得越来越盛行, 面临这么多的Linux 发行版,打算从别的体系转到linux体系来的初学者可能会感到迷惑,即便是忠诚的 Linux 用户也没有时刻和精力去挨个测验,因而初学者在学习linux的之前,需求有一个清晰的方向,挑选一个合适自个的体系开端学习linux至关重要!下面咱们就分类介绍. 1.1 初学者入门