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

读者skyfalling:《.NET 2.0面向对象编程揭秘》读后有感

 
阅读更多

读者skyfalling:<.NET 2.0面向对象编程揭秘>读后有感

今天收到了一封读者的邮件,对我的著作给予了肯定,并提出了中肯的建议。作为一名技术书籍的作者,没有比读者对自己作品给出肯定的评价更高兴的事了,非常感谢读者的建议,知音啊! :) 写作这本书时的艰辛仍历历在目,但这本书能帮助一些人更好地掌握技术,是件令人开心的事,心血没有白费,我做的事还是有点价值的。

他的邮件我附在下面:

================================

金老师:
你好,冒昧给你写信,见谅。
但是,读完你的《.net 2.0 面向对象编程揭秘》真的挺激动的,这本书我花了整整两天的工夫就一口气读完了(但是我读得很认真,你这本书是我第一次一口气读下来的关于技术类的图书),第一感觉就是“这才是中国人写的书”。我是计算机专业的在校生,有过编程的基础,但是在学校学到的往往是编程的理论,比如语法算法之类的,像你书上所介绍的一些实际应用中非常有用的知识则鲜有介绍,即使其他的一些编程资料也是语焉不详。例如你书中谈到的序列化,我之前也听过序列化,但是到底不知道有什么用和什么时候该用,看了你的大作才豁然开朗。还有就是关于多个窗体之间的通信,以前实现的手段都是你第五章中所介绍的利用公共属性和字段,虽然一直感觉很别扭,但是不知道有其他的解决方案。到了第十三章见你讲述的用委托和事件两种方法解决多窗体间的通信,才惊叹于原来委托和事件的作用在这里才得到淋漓尽致地发挥。再有就是,以前编的一个程序,当打开一个文件时必须先启动程序,然后选择打开文件,这一直让我很不爽,为什么不能像记事本和offcie word那样,直接双击文件就能打开文件,这也是看了你的这本书才找到了答案,虽然是你不在意的一点,但是对我帮助很大。其他的像windows 应用程序的多线程编程,反射机制的用处,都是在你这里才得到了理解和体会,之前虽然对这些都接触过但是就是不知道怎么用和用在哪里,这是编程最郁闷的事情。好多书对于某一个知识点反复强调多么多么重要,但是就是不举个实际应用的例子,只是找一个非常简单,而且用其他方法解决更容易的例子来讲解,结果造成我虽然知道这个知识点非常重要,却就是不知道重要在哪里,也不知道有哪些问题是必须用它解决或者用它解决最方便的。读了你这本书,虽然讲解书法的地方并不多,但是几乎每一页都有实际应用中非常有用的技巧。再举个例子就是,你书中一段非常不起眼的程序,其中有这么一句:ConsoleKey key=Console.ReadKey(true).Key; if(key==ConsoleKey.R)就这么一句将对我以后编程产生永久的影响,我再也不会用Console.Read()来判断输入字符了。

总之,你的书让我眼前一亮,我刚开始学c#不久,因为现在介绍c#的书越来越多,然而国内的大多千篇一律,而且往往避重就轻,国外的翻译过来又是那么佶屈聱牙,生硬拗口,而且国外人的思维和国人也不一样,所以看着实在费力。以前,除了MSDN之外,对我学c#影响最大书的有两本,一本是清华大学出版社的《C#程序设计》(非常适合有编程基础但从没接触过c#的朋友),还有一本是《Effective C#》,(适合已经精通C#编程的朋友,讲的是如何编写高效率的程序),而今天我有幸拜读了你的大作,注定又是对我的c#编程产生重要影响的一本书,让我知识从课堂走进生活,将理论化为实践。好多在技术上而不是知识点的难点和疑问到了你这里都迎刃而解了。当然以后编程面临的问题要比现在遇到的多得多和难得多,但是你的书至少给我指明了解决问题的切入点,以后就有迹可寻了。

说了这么多关于你的书的亮点,这里我想给你提点建议,不管合不合适,至少是我真诚的想法。首先,不管你的书是不是介绍语言的抑或介绍某种技术的,只要和语言相关或者以语言为依托,那么就请单纯的用一种语言吧,如果我是学C#的,我就绝不像看到关于VB的任何知识点,反之亦然。没有人会同时学两种语言,也很少有人同时用两种语言做一个项目。如果他是学某种语言,那么他就不想受到其他语言的干扰,我没必要学者A语言还要记着B语言零星的东西吧?如果我是用某种语言解决问题,那么我更是只关注这个语言是怎么解决问题的,其他语言只会对我造成干扰。所以对于我来说,只要书中同时用两种语言讲解的,我直接pass。不过你这本书讲的太好了,而且对于VB只是很少一部份,所以我也就不太在意了。另外还有一些疑问的就是你书中关于你的猜想,原因是微软没有公开技术资料的那部分,如果只是你的谦虚的话,还是不要这么说,否则的话,我想很少有人去看的,毕竟我们学某种语言大多是为了用这个语言,而不是却怎么完善它。还有一疑问,你举的那个线程例子,我觉得它体现不出线程池的作用:

你讲的是求1+……+10000和的例子,你说一个进程初始化时线程池有25个可用线程,但是在例中你的线程池只启动了一个子线程,如果这样的话,我为什么还用线程池呢?毕竟在你的计算只是在一个线程函数函数中就计算完了。我在其他书上看了一个例子讲的就要好一些,让人能理解线程池的好处,那本书也是用一个关于数学计算的例子,是求 x^Y+x^(1/y)的值,它启动了线程池里的两个线程,一个计算前半部分,一个计算后半部分,当两个线程都执行完毕后进行求和,这样让我一眼就看到了线程池的好处来,所以以后解决类似的问题我就会想到线程池来。

可能我对你的程序理解有误,如果有的话,能否给我讲解一下呢?之所以下力气和勇气和你写这封信,因为对你这本太有感觉了,希望你以后出书能坚持自己的风格!期待你的下一部大作!讲了这么多,如有不当,还请多多包涵!

祝,工作顺利,万事如意!

=================================

线程池的例子的确可以设计得更好。我会在下一版本中予以更新。
关于CLR的内部机理,我的确是在“盲人摸象”,带有一定的猜测性质,因此不敢误导读者,才在正文中明确声明。好在现在微软公布了.NET Framework的源码,资料更多了,等到本书第二版时,我会修正发现的错误。“知之为知之,不知为不知”,这是应有的求知态度。

当前我在着手研究.NET 3.5的一系列新技术,目前的课题用到P2P,正在研究WCF中的这一部分。等到技术积累足够时,我会先在ITCAST上开设相关课程,然后,再将相关的东西总结成书,《.NET 2.0面向对象编程揭秘》将会升级为3.5版,而《编程的奥秘》将全面引入WPF和LINQ等新技术,并将采用C#改写。还可能写一些新书,介绍Silverlight,WCF和WF等令人激动的新一代.NET技术的强大功能。

技术进步的大潮浩浩荡荡,积极进取方可生存,抱残守缺必然落伍。

与读者共勉!

分享到:
评论

相关推荐

    .net2.0+ Winform项目实现弹出容器层

    适用于:.net2.0+ Winform项目 背景: 有时候我们需要开一个简单的窗口来做一些事,例如输入一些东西、点选一个item之类的,可能像这样: 完了返回原窗体并获取刚刚的输入,这样做并没有什么问题,但在几天前我突然...

    企业网站管理系统-很经典的企业网站管理系统下载

    asp.NET版本:.NET2.0/.NET3.5(即安装framework2.0或以上版本) 个人使用感受:一款很强大的企业网站管理系统、是asp.net开发的,功能很灵活,扩展性也很强,免费版本也没有功能限制,熟悉后做网站超方便。

    asp.net知识库

    asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language ...

    暑期社会实践跟踪管理平台(温州大学ASP.NET2.0+MSSQL2000)

    暑期社会实践是旨在引导大学生积极参加社会实践活动,让大学生先踏足社会,感受社会的大致轮廓,同时也借此培养广大的大学生的创新意识,刻苦学习,让平时课堂上学到的运用到实际。但是目前,团委在暑期社会实践工作...

    psySoft家庭收支管理系统

    Vista操作系统可以直接运行本软件,其他操作系统需要先安装MicroSoft .NET 2.0 Framework及其中文语言包(语言包可选) .NET 2.0 SP1 安装程序(x86): ...

    birdfeed_plusplus:鸟食 2.0

    鸟食++ 你认为最后一次喂鸟不错 :smirking_face: 用户故事 完成的故事... 必需的: 所有用户故事 用户可以使用选项卡在时间轴和提及视图之间... 高级:改进用户界面和应用主题以感受推特品牌 高级:用户可以点击推

    《种子课2.0》读后感2021.docx

    《种子课2.0》读后感2021.docx

    优质Python教程 Python3.7从基础入门到精通进阶教程 第07章 对象与类-面向对象编程 共17页.ppt

    第1章 感受Python精彩世界-认识Python.ppt 第2章 Python的基础语法.ppt 第3章 列表、元组和字典的基本操作.ppt 第4章 熟练操作字符串.ppt 第5章 程序的控制结构.ppt 第6章 函数.ppt 第7章 对象与类.ppt 第8章 程序...

    Python 使用 attrs 和 cattrs 实现面向对象编程的实践

    Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了或者某一对象非常复杂了,其中的一些写法会相当相当繁琐,而且我们会经常碰到对象和 JSON 序列...

    代码仓库 V1.1

    功能:可以保存各种代码,并按照实际使用过程中的感受,分了5...采用.net 2.0框架,无视系统差别,只要安装了.NET 2.0的机器均可运行. 7.因为是免费软件,我会在有空的时候,把功能完善,并且上传,大家有需要,可以随时提出.

    浅谈.Net下的多线程和并行计算(全集)

    作为一个ASP.NET开发人员,在之前的开发经历中接触多线程编程的机会并不是很多,但是随着.NET 4.0的发布临近,我越来越感受到未来的1-2年中并行计算将会有很大的应用。于是决定通过写日志的方式来总结一下.NET 3.5下...

    代码仓库 V1.10

    功能:可以保存各种代码,并按照实际使用过程中的感受,...采用.net 2.0框架,无视系统差别,只要安装了.NET 2.0的机器均可运行. &lt;br&gt; 7.因为是免费软件,我会在有空的时候,把功能完善,并且上传,大家有需要,可以随时提出.

    《史玉柱自述:我的营销心得》读后有感_1.docx

    《史玉柱自述:我的营销心得》读后有感_1.docx

    《道路自信:中国为什么能》读书有感.pdf

    《道路自信:中国为什么能》读书有感.pdf

    计算机编程实习报告.docx

    在这三个多月的时间中,我进一步学习了编程语言C#,面向对象编程以前在学校的学习没有真正自己实践,是在老师带领下完成的项目。现在我对C#有了基本的认识,也具备了用C#开发Windows应用程序和Web应用程序的能力。...

    佳佳DJ站音乐程序 V2.0.rar

    软件版本:V2.0 见议分类:影音娱乐 联系EMAIL:zm6160@163.com 软件网站:http://www.151500.com 下载地址:http://www.151500.com/jjdj.rar 软件容量:689KB 软件类型:ASP源码 界面预览:...

    DotBBS开源.NET论坛 v2.0SQL版

    为达到最佳效果,推荐使用九网互联的ASP.net空间,支持ASP.net版本1.1和2.0在线切换、在线脚本映射、ASP.net具体错误信息在线查看。DotBBS是一个Asp.Net开源论坛,轻量、安全、易扩展。-----------基本功能----------...

    乡巴佬淘宝客 v2.18.0915

    感受到大家对淘宝客API程序的热切需要,经过数月的努力,终于修改完成了淘宝客API程序高级版。希望这版程序能够帮助各位淘宝客朋友月赚万元!相信只要你一直坚持不懈,月赚万元是可以达到的!开发语言: c#.net 4.0 ...

Global site tag (gtag.js) - Google Analytics