软件编程精髓:开发者需知的十项真理 二

标签: 一些事 | 发表时间:2012-06-13 09:52 | 作者:哥依然还在
出处:http://www.qinblog.net

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也是一款开源操作系统。

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

 

http://tech.chinaunix.net/a2012/0409/1334/000001334763_1.shtml

相关 [软件 编程 开发] 推荐:

软件编程精髓:开发者需知的十项真理 二

- - 水煮沉浮
一位经理人曾告诉我有关他的秘密,他总是面带微笑并告知他的团队,他很热爱他们所作的事情即便是有危险的,在他走出门的那一刻,他会说“哦,还有一件事”. 那个弧线球部分覆盖了该项目,并要求大家重新设计应用程序. 意思说作为一名管理者首先你得肯定团队的工作能力. 项目范围的扩张程度直接体现了这个项目结构的最终成果.

软件编程精髓:开发者需知的十项真理 一

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

[译稿]软件编程21法则

- Alan - cnBeta.COM
任何一个有经验的程序员都知道,软件开发遵循着一些不成文的法则. 然而,如果你不遵循这些法则也并不意味着会受到惩罚;相反,有时你还会获得意外的好处. 下面的就是软件编程中的21条法则:.

软件吞噬软件开发

- - PingWest中文网
软件蚕食世界,自互联网特别是移动互联网连接线上线下服务后,已成为不可逆的趋势. 每一项实用的服务可以由小团队来完成. 以WhatsApp为例,这款被高调收购的IM应用,拥有4.5亿月活跃用户,70%的日活跃率,至今还保持每天新增用户1000万的速度. 但这些服务居然由32名工程师支撑下来了,所以有了业界八卦“每位员工价值20亿”的说法.

软件开发的核心

- - 博客园_知识库
  「我们一直这样做开发,时间做久了,便忘了当初的本意.   有关软件系统开发,我们谈些什么.   我们谈过程,编码规范、开发流程、同行评审、结对编程、持续集成,从瀑布到敏捷再到极限编程.   我们谈架构,企业级、J2EE、容器化、SOA(面向服务架构)、Microservices(微服务化).   我们谈规模,大容量、高并发、大数据.

开发软件有多贵

- - 透明思考
有个朋友的朋友想做一个公益的事. 因为出资的都是教育水平较高的精英人士,所以对项目的监控透明度要求比较高. 于是这个朋友的朋友就想了,信息时代嘛,IT工具不是可以促进交流提升效率么. 于是他对我说:我们想做个app,可以干这个这个这个……. 我打断他说,别着急,做软件很贵的,你不一定玩得起. 市场上定制开发软件的人工成本按一人月20,000人民币来算,平均每人天1,000人民币.

低质量软件编程成本价格表

- - ITeye资讯频道
注意:下面这个清单里描述的事情并不是你绝对不能做的,它只是用量化的方法来让你知道编程上的这些做法将会产生的负面代价. 这些费用是在代码审查时你将要付出的. 代码库中的程序编码风格一致虽然不是很重要,但值得你去遵守. 在提交代码的说明信息上偷懒. 请细读这篇 代码提交说明信息指导(英文). 大多数的局部变量都最好使用方法代替.

Facebook是如何开发软件的

- Felix - 互联网的那点事
Facebook的工作方式让我着迷. 那是一个非常独特的工作氛围,无法复制(也并不适用于其它公司). 下面的是我从很多在Facebook工作的朋友那里搜集到的关于这个公司如何开发和发布软件的只言片语. 看起来对Facebook感兴趣的大有人在. 这个公司以程序员为主导的企业文化受到人们的极大关注,很多公司都在努力现实这样的企业文化.

软件开发的“三重门”

- - 酷壳 - CoolShell.cn
自从上次写了“ 程序员技术练级攻略” 以来,就觉得似乎还有很多东西没有谈到,但当时没有继续思考了. 而春节前有人问我,是做底层技术,还是做业务. 这问题让我思考了很多,不由自主地回顾了一 下我这十多年的软件开发经历,并顺着整理分类了一下自己解决过的若干问题,还发散想了很多,经过了一个春节假期的发酵,产生了下面这篇文章.

软件开发的人文关怀

- - 博客园_知识库
  几年前,我从温伯格的《技术领导之路》中学到一点:技术人员往往更喜欢和机器打交道,因为他们“认为”自己更适合和机器打交道;但是,优秀的技术人员必须(也必然)具备好的沟通能力. 所以,温伯格鼓励各位技术人员多加练习和其他人打交道的能力. 温伯格的这个观点我是非常赞成的,好的技术人员一定需要“勇敢”面对他人,不能被“自实现的预言”局限在机器的世界里.