在《嵌入软件模式不只为嵌入式系统服务》中,Elecia White解释了“嵌入式系统”和“一般计算设备”之间的界线未必就得是泾渭分明的,实际上嵌入式开发模式非常的有用,不会受到严格的系统约束的限制。
在你的书里面你讨论了面向对象编程和模块化。这两个方面你有什么建议?
White:写之前要先思考。解决问题或着改正一个bug通常是有趣的事情,但是我们不仅仅是那些敲东西的人。我们是工程师,需要考虑它看起来会怎么样,并把它作为大框架的一部分。这时候就需要模块了。如果你的一个文件最后有15000行的代码,可能它就需要那么长。或者……可能需要分裂成3个对象,以便于后面可以重用,或者单独对其进行测试。
我是模块化和面向对象编程的忠实拥趸。仅仅因为没有足够的内存去使用Matlab不能成为不考虑自己的心态应该如何设计的借口。
另一个抓住我眼球的东西是 模型-视图-控制者(Model-View-Controller)模式。你能不能讨论一下这个模式,谈谈今天应该如何运用该模式?
White:Model-View-Controller出来已久。实际上,它也许是最先被识别出来,成为我们口中“这就是你想要实现的东西”的模式之一,它具备这样的能力,让计算机科学家可以互相讨论,谈谈什么才是那种有一个显示或用户界面的应用的好的实现方式。
它把显示部分分离了出来,也即视图,知悉视图背后的东西的视图。视图后面就是模型,以及模型如何与控制者的交互。这是一种简化,但是,跟每一个按钮都进行硬编码的这些日子相比,这还算不上难以置信的强大。不仅仅是在嵌入式系统如此,如果你回到Windows XP之前的时候,你会发现大量的应用是按个按钮然后就在那里实现代码的,这意味着如果你要想改变其外观,就必须要重新编写整个代码。因此模型—视图—控制器(MVC)真的成为了一个极度流行的想法。
正如我们在书中列出的一位读者的观点一样,“你知道那有点过时,许多人都不再以那种方式讨论它了,”不过在嵌入式系统里,我们有点跟不上那些最新的最复杂的设计模式的趟。MVC对我们来说工作得很好,因为大量嵌入式系统所做的事情就是“按按钮,执行动作”,这被硬编码进了一个巨型的按钮盖板。
在嵌入式系统中许多时候你都没有一个视图;你不跟用户交互。那些我们监控的信号是直接推送到云端的。那么,为什么你会使用MVC?在我的书里我讨论了用它来做为测试的一种方式。用来充当现实生活的视图,也即你跟某样东西交互的方式,可能是用户或传感器,而不是从文件中读取。
比如说,这样允许一个射击定位系统通过传感器实时正常地感知环境。现在不必如此了,我可以用一个自己创建或者从设计范围及设计枪支那里拿到的文件来运行代码,而这些数据能够重复。如果在跟事物进行对话时,你能够将自己与事物对话的方式与所做的事情分开的话。
听起来似乎跟HTML5服务器端环境相类似,也关注用JavaScript开发的客户端用户接口的使用,并把你能够用来跟服务器端的应用对话的东西挂接在一起。
White:是的,我不知道他们是不是称之为Model-View-Controller,因为在Web浏览器的世界里,实际上这是一种根深蒂固的习惯。不过如果你进行iPad编程,实际上是有被称作是视图的东西的。如果你知道什么是MVC,对于它们是如何将你iPad程序的组建方式打破的,这一点你就会有更多的理解。就像我说的那样,这是第一批设计模式之一,可能比四人帮所出的设计模式书出来的时间还要早。这也就是为什么也许你听都没听说过它的原因。从那时候开始就在用了,而现在我们的发展已经超越它了。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
HTML5促进企业移动化服务走向极致
在企业困扰于传统移动化方式过于复杂时, HTML5凭借其天然的跨平台特性,乘势而起并逐渐得到企业的关注。可是,由于HMTL5标准建立时间不长,展示性能及稳定性更是需要和浏览器有一个良好的兼容,除此之外企业更是缺乏实际应用经验,所以基于HTML5技术的企业级服务市场还处于一片初创状态。
-
对话陈本峰:HTML5究竟给企业带来了什么?
智能手机的普及,移动计算的应用,带火了HTML5技术。尤其,当我们看到微软朋友圈被“故宫与腾讯合作”的广告刷屏,我们不得不承认,HTML5技术确实很重要,但是HTML5究竟带来了什么,与以往移动技术有什么不同?
-
HTML5如何在企业中深入使用?
据调查显示全球拥有490亿 在线设备,比人口数量多几倍,这说明平均每人拥有不只一部分在线设备。由此可见,全球移动生态系统是多么的庞大。
-
HTML5来了:推荐5个好用的混合式App开发工具
在残酷的移动互联网竞争环境下, HTML5技术一直受到各方关注,“HTML5颠覆原生 App”的争论也从未停止过,不管怎样HTML5生态的构建方兴未艾。