这个寒冬,如何让我们的身价翻倍?

——《深入理解.NET(第2版·英文版)》读后感

微软4大名著评选结果揭晓

在开始正文之前,我先给大家讲一个真实的故事:我有一位朋友,他的一位同学原来是做测试的,几乎没有碰过.NET,工资只有1.5k。后来,他辞职回家,利用3个月时间在家苦读了一本书。三个月后,他前往上海找工作,在微创谋得一份开发工程师的职位,月薪6.5K。面试的时候,他将在本书中所学的垃圾收集等CLR内幕知识随口道出,给面试官留下来深刻的印象。究竟是什么书这么神奇呢?这本书就是.NET领域内的不朽之作——《深入理解.NET(第2版·英文版)》!

说作者:在windows平台上开发的程序员肯定都知道Jeffery Richter(如果你还不知道,请赶快用最顺手的搜索引擎搜一把)。Jeffery Richter是微软很多项目的咨询顾问,包括.NET。他的文章总是从原理处入手,深入浅出的娓娓道来,将一个个问题在你面前慢慢的剖开,看他的书的时候总是会不断的点头,嘴里念着:哦,原来如此啊。这和市面上充斥大量的讲示例,抄MSDN的书有很大的不同。

说此书:这本书的第一版我在大学的时候就读了,记得我那个不大的学校的图书馆里有几本,可是从大二到大四,三年中我只借到了一次,预约了很多次都没有到手,不知是谁长久的霸占着她。.NET 2.0发布后Jeffery Richter也很快对这本书做了更新,书名也换了—CLR via C#,抱着对第一版的崇敬,手里也有几个闲钱我就奔到书店想入手一本,可是拿起来的时候,怎么,译者变了?当时的第一反应就是,打住,到网上搜搜评论然后再决定买。后来发现第一版的译者李建中老师由于和某某出版社发生了一些不愉快的事情,所以放弃了第二版的翻译,更要紧的是第二版的评论却不是很好,如是买书的想法就此作罢。

终于,今年图灵出版社引进了这本书的影印版,现在大家可以以中文书的价格,享受这块Jeffery Richter精心制作的蛋糕。

说内容:.NET从1.0走到今天的3.5,还有即将到来的4.0,我们无不感受到技术革新速度之快,在繁忙的工作当中,我们如何应对变化?软件设计里,我们知道,应对变化最好的办法就是首先找出不变的东西,那么.NET里什么是不变的?或者变化速度很慢?那就是CLR,虽然.NET已经发布了这么多版本,但目前CLR只有两个版本。

下面就列举本书中一些精彩内容:

本书开始的时候就以启动一个.NET程序,操作系统如何执行它,CLR何时以及如何参与进来,JIT编译器如何编译代码将.NET程序运行过程说的明明白白,很多人都知道.NET程序是运行在托管环境里,却不知道操作系统运行一个普通的Win32程序和一个.NET程序有何区别。然后又用大量的篇幅介绍讲解程序集的文件结构以及元数据(大多.NET程序员都没有Win32编程的经验,对于PE文件也许都了解很少)。

在第三章,作者为我们准备的是强命名程序集相关的内容,这可是.NET解决DLL Hell的法宝。

在第五章中,最感兴趣的莫过于值类型的装箱和拆箱了,在.NET中很多地方性能问题就是由于这个所引起的,我也是在这里第一次知道装箱和拆箱居然不是互逆的过程。

对于面向对象中,成员的可见性和虚方法的调用是非常重要的,你可以在本书第六章获取相关知识。

对于属性,这是.NET引进的一个新元素,OO里为了不将类型内部的字段直接暴露给类型外部,常常编写一些setter和getter方法,类型外部通过这些方法访问字段(这也是Java里到处是setXXX和getXXX方法的原因),.NET里的属性具有访问字段的简便性,也有setter、getter方法的封装性,但是你知道.NET是如何实现属性的么?本书第九章会告诉你。

Windows本来就是一个事件触发的系统,点击按钮会触发事件,时间到会触发事件,.NET将Win32的消息循环封装,提供了一个名为事件的语言元素,通过本书第十章,你会了解到事件这个成员编译后,居然是一个字段两个方法,本章开始就用一个很生动的例子给你透透彻彻的讲解了一番事件的用法。随着你使用.NET的时间越来越长,你会发现事件真是一个好东西,你会不再限于使用.NET提供的那些事件,还会编写自己的事件,向外界暴露接口。在本章,作者还说了一句很深刻的话,忘记原话是怎么说的,意思是.NET里只有类、字段和方法三种元素,其他的事件啊,委托啊,等等一切都是基于这些东西的封装。

编写代码时,几乎时时要与字符串打交道,如何高效的使用字符串?在公司,我看到一个遗留项目的代码里用几十次加号将一串的变量字符串拼装成一个SQL语句(也许你也见到过),而这个字符串拼装的过程几乎每一次访问数据库都要执行一次,我当时就在想那位仁兄肯定没有看过这本书,在本书的第十一章作者介绍了为什么这样的拼装是性能低下的,还告诉我们StringBuilder是更好的方案,不仅如此,还告诉我们这其中是为了什么。

我们也许都知道枚举这个东西,但很多人可能不知道还有一个位标记,还记得以前设计的一个权限管理系统就是以位标记位基础的。关于位标记更多内容本书第十二章有更详细的介绍。

作为.NET 2.0中的重头戏泛型,本书第十六章用了一章的篇幅介绍,从泛型的使用到泛型约束,每一个细节都没有错过。

本书第17章介绍的是Attribute,这个东西和反射配合起来真是魅力无穷啊,很多ORM框架都是以此作为基础,现在在工作中真是爱死她了。Attribute就像一个标签,贴在哪里就粘在哪里,可以在运行时通过反射查询这些标签,你就可以获取一些额外信息。

大部分程序都是数据库驱动的,在数据库中我们可以将一个整型的字段置为null,但是在.NET里却不行,怎么办?.NET 2.0为我们带来了可空值类型,这在本书第十八章有介绍。

十八章内容是不是觉得很丰富了?可不,更丰富的还在后头,最后一部分作者用了六章为我们详细讲解了CLR的相关特性,最精彩的莫过于最后两章:异步操作和多线程相关的内容。

第二十章的垃圾收集可谓透彻,如果你想面试.NET的高端职位此章的内容可一定要看的仔仔细细的,这可是.NET的精华之一。

书很精彩,作者很牛,最后的决定在于你,赶快买一本备在手边随时翻翻吧。

谨以此文答谢Jeffery Richter为我们带来这本好书,图灵出版社为我们引进此类佳作。

附上几个网上书店地址:

china-pub:深入理解.NET(第2版.英文影印版) 76元
当当网:深入理解.NET(第2版.英文影印版)  71.3元
卓越网:深入理解.NET(第2版.英文影印版) 71.2元

鸣谢:本文转载自http://www.cnblogs.com/yuyijq/archive/2009/01/04/1368462.html。本文的作者是一位年轻有为的.NET工程师,翻译了《C# 3.0 Unleashed》(将由图灵公司出版)一书。

这个寒冬,如何让我们的身价翻倍?相关推荐

  1. 计算机考研250,考研“通过率”最高的5个专业,分数250左右,毕业后身价翻倍...

    文/萌萌秀 如今考研已经成为了大家的热点话题,随着社会的发展,竞争压力越来越大,很多高校毕业生都面临着毕业就失业的问题,而为了能够顺利的找到工作,很多同学都通过考研来提升社会竞争力. 其实相对来说,本 ...

  2. 文心一言员工跳槽工资翻倍, AI 人才备受追捧;推特称其部分源代码遭泄露;Docker 撤回受争议的收费方案|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. 面试编程岗,期望40K,为什么老板给我翻倍?

    临近年底,互联网正在经历优化升级,不少公司出现了裁员新闻,也有很多人纷纷转型.跳槽.那么 IT领域内,什么样的工作比较好? 最近笔者看笔者在网上看到一个被裁员的帖子,但仍被震撼到了,也许答案不言而喻: ...

  4. 跳槽就能薪水翻倍?这样的日子一去不复返:互联网人才“高薪”泡沫刺破

    这段时间,互联网巨头的中层们如履薄冰.腾讯手起刀落"裁撤10%中层干部",在这之前,百度.京东.小米等公司在组织调整公告中,均提及了要提拔年轻员工的想法."高薪挖人&qu ...

  5. 矿机牛市,价格翻倍至3万一台!有人果断入手,有人观望不前

    文 | 黄雪姣 来源 | Odaily星球日报(ID:o-daily) 矿机全产业链涨价,买矿机要观望还是梭哈? 暴利重回矿业. 从矿机厂商.经销商到维修点,全产业链无一不在涨价. 大佬和一众从业者们 ...

  6. 上海部分小区地下车位价格翻倍升至70万-车位-价格

    上海部分小区地下车位价格翻倍升至70万|车位|价格 □东方曼哈顿小区地下车位的价格已经攀升到六七十万元. 晨报记者 宋杰 张昱欣 陈抒怡 近日,家住徐家汇附近的俞女士想要购买一个车位,她记得去年询问的 ...

  7. python处理速度_如何让Python处理速度翻倍?内含代码

    原标题:如何让Python处理速度翻倍?内含代码 作为在日常开发生产中非常实用的语言,有必要掌握一些python用法,比如爬虫.网络请求等场景,很是实用.但python是单线程的,如何提高python ...

  8. 32岁程序员,补偿N+2:“谢谢裁我,让我翻倍!” 网友:榜样!

    2019年的冬天,"冷"的有些频繁. 12月19日,<马蜂窝被曝裁员40% UGC模式变现难?>爆火,据悉马蜂窝将裁员40%,交易中心成了"重灾区" ...

  9. 这次性能优化, QPS 翻倍了

    欢迎关注方志朋的博客,回复"666"获面试宝典 前段时间我们的服务遇到了性能瓶颈,由于前期需求太急没有注意这方面的优化,到了要还技术债的时候就非常痛苦了. 在很低的 QPS 压力下 ...

最新文章

  1. Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明
  2. PostgreSQL免安装部署方法
  3. Spring Cloud一站式的微服务架构解决方案
  4. Oracle 原理:用户和权限,Profile,系统权限,对象权限,角色
  5. 01背包问题:回溯法和限界分支、递归和迭代方式
  6. 精彩回顾 | Apache Flink x Iceberg Meetup · 上海站
  7. Java堆外内存:堆外内存溢出问题排查
  8. oracle中 sql语句:start with .. connect by prior.. 用法
  9. Quartz是一个任务调度
  10. (三)2005年我的第一次软件行业创业,烧掉30万、2年时间打水漂的惨痛教训
  11. 中小企业怎样转型做跨境电商独立站?
  12. numpy.random.choice()用法详解(附官方文档)
  13. 访问HDFS报错:org.apache.hadoop.security.AccessControlException: Permission denied
  14. 狂打气球html5游戏_4399h5游戏_企业团建活动小游戏:合力吹气球
  15. SAP BW 例程(Routine)【开始例程、关键值或特性的例程、结束例程】
  16. appium python框架结构_Appium 自动化测试之框架
  17. Java中tostring重写_使用ToStringBuilder重写toString方法
  18. 中兴M6000 常用业务命令
  19. 1301_两种方式为开发板增加串口监控功能
  20. 网易互娱游戏研发工程师笔试

热门文章

  1. html滑动直播,HTML5 canvas实现的静态循环滚动播放弹幕
  2. pycahrm配置path_Pycharm常用配置
  3. python表达式计算器_Python正则表达式实现简易计算器功能示例
  4. 【c语言】蓝桥杯算法提高 征税程序
  5. c语言 文件名变量,C语言中,如何用根据不同的变量来更改文件名?
  6. EasyUI DataGrid根据字段动态合并单元格
  7. 【HZOI2015】帕秋莉的超级多项式
  8. 页面A使用window.open打开页面B,然后取得B的返回值
  9. 新款Linux版Skype迎来首次更新:提升稳定性,UX微调
  10. Target host is not specified错误