大致看了一下列出来的几个章节: 用户登录方案(初级),用户权限方案(中级),交叉表决策分析方案(中级),实时动态决策分析方案(中级) 可以看得出作者的解将平时的一些代码例子拿了出来,描述的过程也挺不错,如果对于一个刚刚学delphi的人来说一步步做可以实现相关的功能。 首先:但从代码的角度来看与27楼说的一样,代码基本上都是最简单直接的结构式的方法来实现,而没有考虑过代码的重用及优化,所以在这方面如果说其为”技术宝典“有些言过其辞了,呵(我也一样在写程序中只是为了快点完成功能而写代码) 其次:作者在写书的过程中讲的过分细,应该从解决方法中来描述各个的解决方案。 第三:例如:实时动态决策分析方案 这部分似科只是进行了SQL语句方面的分析书写,而对于delphi实现中仅仅利用了Tchar来实现一个图表,好像过于简单了,不知道作者是否做过决策分析方面的系统。 第四:对于数据库方面考虑的不是很好,例如数据完整性等。如:在用户登录方面“删除”按钮的相关代码如下: procedure TFrm_ManageUser.ToolButton3Click(Sender: TObject); begin if Frm_Interface.User_Pop<>0 then //判断是否为普通操作员 begin if Frm_Interface.User_Pop>0 then begin if Frm_Interface.User_Name=DataModule1.ADO_user.FieldByName('User_Name').AsString then 这些部分,根本没有考虑到利用事务来控制数据完整性。 ......就说这么多了要工作了,呵。不过帮着顶一下吧。
--
Anything one man can imagine, other men can make real.
这个不感兴趣
CSDN也需要赚钱嘛
其实出这本书的时候,我们担心关注的人会比较少,但是作者那边真的有很多Delphi的案例积累,都非常不错;加之我最早的时候也是通过学习Delphi学习的开发,还是很有感情的;所以最终,还是很用心地出版了本书。为了让大家更好地了解,介绍一下这本书的案例,一共115个:开发模式技术及相关方案:窗体模式设计方案、界面设计方案、程序模块化设计方案以及面向对象设计方案共16个实用方案。
数据处理操作技术及方案:数据库数据处理方案、应用程序数据处理方案以及文件数据处理方案共11个实用方案。
用户登录权限、密码验证方案:用户登录设计方案、密码验证方案和用户权限设计方案共10个实用方案。
数据查询方案:简单查询方案、中级查询方案、高级查询方案共19个实用方案。
决策分析技术及方案:图表分析方案、交叉表分析方案、透视表分析方案和透视图决策分析方案共14个实用方案。
报表打印设计方案:Delphi 7.0中Printer对象编程打印方案、QReport快速报表打印方案、Rave报表打印方案和目前比较常用的ReportMachine三方报表打印方案共23个实用方案。
安全策略技术及方案:数据库访问安全策略、软件注册方案、密码验证和用户权限设计方案共9个实用方案。
打包发行技术及方案:包括打包设计分析、Wise Install打包设计方案和InstallShield打包设计方案共3个实用方案。
帮助文件制作技术及方案:常用帮助制作工具制作帮助文件方案和帮助文件的调用方案共10个实用方案。
對於類似問題解決方案這種經驗,代碼是次要的,用圖與文字把解決思路說出來就好。看了“本书连载章节”,本書的代碼很差:
1、重用性差,代碼段描述的意義不夠內聚,只是為了實現而寫的代碼,不是為了重用而寫的代碼。
2、可維護性差,SQL語句與代碼混合在一起,SQL語句合成無可厚非,但沒有將合成部分與界面及邏輯分開。造成後來的修改者需要看代碼來理解實現的思路,所謂可維護性是指別人來修改你的代碼,而不是自己修改自己的代碼。雖然加了不少注釋,但那只能緩解這個問題,模塊化不好,沒提煉出專用對象,這些內在的東西沒作好,注釋多也不能脫掉“可維護性差”這頂帽子。
3、可擴展性差,數據的更改將不得不到界面中更改代碼,這是界面與邏輯混合的例子。
4、沒有進一步提煉問題解決模式,從而進入面向對象編程的大門。這是面向過程編程的例子。
5、本書代碼還是有優點的:1、書寫規范,體現Pascal語言之美。2、注釋較適當,仔細看代碼還是不難讀懂的。
6、所說的解決方案還是比較有針對性的,對於沒有進行過該領域的編程人員有參考意義。看了代碼就很垃圾。不看代碼只看解決方案還好。
解決方案有部分重疊之嫌,沒必要分得太細。加上大量代碼與界面圖片,似有謀殺紙張之嫌。我說的只是貼出來的章节,沒貼出來的章節沒看過,不能亂講。
能够深入讲解其所以然的书(Delphi源代码分析等),希望能够深入一下Delphi内部的工作原理之类的书,比如
VMT,BASM,VCL架够设计原理和对各种实现方法的展现等,但是这类书少见!每到深处则停滞不前,似乎不敢跨越雷池半步。导致现在的开发者多数只知道砖瓦试的搭建程序,而非创造程序,完全的依赖于控件。知其然而不知其
所以然,真的很悲哀!其实Delphi本身所带的源代码就是很好的教材,现在所要的只是一本能够引导别人去读
并且能够读懂Delphi的源代码,如果有这样的书的话,我相信应该会有很多人会毫不犹豫的去买的。
至于楼主所说的书,没看,所以不敢忘加评判。
能够深入讲解其所以然的书(Delphi源代码分析等),希望能够深入一下Delphi内部的工作原理之类的书,比如
VMT,BASM,VCL架够设计原理和对各种实现方法的展现等,但是这类书少见!每到深处则停滞不前,似乎不敢跨越雷池半步。导致现在的开发者多数只知道砖瓦试的搭建程序,而非创造程序,完全的依赖于控件。知其然而不知其
所以然,真的很悲哀!其实Delphi本身所带的源代码就是很好的教材,现在所要的只是一本能够引导别人去读
并且能够读懂Delphi的源代码,如果有这样的书的话,我相信应该会有很多人会的毫不犹豫去买的。
至于楼主所说的书,没看,所以不敢忘加评判。
-------------------------------------------------------------------------------------------
这正是我的心声.如果有一本delphi源码引导,应该会让搞delphi人感到兴奋.
强烈支持老牛写一本这样的书!!!!!!!!!!!!!!!!!!!!!!
为什么李维不来写一本哪?应该可以赚钱啊.
自己用还够用吧!!!!!
明天去书店在转下 买实体书看起来方便点
用户登录方案(初级),用户权限方案(中级),交叉表决策分析方案(中级),实时动态决策分析方案(中级)
可以看得出作者的解将平时的一些代码例子拿了出来,描述的过程也挺不错,如果对于一个刚刚学delphi的人来说一步步做可以实现相关的功能。
首先:但从代码的角度来看与27楼说的一样,代码基本上都是最简单直接的结构式的方法来实现,而没有考虑过代码的重用及优化,所以在这方面如果说其为”技术宝典“有些言过其辞了,呵(我也一样在写程序中只是为了快点完成功能而写代码)
其次:作者在写书的过程中讲的过分细,应该从解决方法中来描述各个的解决方案。
第三:例如:实时动态决策分析方案 这部分似科只是进行了SQL语句方面的分析书写,而对于delphi实现中仅仅利用了Tchar来实现一个图表,好像过于简单了,不知道作者是否做过决策分析方面的系统。
第四:对于数据库方面考虑的不是很好,例如数据完整性等。如:在用户登录方面“删除”按钮的相关代码如下:
procedure TFrm_ManageUser.ToolButton3Click(Sender: TObject);
begin
if Frm_Interface.User_Pop<>0 then //判断是否为普通操作员
begin
if Frm_Interface.User_Pop>0 then
begin
if Frm_Interface.User_Name=DataModule1.ADO_user.FieldByName('User_Name').AsString then
这些部分,根本没有考虑到利用事务来控制数据完整性。
......就说这么多了要工作了,呵。不过帮着顶一下吧。
刚才着重试看了3.4用户权限方案3.5实时动态决策。讲的非常细致,有些给出的源码甚至可以直接用在自己的项目中。
因为最近兴趣使然,在做一个单位内部组态王相关的小东西,动态实时决策的相关技巧倒是可以用到。在此感谢了。
这本书写的很好,每个例子都是按照1分析,2设计,3代码的方式来实现,很有条理。不仅画出了思路流程图,而且还将难点重点做了系统的分析,最后还做了补充说明。这样,就给读者一个思路,让读者的思维也按照书上所讲的想下去,很严谨,非常人性化。
另外56楼zxf_feng提出该书的代码例子都是用结构化的代码列出,不利于代码的重用,这点我表示不甚同意。书中的小节是专注于小节这部分关键性内容,而不是实现一个完整的项目。如果要看OOP相关的书籍,请在zxf_feng参看人民邮电出版社2007年版《可复用的对象模型(注释版)》相关章节。
回过头又仔细看了一遍3.4用户权限解决方案,真是佩服作者。用了三种不同的方案分别从简单用户权限、模块式用户权限、角色用户权限透彻深入的诠释了用户权限的实现过程。不过俗话说,事无巨细。本书如此之厚,可想而之细到什么程度,呵呵,这里不是说细不好,而是需要说明的是本书面向的是delphi的中端以上用户,所以挑战了一些人的阅读力确实是个问题。
再次支持《delphi技术解决方案》,本书包含内容太多太深,要吃透还需要时间。建议大家对于书中给出的例子,在完全理解的基础上调试并应用。
(该书还赠送1CD光盘,包含各个实例,帮助大家调试)
>>procedure TFrm_Enter.FormShow(Sender: TObject);
>>begin
>> Edit1.Clear;
>> Edit2.Clear;
>>end;
窗体都命了好名,Edit咋就不重新命名,太懒了吧。>>procedure TFrm_Enter.Button1Click(Sender: TObject);
>>begin
>> with DataModule1.ADO_User do //在用户数据表中查找用户名
>> begin
>> Close;
>> SQL.Clear;
>> SQl.Add('select * from tb_Briefness_User where User_Name='+''''+ Trim(Edit1.Text)+'''');
BS这种写法,漏洞就是这样来了。一般写法是使用存储过程,限制参数
>> Open;
>> if RecordCount>0 then //如果找到
>> begin
>> if FieldByName('User_Pass').AsString=Trim(Edit2.Text) then //判断密码是否相同
密码写在数据库,初级人员行为
>> begin
>> ifclose := 1;
>> self.Close;
>> end
>> else
>> begin
>> showmessage('密码错误,请重新添写');
>> Edit2.Clear;
>> Edit2.SetFocus;
showmessage只用于自身调试,请使用MessageBox,并加入MB_ICONERROR之类的图标参数
>> end;
>> end
>> else
>> begin
>> showmessage('用户名错误,请重新添写');
>> Edit1.Clear;
>> Edit2.Clear;
>> Edit1.SetFocus;
错误输入,请使用raise抛出异常,中断后续过程
>> end;
>> end;
>>end;
看了一段代码,就看作者代码功夫专业不专业了
SQl.Add('select * fro…
这样做的确比较危险,我都是先检查字符串中有没有 % 和 '(单引号) 还要检查字符串长度
我认为这样做都还不能保障登陆绝对的安全