标签:#反模式

共 28 篇文章

过度工程化

过度工程化,也称性能过剩、过度设计,是指产品设计的比使用期望有更大的稳健性(強健性)或性能,或者不必要的复杂度。 过度工程化多半是因為提昇安全係數、增加機能、或是克服一些(使用者可能較不在意的)性能缺陷。若是在一些要求安全性或是性能的應用(例如太空船),或是需要廣泛功能的軟體(例如診斷設備),會希望產品过度工程化。 从价值工程角度,性能过剩是人、物、时间等资源的浪费。極簡主義设计哲学认为“少即是多”。违反了KISS原则。若以軟體工程的角…

範圍蔓延

範圍蔓延(又稱為需求蔓延、功能蔓延)在專案管理是指專案的範圍出現不受控制的變化或持續增長,一般發生在專案開始後。這通常導因於範圍欠缺定義、文件化、或是控制,而且這通常被認為是負面的。 範圍蔓延和特徵蔓延有關係,但兩者是不同的,特徵蔓延是指有關產品特徵的不受控變化,而範圍蔓延是針對整個專案而言。 範圍蔓延是多數專案中的風險。大多數大型專案因為範圍蔓延而失敗。自由策略的影響難以抵消,即使是對最有經驗的專案經理,面對範圍蔓延仍然是艱鉅的挑戰。…

工具规律

这种概念也被称作 工具定律(英语:Law of the instrument),马斯洛的锤子,小木槌或者金锤子,表现为对一个熟悉的工具过度的依赖。亚伯拉罕·马斯洛在1966年提到:“我认为假设你所拥有的工具只有一个锤子时,你把所有的事物当作钉子来对待是很有吸引力的。” “马斯洛的锤子”的一个耳熟能详的说法是“如果你有的只是一个锤子,那么所有的东西看起来都像一个钉子”以及一些由此转化的说法,是来自于亚伯拉罕·马斯洛1966年发行的《科學的…

大泥球 (编程)

大泥球(Big ball of mud)是指一个缺少可认知架构的软件系统。这种系统往往是在业务压力、、增加等情况下开发所致。是一种反模式。 定义 Brian Foote与的1997年的同名论文,给出定义如下: Foote 与 Yoder认为Brian Marick最早提出了大泥球这个软件架构术语。 根源 #程序员在编写程序或是系统时遇到问题后的解决方法,往往缺少前期设计,不是合适的或者最优的解法,而是方便修改的,变动最小的、碎片式增长,…

远隔作用 (计算机科学)

远隔作用()是一種程式設計中的反模式,是指程式某一部份的行為會廣泛的受到程式其他部份指令的影響,而且要找到影響其他程式的指令很困難,甚至根本無法進行。 避免远隔作用的方法是避免使用全域變數,利用可控制的區域變數來調整資料,或是使用有引用透明性的純函數程式語言。 此詞語的由來是來自物理學中的遠距作用,是指一個物體在和另一物體中間沒有粒子交換的情形下,影響另一物體的現象,量子力學的量子纏結就是遠距作用的一個例子,愛因斯坦將此稱為「鬼魅似的遠…

幽灵 (反面模式)

在程式設計中,幽灵()是指一些生命期很短,沒有內部狀態的物件,這些物件是只用來進行初始化或調用其他生命期較長物件的方法。幽灵是一種反面模式。原始定義是由 Michael Akroyd 於1996年在Object World West Conference中提出: :「這些生命期很短的物件就像幽灵馬車或騷靈現象一様,神祕的出現及消失。因此代碼變的更難維護,而且其中會有不必要的資源浪費。這類反面模式的典型原因是不好的物件設計。」 幽灵物件常…

熔岩流 (反模式)

熔岩流是程序设计中的行話,是指撰寫情形不佳的计算机语言在開發階段就已經放到產品中,這類的結果常會造成新的系統和舊的,不完整的系統不相容,而許多衍生的機能又和舊系統有關,因此造成向後相容性的問題。 在開發過程中團隊的大型變常會產生熔岩流。當一個專案中,人員常常流進流出,系統中一些特性目的的知識可能無法在團隊中留下來。團隊中無法清除這些問題,因此只好用迴避的方式進行,增加專案的複雜度及混亂。 熔岩流是種反面模式,是因為早期設計不良而常常出現…

寫死

寫死()是指在軟體實作上,將輸出或輸入的相關參數(例如:路徑、輸出的形式或格式)直接以常數的方式撰寫在原始碼中,而非在執行期間由外界指定的設定、資源、資料或格式做出適當回應。一般被認定是種反模式或不完美的實作,因為軟體受到輸入資料或輸出格式的改變就必須修改原始碼,對客戶而言,改變原始碼之外的小設定也許還比較容易。白話來說就是指給定一個問題只會給出一種答案,每次給出的答案都是固定的。 但寫死的狀況也並非完全只有缺陷,因某些封裝需要或軟體本…