Zhaojie - blog.zhaojie.me - 老赵点滴 - 追求编程之美

Latest News:

比较下中国大陆和香港之间的个税差异 6 Jul 2013 | 08:40 am

一直听说中国大陆个税税率之高,但一直没有跟哪儿作过比较,最近听说香港的税率很低,因此也想具体比较一下到底会差多少。单从数字上看,两者简直天差地远。例如,同样是累进税率,大陆从月入8K开始的部分就要缴纳20%的税率,超过38.5K则是30%,而香港最高也就只有17%。当然,比如香港租房之贵也遥遥领先于大陆一线城市,但房租亦可作为征税前的减免。正因为如此复杂,我们还是需要进行详细的计算才能有直观的概念...

抓取InfoQ内容的calibre脚本 30 Jun 2013 | 08:11 pm

两个礼拜前我公开了一个抓取今年MSDN Magazine内容的calibre脚本,这次则是针对InfoQ的。最近用Kindle Paperwhite看书一发不可收拾,自然想要更好地利用这个设备。InfoQ是一个难得的高质量站点,可惜它的RSS只输出摘要,甚至只有前十条内容,让人感到十分不方便。但这显然难不住calibre这个电子书管理神器和伟大的程序员,于是我这段时间又断断续续地编写了InfoQ站...

使用calibre抓取2013年的MSDN Magazine 18 Jun 2013 | 08:11 pm

前段时间入手Kindle Paperwhite,这已经是我第三个Kindle设备了。想当年我花了四五千块钱,在亚马逊美国站上跟着老美预定,可谓是全世界第一批Kindle DX(大屏幕的那款阅读器)用户,不过用着用着后来还是去玩平板了。这次Kindle Paperwhite出了国行设备,才849元,顿觉实在是太便宜了,立即下单,第二天就拿到了这台设备。 有了设备自然要用,除了官方书店里买的书以外,...

防止装箱落实到底,只做一半也是失败 10 Apr 2013 | 07:21 pm

.NET提供struct类型,正确使用可以减少对象数量,从而降低GC压力,提高性能。不过有时候我会发现,某些同学有这方面的意识,但是有时候一疏忽一偷懒,就没有得到相应的效果了。这里举一个真实的例子:假设我们要将一对int作为字典的键,用于映射到某些数据,那么你会怎么做?当然我们可以直接使用Tuple ,但这样就可能产生大量的对象。于是我们打算使用自定义的值类型: 这么做正确吗?假如你做一下测试,...

为什么我不喜欢Go语言式的接口(即Structural Typing) 10 Apr 2013 | 03:37 pm

所谓Go语言式的接口,就是不用显示声明类型T实现了接口I,只要类型T的公开方法完全满足接口I的要求,就可以把类型T的对象用在需要接口I的地方。这种做法的学名叫做Structural Typing,有人也把它看作是一种静态的Duck Typing。除了Go的接口以外,类似的东西也有比如Scala里的Traits等等。有人觉得这个特性很好,但我个人并不喜欢这种做法,所以在这里谈谈它的缺点。当然这跟动态...

为什么我认为goroutine和channel是把别的平台上类库的功能内置在语言里 9 Apr 2013 | 10:52 am

这几天看了《Go语言编程》这本书,感觉一般,具体可见这篇书评。书评里面我提到“Go语言的goroutine和channel其实是把别的语言/平台上类库的功能内置到语言里”,这句话当然单单这么说出来是没什么价值的,于是我也就趁热把它说得再详细一些。我的看法简而言之是:由goroutine和channel所带来的主要编程范式、设计思路等等,其实基本都可以在其他一些平台中配合特定的类库来实现。 我们知...

如何在不装箱的前提下调用“显式”实现的接口方法?(答案) 7 Apr 2013 | 10:51 am

之前的问题是:假如一个struct实现了某个接口,却“显式”实现了其中的成员,那么我们又该如何访问这些成员?其实已经有不少同学抓住了关键,那就是使用泛型,例如有人提出了这样的辅助方法: 我们没有进行类型转化,只是让运行时可以“认识到”类型T实现了IDisposable接口,这自然可以在不装箱的情况下调用其成员。可惜的是,这种做法的“意识”到位了,却是错误的,原因在于忽视了值类型传参的特点:复制所...

如何在不装箱的前提下调用“显式实现”的接口方法? 24 Mar 2013 | 05:45 pm

上篇文章谈了针对一个struct对象使用using语句的时候是否会装箱的问题,结论是“不会”。尽管using语句是针对IDisposable接口的,但我们在调用的时候其实已经明确了目标方法,因此根本不需要装箱(或查找虚函数表)了。后来有同学在微博上提出,这点在《CLR via C#》这本书里提到过,于是我去翻了翻,原来是这样的: 我参考的是其第四版电子版,这段代码出现在第5章,133页开始。那位...

针对struct对象使用using关键字是否会引起装箱? 21 Mar 2013 | 08:06 pm

说起来这是个很简单的问题,我以前肯定可以给出确切地答复,但是前几天想到这点的时候突然楞住了。把这个问题发到微博上去之后,很多人说是“会”,但要么是猜的,或是给出的原因明显不靠谱。最后我只能自己简单研究一下了,最后得到的结果是“不会”装箱。请注意,这个问题是指,对于一个实现了IDisposable接口的值类型对象使用using语句,而不是将它直接复制给一个IDisposable引用——后者显然是会装...

串与绳(1):.NET与Java里的String类型 12 Mar 2013 | 07:29 pm

话说“字符串”是我们平时最常用的数据类型之一,它表示一个字符序列。在大部分的语言中,字符串还是一个不可变(Immutable)的数据类型。“不可变”意味着要改变则只能生成新的字符串,无论是连接两个字符串,获取或是替换字符串的一部分,这对于内存和CPU都是不可避免的开销。在一般情况下,只要使用合理这些开销都不会构成大问题。不过对于某些类型的应用,例如我前段时间在工作中涉及到的编辑器(IDE那种),就...

Related Keywords:

virtualbox mac os, monotouch, 老赵, java suck, win7 mac os, auther key, t410 安装 macos, vbox mac os, mac vm 黑屏

Recently parsed news:

Recent searches: