做一名真正的程序员_第1页
做一名真正的程序员_第2页
做一名真正的程序员_第3页
做一名真正的程序员_第4页
做一名真正的程序员_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、做一名真正的程序员-你准备好了么2009.7.21主题1.做一名真正的程序员程序员的基本素质程序员的技术体系程序员的职业规划2.程序是怎样”码”成的?设计时编译时运行时3.代码之美代码规范2程序员的基本素质自信 :I Can Play勇于面对挑战谦虚 : I Can Write “Hello World”,But not world master一山更比一山高执着:I love this game ,like yesterday,not tomorrow 像昨天一样喜欢,而不是从明天开始激情I m very exiting, The code is very Beautiful and att

2、ract my eyes代码是如此的美妙,总是让我激情澎湃3程序员的技术体系程序员的基本技能API Document获取有效帮助信息 调试技能定位Bug,并修正(Fixed)独立思考从计算机的角度去思考代码的运行过程Im code, code is me学会利用资源google、book、partner技能掌握的三个阶段:读,改,写4程序员的技术体系 C#技术体系在Windows之前,微软有过一个MSDOS操作系统,对于最近几年走上工作岗位的开发者来说,估计也就是在课本上见到过。而对于年长的开发者来说,其开发生涯就是从MSDOS上开始的(还记得Turbo C么)。虽然MSDOS并不能认为是Wi

3、ndows的前身,但是不可否认的是,在Windows的底层确是或多或少存在着MSDOS的影子。在桌面软件开发的实践中,有过MSDOS使用与开发经验的开发人员比从来没有接触过MSDOS的开发人员在理解问题上与解决问题上都技高一筹。这充分体现了一个完善技术体系对开发者的影响。5程序员的职业规划规划自己的职业道路观察身边的同事制定长远的计划12年熟练掌握一门开发语言34年熟悉行业应用5年以后执行明确的目标别拿自己当”代码工人”企业管理软件过程:企业需求-业务分析-详细设计-程序员实现如果自己总处于程序员实现这个阶段,那我们真的就是”代码工人”了,除了实现,我们还能做些什么6程序是怎样“码”成的1.

4、设计时(源代码)开发工具/环境:IDE开发平台: Win32、.NET 、J2EE开发语言: C/C+、C#、Java开发方向: 嵌入式、游戏、商业软件(产品)、企业定制化开发2.编译时(编译程序)预处理:#using #define #region #if编译程序: csc链接、装配程序:link二进制或中间代码: .exe, msil3.运行时(可执行程序)启动函数程序入口消息循环7程序是怎样“码”成的一个源程序有时可能分成几个模块存放在不同的文件里,将这些源程序汇集在一起的任务,由一个叫做预处理的程序来完成。,有些预处理程序也负责宏展开,像C语言的预处理程序要完成文件合并、宏展开等任务。

5、图中的编译程序生成的目标程序是汇编代码形式,需要经由汇编程序翻译成可再装配的机器代码,再经由装配、连接编辑程序与某些库程序连接成真正能在机器上运行的代码程序的编译过程8程序是怎样“码”成的编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更细有关的表格,因此需要有表格管理的工作。如果编译过程中发现有源程序错误,编译程序应报告发生错误的性质和错误发生的地点,并且将错误造成的影响限制在尽可能小的范围内,使得源程序的其余部分可以继续被编译下去,有些编译程序能自动校正错误,这些工作称之为出错处理。编译原理9程序是怎样“码”成的 C#编译过程在Windows之前,微

6、软有过一个MSDOS操作系统,对于最近几年走上工作岗位的开发者来说,估计也就是在课本上见到过。而对于年长的开发者来说,其开发生涯就是从MSDOS上开始的(还记得Turbo C么)。虽然MSDOS并不能认为是Windows的前身,但是不可否认的是,在Windows的底层确是或多或少存在着MSDOS的影子。在桌面软件开发的实践中,有过MSDOS使用与开发经验的开发人员比从来没有接触过MSDOS的开发人员在理解问题上与解决问题上都技高一筹。这充分体现了一个完善技术体系对开发者的影响。10程序是怎样“码”成的 程序的入口点及启动函数 Windows应用程序必须拥有一个在应用程序启动运行时调用的进入点函

7、数(Main),操作系统实际上并不调用你编写的进入点函数。以C/C+为例子,它调用的是C/C+运行期启动函数。该函数负责对C/C+运行期库进行初始化,这样,就可以调用malloc和free之类的函数。它还能够确保已经声明的任何全局对象和静态C+对象能够在代码执行以前正确地创建。应用程序类型进入点嵌入可执行文件的启动函数需要ANSI字符和字符串的GUI应用程序WinMainWinMainCRTStartup需要Unicode字符和字符串的GUI应用程序wWinMainwWinMainCRTStartup需要ANSI字符和字符串的CUI应用程序mainmainCRTStartup需要Unicode

8、字符和字符串的CUI应用程序wmainwmainCRTStartup、 链接程序负责在它连接可执行文件时选择相应的C/C+运行期启动函数。如果设定了 /Subsystem:windows连接程序开关,那么该链接程序期望找到一个WinMain或wWinmain 函数。如果这两个函数都不存在,连接程序便返回一个未转换的外部符号的错误消息。 否则,它可以分别选择WinMainCRTStartup函数或wWinMainCRTStartup函数。11程序是怎样“码”成的 应用程序的消息循环 在早年直接用Win32/Win16 API写程序的时代,消息循环是我们必须搞懂的第一个观念。现在,不管你用是Win

9、dows上面的哪一套Application Framework(MFC、VCL、VB、.NET Framework),甚至Unix、Linux、MacOSX上面的Application Framework,都不太容易看到消息循环。事实上,消息循环依然存在,只是被这些ApplicationFramework包装起来,深深地埋藏在某个角落。 1、从_tWinMain内,程序进入主消息循环;2、消息循环从消息队列(Message Queue)中取得一个消息(透过调用GetMessage())。每个执行中的程序都有一个属于自己的消息队列;3、消息循环根据消息内容来决定消息应该送给哪个Windows P

10、rocedure(WndProc),. 这就称为消息分发(Message Dispatch)。通常“每一种”窗口或控件(control)都有一个Windows Procedure,来处理该种窗口/控件的行为;4、Windows Procedure根据消息内容来决定应该调用哪个函数(利用Switch/Case语法);. 5、Windows Procedure处理完,控制权回到消息循环。继续进行2、3、4、5的动作;6、当消息队列为空的时候,GetMessage()无法取得任何消息,就会进入Idle(空闲)状态,进入睡眠状态(而不是Busy Waiting)。当消息队列不再为空的时候,程序会自动醒过来,继续进行2、3、4、5的动作;7、当取得的消息是WM_QUIT,GetMessage()就会得到0的返回值,因而离开消息循环,程序结束。程序会利用调用PostQu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论