跳到内容

文章类别:编程

陪伴我作为程序员的9句名言

本文是从 9 Quotes that stayed with me as a developer 这篇文章翻译而来。

我 发现名人名言能激励人,鼓舞人或有时是煽动人,下面就是我这些年来最喜欢的几句。有时一本书能对你如何写程序或如何解决一个问题具有实实在在影响。有时一 句简单的话已足够让你质疑对正在编写的代码的态度。有时候我惊讶于有些人如此的深谙这些藏在我心里多年、只是从未宣讲出来的道理。

“设计是一个发现问题、而不是发现解决方案的过程” —— Leslie Chicoine

“功能说明书里不存在可操作性” —— 37 Signals

“过去的代码都是未经测试的代码” —— Michael Feathers

“任何傻瓜都能写出计算机可以理解的代码。好的程序员能写出人能读懂的代码” ——Martin Fowler

“测试是来表明bug的存在而不是不存在” —— Edsger Dijkstra

“简单不先于复杂,而是在复杂之后” —— Alan Perlis

“Real developers ship” —— Jeff Attwood

“没有绝世神功” —— Frederick Brooks

“过去的33年里,我每天早上看着镜子问自己:“今天是我生命的最后一天吗?我是否要去做今天该做的事?”一天一天太多次 是“不是”,我知道这需要改变…所有的事情 —— 所有身外的期望,所有的骄傲,所有的对困难和失败的恐惧 —— 这些东西在死亡面前立刻消失的无影无踪,只剩下真正重要的东西。想着自己即将死去,这是让我避免落入担心失去什么的陷阱里的最好的方法。” —— Steve Jobs

 

程序员的本质

Computers are useless. They can only give you answers. – Picasso
计算机没有什么作用。他们只能告诉你答案。——毕加索

很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。

在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:

程序员是将人类想法翻译成计算机语言的译者。

他们是两种世界之间的纽带。你认为维护这个纽带很容易吗?

人类世界的背景

The problem with people is that they’re only human. – Bill Watterson
人类的问题是,他们只是人而已。——比尔·沃特森

人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。
阅读更多 »

清除代码异味

今天,Venkat Subramaniam 就关于清除代码异味的话题给我们做了一个非常有趣的演讲。下面就是我记录的一些他的话。

为什么我们需要有质量的代码?

  • 敏捷开发方法是用来应付那些要求代码做大量改动的反馈信息的方法。
  • 如果程序没有用一种好的表达方式来表现,那程序会很难读,难维护,难修改。

什么是代码异味?

  • 代码异味是一种由写的很差的代码引起的一种有臭味的感觉,一种程序什么地方会有问题的感觉
  • 异味更多的是来自一种直觉,而不是一种有据可查的标准,当你看到有味的代码时你就“感觉”到了
  • 如果你不把异味清除,不久之后你就会习惯这种气味,不再对它有察觉
  • 用任何语言都能写出有异味的代码:即使最简单安全的语言,你也能做出天才才能想出的蠢事:)
  • 我们经常会意识不到自己在写很臭的代码,经常需要外人为我们指出这点
    • 边注:如果你不想刻意去批评某人的程序,不要说“太愚蠢了”,要说“哦,这很有意思…。可有一种更好的方法你知道吗”

重复的代码

  • 会引起程序里面多个地方相同的错误
  • 印度小伙:每两个月我们都会把这相同的错误修改一次
  • Venkat:你们去掉了重复的代码了吗?
  • 印度小伙:你说的这个方法不错!

不必要的复杂

  • 程序员本质上讲高兴去处理复杂的问题
  • 复杂最恐怖

阅读更多 »

优秀网页设计的10个设计技巧

作为一名网页设计师,如何在第一时间打动潜在的客户是至关重要的。如果你设计的东西不能够打动他们,你就会失去一切,这个世界有的时候就是这么的现实。那究竟要注意哪些细节才能够在一个正确的方向去打动客户,让浏览者源源不断呢!?下面几点可能是你需要反思的。

1、有明确的标志和口号

我们知道有一个好的标志是企业形象的开始。好的口号可以让你以更快的速度去曝光自己的站点。在互联网时代,这是重要的开始。

2、让你的页面遵循用户体验,易于浏览

这点相信我们都有着切身的体会。好的网站是不需要你思考的,它有好的人机交互设计和用户体验。让你以最快的速度去融合于设计,这才是真正的设计,源于生活的设计。这会让你有更多的浏览量的保障。用最段的距离诠释最好的创意。

3、可以方便的与其联系

网站的设计也算是服务网页,我们必须遵循客户的使用感受和各种提议,所以给予方便的联系可以更好的修正错误的体验方式,让系统更加完善,更快的做出解决方案! 阅读更多 »

软件工程师,你真的喜欢你的工作吗?

我喜欢这种做事方式。首先,我在Facebook日志页面上寻求反馈,询问人们喜欢看什么样的文章。有人希望得到更多的从前辈那里来的关于个人事业上的忠告,而正好出现了两篇这方面的文章,让我轻松了一下。在这个行业里,如果你想找,你会找到很多从有经验的人哪里提供的人生事业上的忠告建议。今天,我的主要目的是要让你——一个软件工程师——弄清楚自己是否正走在正确的道路上。基本上,软件工程师是一个非常辛苦的工作,通常压力非常的大。所以,如果你并不是真正的喜欢你现在的工作,你需要采取行动,找到你真正喜欢甚至热爱的事情。问题就在于你如何知道现在是做这种改变的时机?

Erik Petterson有一篇非常有趣的文章,他把工作对工作的满意情况比作咖啡桌。这是一篇非常有趣的博客,对检测你是否喜欢你的工作做了一个非常好的总结:

对那些不能融入自己的工作的人的建议。列出对工作的满意情况的清单。问自己,“我获得的报酬合理吗?我是否喜欢我正在做的事情,我在跟什么人做这些事情,好时光看上去是否还会继续吗?”

有很多的网站都可以找到你当地的软件工程师的平均薪资水平。你需要确保你的薪资水平至少是在平均水平以上。 阅读更多 »