技术佬的读书回忆:这些年来我读过的经典.net图书(一)

技术佬的读书回忆:这些年来我读过的经典.net图书(一)

编码文章call10242025-05-16 14:34:421A+A-

我的技术之路可以用墙头草来形容,大学四年学了三年的C语言(当然也包括C++),不过最终只停留在语法层次上,写一些小玩意可以,但写一些什么驱动、底层库或系统层面软件之类的毫无工程经验,我对枯燥的底层技术兴趣也不大,不过收获总该是有的,我在使用.net和python时,对什么内存、IO、优化之类的,没有多少的阻碍感。期间也学了一大堆杂七杂八的语言:java,python,js,go等。

样样半吊子,还不如一样精。言归正传,我敲码的这些年,用得最多的是.net了,其次就是python,今天就来聊聊我这些年来看过的比较经典的.net书籍了。经典的.net书籍一大堆,我也不可能全都看完,就算看过了,也可能忘记了,之后如果记起的话我再一次补充回来吧。

垃圾书我也读了一大堆,所以也不作任何介绍,因为只会浪费大家的时间。

太过入门和偏向语法类的书籍我就不介绍了,纯粹堆代码增加页数的我也不介绍。书籍这东西,宁缺勿滥。


第一本在C#领域(非工程非实战方向),最有深度的书非CLR via C#》莫属,这是一本求甚解的书。

最新版是第4版,不过也已经发布10年之久了,我估计已经是绝版了,为什么呢,虽然现在有C#9,.net 5, .net 6了,这几年.net的发展真可畏神速,但底层的CLR却并没有大变过,书中的知识99%都是适用的,为了出版而出版就没什么意思了(不怕得罪的说句,不像国内的技术书籍,一版又版,没有多少实质性的东西在里面,只为凑页数),作者Jeffrey Richter是一个有追求的人,他的书每一段都是知识点(没有废话),放现在来说,这里的技术含量如果用国内的文笔来写的话,厚度要加3,4倍,技术深度却无法达到。

从整体上讲,这本书的写作特点是,先从历史方式讲解某种技术出现的原因,例如匿名类型和lambda表达的出现,然后包括同一技术的演化和更替,例如线程(thread),任务(task)再到异步(async),无一不是对非阻塞编程的简化。

这本书的内容侧重于非常基础的知识,即偏向于.net底层的东西,磨刀不误砍柴工是对这本书最好的描述了。

书中主要分为五大部分:

  1. clr基础篇
  2. 设计类型
  3. 基本类型
  4. 核心机制
  5. 线程处理

这本书相对于同类型其他书的最大不同点我认为在:

  1. 对线程、异步、锁的介绍非常全面且深入,是我看过所有.net书中该主题最有深度和广度的。其中包括.net1.0最初的线程,然后到.net2.0的线程池,再到之后的任务(Task),再到.net4.5的异步(async)和并行(Parallel),书中并没有唐突地冒出一个技术,而是循序渐进地讲解一个技术代替并一个技术的原因。
  2. 对于技术点不是单纯地灌输如何用,而是告诉你为什么要这样用和不要这样用,例如体现在第20章(异常和状态管理)的设计规范和最佳实践中。
  3. 对于一个罕见的技术点,作者不只是介绍完技术点作罢,而是会提供用到该技术点的一个案例。例如第22章(CLR寄宿和AppDomain),这个技术对于初次接触或一直无法在实践中使用的读者来讲是一头雾水,但作者讲解了微软自家的asp.net和sql server就是使用该技术来提升运行效率和健壮性的。
  4. 翻译质量相当好,我没有发现明显的技术常识性错误,而且译者周靖是技术译书界比较有名的人物了。
  5. 对编码的详细讲解,好多其它的书籍对该部分内容一笔带过,导致在开发过程中经常遇到各种乱码的问题无法解决,每次只能不断盲目地百度和google。

下面我们再来回顾一下该书的部分章节和内容:


第二本是著名的动物书系列,《C# 7.0核心技术指南》,该书的最大一个特点是贵(259大洋)和厚(1037页),哈哈。

本书对.net基础的讲解基本上面面俱到,无论是语言语法、CLR、还是常用类库等,可以用包罗万象来形容,而且知识点相当密集,也是基本上没有废话,这样说吧,这本书如果以国内的写作手法出版,负责任地说:应该能写4000页。

本书相对于其他同类书籍,我认为最大的不同点有以下几个方面:

  1. 丰富的类库实例讲解,其中包括各种网络相关的类型:http,ftp,tcp,smtp,dns等,也包括各种集合类型的异同对比等。
  2. xml技术用于整整两大章节来讲解,其中包括比较旧的XmlReader技术和新的LINQ to XML技术,如果算上序列化那章的话,足足就三个章节。
  3. 反射与动态编程,与Python语言交互等。
  4. 深入的正则表达式讲解,包括其他书籍少提及的前向与后向条件、分组等,并包含了大量的实例。
  5. 讲解了微软最新的Roslyn编译器,给了读者一个入门并了解的门径了。
  6. 讲解了IL代码了,这个东西估计要随着经验的增加,特别是开始创建一个开源工具时才用到,如果单纯写业务代码,可能职业生涯也用不到,我用到它的一个地方是需要在运行时生成类类型定义。
  7. 书中贯穿了对.net core 2.0的讲解

书中的部分章节如下:


第三本是《C#和.net 2.0 实战》,这本书估计现在很少人知道了,因为是2.0时代的书籍。

这本书的含金量相当之高,可以讲是当年的传奇之作。这本书我已经买过两本,第二本是我从二手书那里买回来的,用于收藏。全书400多个言简意赅的例子,因为是.net2.0时代的书籍,所以很多asp.net 2.0、web service、windows form之类的技术探讨现在用不到了,可以忽略不看,其它的知识点仍然十分值得一看。


第四本是《深入解析C#》(下次再谈,书不记得扔哪里了,先从网上找个封面)


最后一本是红皮书,《C#高级编程(第11版)》

这本书偏向于应用与技术框架,与其他同类书籍不同在于:

  1. 以前经常google某方面怎么用,在这本书里面可能就有比较权威的用法了,例如HTTPCLIENT、并发集合BLOCKINGCOLLECTION的正确用法等。
  2. 对基本语法和类型的讲解点到即止,不再长篇大论了,符合本书标题中的高级二字。
  3. 有工程实践方面的介绍,例如vs 2017使用和docker,依赖注入、测试、日志跟踪等。
  4. 讲解了一些高级类库的使用,例如管道、压缩流、高级锁、安全、并行库等。
  5. 对于工程中用到的开源技术也有详细讲解,例如:entity framework core。
  6. 对具体某个技术有详细项目案例讲解,例如asp.net core,windows应用程序(uwp)、Xamarin。


其实还有一本是《精通c#(第6版)》(也是挺不错的书籍,我对他的定位是初中级吧,如果已经有了上面那个高级C#编程,这本感觉可买可不买,这本书更偏向于手把手教你,特别是wpf和asp.net部分,但作者的写作功力摆在那,也是一本初中级的好书)

对于技术的学习,我从来的建议都是不要吊死在一本书上,要交互学,应该是同时两本或几本书一起学,因为每本书都有各自的侧重点,一个知识点在这本书上没有讲透,似懂非懂,在另一本书上可能却醍壶灌顶。

如果喜欢我写的文章,点赞,关注,评论一下,这或许是我继续写下去的动力了。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4