摘自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)的更多相关文章

  1. OpenCASCADE Application Framework Data Framework Services

    OpenCASCADE Application Framework Data Framework Services eryar@163.com 一.概述Overview OpenCASCADE的数据框 ...

  2. OpenCascade Application Framework Introduction

    OpenCascade Application Framework Introduction eryar@163.com 本教程介绍了Open CASCADE程序框架(Application Fram ...

  3. 添加一个Application Framework Service

    如何添加一个Application Framework Service(without native code)? 1.本文参照AlarmManagerService实现一个简单的Applicatio ...

  4. C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍

    C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 在现今软件系统纷纷"云化"的浪潮下,各种支持" ...

  5. shiny: Web Application Framework for R

    shiny: Web Application Framework for R 基于R语言的一个web框架,适用于数据分析与图表绘画展示类型的网站.

  6. 【笔记】《深入浅出MFC》第5章 总观Application Framework

    凝聚性强.组织化强的类库就是Application Framework.一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework ...

  7. Android Framework中的Application Framework层介绍

    Android的四层架构相比大家都很清楚,老生常谈的说一下分别为:Linux2.6内核层,核心库层,应用框架层,应用层.我今天重点介绍一下应用框架层Framework,其实也是我自己的学习心得. Fr ...

  8. Web Application Framework

    ASP.NET Boilerplate https://github.com/aspnetboilerplate ASP.NET Boilerplate - Web Application Frame ...

  9. 每天翻译一点点: WPF Application Framework (WAF)

    ps:http://waf.codeplex.com/wikipage?title=Model-View-ViewModel%20Pattern&referringTitle=Document ...

随机推荐

  1. Dreamweaver PHP代码护眼配色方案

    结果展示 [1]主菜单选择编辑->首选项.在分类中选择"字体".设置代码视图的字体为Courier New [2]在分类中选择 "代码颜色",点击 &qu ...

  2. 一个tabBarController管理多个Storyboard

    随着项目的业务逻辑越来越复杂,随着项目越来越大,那么我们Storybard中得控制器就越来越多, 就越来越难以维护.然而使用Storyborad又能更方便的帮助我们做屏幕适配(PS:尤其在6.6+出来 ...

  3. HDU 3698 DP+线段树

    给出N*M矩阵.每一个点建立灯塔有花费.每一个点的灯塔有连接范围,求每一行都建立一个灯塔的最小花费,要求每相邻两行的灯塔能够互相连接.满足 |j-k|≤f(i,j)+f(i+1,k) DP思路,dp[ ...

  4. 《think in python》学习-1

    高能提示:本文大量编程术语与释义,一些释义如有偏差恕不讨论. 纠结学Python 很久了,一年的纠结过程中慢慢的积累了一点对python的认知,但实际语法都未曾接触过,研究backbone的一个例子的 ...

  5. Java开发常用下载的网址

    cygwin国内镜像:http://mirrors.sohu.com/cygwin/ 旧版本的ant下载:http://archive.apache.org/dist/ant/ 旧版本的nutch下载 ...

  6. EXCEL破冰之旅

    1     背景 EXCEL用于日常数据分析的工具中,最便利并且最强大的莫属透视表了.因为透视表对原始数据有一定的要求,所以本次的破冰之旅也将把焦点放在如何整理基础数据这个方面. 1.1  初识透视表 ...

  7. Csharp递归和循环实现折半查找

    static bool whilehalf(int n) { ; //低位 ; //高位 ; while(low <= hight) { if(n> arr[c]) { low = c + ...

  8. 简单的BFS学习笔记

    什么是BFS传送门. 今天学习BFS,加油! 先定义个数组: struct Node{ int a=0; int b=0; int step=0; }; int map[5][4]={//地图 0,0 ...

  9. Android 更好的Activity生命周期回调

    /** * This class allows you to listen to when the user is entering the background (i.e. after a home ...

  10. phpStrom添加插件:php文档生成(phpDocumentor)

    1. 依次打开:Files => Settings => External Tools => +(add) 2. 填写信息:name:phpDoc; group:PHP插件; des ...