• 博客访问: 197106
  • 博文数量: 59
  • 博客积分: 193
  • 博客等级: 入伍新兵
  • 技术积分: 1192
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-13 14:37
个人简介

当以艺术眼光看程序,寻找程序后面的原理,做到化而不忘

文章分类

全部博文(59)

文章存档

2017年(5)

2015年(7)

2014年(27)

2013年(20)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题

分类: Windows平台

<p style="text-indent:26.25pt;"> <span>笔记之一<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ruby</span><span style="font-family:宋体;">之所以设计模块的概念,在于弥补传统的</span><span>C</span><span style="font-family:宋体;">之类语言的模块概念的缺失。在软件设计中,模块化体现很多很有用,它直接关系到软件设计的效率和灵活性。</span><span>C</span><span style="font-family:宋体;">中没有明显的模块的概念,就要由程序员自己通过软件的手段来强化模块概念,通过另外添加代码实现,这是比较麻烦的。在</span><span>Ruby</span><span style="font-family:宋体;">和</span><span>Perl</span><span style="font-family:宋体;">及</span><span>Python</span><span style="font-family:宋体;">中,将模块概念单独提出来,由编译器来支持,强迫你来接受,强迫你来使用,这样就大大方便了软件设计。</span><span></span> </p> <p style="text-indent:26.25pt;"> <span>&nbsp;</span> </p> <p> <span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:宋体;">也可以这样理解,</span><span>Ruby</span><span style="font-family:宋体;">语言级别就已经考虑到软件设计问题,为软件设计添加了众多特性,比如</span><span>yield+CodeBlock</span><span style="font-family:宋体;">,</span><span>undef FunName</span><span style="font-family:宋体;">,文件的</span><span>Begin</span><span style="font-family:宋体;">和</span><span>End</span><span style="font-family:宋体;">代码块等,这些在</span><span>C</span><span style="font-family:宋体;">中都要由程序员来自己实现。比如,在</span><span>C</span><span style="font-family:宋体;">中,函数的定义是无法取消的,只有宏可以取消定义。</span><span></span> </p> <p> <span>&nbsp;</span> </p> <p> <span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:宋体;">那么,反之,由新型的动态语言如</span><span>Ruby</span><span style="font-family:宋体;">,</span><span>Perl</span><span style="font-family:宋体;">,</span><span>Python</span><span style="font-family:宋体;">等来反向推理在</span><span>C</span><span style="font-family:宋体;">中设计应该具备的机制,这理论上也是可以的,并且可以帮助提高利用</span><span>C</span><span style="font-family:宋体;">进行系统设计的能力。比如,在</span><span>Ruby</span><span style="font-family:宋体;">中类可以嵌入模块,这个如果从</span><span>C</span><span style="font-family:宋体;">的角度来看,简直是活脱脱的</span><span>C</span><span style="font-family:宋体;">实现</span><span>C++</span><span style="font-family:宋体;">的继承机制啊,可以推断,</span><span>Ruby</span><span style="font-family:宋体;">他爹估计也是从</span><span>C</span><span style="font-family:宋体;">实现</span><span>C++</span><span style="font-family:宋体;">继承的角度才想到类中包含模块,这也是变相实现继承机制。那么机会来了,将来哪天你也实现自己的语言,可以参考这个思路实现多继承。</span><span></span> </p> <p> <span>&nbsp;</span> </p> <p> <span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family:宋体;">学习新语言不是直接目的,目的在于由新语言来改造</span><span>C</span><span style="font-family:宋体;">语言,通过新语言提高使用</span><span>C</span><span style="font-family:宋体;">语言进行系统设计的能力。</span><span></span> </p>
阅读(1348) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

qiqisamma2016-06-02 16:58:33

OneAPM 是唯一的一个可以帮助你查看 Python 应用程序方方面面的工具。无论是从终端的用户体验还是服务器监控,OneAPM 支持追踪各种问题,例如:数据库查询缓慢、第三方 API 接口和 Web 服务器甚至数据缓存层缓慢等。可以在生产环境下监控你的应用。快来官网注册体验吧~

评论热议
请登录后评论。

登录 注册