SOLID (面向对象设计)
在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期 引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。 概述 参考 基本概念以及相关主题 自适应软件开发 敏捷软件开发 代码复用 程序设计 面向对象程序设计 继承 (计算机科学) 奥卡姆剃刀 设计和开发原则 不…
共 22 篇文章
在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期 引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。 概述 参考 基本概念以及相关主题 自适应软件开发 敏捷软件开发 代码复用 程序设计 面向对象程序设计 继承 (计算机科学) 奥卡姆剃刀 设计和开发原则 不…
开箱即用功能(out-of-the-box feature,也称OOTB或off the shelf)在软件上指产品在安装后,无需配置或修改,即可使用的功能或特性 ;也指默认即对所有用户可用,不需支付额外费用或进行另外的配置。 参见 约定优于配置 商业现货 開箱體驗 参考资料
自上而下(top-down)與自下而上(bottom-up)同為資訊处理及知识排序之策略,在軟體、人文與科学理论(请参阅系统论)以及管理與组织等领域皆有所應用。實務上可被视为一种思維、教學或領導的方式。 自上而下方法(又稱為逐步設計和逐步細緻化,在某些情況下是「分解」的同義詞)本質上是對系統進行分解,以便以逆向工程的方式深入了解其組成子系統。 採用自上而下的方法時,會對系統的概觀進行規劃和具體說明,但對於第一層子系統的細節則不予闡述。接…
軟體工程中的領域(domain)是電腦程式的目標主題區域。依正式的定義,領域表示特定軟體計劃的目標主題,不過範圍可能定義的大一點或小一點。例如,針對一個特定的軟體計劃,其目標是要建立某醫院的程式,則這個醫院就是軟體計劃的領域,也可以擴展計劃範圍,將領域改為「所有醫院」 領域:知識、影響或是活動的範圍。使用者用程式要處理的主題區域即為軟體的領域—Eric Evans 相關條目 領域驅動設計 领域特定语言 领域模型 參考資料
軟體設計說明書(software design description)也稱為軟體設計文件(software design document)或軟體設計規格(Software Design Specification),是對軟體設計的呈現,可以紀錄設計資訊、處理各種設計上的考量,並且和設計的利益相關人傳達資訊,進行溝通。軟體設計說明書會伴隨架構圖,其中也會針對較小的設計元件有具體的規格。在實務上,若要在大的團隊協作,需要透過此一文件,有…
鴉片軟體又稱為封閉軟體(closed software),該詞最早出現於在台灣積極推廣自由軟體運動的洪朝貴的文章中,刊載於2002年6月號《Linuxer雜誌》的「鴉片戰爭外傳」一文,後來Andy Tai將該文譯成英文(The New Opium War)。作者以詼諧的方式,用東印度公司藉由販賣鴉片讓人成癮為例,暗諷軟體公司使用封閉、專有或專利軟體所產生的檔案或資料儲存格式,刻意造成資料與其它軟體間相互交換與轉換不易、新舊版本無法相容,…
领域驱动设计(,缩写 DDD)是軟體程式碼的結構及語言(類別名稱、類別方法、類別變數)需符合業務領域中的習慣用法。例如處理租賃業務的軟體,其型別可以命名為LoanApplication及Customer,其方法可以用AcceptOffer及Withdraw。 领域驱动设计可以將實現對應到持续进化的模型。 领域驱动设计的前提是: 把项目的主要重点放在核心領域(core domain)和领域逻辑 以領域中的模型為基礎,進行复杂的设计 讓技術…
向前兼容又稱向上兼容,是指用新版本程序创建的文档可以被计算机中的舊版本的程序使用。例如Office 2003可以載入Office 2007創建的文檔。 参见 * 向下兼容(向后兼容) 参考文献
契约式设计(,縮寫為 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。 因为“Design by Contract”是属于Eiffel Software的注册商标,很多开发人员用契約式編程(Programming by Contrac…
GRASP是通用职责分配软件模式(General Responsibility Assignment Software Patterns)的簡稱,是物件導向設計和职责分配中的九個基本原則
持續交付(,縮寫為 CD),是一種軟體工程手法,讓軟體產品的產出過程在一個短週期內完成,以保證軟體可以穩定、持續的保持在隨時可以釋出的狀況。它的目標在於讓軟體的建置、測試與釋出變得更快以及更頻繁。這種方式可以減少軟體開發的成本與時間,減少風險。 與DevOps的關系 持續交付與DevOps的含義很相似,所以經常被混淆。但是它們是不同的兩個概念。DevOps的範圍更廣,它以文化變遷為中心,特別是軟件交付過程所涉及的多個團隊之間的合作(開發…
软件设计是程式設計師按照特定顺序撰寫计算机数据和指令的集合。“软件设计”可以是撰寫最基礎的二进制0和1位元;也可以是建立在位元之上的各类软件语言(Python、HTML、Java等)、算法、架构、程序、图像化程式碼来进行。 考虑要素 (可供参考) 扩展性 - 考虑系统未来追加新功能是否方便/便宜 健壮性 - 系统的容错能力 可用性 - 系统平均无障碍工作时长 安全性 - 防止系统功能和数据的非授权访问以及抗攻击的能力 模块化 - 系统功…
結構化分析(,簡稱SA)是軟體工程中的一種方法,結構化分析和結構化設計可以分析商業的,再轉換為規格文件,最後再產生電腦軟體、硬體組態及相關的手冊及程序。 結構化分析及設計技術是系統分析的基礎,是由1960到70年代的系統分析技術發展而成。 目的 結構化分析在1980年代起開始廣為使用。結構化分析包括將系統概念轉換為用資料及控制的來表示,也就是轉換為資料流程圖。資料流程圖中的程序以泡泡來表示,因此也稱為「泡泡圖」。不過完整的資料流程圖中可…
计算机编程的统一访问原则()是由伯特蘭·邁耶在《》中提出。它指出“一个模块提供的所有服务都应该通过统一的符号提供,与它们是通过存储还是通过计算实现无关”。这个原则普遍适用于面向对象编程语言的语法。使用属性、预先计算的属性或对象的方法/查询实现,调用时没有语法差异。 虽然大多数示例都聚焦在该原则的“读取”方面(即检索值),但伯特蘭·邁耶表示,该原则“写入”(即修改值)方面更难实现。 解释 伯特蘭·邁耶解决的问题涉及大型软件项目或软件库的维…
系统工程和软件开发裡的功能規格(functional specification)、功能規格文件(functional specifications document)或功能需求規格(functional requirements specification)是指說明系統或是組件需要實現功能的文件,也常常是需求規格中的一部份。 此文件一般會描述系統使用者需要的資訊,及其輸入和輸出要有的性質(例如在软件系統中)。功能規格多半是針對對應需求…
接口隔离原则(interface-segregation principles, ISP)指明客户(client)不應被迫使用對其而言無用的方法或功能。接口隔离原则(ISP)拆分非常庞大臃肿的接口成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。这种缩小的接口也被称为角色接口(role interfaces)。接口隔离原则(ISP)的目的是系统解开耦合,从而容易重构,更改和重新部署。接口隔离原则是在SOLID中五个面向对…
面向对象设计中的層(layer)是一群和其他模块有類似耦合性的類別。層也可以說是一組可復用的軟體組件,可以在類似的環境下復用。 各層的模組會用树狀的階級架構來規劃,各層模組之間的依賴關係會用連接來表示。各層之間的依賴關係可能是继承、或聚合(aggregation)關係,不過也有可能是其他的關係。 分層是許多書籍中都會提到的架构模式,例如《》書中就有提到。 相關條目 抽象層 :一種階層的分組方式,抽象程度越高的放在越上層。 * 多层架构(…
在软件工程中,多层架构(Multitier architecture)是一种客户端/服务器端架构。在该架构中,表现功能、应用处理和数据管理功能物理分离。最常使用的多层架构是三层架构。 多层架构提供了一种模型,使得开发者可以建立方便扩展和复用的应用。通过将应用分成多层,开发者拥有修改或增加一个特定层的选择,而不是重写整个应用。一个三层架构通常由表现层,业务逻辑层和数据存储层组成。
事件風暴(Event storming)是利用研討方式,快速發現軟體特定領域中所發生事物的作法。和其他方式比較,此方式相當的簡單,而且過程不需要電腦協助,活動只需要便利貼以及寬闊的牆面。在此活動中,商業流程會變成一連串的領域事件,在活動中會用橘色的便利貼表示 事件風暴是由Alberto Brandolini在領域驅動設計(DDD)的情境下發明。事件風暴可以用作以及需求工程的工具。其概念是讓軟體開發者和領域專家(domain expert…
面向对象设计(Object-Oriented Design,OOD)方法是面向对象程序设计方法中一个环节。其主要作用是对分析模型进行整理,生成设计模型提供给OOP作为开发依据。OOD包括:架构设计、用例设计、子系统设计、类设计等。架构设计的侧重点在于系统的体系框架的合理性,保证系统架构在系统的各个非功能性需求中保持一种平衡;子系统设计一般是采用纵向切割,关注的是系统的功能划分;类设计是根据通过一组对象、序列图展示系统的逻辑实现。 面向对…