`
wodamazi
  • 浏览: 1416619 次
文章分类
社区版块
存档分类
最新评论

一个月掌握VC++2010

 
阅读更多

我个人对C++毫无概念,但在实际做项目的时候,仅仅用了一个月的时间,在完成当月工作的同时,就能够没有障碍进行相当复杂的应用开发。这个过程耗时之短或许不可思议,但采纳同样的方法,相信所有程序员都能够做到。这种方法说白了,就是边学边干。对,就是很多培训机构强调的,在实际项目中学习。不过,略有不同的,是我更加强调以下几点:
    1、绝不做成学习项目:即使是最简单的功能,要做成实际产品级别,这意味着几乎成倍的时间投入。
    2、每个阶段只面对最少的知识点:只学习需要的东西。
    3、项目不断延伸的时候,掌握知识的范围开始扩大,但此时已经具备一定的基础,学习难度已经降低。

    我用来学习的功能是:导入股票日线数据。 这涉及到界面开发、文件操作、本地数据库操作、进度显示、多线程等专题知识。

    学生项目,通常是这样的:
         1、用户选择一个文件
         2、系统将文件里的日线识别出来
         3、系统将这些日线写入到数据库
    界面是这样的:一个选择文件按钮,一个导入按钮,一个显示文件名称的文本框。   
 

    而作为实际产品级的开发,你显然需要考虑更多,包括:
       1、应用程序的窗体大小变化的时候,你的界面是不是会显得很奇怪?
       2、用户选择的文件,不是日线文件的时候,系统该怎样反应?
       3、导入的速度较慢,是不是应该用进度条?
       4、使用进度条的时候界面往往冻结,需要开新的线程进度条才会流畅显示,这涉及到多线程编程
       5、如何提高导入的速度?
       6、导入日线的过程是一个每天都要做的事情,如果用户的数学紊乱了怎么办?这需要删除全部日线的功能
       7、用户仅仅记不清最近两三天是否每天都导入了数据,怎么办?
       8、用户需要进去后就看到目前系统中的最新日线是那一天的
       9、用户希望知道导入过程真正耗时多少。
 
考虑到这些更多的因素,界面设计显然有较大的不同。同时,因为这样产品级的开发要求,在学习的过程中会覆盖更多的知识范围,与此同时,经过仅仅一个项目的淬炼,今后任何项目,程序员都会知道该怎样思考、该考虑哪些问题、遇到没有接触过的知识该怎样学习。换句话说,一个月的时间完成这项功能的同时,这位程序员就不再需要老师,并且能够胜任所有的VC项目开发。

关注点切换的过程是这样的:
1、最初,我考虑界面的菜单结构:显然,VS2010带来了最新的Ribbon风格,我需要知道怎样创建项目支持相应功能
2、怎样响应Ribbon按钮的命令?理解消息机制
3、怎样创建自己的窗口:对话框设计器、为对话框创建类、对话框类的实例化、在事件代码中打开这个对话框
4、怎样在视图区域打开对话框,以造成一个整体的印象?简单理解文档视图结构,获取视图的大小、使用子对话框
5、怎样为对话框加入控件?对话框数据交换机制、添加控件变量
6、应用程序窗口变化的时候,如何保持对话框布局?多数对话框保持大小,居中显示,少数使用EasySize处理布局。
7、识别日线文件:C++类的创建、相应语法知识,比如代码页、多语言、几种字符串、完全的unicode应用等。
8、写入Sqlite数据库:如何使用第三方Dll
9、如何显示进度:开启新的线程、中止线程、线程安全性问题。
10、提高导入的性能:数据库事务问题、内存使用问题、索引问题。
11、显示导入所消耗的时间
12、删除全部日线:使用第三方的Sqlite组件
13、删除最近5天的数据:Sql命令的技巧,界面如何响应?
14、删除全部日线
15、检查日线文件格式是否合法

     看,前后经历这么十五个步骤,很明显,过程中任何一个时刻,我只关注解决当前面临的问题。
     以前台湾的侯捷,写过一本MFC机制解析的书,厚厚的一本。这本书很多人评价不错,但我没想过看这样的书。为什么?工作过程中,我不需要知道原理,这并不代表知其然不知其所以然。我们学会使用,与完全弄清其工作机制,所需要的时间差距至少在二十倍以上。简单的说:你买来电视是为了看的,不是为了拆的,学会看电视大约只需要几分钟,学会组装电视甚至维修电路板,这需要的时间不会少于一年。MFC是微软的产品,作为程序员我们是用户,我们将其看成一个黑箱,知道怎么用、知道使用方面的原理就行了。
     因此在我看来,类似侯捷这种公认的高手,其实要么是真正的笨蛋,要么就是吃饱了撑的,无论怎样他都不是一个合格的程序员。为什么?任何一种职业,追求的都是效率,即用最短的时间做能力范围内最多的事情。你甚至分不清所需要的知识的逻辑层次,又怎能奢谈高手?一个人有限的生命,应该用在真正有意义的事情上。

    这项功能用了一个月的时间完成。我记得后来,开始做第二项功能,也就是显示一只股票的K线图,这就涉及到了C++模版、Gdi+和DirectX的选择、双缓冲问题、热键问题等,但在具备了上个月的基础之后,这些委实都算不上多大的难题,一一很轻松的解决。第二项功能,事实上也是在你开发延伸的过程中,知识延伸的过程。掌握最少的基础知识加上最快的学习能力,这应该是每一个程序员追求的。

   当然,这种学习方法,并不是只能用在VC上面,比如公司开始使用Asp.net Mvc 3进行开发的时候,我用Asp.net Mvc 3,用不到两周的时间重写了上面提到的日线导入功能,当然,这也意味着后面项目中,完全能够做到无障碍开发了。

<script type="text/javascript"></script>

1
2
分享到:
评论
1 楼 yw123456 2011-12-01  
你应该有丰富开发经验吧。

相关推荐

    vc++ 应用源码包_3

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++综合性实验报告

    1.模拟MFC基本应用程序的建立过程。 2.理解Windows编程特点,比较命令控制台项目与Windows编程的异同。...6.掌握使用项目工作区窗口的ClassView页面的为一个类添加成员的方法。 7.掌握用ClassWizard映射消息的方法。

    vc++ 应用源码包_1

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    《VC++ 2010入门经典》英文原版(附完整随书源码)

     分享c++程序的错误查找技术,并介绍通用的调试原则讨论每一个windows应用程序的结构和基本元素  举例说明如何使用mfc开发本地windows应用程序  指导读者用c++和c++/cli设计和创建大量的windows应用程序  为...

    vc++ 应用源码包_5

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_6

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_2

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 开发实例源码包

    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 FreeBird2011Dlg.h 主对话框类头文件 MultiGroup.h 多播组类头文件 UserLink.h 用户链表类头文件 ListenSocket.h 侦听接口...

    测绘程序设计基础 实验1 CSU(方位角计算、三维地心坐标至大地坐标转换)

    • 掌握VC++.net语言的基本语法; • 理解顺序结构、选择结构和循环结构程序设计的特点及应用; • 掌握对基于对话框的MFC应用程序设计方法; • 掌握方位角计算算法、坐标转换算法设计与实现。 ## 二、实验内容与...

    树形结构控件使用的演示( VC++ 源代码)

    树形结构控件是一个稍稍复杂的控件,对于初学者来讲比较难以掌握,本源码很好地展示了树形控件的使用

    通达信选股插件源码及DLL

    本示例采用VC++编译生成MyPlugin.dll,将其拷贝到通达信安装目录下的Plugin文件夹下,然后在通达信软件中选择“功能”菜单下的“选股器”-&gt;“插件选股”进行选股操作。选出的股票将同时记录在D:\选股.txt文件中,通过...

    掌握VS2010调试--入门指南(完整译版)

    对于初学者是十分有帮助的

    设计一个电子通讯录程序-课程设计.docx

    课程设计 - 1 - - - 长 沙 学 院 课程设计说明书 题目 设计一个电子通讯录程序 系(部) 计算机科学与技术系 专业(班级) 姓名 学号 指导教师 起止日期 2010年1月4日到2010年1月8日 设计一个电子通讯录程序-课程设计...

    VISUAL C++ 2010入门经典_第5版(中文版)

    本书系编程语言先驱者Ivor Horton的经典之作,是C++编程方面最畅销的图书品种之一,不仅涵盖了Visual C++ 2010编程知识,还全面介绍了标准C++语言和C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者...

    VISUAL C++ 2010入门经典_第5版(中文版).part2

    本书系编程语言先驱者Ivor Horton的经典之作,是C++编程方面最畅销的图书品种之一,不仅涵盖了Visual C++ 2010编程知识,还全面介绍了标准C++语言和C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者...

    VISUAL C++ 2010入门经典_第5版(中文版).part3

    本书系编程语言先驱者Ivor Horton的经典之作,是C++编程方面最畅销的图书品种之一,不仅涵盖了Visual C++ 2010编程知识,还全面介绍了标准C++语言和C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者...

    Beginning Visual C++ 2010

    本书系编程语言先驱者Ivor Horton的经典之作,是C++编程方面最畅销的图书品种之一,不仅涵盖了Visual C++ 2010编程知识,还全面介绍了标准C++语言和C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,从中读者...

    利用WinpCap开源库函数实现ARP报文发送和解析(界面用MFC实现)

    在VC++ Directiories中 Include Directories和Library Directories中添加路径。 假如将wpdpack放到c盘。则: Include Directories:c:/wpdpack/Include; Library Directories:c:/wpdpack/Lib; 注意分号! ②设置...

    VC程序设计课程标准.doc

    《VC++程序设计》课程标准 课程编码:B060504 课程类别:必修课 适用专业:计算机控制技术 授课单位:计算机与信息工程系 学时:102 编写执笔人及编写日期:牟学鹏 2010.8.12 学分:6 审定负责人及审定日期:董国增 ...

    皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程

    没有下载到试验版的SkinBuilder,我联系的skn++的客服人员,只提供了一个视频教程和一个文档Skin++BuilderHelp.chm 视频教程链接地址:http://www.uipower.com/bbs/forum-56-1.html 皮肤设计工具(SkinBuilder)使用...

Global site tag (gtag.js) - Google Analytics