随笔分类 -  个人总结

上一页 1 ··· 3 4 5 6 7 8 下一页

【转】关系模型的实质
摘要:每当我批评关系式数据库,就会有人说,SQL和关系式数据库的设计,其实偏离了E.F.Codd最初的关系式理论。关系式理论和关系式模型,本身还是很好的,只不过被人实现的时候搞砸了。如果你看透了本质,就会发现这只是一个托词。关系式数据库的问题是根源性的,这个问题其实源自关系式理论本身,而不只是具体的实现。 阅读全文

posted @ 2018-03-03 11:45 AlanTu 阅读(475) 评论(0) 推荐(0) 编辑

【转】对 Go 语言的综合评价
摘要:以前写过一些对 Go 语言的负面评价。现在看来,虽然那些评价大部分属实,然而却由于言辞激烈,没有点明具体问题,难以让某些人信服。在经过几个月实际使用 Go 来构造网站之后,我觉得现在是时候对它作一些更加“客观”的评价了。 定位和优点 Go 比起 C 和 C++ 确实有它的优点,这是很显然的事情。它比 阅读全文

posted @ 2018-03-03 11:44 AlanTu 阅读(271) 评论(0) 推荐(0) 编辑

【转】黑客文化的精髓
摘要:听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌 阅读全文

posted @ 2018-03-03 11:43 AlanTu 阅读(409) 评论(0) 推荐(0) 编辑

【转】一个对 Dijkstra 的采访视频
摘要:一个对 Dijkstra 的采访视频 (也可以访问 YouTube 或者从源地址下载 MPEG1,300M) 之前在微博上推荐了一个对 Dijkstra 的采访视频,看了两遍之后觉得实在很好,所以再正式推荐一下。大部分人可能都知道他对图论算法和操作系统的贡献,而其实 Dijkstra 在程序语言上的 阅读全文

posted @ 2018-03-03 11:39 AlanTu 阅读(284) 评论(0) 推荐(0) 编辑

【转】程序员的心理疾病
摘要:由于程序员工作的性质,他们长期以来受到的所谓“黑客”式的“熏陶”,形成了一种行业性的心理疾病。患了这种病的人对于很多新入行的人,甚至一些外行人士造成了持续的伤害。慢慢的,这些不幸的受害者也形成了“条件反射”,进而成为了这个心理变态的系统的一部分,导致越来越多的人,越来越快的变成“怪胎”。这是一件可怕 阅读全文

posted @ 2018-03-03 11:33 AlanTu 阅读(404) 评论(0) 推荐(0) 编辑

【转】程序语言与它们的工具
摘要:谈论了这么多程序语言的事情,说得好像语言的好坏就是选择它们的决定性因素。然而我一直没有提到的一个问题是,“程序语言”和“程序语言工具”的设计,其实完全是两码事。一个优秀的程序语言,有可能由于设计者的忽视或者时间短缺,没有提供良好的辅助工具。而一个不怎么好的程序语言,由于用的人多了,往往就会有人花大力 阅读全文

posted @ 2018-03-03 11:29 AlanTu 阅读(172) 评论(0) 推荐(0) 编辑

【转】我和权威的故事
摘要:每个人小时候心里都是没有权威的,就像每个人小时候也都不相信广告一样。可是权威就像广告,它埋伏在你的潜意识里。听一遍不信,听两遍不信,……,直到一千遍的时候,它忽然开始起作用了,而且这作用越来越强。 消灭广告所造成的幻觉,最好的办法就是去尝试,去实地的考察它。有些虚幻的东西只要你第一次尝试就会像肥皂泡 阅读全文

posted @ 2018-03-03 09:50 AlanTu 阅读(264) 评论(0) 推荐(0) 编辑

【转】原因与证明
摘要:我在 Cornell 的时候经常遇到这样的问题,那就是教授们一上课就在黑板上写长篇的“定理证明”,全体同学认认真真在下面抄笔记,就连只有十来个人的小课也是那样。有些写字速度慢的人就不得不带上小型录音机,把教授的课全都录下来,要不就是之后去借别人的笔记来抄。 有一次某知名教授照着讲义,背对着学生,在黑 阅读全文

posted @ 2018-03-03 09:47 AlanTu 阅读(185) 评论(0) 推荐(0) 编辑

【转】程序语言不是工具
摘要:在谈论到程序语言的好坏的时候,总是有人说:“程序语言只是一种工具。只要你的算法好,不管用什么语言都能写出一样好的程序。”在本科第一堂编程课上,我的教授就这么对我们说。可是现在我却发现,这是一个根本错误的说法。 我不知道这种说法确切的来源,然而昨天在浏览网页的时候,偶然发现了 C++ 的设计者 Bja 阅读全文

posted @ 2018-03-03 09:45 AlanTu 阅读(196) 评论(0) 推荐(0) 编辑

【转】程序语言的常见设计错误(2) - 试图容纳世界
摘要:之前的一篇文章里,我谈到了程序语言设计的一个常见错误倾向:片面追求短小,它导致了一系列的历史性的设计错误。今天我来谈一下另外一种错误的倾向,这种倾向也导致了很多错误,并且继续在导致错误的产生。 今天我要说的错误倾向叫做“试图容纳世界”。这个错误导致了 Python,Ruby 和 JavaScript 阅读全文

posted @ 2018-03-03 09:36 AlanTu 阅读(196) 评论(0) 推荐(0) 编辑

【转】关于语言的思考
摘要:之前写了那么多 Haskell 的不好的地方,却没有提到它好的地方,其实我必须承认我从 Haskell 身上学到了非常重要的东西,那就是对于“类型”的思考。虽然 Haskell 的类型系统有过于强烈的约束性,从一种“哲学”的角度(不是数学的角度)来看非常“不自然”,但如果一个程序员从来没学过 Has 阅读全文

posted @ 2018-03-03 09:35 AlanTu 阅读(216) 评论(0) 推荐(0) 编辑

【转】一种新的操作系统设计
摘要:我一直在试图利用程序语言的设计原理,设计一种超越“Unix 哲学”的操作系统。这里是我的设想: 这种系统里面的程序间通信不使用无结构的字符串,而是使用带有类型和结构的数据。在这样的系统里面,Unix 和其它类似操作系统(比如 Windows)里的所谓“应用程序”的概念基本上完全消失。系统由一个个很小 阅读全文

posted @ 2018-03-03 09:31 AlanTu 阅读(174) 评论(0) 推荐(0) 编辑

【转】谈程序的“通用性”
摘要:在现实的软件工程中,我经常发现这样的一种现象。本来用很简单的代码就可以解决的问题,却因为设计者过分的关注了“通用性”,“可维护性”和“可扩展性”,被搞得绕了几道弯,让人琢磨不透。 这些人的思维方式是这样的:“将来这段代码可能会被用到更多的场合,所以我现在就考虑到扩展问题。”于是乎,他们在代码中加入了 阅读全文

posted @ 2018-03-03 09:01 AlanTu 阅读(1028) 评论(0) 推荐(0) 编辑

【转】测试驱动开发
摘要:现在的很多公司,包括 Google 和我现在的公司 Coverity,都喜欢一种“测试驱动的开发”(test-driven development)。它的原理是,在写程序的时候同时写上自动化的“单元测试”(unit test)。在代码修改之后,这些测试可以批量的被运行,这样就可以避免不应该出现的错误 阅读全文

posted @ 2018-03-03 08:55 AlanTu 阅读(148) 评论(0) 推荐(0) 编辑

【转】什么是“脚本语言”
摘要:很多人都会用一些“脚本语言”(scripting language),却很少有人真正的知道到底什么是脚本语言。很多人用 shell 写一些“脚本”来完成日常的任务,用 Perl 或者 sed 来处理一些文本文件,很多公司用“脚本”来跑它们的“build”(叫做 build script)。那么,到底 阅读全文

posted @ 2018-03-03 08:52 AlanTu 阅读(521) 评论(0) 推荐(0) 编辑

【转】“解决问题”与“消灭问题”
摘要:一直以来,人们都重视“解决问题”的能力,却忽视了另一种重要的能力:“消灭问题”的能力。各种各样的竞赛,分数和排名,让很多人从小就片面的认为,能“解决问题”的人,就是最厉害的人。拿到一个问题就埋头求解,很少考虑这问题到底有什么意义。这种呆板的思维方式,不仅存在于低级的“应试”和“解题”过程,而且蔓延到 阅读全文

posted @ 2018-03-03 08:50 AlanTu 阅读(296) 评论(0) 推荐(0) 编辑

【转】程序语言的常见设计错误(1) - 片面追求短小
摘要:我经常以自己写“非常短小”的代码为豪。有一些人听了之后很赞赏,然后说他也很喜欢写短小的代码,接着就开始说 C 语言其实有很多巧妙的设计,可以让代码变得非常短小。然后我才发现,这些人所谓的“短小”跟我所说的“短小”完全不是一回事。 我的程序的“短小”是建立在语义明确,概念清晰的基础上的。在此基础上,我 阅读全文

posted @ 2018-03-03 08:49 AlanTu 阅读(252) 评论(0) 推荐(0) 编辑

【转】解密“设计模式”
摘要:有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一些“设计模式”(design patterns)。这是一个我很早就有定论,而且经过实践检验的问题,所以想在这里做一个总结。 总的来说,如果光从字面上讲,程序里确实是有一些“模式”可以发掘的。因为你总是可以借鉴以前的经验,用来 阅读全文

posted @ 2018-03-03 08:47 AlanTu 阅读(176) 评论(0) 推荐(0) 编辑

【转】所谓软件工程
摘要:很多编程的人包括我,头衔叫做“软件工程师”(software engineer),然而我却不喜欢这个名字。我喜欢把自己叫做“程序员”(programmer)或者“计算机科学家”(computer scientist)。这是为什么呢?这需要从“软件工程”(software engineering)在现 阅读全文

posted @ 2018-03-03 08:42 AlanTu 阅读(159) 评论(0) 推荐(0) 编辑

【转】清华梦的粉碎 - 写给清华大学的退学申请
摘要:清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog) 清华梦的诞生 小时候,妈妈给我一个梦。她指着一个大哥哥的照片对我说,这是爸爸的学生,他考上了清华大学,他是我们中学的骄傲。长大后,你也要进入清华大学读书,为我们家争光。我不知道清华是什么样子,但是我知道爱迪生和牛顿的故事。清华,大概就是可以把 阅读全文

posted @ 2018-03-03 08:21 AlanTu 阅读(290) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页

导航