小弟斗胆发个贴:我准备写一本关于Delphi的书籍先把目录贴出来,准备接受大家的板砖

liguang 2004-07-08 01:42:32
ps:想写此书的初衷是对自己多年来工作的一个阶段性总结

书籍暂定名:


设想:
我希望写一本这样的书:首先,它能够收集在使用Delphi进行程序设计时可能会碰到的一些 “陷阱”问题,并提供相应的方法帮助开发人员绕开这样的“陷阱”,使Delphi开发人员能够将更多的精力集中在对项目核心问题的研究上,而不是花很多的时间来解决这些已经被列入“黑名单的问题”。其次,此书中描述的问题均属于较高级的Tips,理解这些问题的前提是要求开发人员要对Delphi平台有较深层次的了解。因此我会在书中每一个章节的起初部分,写一篇关于Delphi内对此部分所描述的内容是如何实现的专题,这样不仅使读者能够更好的理解我所列出的问题,同时又能够对Delphi本身有更深一层次的理解。
目前就我个人感觉,国内许多的Delphi开发人员过分依重于Delphi所提供的RAD功能,而对系统(Delphi&Windows)本身缺少了解,以至于无法写出高可靠性和高维护性的,也就使软件质量无法的得到基本的保证,同时也给自己水平的提高造成了一定的瓶颈(只会使用控件编程和对问题只知其然,不知其所以然的状态使它们很难将观察程序系统的眼光提高一个档次,也比较难使他们的水平有质的提高)。而环顾国内的Delphi书籍市场,这类介绍Delphi系统的书籍实在是太少,我所知道的只有一本就是电力社出版2001年出版的《Delphi技术手册》,这本书虽然我个人认为是十分的好,但是终究没有逃脱在china-pub.com上面被当作特价书出售的命运。究其原因,我感觉应该是这本书写的太过专业,而且不是基于某种实践描述问题。这种书籍对于对Delphi系统本身有一定了解的人自然是很好的参考书籍,但是对绝大多数Delphi程序员来说显的有些死板,阅读起来难度比较大。于是这也就引出了我撰写此书的另外一个初衷,我希望能以一种交流式的方式将一些基础,但是比较高级的Delphi原理级知识介绍给阅读本书的程序员,并结合实例,使它们知道不仅了原理,而且有机会在实践中应用这些原理。

目录:

一.编译器和编辑器
请注意代码最终是否被链接器链入可执行文件(注1)
请尽量使用build all方式编译程序
清楚了解Delphi编译器选项
不要忽视Delphi编译器给你的权力(注2)
Delphi7编译器的回车换行符问题(注3)
尽量不要在Tools/Environment Options/Library选项中包含自己的程序文件路径
请注意Delphi7的VCL源代码当中的预编译标志

二.语言基础元素
了解Integer类型和Cardinal类型的区别
使用for循环时需要注意的问题
使用Class类型
使用方法数组
使用untype参数

三.单元文件
请务必在项目当中包含SysUtils.pas单元
请注意单元的包含顺序
请注意单元的初始化和结束化问题
请不要在单元当中覆盖公有单元内的元素名称

四.对象的构造与析构
专题:Delphi的面向对象程序设计模型
专题:Delphi对象的构造与析构
请在编写构造函数时调用基类的构造函数
请注意在构造函数中抛出的异常
请注意构造函数和析构函数的调用顺序
请将基类的构造函数设置为virtual
在适当的时候NewInstance方法创建对象
请不要在析构函数当中抛出异常
请不要创建名称非Create的构造函数

五.内存分配
专题:Delphi内存分配原理
请使用New/Dispose函数为记录指针分配内存
请尽量避免直接使用GetMem和FreeMem函数分配释放内存
请在编写动态链接库的时候将IsMultiThread变量的值设为True
如果不是必须请不要重新定义内存管理器,尤其是在维护代码的时候

六.Windows编程
专题:使用Delphi撰写动态链接库
专题:Delphi对线程的封装
专题:Delphi对COM的封装(可选)
如果在动态链接库的代码中调用COM组件请手动添加CoInitialize和CoUninitialize函数
请不要在一个程序当中对一个动态链接库执行多次LoadLibrary/FreeLibrary操作
如何使automation方法返回的对象在asp当中被认为是empty object
自定义消息注意事项
不安全的日期类型转换??

七.自动维护生存周期类型
专题1:Delphi中的字符串处理
专题2:Delphi中的接口
String类型与PChar类型的兼容性
Delphi接口的自维护引用计数问题
(其余代定)(注5)

八.异常
专题:Dephi的异常处理
请在编码时有选择的拦截异常
(其它待定)注5

十.编程实践
拥有自己的编程风格
使用XP的实践改良程序设计过程
善用工具发现/解决问题
使用Delphi开发大中型项目

附录:推荐阅读书籍

注1:有一些代码虽然编译器会编译它,但是不会将它链接入可执行文件内。这样可能会引发一些极难被发现的错误。
注2:讲述Delphi编译器所提供的一些优化功能对程序的影响(比如整数计算溢出检查器,边界检查器等)。
注3:讲述由于Delphi7编辑器对回车换行符的区分导致的可能出现的程序编译后错误代码定位不准等问题。
注4:此章将给出样章
注5:由于选择比较多,所以希望在实际写作时决定最终的编目。

Other:书中有一些篇目的虽然是很好的tips但是名字比较通俗,可能会些使用Delphi的老鸟产生厌烦的感觉(比如第四.对象的构造与析构中篇目的名称),关于此问题我一时有点拿不定主题如何解决.
...全文
1029 102 打赏 收藏 转发到动态 举报
写回复
用AI写文章
102 条回复
切换为时间正序
请发表友善的回复…
发表回复
Heyongfeng 2005-04-26
  • 打赏
  • 举报
回复
高,强烈支持
imho888 2005-04-25
  • 打赏
  • 举报
回复
强烈支持
speedman2000 2005-04-25
  • 打赏
  • 举报
回复
mark
beyondtkl 2005-04-25
  • 打赏
  • 举报
回复
ding.
gogoook 2005-04-25
  • 打赏
  • 举报
回复
强烈支持
liliuyulin 2005-04-25
  • 打赏
  • 举报
回复
不错,我想在写得时候,不但要说明了什么,而且要说明了为什么,这样,问题才会更深刻;当我遇到问题时,我总会去请教一些老的程序员,他们会告诉我怎么做,但只要我问及为什么要这样做的问题时,很少有人能回答上来,所以不仅要知之然,而且要知其所以然,我是我想说得话,希望在写书的时候能尽量做到这一点;
ffwin 2005-04-25
  • 打赏
  • 举报
回复
....................................................................MM..............
................................................................MM..................
..............MM..................................MMMM............MM................
..............MM..................................MMMM............MM................
..............MM..................................MM..............MM................
..............MM..................................MM..............MM................
..............MMMMMMMMMM..........................MM............MMMMMMMM............
......MMMMMMMMMM................................MMMMMMMM......MM..MM............MM..
..............MM............................MMMM..MM..............MM........MM..MM..
..............MM..................................MM............MMMMMMMMMMMMMMMM....
..............MMMMMMMM............................MMMMMMMMMMMMMM....MM..............
........MMMMMM....MMMM............................MM................MM..MM..........
..................MMMM..........................MMMM..........MMMMMMMMMMMMMM........
........MMMM......MM..........................MM..MM....MMMMMM......MM..............
............MM..MMMM....................MMMMMM....MM........MM......MM..............
..............MMMM........................MM......MM..........MM....MMMM............
............MMMMMMMM..............................MM..........MM....MMMM............
..........MM......MMMMMM......................MM..MM................MMMM............
....MMMMMM............MMMMMMMM..................MMMM................MM..............
MMMM....................MMMMMMMMMM................MM..............MMMM..............
....................................................................MM..............
....................................................................................
....................................................................................
....................................................................................
....................................................................................
ffwin 2005-04-25
  • 打赏
  • 举报
回复
MM
MM
MM MMMM MM
MM MMMM MM
MM MM MM
MM MM MM
MMMMMMMMMM MM MMMMMMMM
MMMMMMMMMM MMMMMMMM MM MM MM
MM MMMM MM MM MM MM
MM MM MMMMMMMMMMMMMMMM
MMMMMMMM MMMMMMMMMMMMMM MM
MMMMMM MMMM MM MM MM
MMMM MMMM MMMMMMMMMMMMMM
MMMM MM MM MM MMMMMM MM
MM MMMM MMMMMM MM MM MM
MMMM MM MM MM MMMM
MMMMMMMM MM MM MMMM
MM MMMMMM MM MM MMMM
MMMMMM MMMMMMMM MMMM MM
MMMM MMMMMMMMMM MM MMMM
MM




yeeyee 2005-04-25
  • 打赏
  • 举报
回复
我在这里做了个记号,

要享受优惠的哦。
huanying200X 2005-04-25
  • 打赏
  • 举报
回复
支持!
wandanle 2005-04-25
  • 打赏
  • 举报
回复
这么牛的人都有,让我怎么活啊。
何鲁青 2005-04-25
  • 打赏
  • 举报
回复
期待你的书上市,,,,,希望能够看到...
impress_bigc 2005-04-25
  • 打赏
  • 举报
回复
支持!
zhoujie99 2005-04-25
  • 打赏
  • 举报
回复
厉害!向你致敬,出版后,给个网址下载电子版哦
tsst 2004-07-10
  • 打赏
  • 举报
回复
期待着一本好书的出现!
TechnoFantasy 2004-07-10
  • 打赏
  • 举报
回复
比较杂乱,没有重点和卖点。编辑部一定感兴趣的。不过现在国内使用Delphi的人比较多,但是好地Delphi书比较少。写一本有质量和卖点的书销路会是很不错的。
fmdcsdn 2004-07-09
  • 打赏
  • 举报
回复
内容不要太杂,把你的经验写出来与大家分享,就是成功!
我们需要更多的人分享自己的成功经验。
支持!!
dbExpress 2004-07-09
  • 打赏
  • 举报
回复
看了一下目录,知道楼主有一定的开发经验,
不过个人除了觉得书的内容相对比较单薄以外,
觉得楼主的好多观点有待商榷,

真诚(决不是打击)建议楼主深入学习再写书
学习学习,再学习
hj007 2004-07-09
  • 打赏
  • 举报
回复
看目录确实不错,正在初学都想要的,现在还没有这么一本书.尽快呀.
hongke212 2004-07-09
  • 打赏
  • 举报
回复
能做个电子书吗??
我想要电子版的
希望作者能尽快出版这本书!!!!
加载更多回复(82)
期待着您的参与DELPHI社群中开源项目少之又少,我们可不可以自己组织?我们可不可以一起探讨?小弟不才,斗胆下几行代码,来这里期待抛引玉。我们身边,每天都有无数的项目开工,然后是老对进度的紧追不舍,项目经理程序员加班的无奈,再然后或许是成功的喜悦或许是失败的哀愁,但不管结果如何,所有人心中此时最想要的,可能是好好的睡上一觉。这无数的项目,他们有没有共同点?我们是不是一直在做重复明轮子的蠢事?Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个项目开更加的容易、让一个项目成功更加的容易。这样的工作是激动人心的,可是我也和大家一样,面临着手头上项目的压力,为了能够对得起那份薪水,我只能够在下班的时间里做这些。但一个人精力太有限了,uPattern是一个模式实现单元,没有足够的时间也没有那么多精力去实现所有的模式,于是在这份源代码里,您现您可以使用一个用户组来登录,本来这是不允许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式……一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。――――――――――――――――――――――――――――――――――这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来展壮大这份源代码,请您邮件给我(Camel_163@163.com),或者是在下面留言。
本版本自己实现Raize控件组中TCheckTree,并将所有与Raize控件相关代码更新,现在的版本不使用任何的第三方组件,DELPHI7下直接编译通过。这里要注意的是系统的初始密码,您如果看代码,在uAuthAppFactory单元,有一个CreateUser方法,在这个方法内部,会首查找程序目录有没有用户数据文件,如果没有的话,就会初始化一个拥有所有操作权限的Administrator用户,密码就是administrator,您只要使用Administrator登录就可以了。uAuthAppFactory单元及其它单元的作用可以参见下面文档的说明。  工程文件位于“Instance”目录,User.dat是用户数据文件,所有的用户组、用户都保存在这个文件里(密码也用的明文保存)。“日志”目录保存所有的目录,每一位用户每次的使用都会有日志记录如果想要下载演示,可以上一次的版本,里面有一个很长时间的演示期待着您的参与DELPHI社群中开源项目少之又少,我们可不可以自己组织?我们可不可以一起探讨?小弟不才,斗胆下几行代码,来这里期待抛引玉。我们身边,每天都有无数的项目开工,然后是老对进度的紧追不舍,项目经理程序员加班的无奈,再然后或许是成功的喜悦或许是失败的哀愁,但不管结果如何,所有人心中此时最想要的,可能是好好的睡上一觉。这无数的项目,他们有没有共同点?我们是不是一直在做重复明轮子的蠢事?Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个项目开更加的容易、让一个项目成功更加的容易。这样的工作是激动人心的,可是我也和大家一样,面临着手头上项目的压力,为了能够对得起那份薪水,我只能够在下班的时间里做这些。但一个人精力太有限了,uPattern是一个模式实现单元,没有足够的时间也没有那么多精力去实现所有的模式,于是在这份源代码里,您现您可以使用一个用户组来登录,本来这是不允许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式……一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。――――――――――――――――――――――――――――――――――这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来展壮大这份源代码,请您邮件给我(Camel_163@163.com),或者是在下面留言。――――――――――――――――――――――――――――――――――    uClasses------------------------------在这里定义应用程序中的基础类    uPattern------------------------------几个模式的DELPHI实现或者定义    uAppUtils-----------------------------应用程序工具单元    uAppSet-------------------------------应用程序设置接口声明单元    uAppSetIniFile------------------------应用程序设置IniFile实现单元    uException----------------------------异常统一处理单元    uAppFactory---------------------------应用程序工厂,本工厂生产出来的就是一个一般的应用程序    uAuthAppFactory-----------------------应用程序工厂,本工厂生产出来的就是拥有权限管理、日志及用户管理的程序 ufrmAppBase---------------------------窗口基类 ufrmAppDlgBase------------------------对话框窗口基类    用户、权限与日志管理单元    Role----------------------------------权限与用户管理主要的实现单元    Log-----------------------------------日志管理单元    ufrmRoleManager-----------------------权限管理主用户界面    ufrmLogin-----------------------------用户登录界面    ufrmChangePassword--------------------更改用户密码    ufrmLog-------------------------------日志查看界面 CommandRegister-----------------------模块注册中心
期待着您的参与 DELPHI社群中开源项目少之又少,我们可不可以自己组织?我们可不可以一起探讨?小弟不才,斗胆下几行代码,来这里期待抛引玉。 我们身边,每天都有无数的项目开工,然后是老对进度的紧追不舍,项目经理程序员加班的无奈,再然后或许是成功的喜悦或许是失败的哀愁,但不管结果如何,所有人心中此时最想要的,可能是好好的睡上一觉。 这无数的项目,他们有没有共同点?我们是不是一直在做重复明轮子的蠢事?Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个项目开更加的容易、让一个项目成功更加的容易。 这样的工作是激动人心的,可是我也和大家一样,面临着手头上项目的压力,为了能够对得起那份薪水,我只能够在下班的时间里做这些。但一个人精力太有限了,uPattern是一个模式实现单元,没有足够的时间也没有那么多精力去实现所有的模式,于是在这份源代码里,您现您可以使用一个用户组来登录,本来这是不允许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式…… 一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。 如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。 ―――――――――――――――――――――――――――――――――― 这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来展壮大这份源代码,请您邮件给我(Camel_163@163.com),或者是在下面留言。 ――――――――――――――――――――――――――――――――――     uClasses------------------------------在这里定义应用程序中的基础类     uPattern------------------------------几个模式的DELPHI实现或者定义     uAppUtils-----------------------------应用程序工具单元     uAppSet-------------------------------应用程序设置接口声明单元     uAppSetIniFile------------------------应用程序设置IniFile实现单元     uException----------------------------异常统一处理单元     uAppFactory---------------------------应用程序工厂,本工厂生产出来的就是一个一般的应用程序     uAuthAppFactory-----------------------应用程序工厂,本工厂生产出来的就是拥有权限管理、日志及用户管理的程序     ufrmAppBase---------------------------窗口基类     ufrmAppDlgBase------------------------对话框窗口基类    用户、权限与日志管理单元     Role----------------------------------权限与用户管理主要的实现单元     Log-----------------------------------日志管理单元     ufrmRoleManager-----------------------权限管理主用户界面     ufrmLogin-----------------------------用户登录界面     ufrmChangePassword--------------------更改用户密码     ufrmLog-------------------------------日志查看界面     CommandRegister-----------------------模块注册中心

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧