范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

软件开发的22条黄金法则

  这个世界需要的不是英雄,是专家 —— 杰洛特《巫师》
  编程本质上是一门手艺活,既然是手艺,里面就会有很多个人技巧和经验。
  "破窗理论",DRY(Don"t repeat yourself),曳光弹,正交性,这些词的意思是什么你还记得么?
  《程序员修炼之道》这本书在我看来就是一本师傅写给徒弟的开发哲学指南。
  里面既讲了一些软件开发的哲学,比如破窗理论,它解释了你的代码为什么很快就会变成"屎山"。也讲了一些有用的技巧和工具,比如如何利用好shell,提升你的编程效率。
  这本书没有复杂的代码,没有晦涩难懂的原理,你完全可以当作一本闲书来看。
  这本书里提到的看似人人都懂的道理,恰恰是很多码农们平常工作中最不重视,却应该去遵守的理念。
  我提炼了一些书中我觉得至今仍然没有过时的观点(毕竟本书有一定的年头了,读起来很有年代感),和大家分享下,这中间也夹杂着一些我的看法和思考。
  一、开发的哲学
  作为开发,你需要对自己说的话负责。对于不可能做到,风险太大的事情,你有权不去为之负责。
  不要给做不到找借口,在你说做不到的时候,要提供你的想法,告诉大家,做不到的原因是需要重构,还是需要时间做原型,还是需要额外的资源支持。
  破窗理论:一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来废弃感。于是窗户就会一个个破碎,人们开始乱丢垃圾,乱涂乱画。所以不要容忍你的代码有"破窗户"。
  这一点大家肯定也深有感触,在你写代码的项目里一旦看到了一些乱七八糟的结构和设计,你也会不自觉地开始往上面写凑活的代码,慢慢就变成屎山了。
  温水煮青蛙,代码是会慢慢腐烂而不被察觉的。要持续不断的观察你项目的变化,而不要只是专注于自己的那一块代码。
  重视你的"知识",这是你的资产。既然是资产,就要定期投资(不断学习),多元化地学习。并且要定期的评估你的技术方向,毕竟开发是个动荡的行业,现在吃香的技术过几年就会过时。要不断地调整你的方向。
  在做需求时,要像用户一样去思考需求的合理性,而不是一味完成产品下发的需求。
  做的软件,要温和的超出用户的期望。给他们的东西要比他们的期望多一点,给系统增加特性时,多做一些额外的努力,可以给你带来很大的美誉。
  当你在的开发团队人员庞大时,可以指定每个人负责工作的各个方面。围绕功能,而不是工作职务进行工作的分配。比如有人要讨论日期处理,就去找Mary,有人要讨论数据存储,就去找Fred。
  二、开发的准则
  不要重复你自己:DRY(Don"t repeat yourself)系统中的每一个组件都要单一,没有歧义,并且权威的表示出来。
  保持项目的系统正交性:不要让系统间互相耦合,非正交的系统意味着你修改这边的系统,会影响到其他的系统。
  非正交的一个典型体现是前端的CSS,网上有很多调侃CSS的段子,CSS的一个修改经常会影响到别的地方,这也是CSS很让人痛苦的一个地方。在后端开发里,我们要尽量让系统间不要相互影响,这对系统的伤害是很大的,并且在排查问题时非常痛苦。
  保证代码设计的可撤销性:如果你的想法是这个问题的唯一解,那么这会是一个很危险的事情。用户的需求变化的很快,你的决策很可能只在当下是正确的,不存在最终的决策,或者说,时刻要注意和反思,如果现在这个方法行不通,是不是就没法挽回了。
  做好资源的估算:这里的资源指的是很多代码相关的资源,比如数据库,存储,性能等。在开发前,一定要做好估算,在设计良好的代码结构,保证再未来能够应付变化。
  把文档尽量多的做在代码里,而不是游离于代码之外。否则,过了一段时间后,你这些文档就没有什么作用了。
  你不可能写出完美的软件:作为一个开发,你要有这种自觉,自己也不要相信。所以要对自己可能犯的错误,做防御性的编程。
  异常处理:如果我删掉所有的异常处理代码,这些代码是不是还能运行?如果你的回答是"不能",那么说明你的异常代码正在被用在非异常的情形中。这样不好。
  利用好元数据:这里的元数据可以理解为配置文件。将抽象放进代码,将细节放进元数据。
  我们日常开发中经常使用配置文件和分布式配置中心,把能够放入配置文件的数据尽量放入,这样不仅方便维护和修改,也能够实现不重启应用修改应用行为的功能。代码中应该只有我们对业务的抽象。
  考虑好系统并发:要为并发做好周全的考虑。
  这个要求是不是看起来很稀松平常,大家都会?其实很多大型系统,尤其是老的系统,都没有考虑并发问题(去问问传统软件企业做的软件,你就知道了)。并发其实可以算作是互联网公司最常遇到的问题,也是各种技术面试会问的很深的问题,要好好掌握。
  不要靠巧合编程,要弄清楚程序为何能够运行。
  我们接触变成初期,经常会有些代码调着调着就跑通了,但是连自己也不知道为什么。这种代码真正用于线上风险很大。毕竟,他也许不是真的能工作,他也许只是看起来能工作!
  什么时候该重构:当你发现这四个事情出现的时候,就是你该重构的时候。
  代码违反了DRY法则
  有非正交的设计
  需求变化后代码过时了
  性能有很大问题
  重构时的准则:
  不要试图在重构的时候同时增加功能。
  在开始重构前,确保你拥有良好的测试,这样你才敢放开手脚改动。
  采取短小,深思熟虑的步骤。
  在测试的时候,要去做状态覆盖,而不是追求代码覆盖率。
  好好学习shell:通常我们喜欢用各种带界面的软件,他们的特点是所见即所得。但是也带来了缺点,所见即全部所得(what you see is all you see)。这对于效率的提升是一个瓶颈,有很多GUI上面需要很多操作的事情,在shell上只需要一行代码。所以尽管它有点难入门,但是学好了,会大幅度提高效率。
  关注我
  我是一名奋斗在互联网一线的后端开发工程师。
  原创文章主要内容:
  开发实战
  技术面试
  算法题解/数据结构/设计模式
  程序人生

在洛阳赏牡丹,午餐点了一桌当地特色菜,味道惊艳,吃完还想打包今年的五一假期我们家选择到洛阳游玩,这座历史悠久的十三朝古都近几年在网上可是特别的火,洛阳不仅有壮观的龙门石窟,还有远赴人间惊鸿宴的老君山,听朋友说五一假期在洛阳还可以赶上牡丹节,亲戚送来一条鱼,打开发现是臭的,问过才知道,竟是安徽特色美食前几天有亲戚来家里串门,带了两箱牛奶和一条鱼,今天中午做饭时想起这条鱼,怕放时间长不新鲜了,就赶紧拿出来打算红烧一下,吃顿红烧鱼。鱼的包装刚拆开就觉得有点不对劲,一股臭味迎面扑来,吃过洛阳水席后,在家自制水席名菜连汤肉片,酸辣开胃,做法简单假期的时候和家人一起去洛阳游玩,品尝了洛阳很有名的水席,和一些极具特色的地方小吃,家人都说洛阳美食的味道真不错,特别是水席里的几道名菜,令人回味。回家之后,我就自己在家尝试着制作了高考前,多给孩子做这5道家常菜,都是碱性食物,有助于缓解疲劳时间过得真快,转眼就五月中旬了,家里有高三学生的家庭都进入了紧张的备考阶段,孩子们的复习任务很繁重,家长们也在想方设法的为孩子缓解压力,补充营养。高考不仅是一场升学考试,也是人生的关晓彤晒无米寿司的制作方法,营养丰富热量低,减肥吃它正合适关晓彤的美食制作视频是我的最爱,她每次分享的美食我都会认真地记录下来,像生菜三明治解馋鲜辣汤牛油果能量卷等等,都是美味解馋又不怕发胖的美食。关晓彤的身材特别棒,这和她的日常饮食习惯5月槐花香,加1碗面粉做槐花麦饭,花香四溢有嚼劲,错过等明年五一一过天气很快就热起来了,这两天的气温都是在30度以上,天一热就会觉得胃口不好,尤其不想吃油腻的食物,连平时爱吃肉的老公都说想吃点清淡爽口的。想起冰箱里还有前两天买来的鲜槐花,索关晓彤晒2个月低脂餐,食材丰富看花眼,挑7种做一周午餐正合适国民闺女关晓彤这两天在网上晒出了自己2个月的午餐,并特别感谢妈妈为自己订制了营养健康的搭配,在剧组工作的日子里,每次吃饭都有小小的仪式感,关晓彤说自己感到快乐和满足。在看了关晓彤晒老公过生日,做了6道菜,花钱不多味道好,全是下饭下酒的硬菜人到中年,很少再大张旗鼓地过生日了,用老公的话说,与其出去胡吃海喝一顿,真不如在家做上几道家常菜,全家人聚在一起吃饭多幸福!于是,今天下班后,我去超市采购了一番,买了不少新鲜食材,这5种调味品打开后要冷藏,常温存放易变质,最后1种好多人不知道经常做饭的家庭少不了要准备各种各样的调味品,家里的瓶瓶罐罐真不少,我家就是在厨房安装了调料架,日常需要用的调味品基本上都摆放在架子上。前两天有朋友来我家做客,我们一起在厨房准备午饭夏天常做的一道家常菜,5元就能烧一盘,咸鲜下饭,不输红烧肉立夏之后天气是一天比一天热,最近经常听见身边有人抱怨,天热了胃口不好,吃不下饭等等。就像前两天我家烧了一锅红烧肉,竟然吃了两顿还没吃完,连平时很爱吃肉的老公都说太腻了,很难消化。夏老一辈喝酒少不了这道下酒菜,花钱不多味道香,做法还很简单老一辈人吃饭都爱喝点小酒,这个时候最不能少的就是一盘有滋有味的下酒菜,上年纪的人选择下酒菜有几个特点,一是不能太过油腻,不然很难消化二是要有荤有素,耐吃耐嚼三是最好价格不贵,经济实
康宇杀虫剂这样用才对!因虫制宜,药到虫死使用杀虫剂只有进入害虫体内到达杀虫剂的作用部位后才能发挥其杀虫的功效。杀虫剂选择需因虫而宜,因此全面了解害虫的自身特点和生活习性,掌握杀虫剂的使用知识,才能在化学防治的过程中针对害匠思商用冷链购买冰柜前你需要了解什么?随着冷柜行业的迅速发展,现在冷柜的普及程度已经非常高了,当我们去到超市酒店宾馆饭店等地方都可以看到冷柜的存在。由于很多食品不能长时间在常温下存放,所以冷柜的价值得以体现,通过对食品挑选手机壳大有秘诀,看完摩仕的介绍让你少走弯路随着互联网时代的发展,手机已逐渐成为人们的密友。一天24小时,如果手机不在身边超过十分钟就会浑身不舒服。作为手机的衣服,手机配件对保护手机起着重要的作用。但是,在挑选手机配件时,我广州盛会图书有限公司带你深度分析社科文学类书籍的意义我在网上经常看到有人批评社科文学类书籍的实用性。不知是不是因为学好数学物理化学,就不怕走遍天下这句话,还是大家对于社会学科类书籍的不了解。广州盛会图书有限公司带大家一起来看看,社科姿秀丽如何才能挑选到适合自己的好桌子桌子作为人们书写阅读学习工作吃饭办公的地方,每个人家中或多或少最起码有一张。有的人家中面积大,专门设计一个房间放它,有的人家中户型小,一张桌子学习工作,足矣!但是,我们需要知道,现家有男孩,有些东西妈妈永远给不了!搜索瑞丁老爸启蒙学院,一站解决家长的教育困惑。让孩子拥有最有价值的童年!一位母亲这样描述丈夫与儿子的关系有时,我觉得丈夫与儿子之间的关系像一个谜,他们总是扭在一起打打闹闹你追我赶互不手术不化疗,打针杀死癌细胞,抗癌疗法再突破,国内试验已成功120万一针的抗癌药,爆火了整个网络,可惜CART疗法目前只针对血液肿瘤,因为缺少理想的标靶,对实体瘤的效果不突出。近期,中国医学界传来了一个振奋人心的消息,细胞免疫疗法再获突破,冥想进入不了状态?或许你一开始就选错了一开始打坐就杂念纷飞这确实是个很常见的问题。在我们的学习小组里,这也是被反复提及最多的问题之一。这背后还有一个没被说破的问题这种杂念纷飞的状态,会带来很多不愉快的体验。而这些不愉快44岁患癌,99岁仍在,4个习惯或让秦怡战胜癌细胞,人人可学我先后生过4次大病,开过7次刀,患过脂肪瘤甲状腺瘤,摘除了胆囊,还得了肠癌提起秦怡,可能很多上了年纪的人才认识她,她出演过铁道游击队青春之歌女篮5号等,在上个世纪,红遍大江南北,连卡美轩衣箱女生必看,你的衣服其实可以这样打理与其每天为杂乱的衣物而烦恼,不如用些简单时髦的方法整理你的衣服。卡美轩衣箱告诉你,你的衣服其实可以这样打理。1。衣服分类要毫不留情第一步是最艰难的。首先要考虑什么样的衣物才应该放进德资种子的播种和养护管理,你知道哪些?春天和秋天是一年中播种的2个好时候,一年生花卉种子多在春季播种,严苛春化作用的二年生及多年生花卉则合适在秋季播种。想知道花卉种子的播种及保养管理方法吗?跟随德资的小编一起来了解一下