摘要: 机制与策略 学习系统调用时,书上提到机制与策略,这也是陈老师与武特学长经常给我们强调的,这是一种设计模式,帮助我们理解操作系统的设计。下面的内容是从陈莉君老师的博客上copy下来的,写的很好,很通俗、透彻。 Unix/Linux的接口设计有一句通用的格言“提供机制而不是策略”。 区别... 阅读全文
posted @ 2015-08-27 14:47 eric0803 阅读(974) 评论(0) 推荐(0) 编辑
摘要: 策略与机制大部分策略与机制的区别定义是,策略是描述如何实现什么功能,机制则是需要实现怎样的功能。在"The Art of Unix Programming" 中Raymond通过X举例说明两者的区别,但未给出明确的定义,文中指出窗口的视感总是变化的,暗含这是策略;而光栅的组合和操作是不变的,暗含这是... 阅读全文
posted @ 2015-08-27 14:46 eric0803 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 机制策略(一)形而上谓之道;形而下谓之器; ————易经LinuxUnix设计理念提供的一种机制不是策略:1、如果说机制是一种框架,那么,策略就是填充框架的一个个具体实施。机制提供的就是一种开放而宽松的环境,而策略就是在这个环境下赖以生存的生命个体。2、一个系统调用的执行机制:(1)库函数... 阅读全文
posted @ 2015-08-27 14:45 eric0803 阅读(1736) 评论(0) 推荐(0) 编辑
摘要: RTSP会话基本流程RTSP交互流程: C表示RTSP客户端,S表示RTSP服务端 ① C->S: OPTION request //询问S有哪些方法可用 S->C: OPTION response //S回应信息中包括... 阅读全文
posted @ 2015-08-27 13:22 eric0803 阅读(3572) 评论(0) 推荐(0) 编辑
摘要: linux编程学习工具篇 “公欲善其事,必先利其器”。编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习 C 语言编程常常用到的软件和工具。 (一)操作系统 在 UNIX 或 Linux 系统中学习 C 很方便,所以在开始您的学习旅程前请... 阅读全文
posted @ 2015-08-27 13:19 eric0803 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 总结linux内核开发的coding style, 便于以后写代码时参考.下面只是罗列一些规则, 具体说明可以参考: 内核源码(Documentation/CodingStyle) 01 - 缩进 缩进用 Tab, 并且Tab的宽度为8个字符 swich 和 case对齐, 不用缩进 ... 阅读全文
posted @ 2015-08-27 13:17 eric0803 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 整洁代码的4个提示虽然这样的文章非常的多,并且,就算是对于编程新手来说,也是非常的简单和显而见,但是,在我们进行Code Review过程中,我们还是能够看到那些非常混乱的代码,所以,有些时候,你会在想,是不是这样的规则太多了,导致我们的程序员记不住。虽然我们在以前的文章中一遍又一遍的说过(比如:《... 阅读全文
posted @ 2015-08-27 13:16 eric0803 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 五种应该避免的代码注释在酷壳,有很多文章都提到了代码注释,如:《十条不错的编程观点》、《优质代码的十诫》、《整洁代码的4个提示》、《惹恼程序员的十件事》等等。今天,某国外的程序员在这里列举五种应该避免的程序注释,我觉得比较有道理,但我觉得有少数几个观点也并不绝对。所以,我把原文的这五种应该避免的程序... 阅读全文
posted @ 2015-08-27 13:13 eric0803 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 《What’s your most controversial programming opinion?》“你认为最有争议的编程观点是什么?”在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻... 阅读全文
posted @ 2015-08-27 13:12 eric0803 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 代码优化概要本文译自Dr. Dobb’s Blogger的Walter Bright写的《Overlooked Essentials For Optimizing Code》我编写程序至今有35年了,我做了很多关于程序执行速度方面优化的工(一个示例),我也看过其它人做的优化。我发现有两个最基本的优化... 阅读全文
posted @ 2015-08-27 13:10 eric0803 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 正确的变量命名规范: 采用匈牙利标记法标记数据类型或者控件类型 为变量赋予表意性强的名字例如:intIndex、dgvStudentInfo,像strTemp这样的变量名是极其令人恶心的。 尽量避免对变量名的缩写,如果必须缩写一定保证缩写后不影响对变量的理解。 变量名... 阅读全文
posted @ 2015-08-27 13:08 eric0803 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: 编程中的命名设计那点事在我开始设计系统的时候,我会花去很多时间去设计命名,因为好的命名和好的设计是分不开的。In the beginning was the Word, and the Word was with God, and the Word was God太初有道。道与神同在,道就是神。 (... 阅读全文
posted @ 2015-08-27 13:07 eric0803 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 应该阅读的开源代码 读代码可能有两种原因,一是对这个东西某处不满意想改,二是想学习其中的设计实现思路,前者动力更直接一些,后者则不好选,因为纯粹泛泛地看跟你实际环境关系不大的代码,其实不太容易学到东西。而且现代软件设计其实也充满了许多妥协和折衷,大家最常用的软件,往往不是代码最干净的,而是做了许多妥... 阅读全文
posted @ 2015-08-27 13:05 eric0803 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 软件工程师的10种特质1. 热爱编程2. 完成事情3. 持续重构代码4. 使用设计模式5. 编写测试6. 善用现有代码7. 专注可用性8. 编写可维护的代码9. 能用任何语言编程10. 知晓基本的计算机科学1. 热爱编程 编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is... 阅读全文
posted @ 2015-08-27 13:03 eric0803 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 导读:对于开发者来说,社区里丰富的开源代码其实是笔极为宝贵的财富。如果能充分利用好开放源代码的资源,不仅可以掌握多种编程方法,提高实践能力,还能获得好的思想,激发编程灵感。开源代码怎么学以及怎样才能学好是大家经常关注的话题,日前,在问答网站知乎上,有人抛出了“如何更有效地学习开源项目的代码?”的话题... 阅读全文
posted @ 2015-08-27 13:02 eric0803 阅读(2032) 评论(0) 推荐(0) 编辑
摘要: 浅谈C++三层架构 三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control)。 web开发中的三层架构是指:数据访问层(DAL-DatabaseAccessLayer),业务逻辑层(BLL-BusinessLog... 阅读全文
posted @ 2015-08-27 12:59 eric0803 阅读(1752) 评论(0) 推荐(0) 编辑
摘要: 框架设计之感这一星期过的可真快啊,一直都在忙于框架设计,现在回想起来,不由得感慨连篇! 从未经历过框架设计的我,在体验过框架设计之后,感觉即欣喜又胆怯,欣喜的是自己的想法,可以按照自己多年总结的经验来设计属于自己的框架;胆怯的是不知自己有没有这个实力去把框架搭建好。所以快乐的背后往往要经历困难... 阅读全文
posted @ 2015-08-27 12:55 eric0803 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 基本结构编辑 结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构。顺序结构 顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。选择结构 选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。循环结构 ... 阅读全文
posted @ 2015-08-27 12:52 eric0803 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 架构引用维基百科:软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构... 阅读全文
posted @ 2015-08-27 12:51 eric0803 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 代码中特殊的注释技术——TODO、FIXME和XXX的用处前言:今天在阅读Qt Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义!实际上,在阅读一些开源代码时,我们常会碰到诸如:TODO、FIXME和XXX的单词,它们是有其特殊含义的。TODO: + 说明:... 阅读全文
posted @ 2015-08-27 12:49 eric0803 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 代码中doxygen方式的注释写法:1. 模块定义(单独显示一页) /* * @defgroup 模块名 模块的说明文字 * @{ */ … 定义的内容 … /** @} */ // 模块结尾 2. 分组定义(在一页内分组显示) /* *... 阅读全文
posted @ 2015-08-27 12:47 eric0803 阅读(969) 评论(0) 推荐(0) 编辑
摘要: 原文作者 Eric Lippert 是微软一名资深软件设计工程师,从1996年起一直在微软开发部门任职,协助设计并实现VBScript、JScript、JScript .NET、Windows Script Host、Visual Studio Tools for Office 和 C#。Escal... 阅读全文
posted @ 2015-08-27 12:46 eric0803 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 【职场规划从“试错”开始】 现在的年轻人,有相对宽松的环境去做这种“试错”。在职场刚开始的两三年,可以多方尝试。不要给自己预设很多,不要盲目去追求金钱或者职位升迁什么的。努力找到最让自己兴奋、最适合自己个性特点的工作。一旦找到之后你们就要开始长时间的投入。 阅读全文
posted @ 2015-08-27 12:43 eric0803 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 项目源代码目录结构建议 为便于源代码的管理,提高源代码模块合成时的效率,避免浪费不必要的时间,对项目目录结构作以下建议: 注:本建议适用于多个DLL项目的解决方案 整体结构 •解决方案整体目录结构应该是下面的样子(以数字录相机项目(DVR)为列): iWi... 阅读全文
posted @ 2015-08-27 12:41 eric0803 阅读(1596) 评论(0) 推荐(0) 编辑
摘要: 深度解析:清理烂代码摘要: 烂代码不一定是问题,只要它们没有出错,没有人会对它嗤之以鼻。但不幸的是,它们没被发现的概率太小了。错误会被发现。需要新的功能,新系统发布了。现在你不得不面对这堆恐怖的代码,试着去清理它们。 猜猜看怎么了!你正”继承“(接收)了一堆混乱的旧代码。恭喜你!现在都是... 阅读全文
posted @ 2015-08-27 11:51 eric0803 阅读(267) 评论(0) 推荐(0) 编辑