每個程式員都應理解的7種壞味道,11種原則,23種模式

每個程式員都應理解的7種壞味道,11種原則,23種模式(一)7種設計壞味道1.僵化性: 很難對系統進行改動,因為每個改動都會迫使許多對系統其他部分的其它改動。2.脆弱性: 對系統的改動會導致系統中和改動的地方在概念上無關的許多地方出現問題。3.牢固性: 很難解開系統的糾結,使之成為一些可在其他系統中重用的組件。4.粘滯性: 做正確的事情比做錯誤的事情要困難。5.複雜性(不必要的): 設計中包含有不具任何直接好處的基礎結構。6.重複性(不必要的):

跟大家說一個讓我受了刺激的小事

昨天對應某個機能,我自信滿滿的寫了不到十行的代碼後,直接到MT環境上進行測試,然而在我測試的時候竟然出現兩個錯誤。這兩個錯誤並不是理解和設計錯誤,而純粹是代碼拷貝時花了眼。這件事強烈的刺激了我!1.人太自信的時候容易犯錯啊,自信的時候受刺激也是會瘋的,你信不?2.自己自信沒有做出錯的事,未必是正確的,只有驗證了才能證明。3.如果我自己要認真的Review一次的話,也許就沒有問題了。人要常常的自我審查,仔細的回顧自己做過的事情,必定有收穫。

再現率極低的BUG的處理意見

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */

OO設計原則 — Single Responsibility Principle:OO設計的SRP單一職責原則

•   概要There should never be morethan one reason for a class to

免費產品的期限承諾

    在安裝一個軟體或者是註冊網路服務的時候,我們總會要接受服商家的一些條款,平時我們幾乎用不到的,但是出現利益糾紛的時候這些條款往往會對商家是有利的。在互連網上,一般用的服務的是免費的,像搜尋,電子郵件,社交網站,視頻網站等等,所以使用者在同意條款的時候往往都是毫不猶豫的,也會覺得無論如何自己都是不會吃虧的。    前一段時間,Google宣布關閉Google

要以虔誠的態度解決問題

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan -

K近鄰分類演算法與kdTree實現的虛擬碼(構造kdTree 和 kdTree上搜尋最近鄰)

今天閱讀了李航博士的《統計學習方法》第三章:k近鄰分類方法,其中講到kdTree的搜尋時,沒有特別弄清楚,遂在網上找到這樣一篇文章,有詳細的虛擬碼,理解輕鬆。連結為:http://underthehood.blog.51cto.com/2531780/687160全文如下:By RaySaint

OO設計原則 — Interface Segregation Principle:OO設計的ISP介面分隔原則

概要Clientsshould not be forced to depend upon interfaces that they do not use.不能強迫使用者去依賴那些他們不使用的介面。換句話說,使用多個專門的介面比使用單一的總介面總要好。它包含了2層意思:- 介面的設計原則:介面的設計應該遵循最小介面原則,不要把使用者不使用的方法塞進同一個介面裡。   如果一個介面的方法沒有被使用到,則說明該介面過胖,應該將其分割成幾個功能專一的介面。- 介面的依賴(繼承)原則:如果一個介面a依賴(

高高在上的收銀台 – 糟糕的設計

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan - 馬永占,myz,mayongzhan 去買東西,發現了個很咬牙的店,一個收銀台高高在上,弄的跟Apsara Stack Inspection

二叉樹遍曆:遞迴方法與非遞迴方法——遞迴程式修改為非遞迴的方法

前天去美團面試,二面基本一路順風,後來,碰到一個用非遞迴的方法求解二叉樹高度,並要求現場寫程式,一下就卡住了,非常不爽。這兩天把這個部分惡補了一下,總結了一下思路如下。1、考慮清楚解題類似於遍曆中的前序 or 中序 or 後續;2、考慮清楚在遞迴程式中,每次會有哪些內容需要進棧:節點本身、返回地址(用於告訴程式返回後應該從何處執行)、局部變數、傳回值。下面先上代碼,並比較得出思路。首先,我們看一下先序遍曆的遞迴和非遞迴程式:void PreTraverse(CNode *subTree,

從視頻網站的“站外轉貼”功能看SNS排行

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan -

某學校門口公告欄 – 糟糕的設計

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan - 馬永占,myz,mayongzhan 某日,路過一所學校,見校門口有一公告板,想走近一些看個清楚。 離近了才發現公告板是被一個花壇圍住的,站在花壇外面怎麼也看不清公告。  在罵街之前我選擇了自我分析,找出自己的不足,得出為什麼不能看清:1.      

有關libevent事件註冊的一個小問題

最近一直在使用libevent,發現一個有關libevent事件註冊的一個小問題:對於一個伺服器,我很可能需要註冊的時間類型是持續讀和一次寫;也就是 EV_READ|EV_PERSIT(READ)

MMORPG遊戲伺服器端設計(續)

綠色格線內表示物理上為一台伺服器。1、方案一:低成本、低效能2、方案二3、方案三4、方案四支援大規模玩家、高成本、高負載平衡、高效能、高靈活性設N為每個叢集的伺服器數,M為伺服器叢集個數則總伺服器個數為:3+M*(2+N)其中,每個叢集配備N個邏輯地圖服務,加上一個閘道伺服器、一個角色資料庫;整個大區伺服器群配備一個登陸伺服器、一個賬戶資料庫伺服器、一個聊天伺服器 

SNS的帳號註冊 郵箱註冊 MSN註冊

著作權聲明:原創作品,允許轉載,轉載時請務必以超連結形式標明文章原始出版、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/mayongzhan -

OO設計原則 — The Open-Closed Principle:OO設計的(OCP) 開放/封閉原則

對於一個軟體的實體(類,模組,函數等)應該是可以擴充的,但是不可被修改。一、概要開放/封閉原則(The Open-Closed

阿里雲筆試題:最大子段和問題的動態規劃解法

最大子段和問題的動態規劃解法,給出一段數字,求出最大欄位和?例如:數組a,整數個數為n,b為輔助數組a: 2 3 -7 6 4 -5b: 2 5 -2 6 10 5那麼,最大子段和為10 本題採用動態規劃的思想,令b[j]為以j結尾的最大子段和,那麼有:b[j]=max{b[j-1]+a[j],

氣質的培養教程(哈佛管理世界)

  一:沉穩     (1)不要隨便顯露你的情緒。     (2)不要逢人就訴說你的困難和遭遇。     (3)在徵詢別人的意見之前,自己先思考,但不要先講。     (4)不要一有機會就嘮叨你的不滿。     (5)重要的決定盡量有別人商量,最好隔一天再發布。     (6)講話不要有任何的慌張,走路也是。  二:細心     (1)對身邊發生的事情,常思考它們的因果關係。     (2)對做不到位的執行問題,要發掘它們的根本癥結。     (3)對習以為常的做事方法,要有改進或最佳化的建議。

求1的個數問題

     《編程之美》中有一個求1出現次數的問題,給定一個十進位正整數N,寫下從1到N的所有正整數,然後數一下其中1出現的次數;如果將這個問題稍微改變一下,要求數一下其中含有1的數位個數;比如N=12,f(N)=4,(1, 10, 11, 12)看起來問題基本一樣,但實際上兩者還是有很大的不同的,改變後的問題應該說是一個排列組合問題;  這裡給出一種解法:首先現將問題轉化為:求不含1的數的個數設N=high ow從最高位high開始,設當前共有bit+1位1.

gcc -l 連結共用庫(動態/靜態共用庫)

我們通常把一些公用函數製作成函數庫,供其它程式使用。函數庫分為靜態庫和動態庫兩種:靜態庫:在程式編譯時間會被連結到目標代碼中,程式運行時將不再需要它。動態庫:在程式編譯時間並不會被連結到目標代碼中,而是在程式運行時才被載入的,因此程式運行時還需要動態庫存在。靜態庫尾碼為.a 動態庫尾碼為.so參考連結為:http://hi.baidu.com/coder841112/blog/item/079cff9679b0ce0dd31b7048.htmlhttp://www.cublog.cn/u/2

總頁數: 61357 1 .... 18505 18506 18507 18508 18509 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.