侯老师的话(Application Framework)
摘自http://blog.csdn.net/zlc19876/article/details/5355022
本篇文章主要介绍了"侯老师的话(Application Framework)",主要涉及到侯老师的话(Application Framework)方面的内容,对于侯老师的话(Application Framework)感兴趣的同学可以参考一下。
以下是我理解的名言,谓之与我共鸣。
- 你动不了Application Framework的大结构,也不需要动。这是福利不是约束。
- 把开发软件这种事情从艺术降格到工技,对人类只有好处没有坏处。不是亨利-福特,我们又如何能够享受大众化的汽车?或许以后会出现“纯手工精致”软件,谁感兴趣不得而知,我自己嘛。。。倒是从来不嫌弃机器馒头难吃。
- 因为MFC的各个类只是“对象属性行为”的定义,我们不能够说MFC中有实际的对象存在,唯有当程序被Application object----一个派生自MFC CwinApp的全局对象,引爆了,才将我们选用的类一一实例化起来,产生实例并开始操作。
- C++性质之虚函数和继承对MFC学习的影响:软件一决胜负的关键在数据的处理。事实上,在“真正做事”这一点,整个application framework 所能提供的,无一不是单单一个空壳而已,在C++语言来讲就是个虚函数,软件开发人员必须想办法改造(override) 这些虚函数,才能符合个人所需。基于c++语言的特点,我们很容易继承既有之类并加上自己的特色,这就是面向对象程序程序设计的主要精神。
- 对于“别人怎么看Application framework”侯捷罗列了数篇文章中的相关定义。侯捷说:若将原文译为中文。我恐怕力有未逮辞不达意,所以列出原文供你参考。这句话是我想起有时候看MSDN上的技术文章的感觉,不是我中文水平差,而是觉得有些话似乎只有英文说的地道,说的准确,看了侯捷老师的这句话,让我知道:这种感觉不是我一个人有!
- 关于什么是Application ,侯老师可谓煞费苦心,用了整整一章篇幅予以介绍,不仅如此,还在其它章节陆续介绍,问题的重点最后集中在“为什么使用Application Framework”上面。里面的话可谓精辟,我很佩服,如果不是站在一个制高点,是不会说这种话的,平时只知道用MFC写写小程序的我,可谓受益匪浅。
下面我将摘抄侯捷老师的话。部分省略并部分自己改写。
- “今天应用软件的功能愈来愈复杂,建造它们的工具亦复如此,Application Framework 追求的是软件开发关键利益:降低写程序代码所花的精力、加速开发效率、加强可维护性、增加可靠性、为组合式软件机能提供杠杆支点。
- 当我们面临软件工业革命时,我们第一个考虑点是:我们软件开发技术要从哪一个技术面切入:从SDK编程即raw API还是从高级一点的工具?如果答案是后者,第二个考虑点是使用哪一个Application framework?MFC 或OWL 或Open Class Library?(当前PC上还没有第四套随编译器附赠的Application Framework).
- 别以为这是领导者的事情不是我(工程师)的事情,有这种想法你就永远当不成领导者。也别认为这是工程师的事情不是我(学生)的事情,学生的下一步就是工程师,及早想点工业界的激烈竞争,对你在学生阶段规划人生将有莫大助益。
- 最后的结论就是:使用MFC。直接的原因就是:我们受够了日益暴增的Windows API 。单单一个类就帮我们做掉原先要以一大堆APIs才能完成的事情。
- 但更深入地想,Application Framework 绝不是为了降低我们花在浩瀚无涯的Windows API 的时间而已,它所带来的面向对象程序设计观念与方法,使我们能够在一群优秀工程师(MFC 或 QWL的创造者)的努力心血上,继承其成果开发自己之所需。同时,因为Application Framework 的特殊性,整体开发工具(可能指IDE)更容易制作,也能制作得更完美。在我们决定使用Application Framework 的同时,我们也获得了这些集成软件开发环境的支持。在软件开发过程中,这些开发工具角色的重要性不亚于Application Framework本身。
- Application Framework 将成为软件技术中最重要的一环。如果你不知道它是什么,赶快学习它;如果你还没有使用它,赶快使用。机会之窗不会永远为你打开,在你的竞争者把它关闭之前赶快进入!如果你以为改朝换代还早得很,请注意两件事情。第一,江山什么时候变色可谁也料不准,当你埋首工作时,外面的世界进步尤其飞快;第二,面向对象和Application Framework 可不是那么容易学习的,花多少时间才能登堂入室还得凭个人的资质和基础呢。
- 顺便做下关于PC界出现的主流Application Framework的总结,主流的Application Framework有三套,它们是微软公司的MFC ,Borland 公司的OWL,以及IBM VisualAge C++的Open Class Library ,也就是说可以称得上是Application Framework的不仅仅只有MFC,还有其他公司的,这些公司在这些很标准的Application Framework上开发了集成开发环境,至于其它的c++编译器厂商只是提供集成开发环境,其Application Framework都是采用微软公司的MFC。我们很多人学的也是MFC。
- 理解这些宏(指动态创建、消息映射和路由等机制设计的令人拍案叫绝的宏定义)的意义,以及隐藏在MFC类之中的那些足以暴露原型机密的“麻烦事儿”,正是我认为掌握MFC这套Application Framework的重要手段。
- 理解MFC的重要机制,是为了让我们能够更好的驾驭MFC程序开发,其实弄明白这些机制之后,我们知道隐藏在精致的MFC背后,对象之间的关系已经存在,消息的流动程序也都已设定。当你要为这个程序设计真正的应用功能时,不必在意诸如“我如何得知使用者按左键?左键按下后我如何激活某一函数?参数是如何传递过去。。。”等琐事,只要专注在左键之后真正要做的功能操作就好。这些话的前提是你已经对MFC的重要机制掌握了,还是那句话,如果没掌握,赶紧学ba。
侯老师的话(Application Framework)的更多相关文章
- OpenCASCADE Application Framework Data Framework Services
OpenCASCADE Application Framework Data Framework Services eryar@163.com 一.概述Overview OpenCASCADE的数据框 ...
- OpenCascade Application Framework Introduction
OpenCascade Application Framework Introduction eryar@163.com 本教程介绍了Open CASCADE程序框架(Application Fram ...
- 添加一个Application Framework Service
如何添加一个Application Framework Service(without native code)? 1.本文参照AlarmManagerService实现一个简单的Applicatio ...
- C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍
C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 在现今软件系统纷纷"云化"的浪潮下,各种支持" ...
- shiny: Web Application Framework for R
shiny: Web Application Framework for R 基于R语言的一个web框架,适用于数据分析与图表绘画展示类型的网站.
- 【笔记】《深入浅出MFC》第5章 总观Application Framework
凝聚性强.组织化强的类库就是Application Framework.一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework ...
- Android Framework中的Application Framework层介绍
Android的四层架构相比大家都很清楚,老生常谈的说一下分别为:Linux2.6内核层,核心库层,应用框架层,应用层.我今天重点介绍一下应用框架层Framework,其实也是我自己的学习心得. Fr ...
- Web Application Framework
ASP.NET Boilerplate https://github.com/aspnetboilerplate ASP.NET Boilerplate - Web Application Frame ...
- 每天翻译一点点: WPF Application Framework (WAF)
ps:http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&referringTitle=Document ...
随机推荐
- Keil MDK中使用pc-lint的详细方法
keil MDK版本:V4.03 PC-lint版本: V8.0 关于pc-lint的强大作用,网上有很多,这里不想再复述,只说一句:能通过pc-lint检验的程序不一定没有问题,但通过了pc-li ...
- 迁移到MSYS2 与 Qt 工具链注意的几个事情(注意链接顺序,并且人造mingw工具链所没有的局部midl.exe命令)
Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要 ...
- SP_CreateInsertScript 将表内的数据全部拼接成INSERT字符串输出
),)) as begin set nocount on ) ) ) select @sqlstr='select ''insert '+@tablename select @sqlstr1='' s ...
- 纯CSS3实现自定义涂鸦风格的边框
今天我们要来分享一款基于纯CSS3的自定义边框应用,看上去它像一个Tooltip控件,因为下边框有一个小三角,就像很多地方的引用文本框一样.另外这款CSS3边框是涂鸦风格的,看起来很有个性.用CSS3 ...
- this.parentMenu.dataRecord.data.testID的作用
在JS里,有个this.parentMenu.dataRecord.data.XXID的方法,这个方法一般都是用来加载某个控件到一个面板或控件上的.如: loaddata(this.parentMen ...
- NeatUpload上传控件在asp.net中的使用
1.先导包,Brettle.Web.NeatUpload.dll导进web层中,再添加到vs控件中. 2.把NeatUpload文件夹放到根目录下. 3.直接拉要用到的控件到页面上,在使用 <U ...
- JS 更改表单的提交时间和Input file的样式
JS转换时间 function renderTime(data) { var da = eval('new ' + data.replace('/', '', 'g').replace('/', '' ...
- MAVEN入门(一)
一.Maven的基本概念 Maven是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1.项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→ ...
- QF——iOS通知中心(NotificationCener)
前面我们讲iOS不同界面间传值的时候,说过可以通过通知中心进行传值.那到底什么是通知中心,他是如何实现传值的呢? NSNotificationCenter是单例的,只提供了一个唯一的实例化入口,在整个 ...
- 关于mysql使用dbForge调试的问题:Object 'test.p_insertRoute' does not exist.
mysql中使用dbForge6.1版本调试存储过程,如果存储过程中定义的变量时枚举类型,那么就会报出该存储过程没有报出的错误,这个应该是dbForge6.1版本的bug