上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: 好久没写博客了,看到一篇不错的文章。转自http://blog.jobbole.com/67886/程序员思维起因首先简单说一下,为什么我会想到这个话题。主要有这么几方面的原因。当我试图回过头去总结大学在计算机专业所学习的一些理论和知识的时候。发现,在学校里面学习的一些东西,走了两个极端。 一个极端... 阅读全文
posted @ 2014-05-15 11:21 Marvin 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 转自http://relistan.com/a-week-with-mozilla-rust/A Week with Mozilla's RustI want another systems language in my tool belt. I want a language where I can be much more productive than in C: one in which I do not fear the correctness of my memory management, and don’t have to go through major gyrati 阅读全文
posted @ 2013-08-23 11:00 Marvin 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 模块原则 (使用简洁的接口拼合简单的部件)计算机编程的本质就是控制复杂度要编写复杂软件而又不至于一败涂地的唯一方法就是降低其整体复杂度——用清晰的接口把若干简单的模块组合成一个复杂的软件。如此一来,多数问题只会局限于某个局部,那么就还有希望对局部进行改进而不至牵动全身。清晰原则 (清晰胜于技巧)维护成本是高昂的,在写程序时,要想到你不是写给执行代码的计算机看的,而是给人——将来阅读维护源码的人,包括你自己看的。在Unix传统中,这个建议不仅意味着代码注释。良好的Unix实践同样信奉在选择算法和实现时就应该考虑到将来的可扩展性。为了取得程序一丁点性能的提升就大幅增加技术的复杂性和晦涩性,这个买卖 阅读全文
posted @ 2013-08-12 16:57 Marvin 阅读(1060) 评论(0) 推荐(0) 编辑
摘要: As Brian Kernighan once observed, “Controlling complexity is the essence of computer programming.” .Debugging dominates development time, and getting a working system out the door is usually less a result of brilliant design than it is of managing not to trip over your own feet too many times.Assemb 阅读全文
posted @ 2013-08-12 16:53 Marvin 阅读(178) 评论(0) 推荐(0) 编辑
摘要: http://www.solidot.org/story?sid=35754看了此文,为什么我现在如此看好RustC/C++已经统治系统编程很久,除了ObjectiveC之外语言都无法获得很高的关注。有人用多种系统级语言编写了同样的地图生成工具来测试他们的性能, 包括D(DMD,LDC,GDC)、Go(GCC-Go,6g)、Haskell(GHC)和Rust。相比C/C++,这些语言都原生支持了诸如垃圾回 收这些高级特性,也因此无一能达到C/C++的运行速度。其中表现最好的是基于LLVM的D语言编译器LDC,与同样基于LLVM的C编译器Clang相比,可以达到它96%的速度。其次是基于LLVM 阅读全文
posted @ 2013-07-27 22:27 Marvin 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 不错的文章,澄清了误区,至少看到Lisp和Smalltalk比C++的圈大,比较客观。TIOBE每个月都会给编程语言排名,从侧面说明哪些编程语言使用比较广泛。那么你是否考虑过这些编程语言彼此之间的影响力呢?哪一门语言的影响力是最大的呢?显而易见,大多数开发者都会认为他们的语言是最好的。如果你想要一个更科学的(或者艺术点的)视图,可以查看下面这幅编程语言影响图。编程语言之间的影响力下图是由Ramio Gómez实现,图中的每个节点代表1种编程语言,之间的连线代表该编程语言对其他语言有影响。看了它,你可能会问,为何Lisp比SQL更具影响力呢?查看大图该图数据来自Freebase上的编程 阅读全文
posted @ 2013-07-19 09:32 Marvin 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 我今天又发火了,因为微软看这里http://social.msdn.microsoft.com/Forums/vstudio/en-US/2f328917-4e99-40be-adfa-35cc17c9cdec/pragma-executioncharactersetutf8到今天了,微软的编译器对C++ 11的支持缓慢我也就忍了,你对一个utf-8的支持,为啥是这个样子。2005,2008两代产品没有utf-8,2010就算不完全支持,也算还有一个解决办法,2012连个解决办法也没有。好吧, 我看到你说2013将支持C99,utf-8, c++ 11大部分特性。我就不说LLVM已经快把C++ 阅读全文
posted @ 2013-07-11 10:41 Marvin 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 技术债被广泛视为一件坏事,它应该避免或者要尽快进行偿付。你应该这样做吗?我们并不这么认为。首先,我们对比了技术债与财务债,阐述了它与战略设计(Strategic Design)的相似性以及它的利益相关者。然后,我们列出了识别代码中技术债的各种可行的方式,这可能是你所关心的。最后,我们描述了项目中可以偿还技术债的不同方式,并且阐述了当你在决定要偿还债务、转移债务或者只是支付利息哪个方案更好时,必须要考虑的因素。什么是技术债开发人员在实现新特性的时候,有两种不同的方式:一种是快速且混乱地完成,这会使得将来的变化很困难。另一种是整洁(clean)和明智的方案,它需要更长的时间来实现但是将来的变化会更 阅读全文
posted @ 2013-06-18 09:01 Marvin 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 驱动测试开发(TDD)是唯一能让你写出没有bug的程序的方法。只有结对编程是可行的。我们之所以成功就是因为我们使用的是远程开发人员。等等等等……像这样的话每天我都能看见。像这样的风言风语十分能蛊惑人心,它愚弄我们,让我们认为这就是我们不能遇到阿拉丁的那个茶壶里的精灵的唯一原因。最终,这些人所写的会让你也这么认为。如果你随机找100个程序员,问他们“开始一个新项目前首先想到的技术方案上什么?”相信你会得到100种不同的回答。那么,为什么有这么多的人看起来坚信自己的方法才是唯一可行的?在我看来,这答案既十分的简单,又十分的复杂。说简单,是因为有些人就是喜欢说。说复杂,是因为软件业实际上是一系列亚文 阅读全文
posted @ 2013-05-11 17:50 Marvin 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 如果你还没听说过Alan Kay(艾伦·凯)这个名字,你也很可能听说过他的诸多名言中的一句,最流行的是他在1971年的这句金玉良言:预测未来的最佳方式就是去创造它。给不了解他的人们介绍一下,Alan取得了计算机科学领域最杰出的专业成就之一:他因为在面向对象编程(OOP)领域的工作获得了京都奖(号称日本 的诺贝尔奖)和图灵奖。同时他也是个人计算(PC),图形用户界面(GUI), 面向对象编程(OOP)的先驱者之一,和有史以来最具影响力的语言之一Smalltalk的发明者。Alan Kay写的很多文章(链接1、链接2)中都犀利地观察到思路延伸的力量,对此他回顾了当时独辟蹊径的Xerox 阅读全文
posted @ 2013-03-13 03:29 Marvin 阅读(632) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页