侯老师的话(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 ...
随机推荐
- C语言malloc和free实现原理
以下是一段简单的C代码,malloc和free到底做了什么? int main() { char* p = (char*)malloc(32); free(p); return 0; } malloc ...
- POJ 3318 - Matrix Multiplication 第一次用随机化解决问题...
随机化还是很厉害的...印象最深的是以前手写快排~~一般加个随机化会使耗时不受输入数据的..时间更加稳定 这个题是人品题了...开始交了好多遍都过不了..多交几次终于过了... Program: #i ...
- SQL Server DBA三十问【转】
http://database.51cto.com/art/201110/298926.htm 很多开发人员都想成为一名DBA,也有很多人一开始就把自己定位成为一名DBA,DBA究竟需要掌握些什么知识 ...
- Web API Login with Cookie
public HttpWebResponse InitiliazeWebRequest() { string responseData =string.Empty;//string url = Get ...
- 为何与0xff进行与运算
为何与0xff进行与运算 在剖析该问题前请看如下代码 public static String bytes2HexString(byte[] b) { String ret = "" ...
- Java 可中断线程
PART.1 无法中断的线程 一个无法中断的线程的例子. public class UninterruptableThread { @SuppressWarnings("deprecatio ...
- Ubuntu Android Studio 无法通过起动器开启
问题: 1.可以通过终端开启 2.通过Android-Studio建立的Application无法启动, 提示 No JDK found. Please validate either STUDIO_ ...
- iOS - SQLite Database 操作数据库
iOS - SQLite Database 操作数据库 Sqlite 能被用在ios上做数据处理用,只要你懂得一点sql 就很容易使用sqlite 1:创建一个简单的View based appl ...
- Row versus Set Processing, Surprise!(集合处理和单行处理数据的差异性)
Row versus Set Processing, Surprise! Craig Shallahamer: 1. Set based processing will likely be much ...
- JS 精粹( 函数)
函数是对象,它与其它对象唯一的不同是它可以调用.函数可实现:代码复用.信息隐藏.代码组合调用. 建立函数时会建立:上下文.调用函数的代码.每个函数(除Function.prototype)都会有一个原 ...