侯老师的话(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 ...
随机推荐
- Spring 3.x企业实用开发实战(1)
有关Spring的介绍这里就不赘述了,主要是学习了陈雄华版的<Spring 3.x企业应用开发实战>并做了一点笔记,以助于后期的回顾和复习. 废话不多说,直接进入主题,以下所有代码基于&l ...
- [转] Mysql 数据库引擎
你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNO ...
- 确定比赛名次(map+邻接表 邻接表 拓扑结构 队列+邻接表)
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- 响应式内容滑动插件bxSlider
bxSlider特性 1.充分响应各种设备,适应各种屏幕: 2.支持多种滑动模式,水平.垂直以及淡入淡出效果: 3.支持图片.视频以及任意html内容: 4.支持触摸滑动: 5.支持Firefox,C ...
- 02151216--Ajax
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- IE下的bug
断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1 ...
- C语言版推箱子
推箱子源代码初步: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define boolean i ...
- QF——OC中的KVC,KVO
KVC: (Key Value Coding) 键值编码 所谓KVC,其实就是不通过set和get方法访问对象属性,而是通过属性名字符串动态的去读取属性.KVC其实也是OC反射机制的一种运用. 之所以 ...
- js返回值
看下js变量.作用域.内存文档. 1. <script type="text/javascript"> function c(){ return 23; } var a ...
- lua学习笔记1
lua中调用c的函数 #include <stdio.h> #include <string.h> #ifdef __cplusplus extern "C" ...