侯老师的话(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 ...
随机推荐
- Dreamweaver PHP代码护眼配色方案
结果展示 [1]主菜单选择编辑->首选项.在分类中选择"字体".设置代码视图的字体为Courier New [2]在分类中选择 "代码颜色",点击 &qu ...
- 一个tabBarController管理多个Storyboard
随着项目的业务逻辑越来越复杂,随着项目越来越大,那么我们Storybard中得控制器就越来越多, 就越来越难以维护.然而使用Storyborad又能更方便的帮助我们做屏幕适配(PS:尤其在6.6+出来 ...
- HDU 3698 DP+线段树
给出N*M矩阵.每一个点建立灯塔有花费.每一个点的灯塔有连接范围,求每一行都建立一个灯塔的最小花费,要求每相邻两行的灯塔能够互相连接.满足 |j-k|≤f(i,j)+f(i+1,k) DP思路,dp[ ...
- 《think in python》学习-1
高能提示:本文大量编程术语与释义,一些释义如有偏差恕不讨论. 纠结学Python 很久了,一年的纠结过程中慢慢的积累了一点对python的认知,但实际语法都未曾接触过,研究backbone的一个例子的 ...
- Java开发常用下载的网址
cygwin国内镜像:http://mirrors.sohu.com/cygwin/ 旧版本的ant下载:http://archive.apache.org/dist/ant/ 旧版本的nutch下载 ...
- EXCEL破冰之旅
1 背景 EXCEL用于日常数据分析的工具中,最便利并且最强大的莫属透视表了.因为透视表对原始数据有一定的要求,所以本次的破冰之旅也将把焦点放在如何整理基础数据这个方面. 1.1 初识透视表 ...
- Csharp递归和循环实现折半查找
static bool whilehalf(int n) { ; //低位 ; //高位 ; while(low <= hight) { if(n> arr[c]) { low = c + ...
- 简单的BFS学习笔记
什么是BFS传送门. 今天学习BFS,加油! 先定义个数组: struct Node{ int a=0; int b=0; int step=0; }; int map[5][4]={//地图 0,0 ...
- Android 更好的Activity生命周期回调
/** * This class allows you to listen to when the user is entering the background (i.e. after a home ...
- phpStrom添加插件:php文档生成(phpDocumentor)
1. 依次打开:Files => Settings => External Tools => +(add) 2. 填写信息:name:phpDoc; group:PHP插件; des ...