株洲网站建设推广报价,seo基础知识培训视频,免费logo在线制作字体logo,域名买好怎么开始做网站软件开发是抽象化原则#xff08;Abstraction#xff09;的一种体现。 所谓抽象化#xff0c;就是指从具体问题中#xff0c;提取出具有共性的模式#xff0c;再使用通用的解决方法加以处理。 开发软件的时候#xff0c;一方面#xff0c;我们总…软件开发是抽象化原则Abstraction的一种体现。 所谓抽象化就是指从具体问题中提取出具有共性的模式再使用通用的解决方法加以处理。 开发软件的时候一方面我们总是希望使用别人已经写好的代码另一方面又希望自己写的代码尽可能重用以求减少工作量。要做到这两个目标这需要抽象化。 最近我读到美国程序员Derick Bailey的一篇文章谈到抽象化应该遵循的三个原则觉得很有启发。 一、DRY原则 DRY是 Dont repeat yourself 的缩写意思是不要重复自己。 软件工程名著《The Pragmatic Programmer》首先提出了这个原则。它的涵义是系统的每一个功能都应该有唯一的实现。也就是说如果多次遇到同样的问题就应该抽象出一个共同的解决方法不要重复开发同样的功能。 这个原则有时也称为一次且仅一次原则Once and Only Once。 二、YAGNI原则 YAGNI是 You arent gonna need it 的缩写意思是你不会需要它。 这是极限编程提倡的原则指的是你自以为有用的功能实际上都是用不到的。因此除了最核心的功能其他功能一概不要部署这样可以大大加快开发。 它背后的指导思想就是尽可能快、尽可能简单地让软件运行起来do the simplest thing that could possibly work。 但是这里出现了一个问题。仔细推敲的话你会发现DRY原则和YAGNI原则并非完全兼容。前者追求抽象化要求找到通用的解决方法后者追求快和省意味着不要把精力放在抽象化上面因为很可能你不会需要它。所以就有了第三个原则。 三、Rule Of Three原则 Rule of three 称为三次原则指的是当某个功能第三次出现时才进行抽象化。 这是软件开发大家Martin Fowler在《Refactoring》一书中提出的。 它的涵义是第一次用到某个功能时你写一个特定的解决方法第二次又用到的时候你拷贝上一次的代码第三次出现的时候你才着手抽象化写出通用的解决方法。 这样做有几个理由 省事。如果一种功能只有一到两个地方会用到就不需要在抽象化上面耗费时间了。容易发现模式。抽象化需要找到问题的模式问题出现的场合越多就越容易看出模式从而可以更准确地抽象化。比如对于一个数列来说两个元素不足以判断出规律1, 2, _, _, _, _,第三个元素出现后规律就变得较清晰了1, 2, 4, _, _, _。防止过度冗余。如果一种功能同时有多个实现管理起来非常麻烦修改的时候需要修改多处。在实际工作中重复实现最多可以容忍出现一次再多就无法接受了。综上所述三次原则是DRY原则和YAGNI原则的折衷是代码冗余和开发成本的平衡点值得我们在抽象化时遵循。转载于:https://www.cnblogs.com/huanjianlin/archive/2013/03/29/2988244.html