欢迎来到天天文库
浏览记录
ID:9109438
大小:14.17 KB
页数:5页
时间:2018-04-18
《编程的艺术--漂亮的代码和漂亮的软件》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、编程的艺术:漂亮的代码和漂亮的软件 英文原文:BeautifulCodeandBeautifulSoftware 译者:legendsland 2007-10-29 编程很有意思,是因为我可以做一些很酷的东西,但是实际上让我着迷的却是那一行行代码的语法和语义。保持对好代码和坏代码之间差异的敏感相当激励人,同时,去寻找编写高效、自文档化和经过深思熟虑良好组织的代码的方法将会永远吸引着我。这便是我对所在领域钟爱的原因——编程的艺术——这种奇妙的复杂物(complexcraft)将会让你花费一生的时间去成为大师。 续Ruby之后,我学习了Java和Objective-C,我开始
2、享受到底层软件开发的乐趣。我是在一个讨厌繁缛语言开发的社区(Rails社区)成长起来的,但是当我第一次接触这类语言之后,发现我喜欢上了它们。它们(和Ruby比较起来)是不同的语言,但仍然具有它们特有的乐趣。以Java里面的for循环为例,当以我的高级程序语言的背景,编写了一些这样的基础代码后,发现这种代码可以更好地帮助我理解面向对象的一些实践,但同时我也对for循环本身产生了兴趣。这不仅仅是优美的语言吸引了我,也是语法背后的逻辑和不同语法形式让我着迷。计算机语言,以及它们之间的差异,本身就极具魅力。 当这学期我在学校学汇编语言的时候,获得了相同的满足感。汇编很繁琐,有时相当痛苦,
3、但是让我去思考使用这种新的方式去实现基本的程序功能,跟痛苦相比,是完全值得的。当然,意识到自己编写的代码如此底层,也让我享受到了极客(Geek)的快感。 情况变得更糟了!在今年的早些时候,当我读到Wolf的程序员不喜欢编码时,我经历了一个很不错的自我发现过程。我确实是喜欢在编码过程中解决问题,进行优雅地创造,以及通过编码来学习,但实际上我意识到我也是因为喜欢编码而编码。至少,这就是我享受CSS和XHTML的方式。我拥有大量的Web前端开发经验,并且最近没怎么碰到新的问题(事实上,难搞的问题和我从没有见过的Bug会让我异常兴奋)。尽管如此,我仍然喜欢这些东西。比如,整理一下我完全理
4、解的代码让它变得好看点,就像是在我的笔记本上重复地画一些卡通猫,或者是坐在钢琴前重复地弹三个相同的音调一样,这让我感到放松。甚至仅仅去阅读漂亮的CSS(我自己写的CSS),上面每一样东西都整齐有序、缩进良好,并且进行了正确的层叠(CSS里面很重要的一种技术)而感到心情舒畅;相反,当我看到某些论坛的样式表里面混乱的缩进、多余的空行、被注掉的一些老代码,以及通过故意使用错误的属性名来屏蔽掉的样式的时候,我感到难受,就像是生病了一样。 当你可以如此轻易地被激起兴趣,就是上面这个结果。仅仅是墙上的影子就足够让你继续生活下去(译注:看来,她对柏拉图很有兴趣)。你得不断地重新审视自己的敏感度
5、,以便让你的声色品味与你口袋里的钞票相匹配。(你对代码或者软件的品味来自于你自己的能力水平) 这样来讲吧,这些天我一直在思考(整个)软件开发中的软件部分。特别是软件中的用户界面设计。今年在BARcamp,我喜欢AzaRaskin的一个实验,他让所有的开发人员举起手,然后是设计人员,接着他说那些第一次举手的人在第二次也应该举手。所有的开发人员必须是设计人员。至少,幸运的是,所有的开发人员在他们的工作中可以对软件设计发表自己的意见。 我越来越对软件开发中设计部分的重要性感到兴奋,尤其是当我反思我对过去所做的事情在不同方面的热情与心得的时候。在Web应用领域,开发和设计一般是分离的。
6、有时候,设计部分的工作在项目中被最少化了,这是因为客户是为软件的特性买单,而不会为漂亮的设计付帐。在一个项目中,我同时扮演了开发和设计的角色,回想起来,我对只分配了两天时间来完成可视化的设计感到耿耿于怀。这决不是两天的事情。这是一个很复杂的应用软件,需要花上几周的时间与客户交流和迭代设计。不幸的是,客户并不会因此而买单。相反,客户对我花了几个小时的原型感到无比满意,就这样,我们有了这个产品的第一个版本。 在今年的C4上我有了另一次觉悟。好像很多Mac下的开发人员都在(私下)做自己的产品。这样,他们真的必须既是设计师又是开发人员。事实上,设计是最重要的部分,并且用户体验和制造了不起
7、的产品看起来要比代码本身更具有热情。在C4的一个晚上,有人在向我描述他的工作的时候,无意中帮助我看到了这一点:编码这个基本要素是最容易的部分。那仅仅需要几周而已。真正困难和耗费时间的是搞定UI的规格。 哇噢,我在想,为什么这看起来如此正确?为什么对我而言是这么的酷?哦,是的,那是因为我是从设计人员开始的。我享受开发、设计和艺术的方式绝然不同,这就导致了这三种享受之间巨大的差别。我一直在尝试整合开发和艺术(这两个方面),但是我其实应该整合这三个方面。 毕竟,我的天啊
此文档下载收益归作者所有