说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

论程序员的自我修炼

HTML文档下载 WORD文档下载 PDF文档下载
软件开发是个挑战,尤其是对于那些完美主义的程序员。为了想要成为更好的程序员,总会开发出一些特别的功能,在软件设计上想要做到零瑕疵,但事实上,完美的软件设计是根本不存在的,试着让你的软件“足够好”就好!

软件开发是个挑战,尤其是对于那些完美主义的程序员。他们需要制定大量的决策以及许多问题的解决方案,这对于有些人来说会感到很难。当然,你可以在线搜索到最佳实践方案或在StackOverflow上提问。但即便你找到了想要的答案,也未必能让你感到满意。你怀疑这个设计是否完美,事实上,真正完美的设计几乎为零。

设计难题接踵而来

想彻底解决设计难题是不可能的。这是因为每个需求都会浮现在你的脑海里,你会遇到设计领域里最大的挑战,比如选择数据还是表示层。我是使用MVC还是MVVM?哪种OPM工具适合我?我该如何处理多个数据库?等等。每个问题都会让你不知所措,并且所遇到的设计问题也在日益增长。每走一步都会使你觉得像是有座大山摆在你的面前。不堪负重的感觉让你想要逃避或者拖延解决问题的时间。但拖延并不能解决问题。

解决类似这样的问题最好的办法就是(Divide & Conquer)拆分 & 克服。你必须暂停思考脑海中的所有系统问题,试着将设计拆分成细小的模块,并且一个一个的查看可以做哪些简单的模块。如果可能的话,选择迭代开发方法。这样你就可以将思维专注在设计障碍上 ,那么你就能看到多个小山丘而不是整座大山浮现在你的脑海中。

此外,不要花费太多的时间来选择工具或者API或者规则引擎。这些工具仅仅是为了让我们工作起来更加轻松。相反地,把更多的 时间放在设计原理上,比如关注分离(Separation of Concerns)。SoC(系统芯片)会允许你改变任意软件层或者不影响其他系统的软件工具。

TDD(软件测试驱动开发)会让你鼓足勇气,让你在软件行业发生质的改变。不要忘了,在设计上花费的时间是远远不够的,正如Steve McConnell 在Code Complete这本书中所说:

“When areyou done [designing]? Since design is open-ended, the most common answer tothat question is “When you’re out of time.”


需求变更

为了生存,你的客户或者公司必须适应变化。而这就意味着需求将发生变化。你不可能只编写一款软件就能满足未来所有的需求。总会有些新的需求时不时的跳出脑海中。所以,不要试图掩盖未来的需求,尝试去编写满足目前需求的软件。

不要过量设计

如果你花费数天时间来开发某个特别的功能,而这个功能一年里为你的客户只减少五分钟,那么实际上你的工作是无用的。我能理解,有时我们无法阻止自己做出一些特别的改变,因为它似乎使我们觉得像是一个更好的程序员或者只是为了好玩而已,但是考虑到成本/效益,时间是宝贵的,把时间花费在其他方面或许会更好。


简洁原则

简化,当你需要存储某个对象到系统文件时,没有密集型的工作或者特别需求,编写一个自定义对象序列化是毫无意义的。我看到有些设计从工程学角度来看,它们像是杰作,但它们过于复杂。你不应该让你的设计过于复杂。有时,最好的解决方法就是简单。因此,请保持 KISS原则。

相信自己,鼓足勇气

设计其实是为了检验程序员成果的好坏。不同的程序员可拿出不同的设计思路。因为没有单一的解决方案,这可能会导致你为某个特性搜索所有的最佳方案, 但这并不意味着你应该停止学习或聆听他人的想法。在设计过程中,不是学习所有最佳实践就能适合你的问题。相信自己,做最好的设计,实施自己的设计思路。

重构是个非常好的做法。当出现坏代码时,试着用重构的方式来解决。从错误中学习,它将有助于你未来设计。


没有完美的设计

无论你做什么,最终都会以一款无法令你满意的软件而告终。正如 Hunt and Thomas在《The Pragmatic Programmer》中写道的:

“完美的软件是不存在的。在计算机历史上,没人设计出完美的软件。这是不可能的,也许你是第一个,除非你不接受这个事实,而浪费时间或者精力去追逐一个不可能实现的梦想。”

我很抱歉,但他们是对的。不要去追逐一个不可能实现的梦想,试着让你的软件“足够好”就好!

英文出自: Thingstocode

推动新输入方式发展:英特尔为感知计算设1亿美元基金 AWS到底有多大?目前看来有158000台服务器 C语言实现树的动态查找 第五届中国云计算大会于北京隆重举行 改变企业移动化:新Google地图API支持用户定制 诺基亚旗舰手机EOS真机图曝光 配备“巨型”摄像头 走进豆瓣:豆瓣的技术架构与团队文化分享 加速Web开发的10款HTML5工具 微软式微?AMD、英特尔等开始疏远Windows 语音技术现状:四千万突破语音产业的技术壁垒? 万维网联盟W3C推荐Web性能API 微软郑子颖:Windows Azure如何支持开源系统和软件? EMC 叶成辉:软件定义数据中心实现统一、开放的管理 百度云主任架构师 侯震宇:云终端开启数字生活 中国工程院院士 倪光南:中国云计算在全世界份额远超3% 信息图:未来的企业移动培训应用与技术 “2013年度中国优秀开源项目征集”活动最后三天 为什么开发者倾向于使用杂乱无章的免费工具 EMC合作伙伴销售经理杜术清:实现云的三种途径 开发者想走向海外:你融入老外的圈子了吗? 前微软工程师:美国监控和直接访问服务器?这不太可能 代码、TDD速查表 如何选择前端架构:服务器端HTML vs. JS部件 vs.单页Web应用 世界上最高深的Android特洛伊病毒 招聘iOS开发,老板必问的5个问题 护航科技吴伟湘:IT离线安全体检服务将带来颠覆 百度王继平:移动互联网时代云平台思路 “第八届开源中国开源世界高峰论坛”火热开启 微软发布SQL Server 2014预览版,展示内存数据库技术 帮助软件开发者提高效率的10个小窍门 我想做个程序员:Technovation Challenge圆女孩编程梦想 为了帮助后进青年提高,请水园的mm们来登记一下 请问在SQL SERVER 2000中,以下字段类型有什么区别: 请各位介绍一些FLASH的好书!!!!!我要学! 关于PCMCIA ...欢迎交流指导! 她问我“上个黄色网站让我看看”, 是什么意思????????? 怎么样能提高IE的速度? 你的DELPHI6的帮助有没有这种问题? 请推荐几处下载java编程方面电子书的站点? 请问有没有工具把access中的文字繁简转化一下?? 找一个高人——HC 请教如何使用API中的GetUserName()? 怎样才能买到 外文期刊??? 如何将一屏显示不下的文档打印在一页当中(CHtmlView) 请问《程序员》杂志上的那几本外文期刊怎么买??? 我下载了几个rar文件有*.rar\*.r01\*.r02等等,可是这个网站没有提供合并文件,忘了怎么合并了,谁知道快告诉我。copy *.rar+*.r01不管用 请教在线的高人(在oicq上吗?) 我是白痴!大虾,什么是专家分,怎么得,有捷径吗???????????? 图形化界面问题!控件与窗体不重合! 书上的东西我看不董,是关于PB70与COM/MTS的,COM/MTS是什么,谁能告诉我? 怎么样能解决死机的问题? 跟帖比聊天有意思多了,哈哈 过去了,就不要再提 灌水乐园,我的MUD练功场 StringList 与 String的区别 为什么我的组合筐里只有最后的项,即"交叉线",没有其他的内容? 关于Tmemo 共享软件的开发经验 部件(Crystal Repot)引用错误(crystl32.ocx),请高手指点,,谢谢 无数个问题之123 steps你有oicq吗?壮丁!!!sos 怎样将数字字符转化为数字呀? WIN98下能读的光盘到了WIN2000/NT下居然读不出来! WIN98下能读的光盘到了WIN2000/NT下居然读不出来!(我的光盘是刻录的) 我不想要分(也许我只是个女生) 40分=一网址:那儿有Effective C++ 2e电子书? 如何在菜单中加入下拉框?像delphi的那样. 怎样用vb程序实现监控打印机打印输出情况 大家评出水园最有人气的mm,我给分啊,行动要快啊~~~~~~~~~~~~~~~~~~~~明天晚上7点结贴 编译servlet文件出错!急!!!! 寻觅朋友(用delphi优先) 我希望能认识安徽的程序员~~~~~~~~~~~~~~~联系:6011458(OICQ) 很长时间,我还是觉得这是一个事实! javascript中怎么进行数据类型间的转换? 关于非文档视图结构程序的菜单 寻delphi兼职程序员,要求比较懂数据库,多劳多得,不劳不得,报酬从几十元到几千元不等。 在程序中更改Filter to lastlove(☆)robin(★) 关于《深入浅出MFC》电子书 SOS:秦皇岛的小男孩胡颖1岁胡颖1岁8个月,得了白血病,希望大家帮助他,留住他的小生命 所有武大的GGDDJJMM进来报名 所有深圳的GGJJDDMM报道 英语中的名词动词代词形容词副词宾语主语谓语等是什么意思 英语中的词性表示是什么意思,例如n表示名词,v表示动词,adj又是表示什么呢?还有其它的 英语中一些单词的词性是怎么变的?比如说名词变为动词等·有什么规律的吗? 在英语中,什么词后面接动词的原型,什么词后面+动词的ing “的”,“得”,“地”各修饰什么词性的词语,有什么区别呢? 英语中以ment结尾的单词既有名词词性又有动词词性的有哪些.如:fragment就是.急 在英语中,主语,谓语,宾语,动词,形容词,副词,行为动词,表语,几乎动词,介词如何理解? 一个词多个词性,怎么区分?比如说hesitate这个词.hesitation和hesitance都是名词,那应该怎么区分? 汉语双音节词语是什么 英语选词填空(15选10)词性之间的搭配有何规律?(比如动词后面跟副词) 帮我辨别一下下面的一些词的词性呀!急就是感情色彩(褒义贬义或者中性)荒唐 异想天开伶俐 无缘无故洋溢 跳梁小丑谦逊 不屈不挠攻击 孜孜不倦谗言 飞黄腾达战争 人迹罕至 什么是双音节词语? 英语中副词,介词,形容词,名词,动词有什么特点,怎么个用法?可以列句子说明,并且指出句子中包含的词性!快,通俗易懂点的! 一个词性多个词,怎么区分.比如说hesitate这个词.hesitation和hesitance都是名词,那应该怎么区分? 双音节词语是什么,请举例 英语里面状词定语谓语宾语表语什么意思通俗点的 动词.名词.介词.副词.形容词后或前面跟什么词性的词? 《现代汉语》指出下面句子中括号里词的词性.1、你(在)哪里?2、他(在)做作业.3、你(在)哪里工作?4、由你(把)门,谁也不许进来.5、拿(把)锁(把)车锁上.6、他(给)了你一本书 英语里面状词 定语 谓语 宾语 表语之类的什么是意思如题 英语问题“单词 词性缩写字母”比如动词 形容词啥的缩写 写出句子中各词语词性.1.东京也无非是这样.2.恩师是让人永远怀念的.3.看,于茂林修竹之中,一潭清泉又呈现于眼前.4.谁说宇宙是没有生命的? 英语里什么词可以做主语,谓语,宾语,定语,表语等. 英语中动词前面和后面可以加什么词性的词例如形容词 副词啦 前面和后面啊~ 写出下列句子中词语的词性.1.我们的生活十分美好!2.昨天的语文作业我还没做.3.黄色菊花已经盛开了.4.两双皮鞋才卖了陆拾圆!5.他家比我家近.6.一只狗和一只猫都丢了.7.炎热的夏天简直太长 介绍主语 谓语 宾语 状语 表语.等词语在英语中的概念(回答一定要具体)而且要通俗易懂 各种词性后跟什么词?形容词后加..系动词后加..动词后加....................等等还有,,people + is还是are “了”在汉语句子中是什么词性是形容词?连词?还是副词? 什么词可以做主语 谓语 表语 宾语 定语?要具体一点 在英语作文题目中什么词性的词首字母不大写?be动词首字母大写吗? 英语中什么叫系动词 什么词性的词可以做 英语定语从句中能充当宾语的有哪些词?还有可以充当主语的? 所有英语词性缩写比如动词,形容词.什么adj,vi,vt这类的.要全! 语文各类词词性及其用法 什么词可以直接接宾语(英语中)| :及物动词---可以直接接宾语 行为动词 | | :不及物动词---不可以直接接宾语 ㄗs:我不明白的就是什么词性的词后面可以直接宾语 什么词性的词后面不 英语中 各种词性的简写及意义例如名词的简写是n,还有意思, 关于几个词的词性(语文)求几个词的词性,准确的说是判断这几个此是什么短语.1、目空一切2、一视同仁3、一笑倾城(从以下几个分类中选:偏正短语、主谓短语、后补短语、动宾短语、 英语中能做宾语的有什么类型的词? 英语词性缩写不要太多,几个基本的就可以了,只需包括初中所有的就行了. 对、在、从、以、为这些词在语文中是什么词性的是不是介词? 什么叫宾语.动名词.副词.反正英语里的语法的这些词都解释一遍.别给我搞那些专业的术语来解释和回答.就用好理解的方法来解释.好的回答有高分、、 英文a.是什么词性的缩写?是adj还是adv?请快一些, 1.对下列句子中加点词的词性,分析正确的一项是( )①小王曾经跟老张到过俄罗斯 ②小王跟老张到过俄罗斯③小王跟着老张到过俄罗斯 ④他的思想跟不上形势 (加点的字都是 跟)A.①介词 ② 英语-动名词做宾语我学习动名词做宾语的时候看到了:要记住如下动词及短语只跟动名词作宾语:enjoy,finish,suggest,avoid(避免),excuse,delay,imagine,keep,miss,consider,admit(承认),deny(否认),mind,p 在英语中,各种词性的缩写 语文中各种词性的词有符号表示,比如:主语用双横线,谓语用单横线等.英语中有这样的表示方法吗?如果有,和中文的有什么区别? 英语动名词,宾语,表词,主语造句一个造一个和中文意思 谁能告诉我各个词性及英语缩写?比如说动词V 越全越好 安排这个词的词性是名词还是动词? 英语中有些动词后接不定式或动名词作宾语时有严格的区别,可以将它们分别归类~谁知道这方面的详细分类?(动词越多越好) 英语中所有词性的简写!比如及物动词vt 不及物动词vi尽量全! “用途”一词是什么词性?如名词、动词什么的? 英语中只能接-ing分词作宾语的动词有哪些?用英语单词表示 谁能告诉我英语词性的缩写(全部)带解释那种,感谢赏 "到过"一词的词性是什么?是名词还是动词? 英语中类似名词动词先形词谓语宾语什么的都什么意思啊好像还有几个这种.最好加上英语举点例子... 所有英语词性符号简称注意,是简称哦. interest empty 用这两个词语造句,名词和动词.两个词性各造一个 英语中名词动词宾语主语什么词什么意思?我是刚开始自学英语的理解能力很差 网上查了还是不懂 英语词类 词性 有什么区别 判断下列各词的词性,按名词.动词.形容词分类!急啊!1.歌颂2.颂歌3.询问4.学问5.勇敢6.勇气.7.创造8.创举9.热烈10.激烈11.障碍12.阻碍13.活力14.活泼15.灵活16.措施17.实施18.整齐19.整理20.整体
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn