优大网

9 / 15

代码审查,也要天时地利人和

摘要:代码评审是指在软件开发过程中,通过对源代码进行系统性检查的过程。通常目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平。这可不是一件简简单单的事。

当代码审查被广泛采用的时候,有很多种方法可以完成代码审查,团队争相使用最好的方法来完成代码审查已经是很常见的了。

斗胆的说一句:干这行的,你还是需要一点灵活性的。至于怎样执行代码审查程序取决以下几点:

人员

你的员工当中有多少开发人员,又有多少专业知识和人际水平都很丰富的审查人员?有的团队里只有一个高级开发人员,他们既是事必亲躬的代码员,又是代码审查员,可他们的所得和付出并不成正比。在一个小的团队里,资历高低一直是个问题,不管你试图完成什么任务。

地理位置

你的团队在哪?分散在各个区域?还是集中在一个大办公室里?审查代码需要集中注意力和及时反馈,当开发人员坐在一起的时候这两点就变得容易多了。如果你的团队不是同地协作,像“Over-the-shoulder”这样的代码审查过程就很难实现。

行业

所在的这个行业有什么规则和制度?在一个纪律严明的行业,你就必须遵守审计和报告的规则,这就意味着有一定的方法可以追踪到你的代码审查的频率和质量。如果你在安全性第一的行业,在代码审查的时候你同样需要关注并避免安全漏洞。

复杂性

你的代码有多复杂?一个审查员够了吗?还是需要多个具备不同专业知识的审查员?比方说,游戏开发可能涉及到许多复杂的逻辑来处理角色转换和场景跟踪,同时还要将特效动画和内存管理技术进行合并。因此,具有多个“Sets of eyes”的代码可能是审查像游戏开发这样复杂代码最有效的方法。

许多情况下,对于不同的项目会有不同的需求——你可能有多个团队正在搭建用户配置和需求都不一样的应用程序。一个你信得过的代码审查工具能够帮你完成高质量的代码审查流程,不管你使用的是什么方法。下面给出一些小建议,审查流程结合审查工具,这也许能解决你平时遇到的一些问题。

1. 加强交流

任何类型的审查过程,不管是代码审查,文献审查,或是性能审查,最好能够面对面的完成。当使用工具完成代码审查之后,开发人员在规定时间内提供语言反馈,如果不在同一地点,可以通过电话或视频对反馈的信息进行交流,因此,你也可以把代码审查过程看作是一次合作与指导的机会。

2. 发挥特长

如果正在审查的代码和其他区域的代码有接触点,或对安全,性能,延伸性等有影响,那就必须让更多的人检查代码以确保所有的分枝都已被考虑到位。在这种情况下,最好建立一个包含所有专业知识的人员库。这个工具可以帮助你甄别这些有用的人,并分配到需要的代码团队。你也可以利用这个工具收集所有人员的评论并分享给整个审查团队,这样大家可以相互学习。

3. 共享代码审查评论

使用工具的好处之一就是集中人员来审查相同的代码,将一组人集中到一起做小组评审,让每个人站在自己的角度思考代码里潜在的“问题”。每一个人都要对代码进行评论,并且允许团队成员看到相互之间的评论。能同时看到代码和别人的评论对整个团队来说是有很多好处的:

 

  • 没有重复的评论——第一个人说过的,第二个人就不能重复说。
  • 团队学习——能够看到其他人的评论,审查员可以相互学习。
  • 重复审查——有些时候一个审查员可以抓住另一个审查员的错误,这样就可以阻止错误被引入代码。

 

4. 审查指标

在代码审查过程中有一件事是肯定的,那就是使用工具指标。利用指标作为改进代码库的方法,这在代码审查过程具有很强的附加功能。工具可以告诉你哪些是最常见的错误,它们被引用在哪里,又在哪些地方重复过。同时可以根据在循环审查阶段,建立在缺陷记录基础上的质量问题,来判断哪些代码看上去易受攻击。在检查的时候就能阻止bugs,这明显是确保代码质量的最经济最高效的方法。metrics的使用还可以帮助开发人员找到哪些方面需要加强训练,以便以后开发出更好的代码。

5. 挖掘未来的代码审查员

你必须提升自己的的高度。因为要想识别出团队里的人哪些是可以进入审查员角色,就要花很大的精力和时间。理想情况下,你团队里的所有开发人员都能执行同行审查,这是合作程度和效率最高的方法,为了能够准时交付优质代码。但这需要花大量的时间和精力来打造这样一个高水平的团队。

代码审查很重要,审查过程中,审查人员和开发人员不是对立的关系,而是互助、沟通、协作和学习的过程。团队形成互助、互学的气氛,既能互相增长团队的知识和经验,还能把产品做得更好。Code Review的核心是:互助,沟通,协作,学习的过程,这是一个美妙而享受的过程,是跨越需求分析、架构设计、编码等各阶段的过程。(编译/薛梁 责编/夏梦竹)

原文:smartbear

http://www.csdn.net/article/2013-06-20/2815921-Making-Code-Review-Work

切换到Git的8个理由

提到版本控制,最近大家都在谈Git。当然,四处议论纷纷还不足以证明切换到Git上有多么正确。这里有一些能证明Git非常出色的有力事实。

 

1. 节省时间

想象一下,每次动鼠标前你都要等待5分钟。这非常讨厌是不是?有了版本控制也是一样——我们每个命令消耗几秒,但是工作一天也累积起来了。但是Git快如闪电。把你的时间用在其他更重要的事情上,而不是等待版本控制工具的响应。

null

 

2. 离线工作

你出差的时候要工作怎么办?用诸如Subversion或者CVS的集中式版本控制系统,如果你不能连上中央版本库你就不能工作。有了Git,在你的本地机器上几乎能做任何事:提交、查看项目完整历史记录、合并(merge)或者新建分支……Git让你来决定何时何地开始工作。

 

3. 回退错误

有时候我会犯错(我也不敢相信!)。我喜欢Git的是它的一个小小的回退命令就能用于几乎任何场景。修正最后一次提交,因为你忘记包含一个小改动。撤销整个提交,因为那个特性已经不再需要。而且当处境变得困难时,你甚至可以用Reflog来恢复“已删除”的提交——因为在幕后Git极少会真正删除什么。这样心定气闲。

 

4. 睡得香

你曾经粉碎过Subversion的版本库吗?我就做过(我说这个的时候记忆的伤痛犹在)。有了Git,我可以信心十足,因为团队里每个人在自己电脑上的克隆就是一份可用的备份。另外Git里的几乎每个操作都是增加数据(很少有删除的)。想搞砸都很难。这种感觉很好。

 

5. 产生有用的提交

把牛奶、冰淇淋和番茄投到搅拌机里会有(至少)两个问题。首先,启动搅拌机后,看着这一团东西,没人能说出你实际上放入的是什么。另外,你没办法把番茄再“回滚”。你做的一批不相关的提交(一点点A特性,再带一点B特性,还有一个小小的补丁……)也是一样的。对你的队友来说,很难理解发生了什么。当出现问题时,他们也不能简单地回滚特性A。Git能帮你避免这种混乱和创建粒状提交。其独一无二的“缓存区”概念能让你决定在下一个提交里到底包含哪些改动,甚至小到哪些行。这是版本控制的用处所在。

 

 

 

6. 按自己的方式工作

当用Git工作时,你可以有你自己的工作流程。那个你觉得好的流程。使用Git你不需要成为编程高手。当然你可以连接多个远程的版本库,用变基(rebase)代替合并,需要时工作在子模块上。但是你也可以只是简单地工作在一个中央远程版本库上,如同在用Subversion一样。不管你的工作流程怎样,所有其他的优点都还在。

 

7. 不会把东西搞混了

分开关注是追踪事情的最高原则。当你工作在特性A上时,任何事(人)都不会被你未完成的代码所影响。如果这个特性不再需要了呢?或者如果在10个提交之后,你发现你做的完全不对呢?分支是这些问题的答案。其他的版本控制系统也有分支,但是Git是第一个让它做好它该做的:快速简单。

 

 

 

 

8. 潮流

只有死鱼才随波逐流。有时候聪明的开发者也这样。Git被越来越多的知名公司和开源项目所使用:Ruby On Rails,jQuery,Perl,Debian,Linux内核,还有很多。大型的社区通常自身就是一个优点,因为一个生态圈会围绕着该系统演进。大量的学习指南,工具,还有服务,会让Git变得更加吸引人。

 

英文原文:git-tower,编译:伯乐在线 – @奇风余谷

译文链接:http://blog.jobbole.com/41527/

你应该关注的几个Eclipse超酷插件

摘要:如果你是Eclipse用户,那么本文介绍的这些插件肯定会对你有所帮助,如ShellEd、More Clipboard、Smart Save和AnyEdit等。

来自非营利性Eclipse基金会的Eclipse IDE以其插件生态系统著称。Eclipse市场拥有海量插件可供下载,你可以通过插件定制自己的Eclipse。最近我在Eclipse市场闲逛,想看看能不能发现一些有意思的东西。实际上,我确实找到了一些在我看来虽然不是很有名却很酷的东西,想在这里和大家分享。

 

流行 vs 酷

 

我关注的插件具备以下特性:

首先,我要强调的是这些插件本身不是某种工具,所以我最喜欢的JRebel和JBoss工具不在此列。我关注的都是能够让你安装的普通Eclipse成为更加有趣的优秀插件。

其次,流行并不等于酷。在Eclipse市场,最流行的插件列表机会在最近2-3年几乎没有变化。

一个插件只因为被下载次数多就被认为很酷,在我看来这是很没有意思的。那些插件之所以上榜只是因为它们补充了Eclipse不具备的基础功能,这就是为什么Maven、Subversion和Git插件会名列前茅。

 

我眼中的酷插件

shell助手

 

虽然我是一名Java开发者,有时也会写一点shell脚本。下面是几个对编写shell非常有用插件。ShellEd插件提供了shell脚本的编辑功能,Terminal插件将shell的输出集成到了Eclipse工作台。

通过ShellEd和Terminal插件,我可以无需在窗口之间来回切换就能在Eclipse中完成shell脚本的编写和运行,真的非常高效!

 

像老板那样编辑!

 

接下来在名单上的是More Clipboard、Smart Save和AnyEdit。这些插件在不同程度上改善了编辑体验。

More Clipboard会记录最近拷贝/剪切到剪切板缓冲里的内容,使用快捷键弹出备选列表可以进行快速粘贴。好吧,我承认在写代码的时候一直在复制粘贴:

AnyEdit插件由Andrey Loskutov开发,它为Eclipse增加了很多编辑功能。你可以对文件和选中的内容排序,对HTML代码加密,在tab和空格之间快速转换,等等。我得说这是Eclipse的一个必备插件。

一开始我用的是IntelliJ IDEA,它与Eclipse最重要的不同就是IDEA编辑器会自动保存修改。于是,我开始寻找可以用在Eclipse上的类似插件。最后,我找到了Smart Save。它可以配置在若干时间后自动保存修改,很酷很方便!

但是,我认为它会影响一些编辑体验。因为Eclipse默认会开启保存编译选项,所以每次保存都会进行一次清理(clean)和构建(build)。因而理论上可能会发生这样的情况,你刚刚进行了编辑但是Eclipse会决定做一次完整的构建,这会让整个Eclipse卡住。

 

扮靓你的Eclipse!

 

接下来要出场的是Eclipse Color Theme。这是唯一一个既出现在我名单里又在Eclipse市场最受欢迎插件列表中出现的插件。差个插件提供对你的Eclipse编辑器设定一个颜色主题,并且自带了很多好看的备选主题。

我个人比较偏好Roboticket,但是也有很多其它选择,比如下面的Monokai。

 

持续反馈

 

如果你是持续反馈开发方法的粉丝,而且热衷于编写单元测试(这里解释了为什么单元测试很棒),那么JLoop和JUnitLoop插件一定对你很有帮助。这两个插件能够在任何改变发生后立即执行代码。我发现JUnitLoop非常友好,当我更新了一个曾经执行过单元测试的方法后这些测试能够自动执行并且快速给出反馈。

 

自动化狂热分子

 

追求高效会让你步入自动化的美好世界,然而不幸的是Eclipse默认不提供宏支持,你不能在Eclipse理记录并重放你的活动。然后,有一些插件通过脚本能够让你在Eclipse中的活动自动化。

最佳方案只是就是GroovyMonkey插件,可惜这个插件的维护并不活跃。其它的替代方案有ScriptEclipse和EclipseScript(请不要把两个插件弄混!)。

基本上,这些实现的背后逻辑非常相似——核心引擎为脚本提供Eclipse内部对象,你可以通过脚本按照自己的要求实现逻辑。这些脚本会存储在工作区(workspace)里并且可以直接访问,插件会提供一个脚本列表菜单供你选择。

 

了解Eclipse

 

本文介绍的最后一个插件就是IDE++,它会帮助你更高效地使用Eclipse。

IDE++会分析你的行为并提供达成目标有哪些更快捷的方法。比如,如果你一个个地关闭打开的编辑器标签,IDE++会检测并弹出好看的对话框提示你“嘿极客,你知道CTRL+SHIFT+W可以更有效的关闭这些标签吗?”不幸的是,这个插件没有关注到Mac上快捷键会有所不同:)

我真的很喜欢IDE++插件的创意——它能够帮助你发现使用Eclipse过程中的效率瓶颈,所以我真心希望这个插件能够继续开发下去。

 

总结

 

如果你是一个Eclipse用户,本文前面提到的插件中应该会有一些帮助你更好地理解IDE并更高效地在Eclipse下编程。希望你能和我一样发现这些插件的出众之处。

原文链接:Anton Arhipov

译文来自:ImportNew

 

http://www.csdn.net/article/2013-06-17/2815779-Eclipse

五月天-孙悟空

兵荒马乱五百年来没改变过

花果山下满天的烽火
人类累不累啊还在你争我夺
西天取经回来后
有没有人有读过
师父每年都会寄卡片来问候
五百张了算多不算多
看到卡片我都想起那段奋斗
金箍棒那么神勇
现在只能掏掏耳朵
齐天大圣是我
谁能奈何了我
但是我却依然
不小心败给了寂寞
如果要让我活
让我有希望的活
我从不怕爱错就怕没爱过
如果能有一天
再一次重返光荣
记得找我我的好朋友
听说悟净已经植发治好秃头
有了论及婚嫁的女友
八戒这个猪头手机老是不通
好色本性多隽永
好像时间从来没走
西天取完了经
东边应该还有
伙伴们好不好
让我们再拯救地球
如果要让我活
让我有希望的活
我从不怕爱错就怕没爱过
如果能有一天
再一次重返光荣
记得找我我的好朋友

如果要让我活
请给我快乐苦痛
我从不怕爱错就怕没爱过
如果能有一天
再一次重返光荣
记得找我我的好朋友
如果要让我活
让我有希望的活
我从不怕爱错就怕没爱过
如果能有一天
再一次重返光荣
记得找我我的好朋友

记得找我我的好朋友

 

读写客:金钱不能买什么?

导语:“正义”是哈佛最受欢迎的课程,30年来已经有超过14000名学生修读,创下哈佛大学纪录。这门课的授课视频以及国内出版的《正义》一书,让中国人也接触到了美国的“学术明星”迈克尔·桑德尔。他的新作《金钱不能买什么》探讨了市场在社会中扮演的角色。金钱和市场的道德边界何在?什么东西是金钱不能买的?

读写客:金钱不能买什么?

书名:《金钱不能买什么》作者:迈克尔·桑德尔 出版社: 中信出版社

迈克尔·桑德尔美国哲学家,美国哈佛大学文理学院政府管理学讲席教授,美国人文艺术与科学学院院士,当代西方社群主义(共同体主义)的理论代表人物。曾获英国牛津大学政治哲学博士,毕业后受聘于美国哈佛大学,教授政治哲学,上世纪80年代初以其对罗尔斯正义论的批评而蜚声西方学界。在哈佛大学教授的本科通识课程——正义,是哈佛最受欢迎的课程,30年来已经有超过14000名学生修读了这门哲学课,创下哈佛大学的历史纪录。

在哈佛大学的核心课程《正义》的课堂上,迈克尔·桑德尔娴熟地运用各种案例来与本科生们讨论一些政治哲学命题,这门课在网络上的迅速传播,使他成了一名世界知名的“学术明星”。而在此之前,桑德尔在哈佛大学已经任教将近30年,他所主讲的这门课程早已成为最受学生欢迎的课程之一。在这30年中,市场经济在全球化的时代经历了突飞猛进的发展,其影响的范围已经远远超出了之前的边界。这种变化似乎十分自然,自然到人们往往会习以为常,但是桑德尔则敏锐地洞察到一些被人们认为是理所当然的现象背后,其实蕴含着重大的社会道德困境乃至危机。

哈佛大学公开课:公正-该如何做是好?在中国网络风靡一时
哈佛大学公开课:公正-该如何做是好?在中国网络风靡一时

在《正义》的课堂上,市场与道德的关系问题只是其中的一小部分,讨论的例子也仅仅是花钱雇人服兵役和雇佣代孕妈妈这样的问题。桑德尔并不满足于此,因为这实际上是我们这个时代所面临的极为重要、但又极为缺少公共讨论的一个问题:在一个几乎所有东西都可以拿来买卖的时代,我们如何理解与应对市场的扩张所带来的伦理与道德困境?于是,桑德尔将他对这一问题的长期思考总结成了一部通俗的《金钱不能买什么》,旨在延续以往的风格,通过一系列案例的讨论来分析市场以及市场原则的边界。这本书入选了2012年“英国《金融时报》/高盛年度商业图书奖”决选名单,时下正在中国热销,引发人们思考有关市场的道德局限。

面对一切都待价而沽的发展趋势,人们不能不感到隐忧

日本推美女大腿广告位 女孩可出租玉腿
日本推美女大腿广告位 女孩可出租玉腿

桑德尔通过列举一系列案例开始了“金钱不能买什么”的探讨,在这些案例中,金钱起到了让人有些意外的作用。例如,通过付钱,犯人可以改善牢房的条件,移民可以获得美国的绿卡,学生也可以得到大学的录取名额,诸如此类;反过来,出租身体的部位充当广告位,担任制药公司的人工试验对象,按照他人需要而代其通宵排队等行为,则成了赚钱的新途径。“在过去的30年里,市场和市场价值观渐渐地以一种前所未有的方式主宰了我们的生活。”

桑德尔将20世纪80年代早期到2008年金融危机之间的这个时段,称之为“市场必胜论的时代”,这是桑德尔这本书的一个相当重要的论断,也是所有案例讨论的基本背景和来源。西方国家坚定相信市场是通往繁荣和自由的坦途,但是,当市场取得了所有的正当性并缺乏有效的制约而肆意扩张和发展时,各种问题也随之逐渐累积起来。世界金融危机的爆发是一种契机,人们由此开始质疑“市场必胜论”的正当性,并开始反思市场与道德规范之间的关系。

就市场与道德规范的关系而言,人们很容易会想到市场中的人性贪欲会引发一系列道德问题。市场确实可以成为人性贪欲的演练场,不断刺激人们去获取更多的财富甚至由此引发不道德的作为,但是市场同样也可以为人们的慈善行为提供机会和资源。桑德尔所关注的,并不是这种显而易见的问题,而是更为重大的、并不那么容易发现的问题:市场和市场价值观已经侵入了它们本不属于的那些生活领域。面对一切都待价而沽的发展趋势,人们不能不感到隐忧,而在桑德尔看来,这种隐忧有两种基本的理据。

首先,金钱能够买到的东西越多,社会不公的问题可能会更加凸显。在市场必胜论之前,即便富人能够购买各种奢侈品,但却买不到医疗保健、社区安全和入学机会等公共物品。然而如果所有好东西都可以买卖,那么穷人改善生活的机会就会越来越少,贫富之间就会产生更强的“马太效应”而导致差距扩大。由此,在金钱变得愈发重要的同时,社会不平等的矛盾也愈发尖锐,社会不公也出现新的表现形式。

其次,在桑德尔看来,市场本身并非完全中性,而是具有某种腐蚀性。这种腐蚀性是指,通过交易的方式来对好东西进行买卖的背后,隐含着人们对所交易商品的某些态度,如果神圣和美好的事物被明码标价,本身就是一种腐蚀。换言之。市场在所谓的“公平交易”的原则作用下,实际上侵蚀了很多不能用金钱来衡量的价值观念。比如买卖儿童之所以被社会所禁止,就在于这种交易严重侵害了人的神圣价值。第一种理据实际上已经有很多思想家都进行过思考和论述,而第二种理据则是桑德尔的独特贡献。

市场的价值观(买卖的逻辑)本来应当限定在一定的领域之内,但是它却很容易扩展到其他领域,从而侵蚀这些领域原有的价值观念。对这一问题缺乏必要的认识和讨论,使得我们从“拥有一种市场经济”的社会,逐渐变成了“一个市场社会”,前者是将市场作为一种有效的组织生产的工具,而后者则是一种被市场价值观渗透到各个领域的生活方式。当市场发生了“质变”,由工具变成主宰的时候,重新思考市场的角色和范围,就显得极为必要了。

通过激起公众广泛参与的讨论,重新划定市场规范的边界

读写客:金钱不能买什么?
黄牛的存在让“花钱即得”的市场伦理便与“先到先得”的排队伦理矛盾

面对上述一系列问题,桑德尔并没有承诺给出最终的答案,因为在他看来,这些问题涉及有关良善社会和良善生活的各种相互冲突的理想,对于不同的社会群体和个人而言,这些理想的价值也会有所不同。此外,对于这些问题的回答,在很大程度上并不能完全依靠理论与逻辑的推演,而是更需要各种实践与经验的支撑。

因此,桑德尔回答这些问题的方式,是通过不同案例所引发的辩论,来分析不同观点的价值,从而辨析出更加合理的选择。更为重要的是,他还要通过这些案例和问题,来推动公共讨论的展开。因为即便在西方社会,关于市场道德性的公共讨论也是非常缺乏的,如果要赋予市场以合理的道德意涵,划定市场规范的边界,则必须要有公众的广泛参与。

基于上述目的,在本书的大部分篇章里,桑德尔一方面不厌其烦地分析了有关插队、激励措施、保险、冠名权等问题的各种案例,以及与此相关的各种论辩的理由,另一方面则通过这些细致的分析和思辨,为未来的公共讨论奠定了一个简明的哲学框架。书中繁多的案例反映了“金钱不能买什么”这一问题的不同侧面,更说明了这个问题的复杂性。大体来看,我们可以从以下三个角度来认识金钱与市场在道德领域的作用及其局限。

第一,冲突性视角——当市场规范延伸到非市场领域的时候,势必会与原有的价值规范产生冲突。例如,当有人花钱雇人排队以获得所需物品时,“花钱即得”的市场伦理便与“先到先得”的排队伦理产生了矛盾,甚至会把后者完全取代。两种伦理均有一定的正当性依据,它们的互相争辩其实说明了一个问题,即“市场把它的手向非经济生活领域伸得越深,市场与道德问题就纠缠得越紧。”

第二,局限性视角——金钱和市场本身并非万能,并且应当受到一定价值规范的制约。一般而言,“金钱不能买什么”很好回答,金钱可以买到物质性产品,但不能买到诸如友谊和诺贝尔奖这样一些富有强烈而独特的精神意义的物品。而更为重要的问题则是“金钱不应当买什么”,一旦上升到“应然”层面,就必然会涉及到一系列道德与伦理的价值观,我们可以雇人道歉并购买婚礼祝词,但是这些行为所负载的情感与价值内涵不应当随着买卖而流失。

第三,变迁性视角——人们的道德标准与耐受力会由于市场规范的扩张而发生潜移默化的影响。例如,保险业最初就是与赌博联系在一起的。在当时的人们看来,用人的生命和死亡作为赌注获取利益,显然具有很强的不道德性。而现在,人们早已对保险司空见惯了。这样的变迁说明,市场的逻辑与规范会逐渐改变人们对“不道德”行为耐受力,但同时也说明,金钱与市场的强大诱惑使人们容易为了一定的利益而遗忘原有的道德价值。

说到底,桑德尔关于市场的道德局限的讨论,依然是对正义的探求,是对社会不公正和人类伦理道德的深切关怀。桑德尔的同事、著名哲学家约翰·罗尔斯提出了一个经典的论断:“正义是社会制度的首要美德,正像真理是思想体系的首要德性一样。”对正义的探求离不开思想的争鸣,因此,桑德尔试图让大众重新关注正义与市场道德的问题,并鼓励大家通过公共讨论的方式,把道德观念与伦理价值重新找回来,从而在具体的问题和语境中去界定市场的边界。在日常生活中,人们很难或无心进行关于正义的理论建构,但如果通过公共讨论的形式来对社会现象进行道德追问,这本身就是对正义的建构,尽管正义的标准可能会存在诸多的争议。

莫让时代与社会的价值像货币般,不可避免地贬值

读写客:金钱不能买什么?
陈光标的种种高调行为,颇带有“金钱万能”的潜台词

作为一名政治哲学家,桑德尔的写作似乎日渐远离最初的纯粹的哲学思辨,越发变得通俗和简明;作为一名教授,他的写作在很大程度上是把他在哈佛的课堂扩展到了社会公众领域。颇有点反讽意味的是,这种写作风格在一定程度上使他变成了畅销书作家,然而这种市场销售的成功似乎反过来影响了他作为一名哲学家的价值。但是,如果仔细分析文本,我们不难发现,对于那些看似琐碎的各种案例,桑德尔的分析中依然蕴含着丰富的学术内涵和启迪。

哲学家的魅力之一,就是能够让人对习以为常和理所当然的现象产生一种陌生感,进而通过一系列思辨重新再熟悉它,经历这样一种思想历练的过程,我们对世界的认识就大不相同了。而且,这种哲学思辨在一定程度上也是跨越国界的,正如《泰晤士报》对这本书的评介所说:“桑德尔用其政治哲学的力量,承担起我们普遍的不安感。”这种普遍的不安感对于包括中国在内的世界各地而言均适用。

中国在改革不断推进、社会不断转型的同时,发展所带来的问题也在不断累积。如果之前三十多年的改革是一种发展导向型的改革,那么接下来的改革则应当是一种问题导向型的改革。其中,如何应对市场经济所带来的各种价值失范问题,成了当前中国发展所面临的重要问题。

早已层出不穷的市场“越界”的现象,不仅仅只是宏观的社会问题,更涉及到我们的日常生活。一些人热衷于“权钱交易”与“权力寻租”,少数寺院高薪聘请僧尼来为旅游事业打工,甚至有的象牙塔中的学者也变得心浮气躁,“著书都为稻粱谋”……这一切既让人眼花缭乱,也会让人去重新反思市场与社会之间的边界,去重新寻找生活中的价值原则与道德意义。否则,这个时代与社会的价值,就会像作为金钱符号的货币一样,不可避免地贬值下去。

(本文作者 杜欢 系复旦大学国际关系与公共事务学院博士研究生)

《金钱不能买什么》精彩摘录:越来越主宰我们周遭生活的买卖逻辑

今天,几乎每样东西都在待价而沽

牢房升级:每晚82美元。在加利福尼亚的圣安娜和其他一些城市,非暴力罪犯可以用钱来买到更好的住宿条件:一间与不出钱的罪犯的牢房分离开来,又干净又安静的监狱牢房。

独自驾车时可以使用“多人共用车专用车道”:高峰时段8美元。明尼阿波利斯和其他城市正在尝试这项举措,独自驾车的司机可花钱在多人共用车专用车道上行驶,来缓解交通阻塞的现象,价格则随着交通状况的不同而改变。

印度妈妈的代孕服务:每位6250美元。西方国家那些寻求代孕的夫妇们越来越多地将代孕之事外包给印度妇女,因为代孕在那里是合法的,而且价格也不足美国现行价格的三分之一。

移民到美国的权利:50万美元。投资50万美元并且在高失业领域至少创造10个就业机会的外国人,就有资格获得美国绿卡并拥有永久居住权。

狩猎濒危黑犀牛的权利:每头15万美元。南非开始允许农场主把射杀有限数量犀牛的权利出售给狩猎者,以此激励农场主去饲养和保护各类濒危物种。

医生的手机号码:每年至少1500美元。越来越多的“礼宾”医生为那些愿意支付1500-25000美元年费的病人,提供手机资讯服务和当日预约就诊的机会。

向大气层排放碳的权利:每吨13欧元。欧盟构建了一个碳排放交易市场,从而使得一些公司可以买卖排放权。

著名大学的录取名额:什么价格?尽管这方面的价格没有公示,但是美国一些顶尖学府的行政人员曾告诉《华尔街日报》,他们的学校录取了一些并不十分优秀的学生,其原因是这些学生的父母很富有,并有可能给学校捐赠一笔可观的钱。

印度已经成了西方的“造婴工厂”
印度已经成了西方的“造婴工厂”

与此同时,如果你需要多挣些钱,现今也有很多新路子

出租你的前额(或者你身体的其他部位)用来放置商业广告:777美元。新西兰航空公司雇用了30个人,把他们的头发剃光并印上写着“需要做出改变吗?请来新西兰”广告语的临时刺青。

在制药公司的药品安全实验环节中担当人工试验对象:7500美元。这项报酬可以更高,也可以更低,这取决于用来检测药品效用的试验程序对试验对象的侵害程度以及所引发的痛苦。

为私人军事公司去索马里或阿富汗打仗:每天250美元至每天1000美元不等。这项报酬根据人员的资质、经历和国籍的不同而不同。

在国会山为一位想要参加国会某场听证会的游说者通宵排队:每小时15-20美元。游说者们付钱给“排队公司”,而这些公司又雇用流浪汉和其他人去排队。

如果你是达拉斯一所一般学校的后进生,那么你每读一本书,就可以得到2美元。为了鼓励读书,孩子们每读一本书,这些学校就会奖励给他们一点钱。

如果你是个胖子,那么你在4个月内减掉14磅就可以得到378美元。一些公司和健康保险公司为减肥和其他各种健康活动提供金钱激励措施。

为一位病人或老人购买一张人寿保险单,在其有生之年为其支付年度保险费,然后在他/她去世时可获得死亡收益,其价值可达数百万美元(具体收益取决于保险单中的规定)。这种在陌生人的生命上下赌注的做法,已然成就了一个3000亿美元的产业。陌生人死得越快,投资者赚的钱也就越多。

http://help.3g.163.com/13/0529/17/902E6O2400963VRT.html

读写客:先爱个人,后爱国家

(读《日本人与中国人》时)对比发现,我们在历次的变革之中,技术学来了,武器预备了,制度安排了,民族突出了,国家独立了。凡此种种,却从来没有一次,人的权利预先得到了安置与尊重。失落了把人作为国家存在和国家权利的基础这样一个观念,国家就不是国家了。

读写客:先爱个人,后爱国家
作者: 陈舜臣 出版社: 广西师范大学出版  译者: 刘玮

已故美国华裔作家张纯如,在她上小学的时候,是班里惟一的华裔学生。有一次,她的同学问她:如果美国和中国打仗的话,她会站在哪一边?她几乎被这个问题击垮了。

穷其一生,她一直在追寻这个问题的答案。她用英文写作,可是题材全都是中国的。第一本著作几乎直指这个问题,是研究中国导弹之父钱学森的《蚕丝》(Thread of the Silkworm)。第二本著作是在中美引发风暴的《南京大屠杀》(The Rape of Nanking),在《纽约时报》畅销书榜上达10周之久。第三本书仍然耽留在一个同源的选题之上:研究华人移民史的《美国华人史录》(The Chinese in America)。

作者: 张纯如  出版社: 东方出版社副 标题: 被遗忘的大屠杀
作者: 张纯如 出版社: 东方出版社副 标题: 被遗忘的大屠杀

可是似乎她最终也没有找到答案,在《美国华人史录》的前言中,她写道:“我们漂泊在大洋的两岸,而两岸的人都以陌生的眼光打量着我们。没有人愿意承认,我们是属于他们那个海岸的。”身份认同的危机似乎耗尽了她的生命。据说,她2004年的自杀乃是因为长期沉浸在这些痛楚的记述之中,以致罹患严重的抑郁症。

对于那些生活在异域土地上的人,这种身份的认同危机,以及被所在国的民众所接受的程度,恐怕都大致相同吧。华裔日本作家陈舜臣,却讲了一个有些异样的故事。英国商人托马斯•格洛弗在幕府晚期就来到了日本。在明治维新之后,他经营煤矿,建设船港,并且在他居住的六甲山建了别墅,修了高尔夫球场。他入了日本籍,娶了日本妻子,把家安在了日本,甚至禁止他的孩子们穿西服。由于他对日本所做出的杰出贡献和对乡里的庇荫,他被誉为“六甲山开山之祖”,他去世后当地人为他修建了纪念碑。太平洋战争之后,他成了敌人。政府派石匠去凿碎了纪念碑。70年代当日本政府意图重新修建纪念碑的时候,格洛弗的子女们却犹豫了。

在一个民族主义的国度里,人们的心里只有国家,没有了同胞。对于中国人来说,张纯如其实是同胞;对于日本人来说,格洛弗其实是同胞。但似乎已经不重要了,国族就是一切。

陈舜臣在讲这个故事的著作《日本人与中国人》里,这样写道:“只有日中友好,本书作者才有安住之处。”

陈舜臣的祖籍是台湾,出生在日本神户。1990年入了日本籍。他1960年代即以推理小说获得了文学大奖江户川乱步奖。他早期是以推理小说发家,进入中年之后,几乎全部写的是中国题材,包括曹操、孙中山、李自成、诸葛亮等等。应该说,他自己的身份认同危机催迫着他下了极大的力量去研究日本与中国之间的差异与联系。他写的中国题材的小说和散文,赢得了日本几乎所有的文学大奖。他的同学司马辽太郎这么评价:“以外族人折服日本的只有陈舜臣”。可以说,他对于日本了解中国做出了卓绝的贡献。

可是,我以为,如果他在中国各地掀起反对日本占领钓鱼岛的那个时候来中国的话,只能被当成汉奸,当街掌掴。尽管我认为他和张纯如一样,应当算是我们中华民族的同胞;但是在那个爱国情绪高涨的时间里,连我们那些拥有日本汽车、在日本商店里打工和开设日本商店的同胞,都已经不是同胞了,更何况这些拥有异族身份、也居住在敌对国领土上的人?

读写客:先爱个人,后爱国家
砸日系车、烧丰田4S店,以“爱国”之名

在《日本人与中国人》中,陈舜臣一再阐明,日本人与中国人的一个重大差别,是中国乃是一个人的社会,他们崇拜圣人,并依赖人与人之间的关系来填补生命的意义。但是日本人对人的依赖只有50%,另外50%他们用审美意识来填充。

我觉得陈舜臣是抓住了中国民族生存的本质。儒家乃是一种入世哲学,无论我们如何去否定君臣父子这样的层叠关系,整个儒家的内在本质,都乃是理顺一种人与人之间的关系。它是一种不同于西方的人本主义。整个儒教国家的本质,都建立在人的关系基础之上。

但是一个物化了的国家观是如何的呢?在这种观念里,有强调国家利益至上的,也有强调民族崛起的;有强调政治挂帅的,也有强调经济发展第一的。但是无论什么,都没有人以及人的关系所构成的社会。物化的国家观念以国家、民族、群体、党派等等实体存在,或者以繁荣、富强、独立、稳定、主权等虚化概念,覆盖在个体的生命体验和社会的整体关系之上,掩盖了在一个国家之中人的生存与人的关系调整乃是最为重大的问题这一实质,从而误导一个国家发展的最基本需求。物化了的国家观念,这次可以要求人们把民族、主权、领土等等置于人之上,下次也就可以要求把稳定、统一等等置于人之上。

当我想到这里的时候,我被我自己的一个发现吓出了一身冷汗。这也就是说,在我们以往的历次变革运动之中,全都缺乏人性论这样的一个基本观念,而统统以物化国家来抹杀变革的最基本取向。清政府内部的洋务运动没有,改良派的戊戌变法没有,革命派的辛亥革命没有,社会主义民主革命也没有。而从文艺复兴以来的欧洲变革,其根本的发端,就在于宗教统治抹杀了人性的存在,因此整个欧洲起来革命,要还给人本身的生存权和尊严。人性论乃是整个欧洲乃是世界变革的基础,乃是现代形成的根本。民族自决和国家主权领土等等观念,都只是在人性论的基础之上派生出来的诸多观念而已。如果没有了人这样一个最基本的概念,那么民族自决与国家独立,所为何来?

欧洲文艺复兴时期绘画《田园合奏》
欧洲文艺复兴时期绘画《田园合奏》

在中国传统的政治之中,人或者人所构成的社会的正当性和正义性,从来都是国家得以存在的基础。儒家是同意革命的,也就是最基本的所谓人心向背。就是说,当国家侵犯到人的基本权利的时候,他的正义性也就丧失了。“纣无道,武王伐之”。在治理国家方面,孟子的“民为重,社稷次之,君为轻”,不也认为人的利益是高于国家利益的吗?

现代国家的观念自然更加强调的是人的权利。政府不得侵犯个体的权利。个人有权保护自己的生命财产免予国家的侵犯。这都是一些基本的人的权利高于国家权利的论述。

而我们在历次的变革之中,技术学来了,武器预备了,制度安排了,民族突出了,国家独立了。凡此种种,却从来没有一次,人的权利预先得到了安置与尊重。

这是否也就是说,我们一再地把国家的权利安置在了人的权利之上,致使我们今日每每有以国家利益侵犯私人利益,民族利益凌驾个人利益,群体利益吞噬个体利益的现实?

如果我们承认,我们的传统叙述之中,以及作为舶来品的西方叙述之中,都乃是以人作为最基本的构成,并且强调人的利益高于国家利益的话,那么我们从什么时候开始,失落了把人作为国家存在和国家权利的基础这样一个观念的呢?

先爱同胞,后爱国家。这才是一个具有正当性和正义性的国家逻辑。没有同胞,哪来国家?在我们以往所有的抗击外来侵略的行动中,中国从来就没有把这个逻辑摆正过。

网易新闻客户端新推《读写客》栏目,收集有关书、写书人、读书人的故事,查看往期内容请点击“订阅”按钮订阅此栏目。

http://help.3g.163.com/13/0517/15/8V3CCJK700964JO4.html

8点1氪晚间版:中国互联网16年,那些清醒的泅渡者

苑伶 发表于 4小时前 k815 /Topic

《了不起的盖茨比》有个漂亮的结尾:

“于是我们调转船头,逆时间潮流而行,不停歇地驶入过去。”

我自己是个常常会失去时间感的人,第一次偶遇某些事物却可以倍感熟悉,不知是前世涌来的记忆,还是预见到未来的图景。就像这一刻,坐在办公室的靠椅上,两只麻雀叽叽喳喳停留窗檐,随即惊起飞去,仿佛让我撞见儿时那个抬头望天,被飞鸟鸣叫掠过心头的自己。

不知道,16年前互联网刚刚发轫中国时,郭去疾、张小龙以及那些四通利方论坛上传说中的江湖牛人们,是否曾和16年后的自己打过照面。

之所以攒这篇文章,理由很简单,今天的资讯世界属于那些正在成长的巨头——微信横扫一切的5.0版即将出鞘,兰亭集势成为今年首个正式登陆纽交所的中国企业,而新浪微博进军物联网的步伐正在排开。此时此刻,我觉得回溯过去必不可少,人们有权利回溯过往的那些人、事,了解他们如今光辉背后的种种偶然和必然。

时值2007年,Google中国的办公室里,郭去疾告诉时任公司公关经理的崔瑾:“崔瑾,Google中国这条船会沉的,你们要早做打算。你看,Google就是个政府,中国还有个中国政府,这是意识形态问题,是不可调和的矛盾,这条船绝对会沉的。”

次年他从Google中国离职,正式加盟兰亭集势,担任董事长兼CEO。兰亭集势的基本模型很简单:做跨国B2C,用Google推广,用Paypal支付,用UPS和DHL发货。

http://a.36krcnd.com/photo/ed0289a4b3b5fa096087c90b540fcecd.png

郭去疾的理想一直都是帮助中国企业走向世界,可是05年以前,他没有找到合适的企业实施理想,反而很多美国企业想找他帮忙进入中国。所以在大公司里无法实现最初的理想,郭去疾选择了自己创业。五年后的今天,兰亭集势已经经过四轮共计5127万美元的融资,正式登陆纽交所。这间专注于外贸的B2C电商网站,提供的独立商品超过了22万个,服务覆盖全球主要的17种语言地区。

兰亭集势的投资人徐小平说,兰亭集势的郭去疾、文心、张良、柳俊都出生于没有什么背景的家庭,完全靠自己的努力创业。其中有人放弃硅谷的高薪、有人是第一次创业失败、有人是在大公司经过历练。而他们登上纽交所再次证明,这个时代个人努力能够获得成功。

而郭去疾则说,是徐小平让这间公司在一个瞬间就成为了可能,他把自己看成是偶然创业者,同时相信伟大的公司都是变异的产物,就像物种的进化由推进变异,而变异皆属偶然一样。(郭去疾资料来源:《郭去疾:聚集扁平之势 世界可以更平》)

如果你记性还不赖,想必不会忘掉微信3.0的开机页面上MJ的那句话:“你说我是错的,那你最好证明你是对的。”在业界一边倒指摘微信抄袭以及令人失望时,张小龙沉默不语,往微信首页默默放上对MJ的纪念。

17年前,张小龙是中国Top10的程序员。他一个人写代码,完成了Foxmail的头三个版本。时至如今,人们还会用一个例子来说明QQmail在产品体验上的细腻入微:如果你在邮件正文里提到“附件”,而你在发送时并没有粘贴任何附件,那么系统会立即提醒:您是否忘了加上附件。这一体验现在Gmail也有了。

QQmail的成功,却让张小龙感觉到焦灼。邮箱对普通网民而言依然门槛极高,连教会他们用@符号都需要许多年。于是张小龙转型Web社交产品,而后又跳到移动互联网——没错,正是微信。

微信开发的八个月里,有人把他们团队称为“矿工”,因为他们总是在黑夜里通宵开发,那时的广州寂寥无人,程序员三五成群,在工作区过道上低声讨论,有的就地开始做俯卧撑,以提振精神。他们iOS、安卓、塞班三个客户端同时开始做,放出iOS版本之后,立即转安卓做下一个版本,安卓做完转塞班,然后再转回做iOS。这叫全天候手机开发团队。(张小龙资料来源:和菜头在知乎上的回答

http://a.36krcnd.com/photo/0c37daafb2677cb5bb20271f3ca09bf0.jpg

八个月后,张小龙把微信做上线,随即横扫整个市场。再从燃烧一切的4.5到即将横扫一切的5.0之间,张小龙只用了不到四个月,据青龙老贼说这次微信5.0会带来三个重大更新:1. 用户可定制微信菜单栏;2. 移动支付上线;3. 公众账号付费订阅。而这每一个更新都可能成为超级入口以释放积聚已久的能量。

而当多数人乐此不疲争辩微信和微博谁生谁死时,新浪微博已经用脚做出了回答——他们准备进军物联网了。第一个阵地是智能家居,过去不久的GMIC大会上,新浪微博曾展示一个“气象站”产品,可以检测空气的温度和湿度等信息,用微博私信控制、查询,最重要的是,“气象站”是一款硬件产品。通过类似的原理,新浪微博可以控制诸如电视、冰箱、洗衣机甚至汽车等设备,例如下班快到家时,可以给家里面的空调发个私信,就可以开启空调;给电视机发个私信,就可以打开电视了。

http://a.36krcnd.com/photo/69768f48c25a2ecdc9e00e3e4bc8b069.jpg

经历围脖元年,走过敏感词、导师、十八禁的各个岁月,新浪微博增速放缓、基本饱和,或许率先进入下一个领域成为引领潮流的先行者,是个上策。就像当初陈彤还在为四通利方维护论坛,《大连金州不相信眼泪》让老榕火了的那一年,谁也想不到这个论坛日后会衍生出中国的Twitter一样。

如果新浪微博要引领潮流需要运气,那Google对未来的盘算似乎还未失手过。离Google Reader关闭不到一月了,Google却没有手下留情的打算,因为“我们消费新闻的方式,正迈入一种连续发生的模式之中。智能手机、平板电脑把新闻带到用户的每一个碎片化时间段里,人们早已不是在悠闲的早餐时间或者深夜入睡之前瞥一眼新闻资讯了。”Google想做的是,用Now和Plus来主动给用户推送内容,在用户想看到内容的那一瞬间。

回看中国,屈指数算,从爱信特到搜狐,从网易到丁磊的养殖业,从四通利方到新浪,今日的互联网大佬们几乎是共同淌过16年的中国互联网之河,有人被中途冲去,有人游错方向,而只有那批最清醒的泅渡者留存了下来,被记录于铅字之上。

时间维度上的恍惚感从古皆然,但你须知自己此时立于何方,就像很多人以张小龙的文艺情结逆推他的成功时他所说的那样——他们都错了。“做好产品首先需要的是理性的能力,然后在理性的基础上领会多一些偏文艺或者偏人文的元素在里面。但是它一定不是主体,不是基础。一个产品有很多层面去看它,人文是它的一个侧面而已。”(引用来源:《专访张小龙:产品之上的世界观》)

http://www.36kr.com/t/203876

优化技巧分享:把内存消耗降低至原来的1/20

摘要:Plumbr是一家Java存泄露检测器开发公司,在最近的客户报告中,他们发现了一个内存耗尽相关的问题。在检测后他们查出了问题所在,通过优化最终降低了21.5倍的堆内存。

这是最近发生的又一起内存相关的事件了。这个案例是从一个最近的客户报告中提取出来,一个异常运行的应用在其产品中反复报告内存耗尽。

这个症状是由我们的一个实验性功能发现,它主要用来监测某一类数据结构的使用情况。它提供了一个信号探针,结果会指向问题源代码的某一位置。为了保护客户的隐私,我们人为重建了该例子并保持它同原真实场景在技术层面的一致性。你可以免费在此处 下载到源码

故事开始于一组从外界源加载进来的对象。同外部的信息交互是基于XML的接口,这本身并没什么大不了的,但事实上“基于XML的格式进行通讯”的实现细节被分散到了系统的每一个角落。 传入系统的文档是首先被转换成XMLBean实例,然后在整个系统范围内被使用,这中做法听起来有点傻。

整个问题中最核心的部分是一个延迟加载的缓冲方案。缓存的对象是“Person”的实例:

 

1
2
3
4
5
6
7
// Imports and methods removed to improve readability
public class Person {
    private String id;
    private Date dateOfBirth;
    private String forename;
    private String surname;
}

 

 

你也许会说这才能消耗多少内存呢。但当我们揭开进一步的细节时,发现事情就变了味了。表面上根据设计,声称实现只用到的诸如上文提到的那样一些简单的类,但真实的情形是使用了基于模型生成的数据结构。使用的模型是诸如下面的这个简化的XSD片段。

 

1
2
3
4
5
6
<xs:schema targetNamespace="http://plumbr.eu" xmlns:xs="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified"> <xs:element name="person"> <xs:complexType>
        <xs:sequence> <xs:element name="id" type="xs:string"/> <xs:element
        name="dateOfBirth" type="xs:dateTime"/> <xs:element name="forename"
        type="xs:string"/> <xs:element name="surname" type="xs:string"/>
        </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

 

 

使用 XMLBeans,开发者生成了该模型,并在真实的场景中使用。现在我们回到开始的这个缓存的方案上来,假设它设计初衷是为了支持最多1.3M Person类的实例,而我们实际却要塞进去同等数量的大家伙,这从根上就注定了失败。

跑一组测试用例后,发现1.3M个基于XMLBean的生成的实例需要消耗大概1.5GB的堆空间。我们当时想这肯定可以做的更好。

第一个改进是显而易见的,外部同系统内部集成的实现细节是不应该把影响传递给系统的每一个角落的。所以我们把缓存改成了使用简单的  java.util.HashMap<Long, Person>。ID是键,Person是值。我们发现内存的消耗立即降低到了214MB。但这还不能令我们满意。

由于Map中的键是一个数,我们有十足的理由使用 Trove Collections来进一步降低它的内存消耗。这在实现上的改动很快,我们只需把  HashMap 改成  TLongObjectHashMap<Person> ,堆的消耗进一步降低到了143MB。

活干到这个程度我们已经可以收工了,但是工程师的好奇心驱使我们要更进一步。不由自主的我们发现了系统的数据存在着大量的重复信息。例如Date Of Birth其实已经在ID中编码了,所以Date Of Birth可以直接从ID中得到,而不必使用额外的空间去它。

经过改良,Person类现在变成了这个样子:

 

1
2
3
4
5
6
// Imports and methods removed to improve readability
public class Person {
    private String id;
    private String forename;
    private String surname;
}

 

 

重新跑一边测试证实我们的改进的确有效,堆消耗降低到了93MB。但是我们还未满足。

该应用在64位的机器上使用老的JDK6。默认情况下,这么做不能 压缩普通对象的指针的。通过参数”-XX:UseCompressedOops“切换到压缩模式使我们获得了额外的收获,现在我们的内存消耗降低到了73MB。

 

当然,我们还能走的更远。比如基于键值建立B-tree,但这已经开始影响到了代码的可读性,所以我们决定到此为止。降低21.5倍的堆内存应该已经是一个足够好的结果了。

让我们再重复一下学到了什么

如果你对这个实验很好奇,请在此处 下载相关的代码。使用到的的测量工具和其具体描述可以在这篇博文找到。

 

  • 别把同外部模块的整合影响到系统的每一个角落
  • 冗余的数据可能带来开销。在可能的情况下尽量消除它
  • 基本数据类型是你最经常打交道的朋友,务必知道些关于它们的工具,如果还没玩过 Trove请立刻开始吧
  • JVM自带的优化技术不可忽视

原文链接:  Nikita Salnikov-Tarnovski ,编译:感谢@ NULL_文龙 的热心翻译

译文链接: http://blog.jobbole.com/40666/

代码审查——提高代码质量的终极武器

摘要:SmartBear公司发起一项调查研究2013年代码审查的使用情况并从超过650名专业开发人士那收集了“实践经验”,结果非常有趣。90%的受访者表示代码审查提高软件质量;74%表示代码审查还有助于跨团队之间知识共享。

如果糟糕的软件是我们的克星,那么优秀的代码就是解药。

软件无法工作是件非常恼人的事!而这种情况往往是由于糟糕的代码所致。在一个项目中,如果开发者孤军奋战,这种情况出现的几率就会增大。

幸运的是,团队中的一些成员愿意贡献自己的空闲时间来改善软件质量。通常,这些人就是我们常说的QA测试者——他们坚持不懈地寻找bug。这里有一个最佳实践方式能够更有效地识别软件代码中的缺陷——同行代码审查(peer code review)。

研究表明,同行代码审查是寻找代码缺陷最高效的方法。有分析称超过12000软件代码使用同行代码审查可以完成60%的效率,而使用单元测试只有25%。每隔一小时使用同行代码审查,可以为开发团队的QA测试节省20个小时,这个听起来不错吧。

近日,SmartBear公司发起一项调查研究2013年代码审查的使用情况。超过650名专业开发人士回答了如何使用代码审查以及对性能影响的相关问题并从中收集了“实践经验”,结果非常有趣。

在此次调查中超过70%的受访者参与了不同程度的协同审查,结果发现,那些做代码审查的比不做代码审查的软件整体质量满意度高达2倍。

我们从中抽取了一个问题,一起来看下代码审查能带来哪些好处。

Q:你认为代码审查最大的好处是什么?

如图所示,显而易见,代码审查最大好处莫过于提高软件质量;74%的受访者表示,代码审查还有助于跨团队之间知识共享;有60%的受访者还发现,代码审查有助于团队之间相互指导及提升协作。

由此可以看出:

 

  1. 代码审查是提高开发团队技能以及保持团队迭代更新最有效的最佳实践方法。
  2. 代码审查工具辅助文档过程本身允许大家互相学习和更正评论。
  3. 假如做代码审查的开发者碰巧没坐在你边上或者开发团队遍布全球或者某个疯狂的同事从凌晨1点工作到5点,那么代码审查工具可追踪任何一条评论以方便你在空闲的时候查看。

 

代码审查不仅能帮助你确保评审、改进代码,还能为开发人员节省大量的时间,帮助你拯救因糟糕软件无法正常运行而带来的压力。

英文出自:Smartbear

http://www.csdn.net/article/2013-06-03/2815518-code-review

10 款漂亮实用的 Web 设计素材

本文是一些来自极客标签社区的10款免费设计素材,大家可以在这里免费下载你需要的内容。如果你也有更好的作品,欢迎分享,在得到帮助的同时,也能与更多人分享来自你的作品。

1.  分享苹果手机外观的模板(psd)

推荐几款手机模板,希望大家喜欢!

2.  音乐播放器按钮(PSD格式)

一个免费的PSD格式的音乐播放器设计(PSD格式)

3.  刷卡式的滑动,更快,更准…… 一款图片切换插件

一款图片切换插件。

4.  喜欢简单巧妙的动画仪表盘么?

看看甜甜圈吧,一个基于jQuery的插件Larentis Mattia开发的。

5.  支持Retina的免费图标集

一套免费的图标集,包含了375个图标,针对retina显示优化!

6.  一套免费的笑脸图标 – Simple Smileys

如果你需要一套简洁的笑脸图标的话,Simple Smileys可能就是你需要的,提供了PNG格式图标,免费个人和商业使用!

7.  分享一款基于jQuery的自动提示插件——magicsuggest.js

一款基于jQuery的自动提示插件。

8.  Ribbon – 免费的网站设计PSD

今天分享一个超棒的PSD格式额网站设计,典型的retro复古风格,并且拥有一个漂亮的彩带,相信大家会喜欢的!

9.  一套免费的wordpress post format格式的图标(支持Retina)

Post formats是wordpress的一个主题特性(theme feature),最早在Version 3.1中被引入。post format是一段meta信息,可以被一个主题用来自定义一个发布的展现形式。这套透明的PNG格式图标可以非常协调的使用在任何背景中,来自于设计师:Natko Hasic。 个人和商用都免费!

10.  一款地图 Markers (PSD)

一款地图Mark图标,psd格式。希望大家喜欢!

Via 极客社区

« 较早的 文章 较新的 文章 »

Copyright © 2024 优大网 浙ICP备13002865号

回到顶部 ↑