编程的艺术:漂亮的代码和漂亮的软件

Centos7网络配置(设置固定ip) 刚安装完系统,有的人尤其没有勾选自动网络配置的情况下,是访问不了外网的,本机也连不通虚拟机。或者现在有的是动态ip,几次之后启动ip地址就变了,会导致其他软件或程序之前连接配置要重新更改,很麻烦,下面讲解一下如何配置网络,如何设置成固定ip。 阅读详情

 

原文作者:violasong
原文链接:Beautiful Code and Beautiful Software
译者:legendsland

编程很有意思是因为我可以做一些很酷的东西,但是实际上让我着迷的却是那一行行代码的语法和语义。保持对好代码和坏代码之间差异的敏感相当激励人, 同时,去寻找编写高效、自文档化和经过深思熟虑良好组织的代码的方法将会永远吸引着我。这便是我对所在领域钟爱的原因编程的艺术,这种奇妙的复杂物将会让 你花费一生的时间去成为大师。

续Ruby之后,我学习了Java和Objective-C,我开始享受到底层软件开发的乐趣。我是在 一个讨厌繁缛语言开发的社区(Rails社区)成长起来的,但是当我第一次接触这类语言之后,发现我喜欢上了它们。它们(和Ruby比较起来)是不同的语 言,但仍然具有它们特有的乐趣。以Java 里面的for循环为例,当以我的高级程序语言的背景,编写了一些这样的基础代码后,发现这种代码可以更好地帮助我理解面向对象的一些实践,但同时我也对 for循环本身也产生了兴趣。这不仅仅是优美的语言吸引了我,也是语法背后的逻辑和不同语法形式让我着迷。计算机语言,以及它们之间的差异,本身就极具魅 力。

当这学期我在学校学汇编语言的时候,获得了相同的满足感。汇编很繁琐,有时相当痛苦,但是让我去思考使用这种新的方式去实现基本的程序功能,跟痛苦相比,是完全值得的。当然,意识到自己编写的代码如此底层,也让我享受到了奇客(Geek)的快感。

情况变得更糟了!在今年的早些时候,当我读到Wolf的程序员不喜欢编码时, 我经历了一个很不错的自我发现过程。我确实是喜欢在编码过程中解决问题,进行优雅地创造,以及通过编码来学习,但实际上我意识到我也是喜欢编码而编码。至 少,这就是我享受CSS和XHTML的方式。我拥有大量的Web前端开发经验,并且最近没怎么碰到新的问题(事实上,难搞的问题和我从没有见过的Bug会 让我异常兴奋)。尽管如此,我仍然喜欢这些东西。比如,整理一下我完全理解的代码让它变得好看点,就像是在我的笔记本上重复地画一些卡通猫,或者是坐在钢 琴前重复地弹三个相同的音调一样,这让我感到放松。甚至仅仅去阅读漂亮的CSS我自己写的CSS,上面每一样东西都整齐有序、缩进良好,并且进行了正确的 层叠(CSS里面很重要的一种技术)而感到心情舒畅;相反,当我看到某些论坛的样式表里面混乱的缩进、多余的空行、被注掉的一些老代码,以及通过故意使用 错误的属性名来屏蔽掉的样式的时候,我感到难受,就像是生病了一样。

当你可以如此轻易地被激起兴趣 ,就是上面这个结果。仅仅是墙上的影子就足够让你继续生活下去(看来,她对柏拉图很有兴趣)。你得不断地重新审视自己的敏感度,以便让你的声色品味与你口袋里的钞票相匹配。(你对代码或者软件的品味来自于你自己的能力水平)

这 样来讲吧,这些天我一直在思考(整个)软件开发中的软件部分。特别是软件中的用户界面设计。今年在BARcamp,我喜欢Aza Raskin的一个实验,他让所有的开发人员举起手,然后是设计人员,接着他说那些第一次举手的人在第二次也应该举手。所有的开发人员必须是设计人员。至 少,幸运的是,所有的开发人员在他们的工作中可以对软件设计发表自己的意见。

我越来越对软件开发中设计部分的重要性感到兴奋,尤其是 当我反思我对过去所做的事情在不同方面的热情与心得的时候。在Web应用领域,开发和设计一般是分离的。有时候,设计部分的工作在项目中被最少化了,这是 因为客户是为软件的特性买单,而不会为漂亮的设计付帐。在一个项目中,我同时扮演了开发和设计的角色,回想起来,我对只分配了两天时间来完成可视化的设计 感到耿耿于怀。这决不是两天的事情。这是一个很复杂的应用软件,需要花上几周的时间与客户交流和迭代设计。不幸的是,客户并不会因此而买单。相反,客户对 我花了几个小时的原型感到无比满意,就这样,我们有了这个产品的第一个版本。

在今年的C4上我有了另一次觉悟。好像很多Mac下的开 发软件,可能他们中的大多数都在(私下)做自己的产品。这样,他们真的必须既是设计师又是开发人员。事实上,设计是最重要的部分,并且用户体验和制造了不 起的产品看起来要比代码本身更具有热情。在C4的一个晚上,有人在向我描述他的工作的时候,无意中帮助我看到了这一点:编码这个基本要素是最容易的部分。 那仅仅需要几周而已。真正困难和耗费时间的是搞定UI的规格。

哇噢,我在想,为什么这看起来如此正确?为什么对我而言是这么的酷?哦,是的,那是因为我是从设计人员开始的。我享受开发、设计和艺术的方式绝然不同,这就导致了这三种享受之间巨大的差别。我一直在尝试整合开发和艺术(这两个方面),但是我其实应该整合这三个方面。

毕 竟,我的天啊!我们想要漂亮的代码或者是漂亮的软件吗?我生活中的另一个观点是:由于我的思想极具开放性和强吸收性,我发现我自己可以接受各种相互矛盾的 观点,有时候甚至是相反的观点。这种问题目前不会困扰我,因为我正处在探索模式的阶段,而不是在只接受我所相信的阶段,但是,当然啦,为了保持我思想自身 的一致性,当它们有点头绪的时候必须要好好的整理一下。

所以,为了后续的考虑,我按照软件开发给人们带来的由内之外的收获,简单地列 出了这个清单。我没有选择其他一些极好的价值,比如社区、开源和挑战等等,是因为这些都很难按顺序列到里面去,不过我相信你可以领会到其中的要点。这个顺 序对我而言是极度重要的,因为心理学家讲过,内因的力量更为强大,更能让你坚持。比如,一个为了想从击打和踢腿中感觉到力量和兴奋而参加空手道训练的人, 肯定要比仅仅为了健康的人更容易达到黑段水平。

编程也是如此吗?

* 代码感(译者:还记得圣斗士里面的第六感吗?)
* 编码的知识
* 享受计算机逻辑
* 享受计算机语言
* 优雅的语法
* 优美的语义
* 学习代码
* 问题求解
* 了解问题
* 获得可用性
* 完成一个产品
* 优雅的软件
* 解决人的问题
* 解决商业的问题
* 满足市场需求
* 赚钱
* 有一个稳定的职业

哪 个是最能持续激励人的收获?更重要的是,哪种动机可以制造出最好的软件?有时候我很想在这个话题上做一个很正式的研究,当我们希望软件既满足可用,又具备 可维护性,同时还叫买,而且还要满足一些其他的目标的时候,我很确信这个答案就是清单上面各种条目之间健康的平衡。我同时还很确信这种平衡性是因情况和人 而异的。现在,我已经勾画出了一条钟形曲线(正态分布),那些可以促成最佳的软件的动机位于曲线的中间部分;但是,我想实际上所有的动机在某些方面都是有 益的,并且当程序员有她自己的优先级的时候,动机自然是越多越好。

我们领域的悲哀在于大多数程序员并不会欣赏上面大部分的收获,尤其 是那些更为重要的。这个清单很有用,因为大多数编程的工作无法满足那些关心所有这些事情的人。同样地,我很好奇,如果我们每个人都从内心关心我们做的东 西,并且不会有人为了稳定的工作而去选择计算机科学者个专业,那么这个(软件)领域将会成为什么样子呢?我好奇这样会对整个世界产生什么影响?

我 想我每年都应该反思一下这种问题,以便成为一个更好的软件开发人员。尽管如此,我还是觉得我的信念已经固定下来了:越是成长,就越希望能够在一个足够自由 的环境里面创造美妙的东西。值得注意的是,美妙和自由都是模糊和主观的概念,可以任意地去理解。我只知道,在大多数的编程工作中对代码之美和软件设计之美 的妥协永远会让我感到不满。如果到最后,我选择成为一个自由开发者去做Web设计,以满足这种自我的生活风格,我不会对此感到意外。

最 终我会从计算机上面退休,并且用我剩下的时间在国外美丽的农场里面画画。或者是,过上在街头涂涂抹抹和牢房之间互动的感性城市生活。想象一下,当我觉和技 术玩完了的时候,接下来要去哪里将是很有趣的。但愿永远不要发生这种事情,因为我希望成为一个酷酷的guru奶奶,到时候给孩子们上一些编程的必修课呢! (Fantastic guru girl !!)

 

---------------------------------------------------------------------------------------------

看完这篇文章感觉翻译者的水平不怎么样,好好的一篇文章却翻译的七零八乱,但是文章的标题还有第一句话吸引住了我,因为我之所以对编程那么的喜爱很重要的一点就是对一段段代码的喜爱。一段段”漂亮的“代码是能激励人的,是能让人心情愉悦的,是能让人对编程更加热爱的。

 

【TC3xx芯片】TC3xx DMA模块详解 TC3xx DMA模块详解 阅读详情

相关推荐

abaqus 6.13安装(ubuntu 16.04LTS)

1。从iso将文件拷贝出来 2。chmod 777 -R ./* 给文件权限 3。sudo /home/xx/A/setup 4。安装licenseserver 5。拷贝lic,log文件 6。打开license sudo ./lmgrd -c path 7. 27011@xx or 27011@localhost ...

a1099313374的博客 1950

编程的艺术:漂亮的代码和漂亮的软件 原文作者:violaso

湖南大学 广子(C/C++学生) 496

基于QEMU的openEuler aarch64虚拟机快速部署与漏洞验证指南

本文提供了一份基于QEMU在个人电脑上快速部署openEuler aarch64虚拟机的详细指南。内容涵盖从软件准备、目录规划、QEMU安装、虚拟磁盘创建到系统安装与SSH配置的全过程,并以CVE-2024-1086内核漏洞为例,演示了如何在该虚拟环境中进行安全漏洞的验证与补丁测试,为安全研究和运维测试提供了一个低成本、高效率的ARM架构沙箱环境。

earth的博客 439

编程是一门技术,更加是一门艺术

最近一段时间在学习“大话设计模式”,书籍开篇就提到“编程是一门技术,更加是一门艺术”这句经典。读罢,我不得不被作者程序设计模式这种与众不同的思维所折服。其实软件编程真的是一门了不起的艺术。 谈及“艺术”,人们自然会联想到“美”、“技艺”、“灵感”等词,但很少会把它和“计算机编程”这听起来似乎聒噪的词组联系在一起。呵呵!你如果那样想就错了,下面由我来为大家揭开“编程之美”这层美丽的面纱。

邢金聪 廊坊师范学院九期信息技术提高班 2748

win10自动修复-无限循环【通用完美】超简单解决办法

2020.02.14今个我的笔记本电脑(Thinkpad Carbon 7 X1)(win10)早晨起来发现蓝屏,上面显示自动修复失败,重启后依然自动修复失败,不断手动重启,始终是修复失败。然后上网开始搜集资料找解决办法。 前边介绍关闭自动修复,如何找出错文件的方法;如果想看最终解决办法,直接看第三部分 上网就会发现这种现象很常见,同时是电脑自动安装系统更新,或者安装某些驱动出现。解决办法也大...

y15941300574的博客 19万+

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 938

代码之美:如何让编程成为一门艺术?

作者 | Semi Koen译者 |明明如月,责编 |伍杏玲出品 | 优快云(ID:优快云news)美丽的来源多种多样。就软件开发领域而言,简单和架构一致就能产生美感,美感和能...

程序人生的博客 1951

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1008

三读《UNIX编程艺术》

                                          三读《UNIX编程艺术》          第一次读《UNIX编程艺术》是2004年的夏天。那时我正忙着把一套只肯在Windows上跑的分布式存储系统移植到UNIX和LINUX上来,业余时间里则正在北大裘宗燕教授的指导下,一字一句地翻译“古奥艰深”的R5RS;于是,像《UNIX编程艺术》这样一本没有太多恼人

ThinkHY的专栏 1万+

Rcpp简介

在数据分析时,代码的运行速率常常是我们所关心的话题之一。小Q往期的文章中也有介绍通过并行计算提升R运行速率的文章。然而R代码自身的运行速率偏慢,具有某种“先天缺陷”。因此,并行R函数的运行时间有时仍然不尽人意。本期小Q与大家分享R的另一提速方式:Rcpp之效率瓶颈突破。 1 什么是Rcpp 在往期的文章中曾讲过,我们在R中尽量采用向量化或内建函数运算,避免自编循环带来的额外时间消耗。然而,算法中有时难以避免循环,若循环部分耗时严重,直接并行含有该循环的算法显得力不从心,此时又该如何?稍有编程知识的读者可

Mrrunsen的博客 2262

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

Unix编程艺术:哲学基础

目录 阐述一: 阐述二 阐述三: 1、模块原则。 2、清晰原则。 3、组合原则. 4、分离原则:策略同机制分离,接口同引擎分离。 5、简洁原则:设计要简洁,复杂度能低则低。 6、吝啬原则:除非确无 它法,不要编写庞大的程序。 7、透明性原则:设计要可见,以便 审查和调试。 8、健壮原则:健壮源于透明与简洁。 9、表示原则。 10、通俗原则:接口设计 避免标新立异...

猪哥的专栏 930

【异常】Codybuddy Error Code: 14003 too many requests 限流报错问题排查与解决指南

14003报错本质为服务端限流拦截,并非账号封禁或程序致命故障,90%以上的场景可通过等待冷却+规范使用行为解决。通过本文的排查步骤,可快速恢复工具使用,同时规避后续重复触发该问题。

奶爸的编程之路,也就一周冷个三天 1254

哥写的不是代码,是艺术!

本文来自http://blog.youkuaiyun.com/lijun84 ,引用必须注明出处!这阵子终于可以精雕细琢的编写一些想了很久的东西,没有schedule的压力,没有QA的追杀,没有强迫自己实现的需求,这种感觉久违了,很喜欢那种体味每句代码并精心雕琢它们的感觉。顺便把很久前就想抒发的代码情节释放出来。纯粹个人抒发,别challenge我喔…我不回复的…从纯艺术的角度抒发一下代码美学:一段美的代码是当你初看它时感觉似曾相似,与你期望对此功能的实现方式基本相符,当你读到更多其它部分时,不断的感叹原来它还为这

阿弥陀佛 僧伽吒 7678

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

编写简洁代码的艺术

编写简洁代码的艺术

区块链研究 631

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

编程是一门艺术!

毕业至今3年多,一直从事软件开发工作,大型项目一个接着一个的做,写了大量的代码,一直对编程情有独钟。我个人认为编程不仅仅是编码实现功能,而是自己对某一门语言的理解程度的最佳体现,所以编程也是一门艺术。 干了若干个大项目,有好有坏,好的让你可以深入其中感受编程语言之美,坏的让你痛恨厌恶不想触碰。我在学校学习软件工程这门课程时,老师说,一个好的系统,是怎么坏的,是怎么被替换掉的? 答案就是,没有规矩

编程之路——我愿华丽的走下去 1490

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【PC工具】大神级代码注释,漂亮实用的代码注释工具代码logo工具

github上看各路大牛大神的项目代码,经常会看到各种神注释......那么问题就来了:大神是如何在代码里搞的这些图片代码呢?打死我也不信是大牛大神一个一个打上...

tiandiren111的专栏 4050

编写可读性代码的艺术

译者序 在做IT的公司里,尤其是软件开发部门,一般不会要求工程师衣着正式。在我工作过的一些环境相对宽松的公司里,很多程序员的衣着连得体都算不上(搞笑的T恤、短裤、拖鞋或者干脆不穿鞋)。我想,我本人也在这个行列里面。虽然我现在改行做软件开发方面的咨询工作,但还是改不了这副德性。衣着体面的其中一个积极方面是它体现了对周围人的尊重,以及对所从事工作的尊重。比如,那些研究市场的人要表现出对客户的尊重。而

tiewen的专栏 2万+

Unix编程艺术——Unix哲学

Unix编程艺术——Unix哲学 http://blog.leezhong.com/reading/2010/12/21/the-art-of-unix-programming.html   Unix编程艺术主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。此文大致摘录了Unix的哲学。 web程序员也应该看看此书,软件开发和web开发很多地方都是相通的。看完之后

persuit的专栏 1298

漂亮的代码漂亮的代码

Ruby的创造者为《代码之美》撰写的文章标题是《代码如散文》。程序和散文有一些共性,首先是两者都必须有清晰的意图,散文内容是什么,想表达什么,程序的功能是什么,能做什么;其次两者在意图的表达上(功能的实现上)都依赖于写作的具体风格,编程的隐喻之一就是写作。你想表达的思想是好的,但是如果表达得难以理解,那么要把这个思想传播给读者将非常困难。代码被读和修改...

weixin_34404393的博客 392

优秀的程序员就像艺术家?

优秀的代码能不能算艺术品?软件工艺这一理论是否有点矫枉过正?怎么样才算是一名真正“优秀”的程序员? 让我们先从一个问题引入话题。假设你雇了一个水管工替换地下室里已经老化的旧水管,在整个过程中,这家伙一个劲地给你灌输这些水管是有多么多么的有艺术美感。 “哇哦,看看这根管子弯曲的角度,它与...

179

编程之美

编程的艺术:漂亮的代码和漂亮的软件2009-04-26 来自:java060515 原文作者:violasong原文链接:Beautiful Code and Beautiful Software译者:legendsland编程很有意思是因为我可以做一些很酷的东西,但是实际上让我着迷的却是那一行行代码的语法和语义。保持对好代码和坏代码之间差异的敏感相当激励人,同时,去寻找编写高效、自文档化和经过深

zlq000的专栏 558

漂亮的代码

    Ruby的创造者为《代码之美》撰写的文章标题是《代码如散文》。程序和散文有一些共性,首先是两者都必须有清晰的意图,散文内容是什么,想表达什么,程序的功能是什么,能做什么;其次两者在意图的表达上(功能的实现上)都依赖于写作的具体风格,编程的隐喻之一就是写作。你想表达的思想是好的,但是如果表达得难以理解,那么要把这个思想传播给读者将非常困难。代码被读和修改的次数是相当多的,因此一个很重要的观点...

庄周梦蝶 291
上一篇: JavaBean的简单介绍与使用
下一篇: label标签的for属性用法
不善^
博客等级 码龄18年 635粉丝 235原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值