最新帖子 精华区 社区服务 会员列表 统计排行
主题 : 编程高手箴言(梁肇新)介绍及pdf下载
admin 离线
级别: 管理员
UID: 1
精华: 1
发帖: 999
金币: 526 个
银元: 488 个
铜钱: 7878 个
技术分: 601 个
在线时间: 742(时)
注册时间: 2010-04-21
最后登录: 2018-10-15
楼主  发表于: 2010-10-29   

编程高手箴言(梁肇新)介绍及pdf下载

管理提醒: 本帖被 admin 执行加亮操作(2010-11-09)

本书是作者十余年编程生涯中的技术和经验的总结。内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及优秀和精彩的编程经验。
   本书将为广大程序员打下牢固的知识基础,适用于立志成为编程高手的广大程序员,是一本不可多得的国内编程高手的鼎力之作。

作者简介   · · · · · · 

  梁肇新,1970年生于广西省玉林市,1989年就读广西大学;1993年大学
毕业后进入珠海巨人公司从事软件开发工作,深入研究了Windows内核,开发出汉字平台系统;1995年7月离开巨人公司,独立创业;1997年独立开
发出使其一举成名的《超级解霸3.0》,独创“Direct-CDROM”技术,因解决了电脑上播放VCD的读死问题而蜚声海内外;1999年创立北京世
纪豪杰计算机技术公司,担任董事长首席程序员,在视音频编解码、网络传输、图像处理、操作系统等四大领域拥有多项专利。

目录
 · · · · · ·

第1章 程序点滴

 1.1 程序≠软件

  1.1.1 商业软件门槛的形成

  1.1.2 认清自己的发展

 1.2 高手是怎样练成的

  1.2.1 高手成长的六个阶段

  1.2.2 初级程序员和高级程序员的区别

  1.2.3 程序员是吃青春饭的吗

 1.3 正确的入门方法

  1.3.1 规范的格式是入门的基础

  1.3.2 调试的重要性

 1.4 开放性思维

  1.4.1 动态库的重要性

  1.4.2 程序设计流程

  1.4.3 保证程序可预测性

第2章 认识CPU

 2.1 8位微处理器回顾

 2.2 16位微处理器

  2.2.1 组成结构

  2.2.2 8086寄存器组成

  2.2.3 内存的寻址

  2.2.4 中断处理

 2.3 32位微处理器

  2.3.1 寄存器组成

  2.3.2 保护模式

  2.3.3 80386的寻址方式

 2.4 【实例】:在DOS实模式下读取4GB内存代码分析

  2.4.1 程序的意义

  2.4.2 程序代码

  2.4.3 程序原理

  2.4.4 程序中的一些解释

第3章 Windows运行机理

 3.1 内核分析

  3.1.1 运行机理

  3.1.2 LE文件的格式

  3.1.3 VxD的设计实现

  3.1.4 【实例】:CPU降温程序代码分析

 3.2 消息的运行方式

  3.2.1 认识消息

  3.2.2 Windows系统中消息的运作方式

  3.2.3 消息处理过程实例

 3.3 GDI的结构和组成

  3.3.1 GDI的组成

  3.3.2 GDI和DirectDraw的关系

 3.4 线程的机制

  3.4.1 线程的工作方式

  3.4.2 线程与GDI的冲突:死机的主要原因

  3.4.3 线程的内存泄漏的主要原因

  3.4.4 进程管理

  3.4.5 同步机制

 3.5 PE结构分析

  3.5.1 PE头标

  3.5.2 表节

  3.5.3 PE文件引入

  3.5.4 PE文件引出

  3.5.5 PE文件资源

第4章 编程语言的运行机理

……

第5章 代码的规范和风格

第6章 分析方法

第7章 调试方法

第8章 内核优化

书评:
。。。。上个星期读了超级解霸的作者梁肇新的这本书。这本书行文亲切自然,国人写的书显然比国外的图书的中文版更具有“亲和性”。当然了,也许也会有很多人对文中 的一些观点有不同的意见,但是不同的人一定会得到不同的启发,绝对值得一读。带着自己的思考和结合自身编程的实践经验去阅读这本书也许可以得到更多的收 获。这里谈谈我从中得到的一点启发。
  
  曾经参与一个项目开发经过多次失败,最后才发现对于实际应用软件项目,最适合的方法就是类似“实现核心-->增强功能-->测试”这样一个过程。强烈赞同书中的观点:
  
  “我们不可能一开始就把所有的细节都考虑清楚,通常,开始只需要一个基本的框架,也就是核心的核心。如果这个核心都实现不了,即使再进行下 去,整个项目也都是多余的,只是浪费时间而已。所以,一开始就要解决最核心的问题。当最核心的问题解决之后,就可以进行第二阶段。我们把软件开发分为设计 规划阶段,功能设计阶段,测试阶段。所有的产品都可以划分为这三个阶段。事实上,如果最核心部分实现了,那么依赖于此核心,再实现增强一点功能就是第二阶 段。第二阶段完成后,就可以进行第三阶段。”
  
  还有例如书中谈到的关于界面和接口的“箴言”:
  
  “界面是界面部分,接口是独立的一块。接口部分就是程序的实现内核,通常先用Console方法直接地实现程序,这样更便于分离界面和内核。 如果开始就用Windows的界面去实现内核部分,这样就可能会把界面和内核混在一起,无法分开。所以,一开始做程序时,就不要考虑界面是什么样子。”
  
  “接口的目的就是把外部条件和内部条件分离开来。外部条件由别的程序提供,别人可以用。做接口最好的方法,就是直接用Console程序先实 现程序的主体,然后从中提炼出接口来。这样做提炼会简单明了。如果用可视界面先实现了程序的功能后再去提炼,就会比较困难,因为这样就会把界面和功能实现 混在一起,很难区分。”
  
  看完后深有体会,我在做一些应用软件项目时总是把界面和功能实现混在一起,的确会造成维护,修改,甚至是阅读的很大困难,程序结构也会不够简单明了。
  
  我总是太过局限于“软件工程的思维框架”中,常常在抽象化的时候,总是想要把所有的事情都想全了,常常做一个巨大无比的对象,这本书对此也提出一些让人有所反思的观点,例如:
  
  “做对象化时还有一条准则,既对不同的应用去设计程序,而不是针对一种所谓的虚拟模型去设计一个对象。所谓的抽象化,就是想着将来有可能会用的某个功能。这样设计出的软件又庞大又耗时,运行也很慢。这就是杀鸡取卵(教科书会教你这种方法)。”
  
  “杀鸡取卵就是指设计的软件提供了很多的功能,其实用到的功能只是那么一丁点。可能做了一个巨大无比的对象,但是只用到对象的很小的一些功能 而已。因为做抽象化的时候,要把所有的事情都想全了,但是这是不现实的,实际上也是没有必要的,且是浪费的。如果凡是思考问题都是为了将来的大而全,这样 出错的可能性也会成倍的提高。一般来说,代码越大,出错的地方也就越大,如果代码越小,出错的地方也就越小。将功能模块做成API函数与做出对象就不一 样,做成一个对象时,该模块出错的机会就多一些,因为对象还有一个动态的过程,但做成一个函数时,调用函数就可以了,模块出错的机会就会比较小。所以,程 序越简单,越不容易出错。”
  
  书中的“程序主干和分支”的概念,也令人很有启发:
  
  “核心就是整个系统中最重要,最基础,最简单的部分。首先要把程序的核心提炼出来,在给它添加附加的部分,它就能成为一个完整的软件。主干是最核心的核心,其后在添加的其他的部分就是枝叶了。”
  
  “编程就是要保证核心的核心不出错,那剩下的枝叶都是一层一层地构建出来的。”
  
  读《编程高手箴言》,也是自己编程思想,习惯等等的一个“自审”的过程。你一定可以找到适合自己需要的“箴言”,用它去提高自己吧。

本书下载地址:http://ishare.iask.sina.com.cn/f/11173991.html

maxwell 离线
级别: 菜鸟
UID: 454
精华: 0
发帖: 5
金币: 0 个
银元: 5 个
铜钱: 6 个
技术分: 0 个
在线时间: 2(时)
注册时间: 2010-11-22
最后登录: 2010-11-29
沙发  发表于: 2010-11-22   
下了看看,借鉴一下前辈的经验!
wubaobao 离线
级别: 菜鸟
UID: 1007
精华: 0
发帖: 93
金币: 0 个
银元: 10 个
铜钱: 425 个
技术分: 0 个
在线时间: 1(时)
注册时间: 2011-01-10
最后登录: 2011-01-10
板凳  发表于: 2011-01-10   
thanks
hash 离线
级别: 菜鸟
UID: 1073
精华: 0
发帖: 6
金币: 0 个
银元: 10 个
铜钱: 40 个
技术分: 0 个
在线时间: 0(时)
注册时间: 2011-01-11
最后登录: 2011-03-21
地板  发表于: 2011-03-20   
必须支持            
描述
快速回复

如果您在写长篇帖子又不马上发表,建议存为草稿
认证码:

验证问题:
printf("%d", 43)
按"Ctrl+Enter"直接提交