[你必须知道的.NET]第二十回:学习方法论

《你必须知道的.NET》网站 | Anytao技术博客 

[你必须知道的.NET]第二十回:学习方法论

发布日期:2008.5.28 作者:Anytao
© 2008 Anytao.com ,Anytao原创作品,转贴请注明作者和出处。

说在,开篇之前

本文,源自我回答刚毕业朋友关于.NET学习疑惑的回复邮件。

本文,其实早计划在《你必须知道的.NET》写作之初的后记部分,但是因为个中原因未能如愿,算是补上本书的遗憾之一。

本文,作为[《你必须知道的.NET》]系列的第20回,预示着这个系列将开始新的征程,算是[你必须知道的.NET]2.0的开始。

本文,作为一个非技术篇章,加塞儿到《你必须知道的.NET》队伍中,我想至少因为回答了以下几个必须知道的非技术问题:.NET应该学习什么? .NET应该如何学习? .NET的学习方法?

本文,不适合所有的人。

 
开始正文: 

关于这个问题,也有不少刚刚入行的朋友向我问起。我想可能一千个人就有一千个答案,我不能保证自己的想法适合于所有的人,但是这确实是我自己的体会和经历,希望能给你一些参考的价值。同时,我也严正的声明,我也是个学习者,也在不断的追求,所以这里的体会只是交流,并非说教。

作为同行,首先恭喜你进入了一个艰难困苦和其乐无穷并存的行业,这是软件的现状,也是软件的未来。如果你想迅速成功,或者发家致富,显然是个难以实现的梦想。老Bill和李彦宏在这个行业是难以复制的,所以做好长期艰苦卓绝的准备是必须的。至少,我身边的朋友,包括我自己都是经历了这个过程,而且依然在这个过程中,累并快乐着。所以,如此辛苦,又没有立竿见影的“钱”途,想要在这个领域有所发展,只能靠坚持和兴趣了。二者缺一不可,对于刚刚毕业的你来说,这个准备是必须有的。这是我的第一个体会,可能比较虚,但是这个在我看来却是最重要的一条。

第一条很关键,但是除了在思想上做好准备,还有应该就是你关心的如何下手这个问题了?从自己的感觉来说,我觉得比较重要的因素主要包括:

1 基础至上。

其实早在两年前,我也存在同样的疑惑,很多的精力和时间花费在了追求技术技巧、技术应用和技术抄袭的自我陶醉状态。历数过去的种种光辉历程,很多宝贵的人生都花在交学费的道路上了。所以,当我把全部的精力投入到基础和本质研究的课题上时,竟然发现了别样的天地。原来再花哨的应用,再绝妙的技巧,其实都架构在技术基础的基础上,没有对技术本质的深刻理解,谈何来更进一步了解其他。这种体会是真实而有效的,所以我将体会、研究和心得,一路分享和记录下来,于是就有了《你必须知道的.NET》这本书的诞生,我切实的觉得从这个起点开始,了解你必须知道的,才能了解那些更广阔的技术领域。

所以,如果能够坚持,不放弃枯燥,从基础开始踏踏实实的学习基础,我想你一定会有所突破。而这个突破,其实也有着由量到质的飞跃,以.NET为例,我认为了解CLR运行机制,深刻的认识内存管理,类型系统,异常机制,熟悉FCL基本架构,学习c#语言基础,认识MSIL、元数据、Attribute、反射、委托等等,当然还包括面向对象和设计架构,都是必不可少的基础内容。你可以从《你必须知道的.NET》目录中来大致了解到应该掌握的基础内容,顺便广告了:-)

话音至此,顺便推荐几本基础方面的书,如果有时间可以好好研究研究:

  • Don Box, Chris Sells, Essential .NET,一本圣经,深刻而又深邃,为什么不出第二卷?
  • Jeffrey Richter, Applied Microsoft .NET Framework Programming,.NET世界的唯一经典,偶像级的Jeffrey是我的导师。
  • Patrick Smacchia, Pracical .NET2 and C#2,.NET领域的百科全书,可以当作新华字典来读技术。
  • Richard Jones, Rafael D Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management,内存管理方面,就靠它了。
  • Christian Nagel, Bill Evjen, Jay Glynn, Professional C# 2005,c#基础大全,大家都在看,所以就看吧。
  • Thinking in Java,是的,一本Java书,但是带来的不仅仅是Java,写书写到这份上,不可不谓牛叉。
  • Anytao, 你必须知道的.NET,我很自信,没有理由不推荐,这本书有其他作品所没有的特别之处,虽不敢恬列于大师的经典行列,但是推荐还是经得起考验。

我一直主张,书不在多,有仙则灵。上面的几本,在我看来就足以打好基础这一关。当然如果有更多的追求和思索,还远远不够,因为技术的脚步从未止步。但是,至少至少,应该从这里开始。。。

2 你够OO吗?

不管对业界对OO如何诟病,不管大牛对OO如何不懈,那是他们折腾的事业。而我们的事业却无法远离这片看似神秘的王国,因为但凡从项目和产品一路厮杀而来的高手,都理解OO的强大和神秘。站在高高的塔尖来看软件,玩来玩去就是这些玩意儿了。所以,在我看来OO其实也是软件技术的必要基础,也是技术修炼的基本功之一,因此我也毫不犹豫的将对面向对象的理解纳入了《你必须知道的.NET》一书的第一部分范畴。

然而,实话实说,OO的修炼却远没有.NET基础来得那么容易,苦嚼一车好书,狂写万行代码,也未必能够完全领悟OO精妙。说得玄乎点儿,这有些像悟道,想起明代前无古人后无来着的心学开创者王阳名先生,年轻时每天格物修炼的痴呆场景,我就觉得这玩意儿实在不靠谱。其实,很少有人能完全在OO面前说彻悟,所以我们大家都不例外。但是因为如此重要,以至于我们必须找点儿东西或者思路来摩拳擦掌,了解、深入和不断体会,所以我对面向对象的建议是:始终如一的修炼,打好持久战。

如何打好仗呢,不例外的先推荐几本经典作品吧:

  • EricFreeman, Elisabeth Freeman. Head First Design Patterns,标准的言简意赅,形象生动,难得佳作。
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlisside,设计模式-可复用面向对象软件的基础,开山祖师的作品,不独白不读。
  • Martin Fowler, Refactoring: Improving the Design of Existing Code,同样的经典,很拉风。
  • Robert C. Martin,敏捷软件开发:原则、模式与实践,对于设计原则,无出其右者。
  • 张逸,软件设计精要与模式,国内作品的优秀作品,园子里的经典之作。

有了好书,还是远远不够的。所以,还得继续走王阳明的老路,今天格一物,明天格一物,看见什么格什么。用咱们的专业术语说,就是不断的学习和实践他人的智慧结晶,看经典框架,写熟练代码。我的一位偶像曾语重心长的告诉我,做软件的不写上千万行代码,根本就没感觉。按照这个标准衡量一下自己,我发现我还只是小学生一个,所以废话少说,还是去格物吧。

那么OO世界的物又是什么,又该如何去格,在我看来大致可以包括下面这些内容,但是分类不按学科标准:

  • 面向对象的基本内容:类、对象、属性、方法、字段。
  • 面向对象的基本要素:封装、继承、多态,我再外加一个接口。
  • 设计原则:接口隔离、单一职责、开放封闭、依赖倒置、Liskov替换,没什么可说的,这些实在太重要了。
  • 设计模式:也没有可说的,实在太重要了。
    • Singleton
    • Abstract Factory
    • Factory Method
    • Composite
    • Adapter
    • Bridge
    • Decorator
    • Facade
    • Proxy
    • Command
    • Observer
    • Template Method
    • Strategy
    • Visitor
  • 分层思想:例如经典的三层架构
  • 模块化
  • AOP
  • SOA
  • ORM
  • ......

这些OO领域的基本内容,看起来令郎满目,其实互相联系、互为补充,没有独立的分割,也没有独立的概念,了解这个必然牵出那个,所以修炼起来并不孤单,反倒在不断的领悟中能够窃喜原来软件也可以如此精彩。

3 舍得,是门艺术。

有了技术基础,懂得修炼OO,下面就是舍得的问题了。舍得舍得,不舍怎得?

.NET技术有着近乎夸张的应用范畴,从Windows GDI应用,到ASP.NET Web应用,到WCF分布式应用,到Window Mobile嵌入式应用,到ADO.NET数据处理,到XML Webservice,.NET无处不在。所以,对于.NET技术的学习,你应该有个起码的认识,那就是:我不可能了解.NET的整个面貌, 还有个起码的问题继续,那就是:我还要学吗?

当然不可能了解所有,因此你必须选择和舍得,选择有方向,舍得有兴趣;我还要学吗?当然要学,但是应该首先清楚如何学?在这么多眼花缭乱的技术应用中,有一个基础始终支撑着.NET技术这艘航母在稳步前行,不管是什么应用,不管是什么技术,不管是什么框架,CLR总是.NET技术的心脏。通过表面来倾听心脏的声音,才能更好的了解机器的运转,顺着血管的脉络了解框架,才能明白机制背后的玄机。层出不穷的新技术和新名词总是能吸引你的眼球,但是永远不要只盯着那块蛋糕,而掉了整个礼物,所以对.NET的学习一定要打好基础,从了解CLR底层机制和.NET框架类库开始,逐渐的追求你的技术选择。

善于分辨,不盲从。每天上cnblogs、MSDN和其他的订阅技术文章,是我的习惯,但是如果每篇都读,每篇都看,那就基本没有其他的时间,所以你必须有分辨的能力,和抵抗诱惑的心态。找准自己的方向,并且坚持下来,是难能可贵的。

在这方面,没有参考,也没有推荐,全屏自己的慧眼。眼光,是个关键。

4 读几本经典的作品。

这一点其实并不需要多说,推荐的几本作品值得花点儿功夫来学习,因为这的确是最初的开始,走在路上从起跑线就走错了方向,大致快速追上是比较难得。所以经典的作品就是一个好的起点,我也会不时的在个人博客中推荐更好的专著,希望你继续关注J

5 遵守规范,养成良好的编程习惯。

其实这是个看似无足轻重的小事儿,我经常看到自以为天下无敌的高手,胡乱的在编辑器中挥洒天赋,一阵高歌猛进,但最后自己都不知道当初的本意是什么。软件是个可持续的资源,于人于己都遵守点儿规则,出来混是要有点儿职业道德。对自己而言,良好的编程习惯正是一个良好学习习惯的开始。看着自己的代码,感觉像艺术一般优雅,大致也就是周杰伦听到东风破时候的感觉吧,怎一个爽字了得。

推荐一本这方面的书:

  • Krzysztof Cwalina,Brad Abrams , .NET 设计规范--.NET约定、惯用法与模式

6 学习,讲究方法。

具体的学习方法,实在是因人而异,我从来不主张学习他人的方法,因为人性是难以复制的东西。自己的只有自己最清楚,所以你可以模仿他人的技艺,但是用于无法刻画其灵魂。关于学习方法这档子事儿,我向来不喜欢参考他人,也更不喜欢推荐。

但是,即便如此,丝毫不减弱学习方法的重要性,懂得了解自己的人是真正的智者,所以挖掘自身潜力永远是摆在自己眼前的课题。寻找一套行之有效的方式方法,非常的重要,但是不要学着模仿,这方面我觉得只有创新才能成功。

如果实在没有自己的方法,我就觉得没有方法就是好方法,苦练多看,永远不过时。

7 找一个好老师。

如果有幸能有一位德高望重而又乐于奉献的师长指导,那的确是人生之幸运,但是这种概率实在是太小了。我没有赶上,所以大部分人也没法赶上。没办法,还是需要好的老师,那么哪儿有这样才高而又德厚的人才呢?

答案是互联网。google,baidu,一个都不能少。

MSDN是个好工具,博客园是个好地方,《.NET禅意花园》是个好开始。

8 英文,无可避免。

前面说过,要不断的修炼和格物,要学习好的作品,认识好的框架。很不幸的是,这些好事儿全被老外占了,因为本来就是从他们那里开始的,所以也不需要泄气。中国人自古都是师夷长技以制夷的高手,希望软件产业的大旗别在我们手上倒下。但是,话说回来,英文就成了一个必须而又伤神的拦路虎,但是没办法使劲的嚼吧。多看多写多读,也就能应付了。

关于英文的学习和成长,我并不寄希望于在什么英语速成班里走回头路,学校苦干这么多年也每隔名趟,所以下手还是务实点儿,我推荐几个好的英文网站和大牛博客,算是提高技术的同时提高英语,一箭双雕,一举两得:

当然这里罗列的并非全部,MSDN、asp.net自不必说,可以有选择的浏览。

上述1+7条,是一些并非经验的经验,谁都知道,但不是谁都能做到。累并快乐着,永远是这个行业,这群人的主旋律。在技术面前,我嫣然一笑,发现自己其实很专注,这就够了。

 

好了,啰里啰唆,可能是经验,可能是废话。正如一开始所说,作为一个过来人,我只想将自己的心得拿出来交流,绝没有强加于人的想法。除了推荐的几本作品,你可以有选择的参考,其他的甚至可以全盘否定。心怀坦诚的交流,说到底就是希望更多的人少走我曾经曲曲折折的弯路,那条路上实在是幸福与心酸一股脑子毁了一段青春。

祝晚安。

Tao | 你必须知道的.NET

http://www.anytao.com/  | Blog: http://anytao.cnblogs.com/

 

插播广告:

© 2008 Anytao.com 原创作品,转贴请注明作者和出处,留此信息。

本文以“现状”提供且没有任何担保,同时也没有授予任何权利。
This posting is provided "AS IS" with no warranties, and confers no rights.

posted @ 2008-05-28 01:38 Anytao 阅读(10334) 评论(123) 编辑 收藏

评论共2页: 上一页 1 2 
 回复 引用   
#24楼 2008-05-28 09:43 SmallTalker[未注册用户]
很好,楼主的话,每次都能发人深省..
 回复 引用 查看   
#25楼 2008-05-28 10:33 Sam Lin      
不错,很值得深思的事情,楼主的书一定去买
 回复 引用   
#26楼 2008-05-28 10:43 小伟20082008[未注册用户]
楼主,你的书我也买了.也看的不多.好像只看到通用类型那了.

坚持,我做的不好.通常都是一段时间看一下.然后就很久不看了.

同意上面兄弟说的.不可能面面都了解.也没有这么多的精力.前面一个兄弟提到的高度和深度.很有道理.

国内的书.我觉得你这本书.是一个新的风格.确实多了解底层的东西.会对你整体上的认识.有很大的提高.:)

 回复 引用 查看   
#27楼 2008-05-28 11:03 侯垒      
对我们很有指导作用.
 回复 引用 查看   
#28楼 2008-05-28 11:07 Solog      
飞机飞上天的道理,很早人们就发现了,离飞机飞上天还很远
 回复 引用 查看   
#29楼 2008-05-28 11:24 Justin      
Richard Jones, Rafael D Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management,刚Google了一下,找到了下载地址:http://d.download.csdn.net/down/381861/kittyjie,这本书还是比较有历史的了,中译本居然已经绝版了
 回复 引用 查看   
#30楼 2008-05-28 11:25 朝晖的.net      
贵在坚持~~人都是有惰性地~~越老越惰~我感觉~~~
 回复 引用 查看   
#31楼 2008-05-28 11:30 Anders06      
学习了,谢谢!

顺便问个问题:什么是基于对象,什么是面向对象,2者的区别是什么,
OO的核心是什么, 抽象算OO里的啥东东

 回复 引用 查看   
#32楼 2008-05-28 11:42 钢钢      
很好,楼主的话入骨三分。。。

有的是感同身受;
有的是醍醐灌顶;

学习、收藏、感谢 ^_^


 回复 引用   
#34楼 2008-05-28 13:03 CppGohan[未注册用户]
gotdotnet不复存在了
 回复 引用 查看   
#35楼[楼主] 2008-05-28 13:22 Anytao      
@怪怪
首先,《你必须知道的.NET》能得到老兄的肯定,实在是意外之外的收获,足以让我欣喜若狂了。自上次一别,回来大事儿小事儿一堆,但凡闲下来就想去你哪儿找点儿滋润的东西,你的置顶的那个系列,值得让很多人期待。
其次,关于删掉的那大段评论,如果还能找到就给我发个Mail过来,其实很多时候技术都不是最要命的。相反,思想上禁锢才更可怕,所以在这里能收获各种各样的声音,才是撰文写作的初衷。有空再出来聊聊,挖掘你的想法,可不是一次两次就能办到的:-)

 回复 引用 查看   
#36楼[楼主] 2008-05-28 13:26 Anytao      
@紫色阴影
呵呵,谢谢老兄这么晚给我留言。
本文的产生背景是回答网友关于学习问题的提问,所以定位的基点是初出茅庐的有志青年:-)

不过,对于流行的技术,就如果流行的歌曲,我的一般态度就是听听看看,不想花费更多的精力。当然,这并不表示没有方向,我觉得每个人都有一个定位和方向,例如我可能会花更多的精力在WCF、LINQ上,而云计算什么的还是交给微软高人折腾吧。

谢谢你的补充:-)

 回复 引用 查看   
#37楼[楼主] 2008-05-28 13:26 Anytao      
@Justin
呵呵,你也是,这么晚了,谢谢:-)

 回复 引用 查看   
#38楼[楼主] 2008-05-28 13:27 Anytao      
@生鱼片
感谢捧场:-)

 回复 引用 查看   
#39楼[楼主] 2008-05-28 13:33 Anytao      
@Da Vinci
书不在多,见到好书踏实的读下去就有所获,只要关注就已经很感谢了,其实达到获取知识的目的就够了:-)

 回复 引用 查看   
#40楼[楼主] 2008-05-28 13:37 Anytao      
@Ivan-Yan
其实这是个看似矛盾的问题,其实我不推荐完全系统化的了解基础和深入本质的研究过程,因为那常常就是你所说的,摘了芝麻,丢了西瓜。

所以,更好的办法是,在项目实践的过程中,将你所面临的一个个问题,逐一解决,碰到相关的基础点不够清楚,或者本质认识不够深刻时,就全力打好攻坚战,这样的效果绝对是刚刚滴:-)

只是我的体会,不过对于经典的作品,也是值得从头到尾祥读细查,品味其中魅力,奇妙无穷。不过,这样的经典实在不多:-)

 回复 引用 查看   
#41楼 2008-05-28 13:41 ξ箫音ξ      
hehe..支持一下王涛哥们,抽时间一起去喝酒去。
 回复 引用 查看   
#42楼[楼主] 2008-05-28 13:41 Anytao      
@jisen
呵呵,谢谢光临,共勉共勉:-)

 回复 引用 查看   
#43楼[楼主] 2008-05-28 13:42 Anytao      
@ξ箫音ξ
呵呵,那是自然,就怕你太忙呀:-)
我还摩拳擦掌等着你的好事儿呢,等待的日子不好熬呀:-)

 回复 引用 查看   
#44楼[楼主] 2008-05-28 13:43 Anytao      
@kenzo
是啊,身体第一第一,今年基本很少这么晚了,只是一时兴起,就写完这篇,不觉都晚了,谢谢:-)

 回复 引用 查看   
#45楼 2008-05-28 13:45 炭炭      
写书需要毅力啊,向你学习!
 回复 引用 查看   
#46楼[楼主] 2008-05-28 13:47 Anytao      
@xiao_p(匿名)
谢谢你的补充,从整体把握技术方向的说法非常之对,如果有个《学习方法论》2.0我就把这条加进去:-)

 回复 引用 查看   
#47楼[楼主] 2008-05-28 13:47 Anytao      
@炭炭
共同学习,很多事情都需要毅力,关键的是兴趣和坚持。

 回复 引用 查看   
#48楼[楼主] 2008-05-28 13:48 Anytao      
@求知无傲
呵呵,谢谢支持。不过,早点儿睡好:-)

 回复 引用 查看   
#49楼[楼主] 2008-05-28 13:56 Anytao      
@kyo

谢谢支持。

关于这个问题,引用回答@Ivan-Yan 的说法来解决,是个好办法:
在项目实践的过程中,将你所面临的一个个问题,逐一解决,碰到相关的基础点不够清楚,或者本质认识不够深刻时,就全力打好攻坚战,这样的效果绝对是刚刚滴:-)

 回复 引用 查看   
#50楼[楼主] 2008-05-28 13:59 Anytao      
@思考-总结
很对,我早在[1. 第一回:设计,应该多一点]中提出了类似的观点,谢谢讨论:

http://www.cnblogs.com/anytao/archive/2007/08/15/anytao_design_01.html

 回复 引用 查看   
#51楼[楼主] 2008-05-28 14:00 Anytao      
@gakaki
完全同意,技术是相同的,不同门类的技术足以给.NET带来更多的思考,上次怪怪给我介绍对于类型的理解时,就很有这样的体会。
所以,在经典书籍中我也推荐了Thinking in Java

 回复 引用 查看   
#52楼[楼主] 2008-05-28 14:01 Anytao      
@Jeffrey Zhao
呵呵,老张也来了,很热闹了:-)

 回复 引用 查看   
#53楼[楼主] 2008-05-28 14:03 Anytao      
@lbq1221119
呵呵,实为经典,谢谢:-)

 回复 引用 查看   
#54楼[楼主] 2008-05-28 14:05 Anytao      
@石牌村夫
:-)

 回复 引用 查看   
#55楼[楼主] 2008-05-28 14:06 Anytao      
@萧佰刚
谢谢支持,当当很方便:-)

 回复 引用 查看   
#56楼[楼主] 2008-05-28 14:08 Anytao      
@戏水
呵呵,下次吧,上次组织仓促:-)
我和Jillzhang想办个书友会,交流读书感受,这样参与的同志会更多:-)

 回复 引用 查看   
#57楼[楼主] 2008-05-28 14:11 Anytao      
@海东青
言之有理:-)

 回复 引用   
#58楼 2008-05-28 15:18 flag[未注册用户]
书在读,路在走......

此书荐之......

 回复 引用 查看   
#59楼 2008-05-28 17:33 金色海洋(jyk)      
想写点什么来着,但是想不起来了。有空扎实一下基础。
有空再聚一下。:)

 回复 引用 查看   
#60楼 2008-05-28 18:06 looping      
牛人的博客要多留言
 回复 引用 查看   
#61楼 2008-05-28 21:45 sishuiyitan      
书已阅,阖上书本,我不禁还是有些茫然。。。。
扪心自问,基础的书看了不少,也就对基础类的书翻的快,但是真正的懂了么?
其实我觉得这本书对我触动最大的,还是对于CLR的介绍。
使我找到了方向。。
我觉得王哥有空的时候应该多介绍一下CLR的底层的东西。。。


 回复 引用 查看   
#62楼[楼主] 2008-05-28 21:51 Anytao      
@夜风777
呵呵,共勉之,有些时候达到看似简单的要求也是很难:-)

 回复 引用 查看   
#63楼[楼主] 2008-05-28 21:54 Anytao      
@airwolf2026
呵呵,正应了那句古话,书非借不能读也。谢谢你的支持:-)

 回复 引用 查看   
#64楼[楼主] 2008-05-28 21:56 Anytao      
@Clark Zheng
呵呵,过奖了,最近也很少见你冒个头了:-)

 回复 引用 查看   
#65楼[楼主] 2008-05-28 21:57 Anytao      
@SmallTalker
听到这话,简直太高兴了,谢谢:-)

 回复 引用 查看   
#66楼[楼主] 2008-05-28 21:59 Anytao      
@Sam Lin
对了,是应该花些时间来想想更加重要的事情。不能低着头猛干,盲目瞎撞:-)

 回复 引用 查看   
#67楼 2008-05-28 22:00 紫色阴影      
@戏水
什么时候玩 叫上我啊 是在北京么?

 回复 引用 查看   
#68楼[楼主] 2008-05-28 22:04 Anytao      
@小伟20082008
坚持,深度、广度,都是我们平时忽略的地方,坚持下来是不容易。而这些正是我们这群人可爱的地方,选择一个明知必须坚持的事业,并做好坚持好就是好样儿的:-)

 回复 引用 查看   
#69楼[楼主] 2008-05-28 22:09 Anytao      
@侯垒
呵呵,看来起到了基本的作用,著书立说自古是文人骚客的铮铮脊梁,我没有那么高的觉悟,但是也喜欢和更多的人交流,出来混不容易,有一群好汉相聚博客园,为了一个简单而又生动的理想,经常让我感动不已。
这是此文的目的,也是写书的初衷:-)

 回复 引用 查看   
#70楼[楼主] 2008-05-28 22:09 Anytao      
@紫色阴影
我们都在北京,把你的联系方式给我发个短消息,下次活动出来透透气:-)

 回复 引用 查看   
#71楼[楼主] 2008-05-28 22:12 Anytao      
@Solog
很有哲理,意境深远:-)

 回复 引用 查看   
#72楼[楼主] 2008-05-28 22:14 Anytao      
@Justin
我也是看英文的,没有全看,但是确实是本不错的作品,虽然读者费劲,但是挺有收获:-)

 回复 引用 查看   
#73楼[楼主] 2008-05-28 22:17 Anytao      
@朝晖的.net
呵呵,架不住老当益壮,关键其实还是个兴趣问题:-)

 回复 引用 查看   
#74楼[楼主] 2008-05-28 22:35 Anytao      
@Anders06

上海一别,已近半年,最近可好。

我从来都不注重概念的清晰度,所以很多时候坚持“实用至上”的原则,所以关于面向对象和基于对象我的理解是只能是简单的参考,不作为新华字典的查询结果:

举个例子,我们基本认为c#是面向对象的语言,而Javascript是基于对象的语言。在c#中封装、继承和多态构成了面向对象丰富体验的理论基础;而Javascript中虽然只有简单的几种基本类型,但是对象这一基本概念还是成就了Js的无限灵活性。但是,js却不是纯粹的面向对象语言,可以以对象进行数据的操作,但是它没有继承和多态带来的面向对象体验。所以面向对象和基于对象就体现于此。
我不是js的专家,这方面的积累有限,所以并非权威解答。还是请李战出来继续解读《悟透js》吧。

关于OO的核心和抽象,我始终认为广义上的OO核心就是面向抽象,封装变化这一基本思想,而狭义上的核心就是多态。

那么抽象算是什么呢?就像我在本文中所言,这确实像悟道,直白的表达经常显得无力。若非李战和怪怪超强的文字驾驭功底,还真不好直言抽象。但是我理解的抽象实在软件系统中相对稳定的东西,依赖于稳定的因素可以使得整个系统的耦合度降低,因为稳定就是不变或者不易变。因为不变,所以永恒。架构在永恒之上的东西,正是软件设计理想的交互作用,不过这种理想是无法在现实中存在,我们只能无限的接近,这个被接近的东西,在我的心中就是:抽象。

:-)

 回复 引用 查看   
#75楼[楼主] 2008-05-28 22:38 Anytao      
@钢钢
共同学习,互相收藏,彼此感谢:-)

 回复 引用 查看   
#76楼[楼主] 2008-05-28 22:42 Anytao      
@求知无傲
凑合看吧:-)

 回复 引用 查看   
#77楼[楼主] 2008-05-28 22:44 Anytao      
@CppGohan
整合到msdn也好:-)

 回复 引用 查看   
#78楼[楼主] 2008-05-28 22:45 Anytao      
@flag
谢谢,这几句话说得好:-)

 回复 引用 查看   
#79楼[楼主] 2008-05-28 22:46 Anytao      
@金色海洋(jyk)
:-)没问题

 回复 引用 查看   
#80楼[楼主] 2008-05-28 22:47 Anytao      
@looping
言过了,牛人太多了,还轮不到我:-)
只是希望能够朝着那个方向靠近,此足以:-)

 回复 引用 查看   
#81楼[楼主] 2008-05-28 22:50 Anytao      
@sishuiyitan
你说的很对,基础经常被忽视,但是最后又最终被基础惩罚。人类是最不长急性的动物,程序员也不能免俗。

我想[你必须知道的.NET]2.0将从本文开始,从新开始对浩瀚.NET底层的探索之旅,尤其是关于CLR机制的探索,你会满意的:-)

 回复 引用 查看   
#82楼 2008-05-28 23:43 Jeffrey Zhao      
--引用--------------------------------------------------
Anytao: @sishuiyitan
你说的很对,基础经常被忽视,但是最后又最终被基础惩罚。人类是最不长急性的动物,程序员也不能免俗。

我想[你必须知道的.NET]2.0将从本文开始,从新开始对浩瀚.NET底层的探索之旅,尤其是关于CLR机制的探索,你会满意的:-)
--------------------------------------------------------
不过慢慢的就不能称之为“你必须知道”的.NET了阿,呵呵。

 回复 引用 查看   
#83楼[楼主] 2008-05-29 00:00 Anytao      
@Jeffrey Zhao
呵呵,看来是这个道理,挂在嘴上说惯了,一不小心没有了主心骨。还真有些纳闷,先凑合用着吧:-)

 回复 引用   
#84楼 2008-05-29 09:53 Seraphyqm[未注册用户]
这文章什么时候写的。推荐的第一 个英文网站居然是Gotdotnet,这个站点去年就不存在了。

所以,大牛写的文章也不能当作圣经来读。

 回复 引用 查看   
#85楼[楼主] 2008-05-29 11:30 Anytao      
@Seraphyqm

1 本文初写于2008年5月27日晚,是我回复一位朋友的邮件,后略经修改发表于2008年5月28日凌晨。

2 推荐的英文网站也是去年我推荐给朋友的网站系统,在写本文是未加修改的沿用了以前的邮件内容。

3 现在的Gotdonet已经转链接至MSDN,类似于原来的功能,所以不是无效链接。

4 谢谢你的提醒,诸位千万别当圣经,因为本来就不是:-)

5 我不是大牛。

:-)

 回复 引用 查看   
#86楼 2008-05-29 19:19 Wuya.net      

>_<

 回复 引用 查看   
#87楼[楼主] 2008-06-01 22:36 Anytao      
@Wuya.net
:-)

 回复 引用 查看   
#88楼 2008-06-02 16:02 王德水      
书是买了,可送货的却找不到小西天这个地方,郁闷。
 回复 引用 查看   
#89楼[楼主] 2008-06-03 20:22 Anytao      
@王德水
呵呵,常有的事儿,耐心等等,好东西往往先摆摆架子:-)

 回复 引用 查看   
#90楼 2008-06-06 13:30 designbook      
ANYTAO的文采依然啊!回味无穷……
 回复 引用 查看   
#91楼 2008-06-06 15:35 任力      
是呀,anytao的文采确实不得说呀~~~~
期待你的 《你必须知道的.NET》2.0大作!

 回复 引用 查看   
#92楼[楼主] 2008-06-08 22:00 Anytao      
@designbook
呵呵,孙老师的夸奖是最受用的鼓励,我也只好硬着头皮坚持了...

 回复 引用 查看   
#93楼[楼主] 2008-06-08 22:03 Anytao      
@任力
兄弟,过奖了,只是一点点小体会。
关于2.0一说,只是在书之后开始的另一个阶段,还得继续努力阿:-)

 回复 引用 查看   
#94楼 2008-06-13 14:44 flyingfish      
着实从书中体会到实用至上的原则,实用多好。
面向对象以抽象为核心,书要是太抽象就不好了,所以还是实用点好。

 回复 引用 查看   
#95楼 2008-06-17 21:04 sishuiyitan      
最近项目不是很忙,于是又把王哥的书从新看了一下。看到P37页:
那个系统设计的类图的时候,我突然跳出一个奇怪的想法:
Files类继承IFileOpen,然后Files类的每个子类都有了Open()这个方法。
这样设计是否是有些不太妥当?
比如说:
一个在线论坛,如果每个类都继承那个访问数据库的类,那么,不是每个类都可以与数据库进行交互了吗?
是否应该专门设计一个类来进行Open等操作?

还是我理解错了?

 回复 引用 查看   
#96楼 2008-07-08 15:53 AlexLiu      
支持了。刚毕业,刻苦学习中,以后还要请前辈多多指教的说。
不知道手上有什么不看好书么,借本看看:)

 回复 引用 查看   
#97楼[楼主] 2008-07-09 01:46 Anytao      
@flyingfish
呵呵,对此深有同感,好的作品强调的是适用,而不是故作高深。

谢谢:-)

 回复 引用 查看   
#98楼[楼主] 2008-07-09 01:53 Anytao      
@sishuiyitan
呵呵,具体问题最终是要具体分析。

例如数据库层的设计,通常情况下可以有一个通用接口IDAL来提供同样的访问契约,而具体到每个实体访问上,再通过实现IDAL接口来进一步抽象:
IUser: IDAL

具体到与数据库交互上,不同的实现单元与数据库交互的粒度是不同的,这样能够保证有效的分层隔离,又能有效的在高层管理。



 回复 引用 查看   
#99楼[楼主] 2008-07-09 01:54 Anytao      
@AlexLiu
欢迎沟通,欢迎常来:-)

 回复 引用   
#100楼 2008-07-16 15:23 deng-sf[未注册用户]
写得很好啊,很实在.期待你的下一本书.
 回复 引用 查看   
#101楼[楼主] 2008-07-16 22:39 Anytao      
@deng-sf
呵呵,我也很期待:-)

 回复 引用   
#102楼 2008-09-17 08:42 guest[未注册用户]
写得不错
 回复 引用 查看   
#103楼[楼主] 2008-09-18 20:37 Anytao      
@guest
一点小小的感受,希望分享更多

 回复 引用   
#104楼 2008-09-20 10:04 lxydmq1[未注册用户]
耐得寂寞,诚哉斯言!
 回复 引用 查看   
#105楼[楼主] 2008-09-20 10:35 Anytao      
@lxydmq1
呵呵,乐在寂寞:-)

 回复 引用 查看   
#106楼 2008-10-19 19:07 AlexLiu      
技术抄袭的自我陶醉状态。。我貌似就这个状态。涛哥。。。咋整啊。
 回复 引用 查看   
#107楼 2008-10-24 14:45 "鸟巢"      
我也走过了很多湾路,有一段时间还把自己的身体都搞坏了。
你的每一编文章我都有读,真的很佩服你的坦诚。
凭着你的这份坦诚及对后人责任心,不买你的书就对不起自己的良心了。
期待你后面的精彩.......

 回复 引用   
#108楼 2008-11-04 22:23 Cystian[未注册用户]
今天下午刚在当当下单订书了,书的内容先前看过一点点,觉得不错,书到了读完后再谈其它的,不过先行拜过
 回复 引用 查看   
#109楼[楼主] 2008-11-11 22:51 Anytao      
@AlexLiu
呵呵,这么多人才坐你旁边。慢慢整吧:-)

 回复 引用 查看   
#110楼[楼主] 2008-11-11 22:53 Anytao      
@&quot;鸟巢&quot;
呵呵,谢谢,你的话让我脸红了。

不管怎样,在这里是我每天的乐趣,结识很多的爱好者,也有更多的动力继续:-)

 回复 引用 查看   
#111楼[楼主] 2008-11-11 22:56 Anytao      
@Cystian
呵呵,谢谢支持,继续努力:-)

 回复 引用 查看   
#112楼 2008-12-13 15:40 梦涯      
前段时间热播的电视剧李小龙传奇,和其他门派比较,李小龙毫不保留自己的武功招式,换回各个门派的尊敬,最终让他能融各家之所长成为受人敬仰的一代宗师,我想lz的毫无保留正是这种精神的延续 也许你对整个技术领域来说,并不象BILL那样伟大的改变千万人的命运,但对于象我这样的拜读者来说,至少你改变了我的命运
 回复 引用 查看   
#113楼[楼主] 2008-12-15 10:16 Anytao      
@梦涯
哈哈,我也看了那部片子,算我难得花时间在电视剧上,不过感触和你一样。

对于《你必须知道的.NET》的起点,我想得很简单,也没有太多理想,只是拿出来分享感受,同时得到更多大家和同志的反馈,此足矣。谢谢的你支持,继续努力喽:-)

好!!
 回复 引用 查看   
#115楼[楼主] 2009-02-05 10:47 Anytao      
@海洋——海纳百川,有容乃大.
:-)

 回复 引用 查看   
#116楼 2009-02-08 00:17 CooperVon      
作为一个新手,有幸拜读此文,不亦乐乎!!

 回复 引用 查看   
#117楼[楼主] 2009-02-08 11:20 Anytao      
@CooperVon
呵呵,希望有所启示:-)

 回复 引用   
#118楼 2009-02-24 08:51 琴鸟
开始关注il了。
我也是一直坚持基础为基本的思想.
初步理解抽象,接口的时候.豁然开朗.
当在程序中某次初步体会到抽象的含义.记得自己眼睛都红了。

 回复 引用 查看   
#119楼[楼主] 2009-02-24 10:58 Anytao      
@琴鸟
呵呵,深有同感,技术是玩儿出来的,要玩儿的专注,玩儿的有乐趣才行。每次感动,都是一点一滴的,但是足够强大的时候,我们都会“得意”的笑:-)

 回复 引用 查看   
#120楼 2009-05-08 13:52 WangTony      
今天看到这个标题的时候就特别兴奋,我刚问TAO问完这个问题,浏览主题是就发现了它,对后很是感激,我可能是处于两年前的你,特别需要的是点开,希望能在这种练就过程中得到涛哥的大力支持,先去找书了,还得感谢呀!!
 回复 引用 查看   
#121楼[楼主] 2009-05-09 23:08 Anytao      
@WangTony
共同学习和进步

 回复 引用 查看   
#122楼 2009-09-06 00:56 好俊的功夫啊      
你的书我买了,现在在看第二遍,
 回复 引用 查看   
#123楼 2011-06-28 20:44 肖敏      
引用Patrick Smacchia, Pracical .NET2 and C#2,.NET领域的百科全书,可以当作新华字典来读技术。

应该为Practical .NET2 and C#2 ,少了一个字母

评论共2页: 上一页 1 2