反模式(英文:anti-patterns或pitfalls), 是指用來解決問題的帶有共同性的不良方法。它們已經經過研究並分類,以防止日後重蹈覆轍,並能在研發尚未投產時辨認出來。軟體開發中公認的反模式
水中望月(smoke and mirrors):向人演示還沒有實現的功能看上去會是什麼樣的。英文緣自一項魔術手法:放出煙霧並趁機用鏡子遮住一件物體,使它看起來像是消失了。
軟體膨脹:隨著版本的公升級,軟體越來越消耗系統資源。
不良管理︰在未對主題有足夠認識的情況下管理乙個專案。
反抽象:需要的功能並不暴露給使用者,導致使用者要在較高層次重新實現一些功能。
四不像:往往乙個設計模型可以暴露不同的介面給使用者,不同的介面表現了模型的不同方面。然而把不同方面的功能混在一起是常見的不良設計。
亂麻球:系統沒有可辨認的結構,就像一團亂麻一樣。
萬應靈:乙個物件了解的東西太多,或者要做太多的事情,就好像無所不能一樣。
屠龍術:沒有必要的複雜設計。
競爭危害(race hazard): 缺乏預見事件以不同順序發生的後果。
物件導向設計上的反模式
萬能類︰在乙個類的設計中,聚集了太多的函式。
吵鬧鬼︰建立某物件的目的只是為了傳送訊息給其它的物件。
溜溜問題︰因結構(例如繼承)極度破碎冗長,而必須花費極大力氣來了解它。
硬編碼(hard code):或稱寫死。在實現某系統用途上設死該系統的運作環境。
紊亂**︰幾乎無法理解的結構,特別是因為**結構的濫用。
超布林邏輯︰不必要的比較,或是過於抽象的布林計算。
無用的例外處理︰插入了條件去防止執行時異常,但確在條件為false時又throw(例如:if a not null then process (a) else throw null-exception endif).
剪貼程式設計(copy-n-paste programming):寧願拷貝(並修改)現存**而非創造通用的解決方案。
反重構: "移除功能性並以註解取代"的過程。
金錘子: 假設個人偏好的解決方案是世界通用。
掩耳盜鈴: 假設乙個已知的bug不會出現。
不成熟的優化: 根據不足資訊優化。
重新造個輪子: 拒絕採納現有的解決方案,重寫乙個。
造了個正方形的輪子: 當乙個優秀的方案存在時,創造乙個蹩腳解決方案。
相依性地獄:由於需要的產品版本不匹配造成的種種問題,特別是在unix/linux。
dll地獄:由於動態連線庫的版本、存在與否、和重複所造成的種種問題,特別是在microsoft windows。
jar地獄:源自於不同版本或位址的jar檔案所造成的問題,常造成載入模組的欠缺。
延伸衝突︰源自於mac os不同的延伸嘗試修補相同的系統部分。
一些組織方面的反模式
分析麻痺症:專案分析過程已經長得不成比例,卻聽之任之。
搖錢樹專案:或者叫吃老本,一件有利可圖的產品讓新產品固步自封。
永遠革命:總是要不停地不計代價將現有系統移植到新的環境。
軍隊式管理。沒有容忍異議的空間。
scope creep: 允許專案範圍增長而沒有適當控制
AnimateWindow 百度百科
animatewindow 開放分類 程式設計 計算機 api 函式功能 該函式能在顯示與隱藏視窗時能產生特殊的效果。有兩種型別的動畫效果 滾動動畫和滑動動畫。函式原型 bool animatewindow hwnd hwnd,dword dwtime,dword dwflags 引數 hwnd 指...
WCF百度百科
根據微軟官方的解釋,wcf 之前的版本名為 indigo 是使用託管 建立和執行面向服務 service oriented 應用程式的統一框架。它使得開發者能夠建立乙個跨平台的安全 可信賴 事務性的解決方案,且能與已有系統相容協作。wcf是微軟分布式應用程式開發的集大成者,它整合了.net平台下所有...
Mashup 百度百科
mashup是糅合,是當今網路上新出現的一種網路現象,將兩種以上使用公共或者私有資料庫的web應用,加在一起,形成乙個整合應用。一般使用源應用的api介面,或者是一些rss輸出 含atom 作為內容源,合併的web應用用什麼技術,則沒有什麼限制。mashup在geek群體和網際網路玩家之中獲得了極大...