让你编程得到升华:开发者需知的十个真理【转载】

看来几次,受益匪浅。转下,慢慢领悟。


【CSDN编译】编程是一种有益的体验方式,当遇到挑战时,我们会不断寻求新的解决方法。也许你会认为将毅力、直觉、适宜的工具三个组合在一起即可编写出优雅、完美的代码。然而,随之而来的拙劣的部署或另一种功能需求亦或者是沉重的依赖关系会产生不良的迭代更新,等等这些突发状况会摧毁了你最初的梦想。

我们希望每次的努力付出能够有着深远的影响,希望我们的应用程序所依赖的服务器如同磐石一样,然而编程的获取方式却是残酷的。这并不意味着你所有的努力都是有价值的。相反,我们应该学会如何面对这些残酷的事实。一起看下文中罗列出的10条实践真理,或许能为你的工作带来一丝帮助。

1. 如果这一切只是if-then-else语句

开发者往往会因封存(closures)、字节(typing)和抽象化(amazing abstractions)而争论不休,最终会选择 old if-then-else statements,这几乎是所有开发者的需求,包括输入输出内存移动数据的操作代码和算法操作代码。剩下的便是将分支或非分支两者之间进行比较。

围绕if-then-else statements,开发者们开始为其添加一些奇妙的虚伪的外表,但在最后,聪明的统计推荐引擎会在矩阵的数组列表中选出的最大值或是最小值,该引擎通过执行计算浏览所有的列表,直到你作出最后选择,否则它会一直提示你“这是最大值吗,这是最大值吗?”

2. 大多数Web网页将数据存储在表单中

在过去的20年里,互联网世界带来了神话般的财富,更好的友谊,更便宜的产品,更快的通信等等。究其核心,大部分互联网将数据存储在表单中。

Match.com?表单里包含着各种信息,比如头发颜色,宗教信仰和钟爱的食品。eBay?这个列表收集了最高价的项目列表。Blogs?字里行间记录了每一个投诉。OK,我们将其命名为table。我们有理由相信互相网是一个神秘的且充满智慧的地儿,它是一个自动化的文件文件“办事员”。

从编程语言来看,Ruby on Rails这个贯穿Web开发最流行的语言之一,是一个数据库框架。你只需要指定一个全局的变量和Rails就可为你创建一个列表,因为它熟悉所有创建表单的数据库表。

还有一个, NoSQL非关系型的数据库。现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状。目前Google的BigTable和Amazon 的Dynamo使用的就是NoSQL型数据库。

3. 用户有自己的主见

如果你想为语言和labeled“save”创建event listener监听事件,将程序拷贝到磁盘上。在现实中,用户会期待看到一个神奇的按钮,在自己损坏的文件中修复所有的错误或添加到401(k)中,点击打开并永远保存下来。

或许,用户还会这样想,我们创造了一个完美的机器,每当用户打开时,每一个设计都是万无一失的,避免出现任何一个故障。他们设想可以点击发送并未存储在磁盘上的数据。所有这些完美的设计,他们想通过一种方式来点击任何被他们所遗忘的东西。

有时,用户是通情达理的,但在大多数情况下,他们是非常苛刻的,行为较为古怪。程序员尝试着去猜测他们的想法,当以最终的代码结果呈现在用户面前时,他们会是怎样的?结果还是失败了。因为大多数用户不是程序员,他们要求程序员像普通用户的那样思考问题就如同要求一只猫像一只狗那样思考一样,这根本就不符合逻辑思维。

不管你如何发明智能的或设计出优雅的代码,用户不会按照你的想法来看待问题。因为他们不会用140个字符限制来表达他们的愤怒和欲望。

4. 部分代码永远不会被使用

你的工具是否支持XML,CSV,Aramaic。我们的操作团队能否解析玛雅象形文字,也许在2012年年底有这方面的需求,如果不具备该功能,ok,如果你能提供此项功能,将会获得更多的项目订单。

当然,用户不用关心太多,他们只想要一个按钮,这个按钮甚至可以把他们混淆了。这个完美的代码当你在编译时能够支持N-1按钮,在QA团队中能够很好的被执行。

程序员不像艺术家,他们可以指望自己的父母或者亲戚能为其带来某些业绩,而我们的父母不会通过执行代码来测试性能。

5. 项目发生变化不可避免

一位经理人曾告诉我有关他的秘密,他总是面带微笑并告知他的团队,他很热爱他们所作的事情即便是有危险的,在他走出门的那一刻,他会说“哦,还有一件事”。那个弧线球部分覆盖了该项目,并要求大家重新设计应用程序。意思说作为一名管理者首先你得肯定团队的工作能力。

项目范围的扩张程度直接体现了这个项目结构的最终成果。经理人总是使出全身解数来清算报表,首先他们构思出一个伟大的梦想,建立一个经济结构模型来证明他们需要多少投资预算。

开发者们辛勤付出后,将劳动成果呈现在经理人面前,你的经理人什么也没做反而担心:这个按钮是在正确的位置吗?日志页面看起来有什么不同之处?即便是轻微的意见,它也改变了我们最初的需求,不是吗?

6. 没人理解你——尤其是老板

有两种程序员:一个是按照老板指定的计划进行工作,没有任何计划,也不知道如何努力编写代码;另一种是以程序员方式全身心的投入工作,努力编写出色的代码。

你的老板永远不会理解你或者你的工作,他们关注的是当业务发展遇到瓶颈时刻时你能否给出一个出色的解决方案,而不是你解决了计算机芯片等某种问题。

如果你的老板知道如何解决问题,他会留下来并将问题解决。因为他知道与你交流,刨根问底要比实际操作花费的时间要多的多。

7. 隐私权是一种痛苦

我们希望我们的服务能够保护用户以及他们的信息(隐私问题),同时又希望网站能够简洁易操作,我们希望能用最少的点击数来达到用户想要的目的。

隐私意味着你要多挖掘几个问题,这样才能确保控制信息扩散,然而这样也就意味着我们需要有更多的点击数。隐私也体现出一种责任,如果用户不希望服务器知道他们过多的隐私,而服务器又无法读取用户的想法,怎么办呢?所以说,责任是一种麻烦,隐私也是件麻烦事。

当然,它也有有利的一面,比如说根据你的喜好,网站可以自动提供链接,让你随心所欲买到自己喜欢的物品,当你有需求时可以为你提供帮助。

8. 与他人建立信任

Web 2.0的诞生,丰富了人们的生活,这种新的互联网方式,通过网络应用 (Web Applications)促进网络上人与人间的信息交换和协同合作,其模式更加以用户为中心。因此,你只需将代码链接给某人,就会有奇迹发生了,你的代码会被调用。

首先,在别人使用你的代码前,请先填好这些协议,在多数情况下,该协议会要求你放弃一切,那么你会得到什么回报呢?其次,和用户建立信任,在基于该协议下每个人都会承诺最佳的实践方法和最高的加密软件来分享你的信息。因此,不用担心你的代码会被窃取。

最终的结果会比你预期的要好的多,比如会给你提供更多的工作。期待好运降临吧。

9. 当代码遭遇腐烂

当你启动任务时,你可以获取最新版本库,利用这些库来工作一至两周,那么将诞生library1.0.2版本,当然你不会使用library B最新版本,因为使用A版本的程序员已经更新了新版本,这时你的老板还会要求你在C版本的基础上开发出一些新的功能,当然只适用于1.0.2.版本。

打个比方,当房子和船要腐烂时,他们会以统一的方式腐烂。很多团队都有这个问题,一个项目的代码本来开始设计得好好的,一段时间以后,代码就会变得难以理解,难以维护,难以修改。为什么呢?因为代码的腐烂都是由于没有深入理解的情况下修改别人的代码导致的。如何防止代码腐烂?参见这里

如果你想要C,那么必要放弃B。如果你选择B,那么你就必需要告诉你的老板C是不正确的选择。

我们以3个库为例,但在实际项目中会有十几个甚至更多的选项,问题也会随之成倍的增长。更糟糕的是,腐烂不会立即呈现。有时隐藏在某个角落里,看起来是个不起眼的问题,时间久了就会感染到整个代码。正是这细小的不兼容的代码会毁掉整个系统。

我们应该让代码像谚语一样即使是在100年后依然完整无缺。

10. 开源世界茁壮成长

越来越多的数据表明开源的重要性,目前,开源只有一小部分市场,极少部分人愿意将代码贡献给开源社区。

这也许就是Linux和BSD代码的最大贡献者们转为封闭私有代码的原因。像TiVo这样的设备也许会使用Linux作为内核,但绚丽的交互界面却不是开源的,Mac也同样如此。

近日,Linux boxes与Windows boxes之间的竞争陷入了困局。很多人都在质疑:花一样的钱,既然能够买到一个可以安装Linux的Windows机器,为什么还去买Linux呢?Mac笔记本的价格是普通PC的2至3倍等等这种案例很多越多。然而只有极少部分人知道,iPhone也是一款开源操作系统。

我想,只有人们不断的去关注开源哪怕只是细微的性能部分,开源世界才会茁壮成长。

本文为CSDN编译整理,未经允许不得转载。如需转载请联系market@csdn.net

英文出自:infoworld

时间: 2024-10-03 12:42:16

让你编程得到升华:开发者需知的十个真理【转载】的相关文章

让你编程得到升华:开发者需知的十个真理

编程是一种有益的体验方式,当遇到挑战时,我们会不断寻求新的解决方法.也许你会认为将毅力.直觉.适宜的工具三个组合在一起即可编写出优雅.完美的代码.然而,随之而来的拙劣的部署或另一种功能需求亦或者是沉重的依赖关系会产生不良的迭代更新,等等这些突发状况会摧毁了你最初的梦想. 开发者需知的十个真理-"> 我们希望每次的努力付出能够有着深远的影响,希望我们的应用程序所依赖的服务器如同磐石一样,然而编程的获取方式却是残酷的.这并不意味着你所有的努力都是有价值的.相反,我们应该学会如何面对这些残酷的事

开发者需知的10类工具

原文 http://www.csdn.net/article/2013-05-09/2815204-10-Software-Tools-You-Should-Know 摘要:作为一个软件开发者,你不可避免地需要用到各种工具来设计.理解.编辑任何程序,本文中按类型总结了10类开发者须知的工具,并各列举了一些知名应用软件. 作为一个软件开发者,你不可避免地需要用到各种工具来设计.理解.编辑任何程序,本文作者按类型总结了10类开发者须知的工具.CSDN摘译如下: 免责声明:"最好"的软件工具

Web 设计与开发者必须知道的 15 个站点_相关技巧

 ColorCombos 开发者必须知道的 15 个站点_相关技巧-汇付天下开发者站点"> 配色是 Web 设计的首要大事,Color Combos 帮你预备了数千种配色方案,可以根据色调浏览选取.LIpsum Lorem Ipsum Text 是一中自造的,字典中不存在的单词,是在演示页面结构的时候,需要加文字的地方使用 Lorem Ipsum Text 填充可以避免用户因关注文字的意思而分神.Lipsum.com 可以帮你生成制定数目的 Lorem Ipsum 单词.What the

[转载] Flash开发者需要知道的10件事

来源:http://www.infoq.com/cn/news/2010/02/Flash-ten-things 此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事. 近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受.他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能.因此,他给出了一个列表并说到:"根据我的经验,通过这个列表能

[转载]一名优秀的Flex开发者需要知道的10样东西

原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:http://bbs.9ria.com/viewthread.php?tid=54144&from=recommend_f   要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远远不够. 下面是我对这个问题的一些看法......并且给出了一些资源和关键字,你可以通过Google

SQL Server 隐式转换引发的躺枪死锁-程序员需知

原文:SQL Server 隐式转换引发的躺枪死锁-程序员需知 在SQL Server的应用开发过程(尤其是二次开发)中可能由于开发人员对表的结构不够了解,造成开发过程中使用了不合理的方式造成数据库引擎未按预定执行,以致影响业务.这是非常值得注意的.这次为大家介绍由于隐式数据类型转换而造成的死锁及相应解决方案. 现实中有些程序员/数据库开发者会根据数据库的处理机制实现一些应用,如抢座应用,可能会对事务中的查询加一些列的Hint以细化粒度,实现应用的同时使得影响最低,但也有可能因为一些小细节的欠缺

PHP 开发者该知道的 5 个 Composer 小技巧_php技巧

Composer 是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方便. 1. 仅更新单个库 只想更新某个特定的库,不想更新它的所有依赖,很简单: composer update foo/bar 此外,这个技巧还可以用来解决"警告信息问题".你一定见过这样的警告信息: Warning: The lock file is not up to date wi

开发者需掌握的11条技巧

 开发者需掌握的11条技巧-开发者选项设置技巧"> 现在程序开发者在应用程序上投入的精力丝毫不比实业创业者们少,但想要做好程序开发并不像想象中那么简单.这也是为什么有的程序具有操作性强.趣味性强.实用等明显优势,深受用户喜爱;而有的程序就仅仅如昙花一现,瞬间消失在用户的视野中. 为了探究如何能使应用程序让用户喜欢并且爱不释手,我们对话了一些年轻成功的程序开发者,针对"开发程序时最不容忽视的问题是什么"向他们提问,下面十一条是他们给出的最有建设性意见的建议.其中一些针对程

如何有效防电脑辐射?电脑一族需知的健康常识

如果在电脑前趴着睡觉要记的把计算机关机,不只是把屏幕关掉而已,因为只把屏幕关掉是无法杜绝辐射线的,不少时候我们都是在电脑前趴着睡着了,头直接对着计算机,辐射线真的很可怕的,不然哪天得了老人痴呆症或脑瘤就来不及了. 常坐在计算机桌前的您,是否一坐就是好几个小时而且坐姿不正确,总感到莫名肩颈疼痛,甚至于无心工作?希望大家认真阅读,要知道,健康才是最重要! 现在请您作个小测验,请您将您的头向左侧方向望去,然后将您的头45度朝下慢慢弯下去,动作做到这里,您的脖子颈肩是否感到不正常的酸痛?假使您有上述症状