feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  软件设计

摘要:本文基于我在瑞典DevOpsDays上发表的“DevOps是个阶段,而不是特定状态”演说整理。如有兴趣,可以在线观看我的演说,不过在阅读本文时,无需事先观看。相关厂商内容 JBoss研究员张建峰确认参加QCon北京,分享如何应用JBoss AS7构建企业私有云 国内最大的Python应用——Sohu邮箱之经验分享,尽在QCon北京企业开发专题 在过去的几年里,我们不断的在文章、演讲、谈话中了解到DevOps这个词。DevOps声称能够在提升整体系统稳定性的同时,建立更快的反馈回 路,并降低产品迭代成本。DevOps的目标令人印象深刻,但作为新生概念,它无法证明能够达到这种预期目标,所以相关的. 阅读全文

posted @ 2013-02-24 20:53 feisky 阅读(1614) 评论(0) 推荐(0) 编辑

摘要:The Architecture of Open Source Applications - Berkeley DB1. It is vital for any complex software package's testing and maintenance that the software be designed and built as a cooperating set of modules with well-defined API boundaries. The boundaries can (and should!) shift as needs dictate, b 阅读全文

posted @ 2012-10-09 22:18 feisky 阅读(451) 评论(0) 推荐(0) 编辑

摘要:CMake的历史最早接触CMake还是在使用OpenCV处理视频和图像的时候,CMake解决了在Windows和Linux等多平台的编译问题。CMake源自VTK构建系统:在Unix平台生成Makefile,在Windows平台生成NMake文件,这样就可以利用各个平台现有的编译器来编译。但是VTK的架构不支持诸如libtiff/libjpeg等库,这样在Windows上无法为其创建一个简单已用的IDE,只能在命令行操作不符合Windows平台程序员的习惯。CMake的产生解决了VTK存在的问题,其特性包括:* Cmake本身仅依赖于C++编译器* 在Windows上生成Visual Stud 阅读全文

posted @ 2012-10-01 11:00 feisky 阅读(362) 评论(0) 推荐(0) 编辑

摘要:Bash Component ArchitectureLessons from the architecture of Bashit’s vital to have detailed change logs.If it’s appropriate, extensive regression testing is something I would recommend building into a project from the beginning.Standards are important. Bash has benefited from being an implementation 阅读全文

posted @ 2012-09-30 11:30 feisky 阅读(254) 评论(0) 推荐(0) 编辑

摘要:The architecture of AudacityLessons from the architecture of Audacityuser interface should be discoverable: people should be able to sit down without a manual and start using it right away, gradually discovering its features.supports LADSPA (Linux Audio Developer’s Simple Plugin API) for dynamically 阅读全文

posted @ 2012-09-24 18:28 feisky 阅读(318) 评论(0) 推荐(0) 编辑

摘要:The architecture of AsteriskLessons from the architecture of Asteriskconcepts of channelTelephony endpoints are represented as channels, and they are connected by channel bridge. Channel bridge is responsible of chennal negotiation, codec and frame transport. Because the media transport technology o 阅读全文

posted @ 2012-09-24 17:32 feisky 阅读(282) 评论(0) 推荐(0) 编辑

摘要:优化 Unix经验告诉我们最主要的就是如何知道不去优化,最强大的优化工具就是不做优化(摩尔定律)。如果仅仅是为了减少资源使用的一个常数部分而优化是不值得的,更明智的做法是把高次的指数级降下来。善用profiler估量程序,并谨记工具误差,降低误差影响的一个方法是在相同负载下多次profiler。最有效的代码优化方法是保持代码短小简单,永远不要将核心数据结构和时间关键循环抛出缓存。性能往往受限于IO(尤其是网络程序),经验法则是尽可能降低时延:对可以共享启动开销的失误进行批处理;允许事务重叠;缓存。工具编辑器:vi、emacs代码生成器:yacc、lex自动化编译:make版本控制:VCS运行期 阅读全文

posted @ 2012-02-14 22:59 feisky 阅读(469) 评论(0) 推荐(1) 编辑

摘要:最小立异原则如有可能,尽量允许用户将接口功能委派为熟悉的程序来完成不能委派时,那就效仿接口设计评估 简洁:一个事务处理需要的动作时间及复杂度需要较低的上限 表现力: 接口可以触发相当广泛的行为 易用: 易用性同要求用户需要记忆的东西成反比 透明: 用户在使用接口的时候,几乎没有什么问题、数据或程序的相关状态需要记忆 脚本化能力:很容易被其他程序调用CLI和可视接口之间权衡 CLI:丰富的表现力,高度的脚本化能力,易用性低(需要费劲的记忆),透明度通常也较低 GUI:易用,不能脚本化,处理规模大的问题需要机械性重复操作 长远来看,为了既能服务一般用户,又能服... 阅读全文

posted @ 2012-02-12 13:18 feisky 阅读(872) 评论(0) 推荐(0) 编辑

摘要:什么应是可配置的Unix提倡建立机制而把策略决定权留给用户,往往会导致选项过多。不应该配置:能够可靠自动检测的东西;用户不应该看到优化开关;能用脚本包装器或简单管道完成的任务,就不要使用配置开关实现。配置放在哪里/etc目录:管理员设置的系统级选项支持#开头的注释不去别隐匿的空白符多个连续的空行视为单个空行词法上把文件视作简单的用空白符分割的标记序列,或多行标记,但支持以字符串语法对内嵌空白符的... 阅读全文

posted @ 2012-02-07 21:58 feisky 阅读(513) 评论(0) 推荐(0) 编辑

摘要:Unix下有很强大的专用代码生成器,如用yacc/lex来构建语法分析器和词法分析器、用autoconf或automake生成makefile等。这些工具具有很强大的功能,但还有一些简单轻巧的代码生成方式,下面是《Unix编程艺术》中的两个例子。生成ASCII显示的代码如果在程序中直接通过初始化器来写出所有行,会出现对齐、每行很难保证79字符的问题。Ascii源码的解决方法是通过脚本生成这部分... 阅读全文

posted @ 2012-02-05 15:32 feisky 阅读(615) 评论(0) 推荐(0) 编辑

摘要:本文示例代码采用的是c语言。之前介绍过数据驱动编程《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天更进一步,介绍一个稍微复杂,更加实用的一点手法——表驱动法。关于表驱动法,在《unix编程艺术》中有提到,更详细的描述可以看一下《代码大全》,有一章专门进行描述(大概是第八章)。简单的表驱动:《什么是数据驱动编程》中有一个代码示例。它其实也可以看做是一种表驱动手法,只不过这个表相对比较简单,它在收到消息后,根据消息类型确定使用调用什么函数进行处理。复杂一点的表驱动:考虑一个消息(事件)驱动的系统,系统的某一模块需要和其他的几个模块进行通信。它收到消息后,需要根据消息的发送方,消息的类 阅读全文

posted @ 2012-02-04 21:19 feisky 阅读(347) 评论(0) 推荐(0) 编辑

摘要:前言:最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容就是围绕它来展开的。以前说过,要学习适合自己的资料,而判断是否适合的一个方法就是看你是否能够读得下去。我对这本书有一种相见恨晚的感觉。推荐有4~6年工作经验的朋友可以读一下。正题:作者在介绍Unix设计原则时,其中有一条为“表示原则:把知识叠入数据以求逻辑质朴而健壮”。结合之前自己的一些经验,我对这个原则很有共鸣,所以先学习了数据驱动编程相关的内容,这里和大家分享出来和大家一起讨论。数据驱动编程的核心数据驱 阅读全文

posted @ 2012-02-04 21:16 feisky 阅读(459) 评论(0) 推荐(0) 编辑

无觅相关文章插件,快速提升流量