重構(gòu)之美之一利用多態(tài)重構(gòu)為帶參方法
我在閱讀遺留代碼時(shí),經(jīng)常發(fā)現(xiàn)存在這樣一種情形。在一個(gè)類中存在兩個(gè)方法,它們做了相似的工作,區(qū)別僅在于方法內(nèi)部某些對(duì)象的類型。例如: public class WorkSheet{
private void fillHeader() {
...
|
我在閱讀遺留代碼時(shí),經(jīng)常發(fā)現(xiàn)存在這樣一種情形。在一個(gè)類中存在兩個(gè)方法,它們做了相似的工作,區(qū)別僅在于方法內(nèi)部某些對(duì)象的類型。例如: public class WorkSheet{
private void fillHeader() {
...
在開(kāi)發(fā)過(guò)程中,當(dāng)你發(fā)現(xiàn)代碼可以Copy-paste時(shí),就意味著代碼出現(xiàn)了重復(fù)。這是一種典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式&m...
關(guān)于如何面試程序員,網(wǎng)上有很多優(yōu)秀文章。這是其中一篇:《如何在面試中發(fā)現(xiàn)優(yōu)秀程序員》。該文著重講電話面試或親自面試。一些公司的面試過(guò)程演變成90天的試用期。
關(guān)于面試過(guò)程我沒(méi)有多少新內(nèi)容補(bǔ)充。...
這是一篇提供有效、實(shí)用編程方法的程序箴言,作者Susan Harkins是世界最大的技術(shù)期刊出版社的主編,具有多年的實(shí)踐經(jīng)驗(yàn);在這篇文章里她重申“最佳編碼實(shí)踐原則”的重要性;雖然文中主要討論VB開(kāi)發(fā)相關(guān)的...
分頁(yè)程序一般由兩條SQL組成:SELECT COUNT(*) FROM ... WHERE ....
SELECT ... FROM ... WHERE LIMIT ......
InfoQ:小馬,請(qǐng)首先做一下自我介紹。 小馬:大家好,我叫趙澤欣,在淘寶的花名是小馬,隸屬于淘寶UED部門,很榮幸能夠接受InfoQ的采訪,謝謝?! nfoQ:小馬,現(xiàn)在Web開(kāi)發(fā)相關(guān)的類庫(kù)特別多,請(qǐng)問(wèn)淘寶在選擇Web框架做開(kāi)發(fā)的...
這篇文章算是我一個(gè)小小的總結(jié),大家看了不要見(jiàn)笑。 大學(xué)的時(shí)候上的是“網(wǎng)絡(luò)工程”專業(yè),關(guān)于編程的課程只有C語(yǔ)言,winform基礎(chǔ),java語(yǔ)言基礎(chǔ)。教我們C語(yǔ)言的老師特別嚴(yán)厲,所以C語(yǔ)言那本基礎(chǔ)教程...
一個(gè)合格的程序員,應(yīng)該重視Bug,并在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,有效地規(guī)避這些Bug,當(dāng)然也要分情況。有些Bug,在有些情況下建議不要做太嚴(yán)格的規(guī)避,否則的話,可能會(huì)對(duì)整個(gè)項(xiàng)目的開(kāi)發(fā)進(jìn)程產(chǎn)生嚴(yán)重的阻礙。個(gè)人的開(kāi)發(fā)實(shí)踐證明...
模式名稱:生成器模式 1.問(wèn)題描述 生活場(chǎng)景:你玩過(guò)種地、種花等類似的游戲嗎?這是最近很流行的游戲喲!下面就是從種花游戲中剪切的四個(gè)花盆(盆景),很漂亮吧!你將不同的種子放入花盆,一段時(shí)間后你就可以看到各種美...
一、場(chǎng)景 在SQL Server 2005中,有一個(gè)表TestDatetime,其中Dates這個(gè)字段的數(shù)據(jù)類型是datetime,如果你看到表的記錄如下圖所示,你最先想到的是什么呢?
(圖1:數(shù)據(jù)列表)你看到這些數(shù)據(jù),是不是覺(jué)得這樣的設(shè)計(jì)既浪費(fèi)了存儲(chǔ)...
一、數(shù)據(jù)表的設(shè)計(jì) 在數(shù)據(jù)庫(kù)中,我們通過(guò)如右圖所示的具有主子關(guān)系的兩個(gè)表存儲(chǔ)AuditLog相關(guān)信息。我們將“事務(wù)”作為我們進(jìn)行追蹤的單位,不過(guò)這里的講的“事務(wù)”更多地指業(yè)務(wù)處理事務(wù)...
一、元素分組:<fieldset>、<legend>示例: 1 <fieldset>
2 <legend>健康信息:</legend>
3 <form>
4 <label>身高:<input type="text" /></label>
5 <label>體重:<input type="text"...
我是從《MySQL Admin Cookbook》一書中看到這個(gè)問(wèn)題的,有一定的隱蔽性,遂記之。友情提示:本文測(cè)試所用的MySQL版本是5.1.44-community,其它版本未測(cè)試,結(jié)果可能有差異?! ∠瓤纯碔nnoDB中的情況:CREATE TABLE enu...
概述使用Qt做過(guò)UI的一定對(duì)QHBoxLayout, QVBoxLayout, 和QGridLayout這三個(gè)最重要也最常使用的layout managers非常熟悉。那么在QML中又是如何控制和管理UI布局的呢?那么我們這篇文章就為大家介紹這些基礎(chǔ)知識(shí)。首...
前幾天新浪微博發(fā)生了一起大的系統(tǒng)故障,很多搞技術(shù)的朋友都比較關(guān)心,其中的原因不會(huì)超出James Hamilton在On Designing and Deploying Internet-Scale Service概括的那幾個(gè)范圍,James第一條經(jīng)驗(yàn)“Design f...
借助開(kāi)放課件是學(xué)習(xí)網(wǎng)頁(yè)設(shè)計(jì)最簡(jiǎn)單且最便宜的方式之一。你可以通過(guò)開(kāi)放課程免費(fèi)得到一些全球頂級(jí)高校的指導(dǎo)?! ≈T如加州大學(xué)伯克利分校、華盛頓大學(xué)和麻省理工學(xué)院等著名學(xué)府都提供網(wǎng)頁(yè)設(shè)計(jì)和開(kāi)發(fā)課程。...
Jean Bezivin, Nantes大學(xué)的名譽(yù)教授,在他最新的博客中,回憶了軟件工程過(guò)去四十年的歷史,因?yàn)樗嘈蓬嵏驳臅r(shí)刻即將到來(lái)。Jean認(rèn)為軟件工程已經(jīng)發(fā)生了三次巨變:第一次巨變?cè)?968年10月的Garmisch NATO會(huì)議上已經(jīng)...
近日,Google的一位工程師Sans Serif發(fā)布了一篇博文非常清楚的描述了Android系統(tǒng)架構(gòu),中國(guó)移動(dòng)通信研究院院長(zhǎng)黃曉慶在新浪微博上推薦了該文,并認(rèn)為文中對(duì)Android的介紹很好,您可以看一下Google工程師眼中的Andro...
前端是個(gè)很特殊,帶點(diǎn)矛盾的職位。所以我們的“前端攻城師”也大都是些矛盾體。矛盾在感性和理性之間,矛盾在文藝和三俗之間,矛盾在放任和嚴(yán)謹(jǐn)之間。作為所謂的“攻城師”,攻的不僅是&ldquo...
每個(gè)編程人員都需要至少掌握三種編程語(yǔ)言。當(dāng)然,這只是我的一家之言?! ∵@是我經(jīng)過(guò)多年養(yǎng)成的觀點(diǎn),也許是偏見(jiàn),但我能夠根據(jù)一個(gè)人所喜歡的編程語(yǔ)言來(lái)快速的了解一個(gè)程序員。當(dāng)我讀簡(jiǎn)歷時(shí),我會(huì)嘗試使用我的這...
每次當(dāng)我開(kāi)始做一個(gè)新項(xiàng)目時(shí)我都非常的興奮。即使是在做了20年的軟件開(kāi)發(fā)后,我仍然感覺(jué)心里像揣了一個(gè)小兔子似的怦怦直跳。這將是我們共同的旅程。我深信我們正在繪制一份充滿樂(lè)趣、富有挑戰(zhàn)、內(nèi)容豐富的路線圖...
這個(gè)帖子原本是在C++奮斗樂(lè)園論壇討論的,后來(lái)覺(jué)得有必要和更多朋友分享下,所以就在這里也貼出來(lái)了,希望大家一起補(bǔ)充。因?yàn)槲覀€(gè)人學(xué)的是C/C++的,所以JAVA等程序語(yǔ)言的書籍我就不討論了。這里討論的主要是C/C++的...
昨天我做了一些事情使我的編程效率提高了一倍。簡(jiǎn)單,容易,但使我的生活發(fā)生了巨大的變化?! ∧銈冎锌赡苡行┤艘呀?jīng)知道我是怎么做的。對(duì)于其他的人,這聽(tīng)起來(lái)有些瘋狂?! ∥也怀掷m(xù)工作?! 』蛘?,我把定時(shí)器...
前一篇:Hacker傳說(shuō)之不能說(shuō)的秘密(1) 說(shuō)明1:對(duì)點(diǎn)擊“推薦“的朋友表示感謝,博客園有沒(méi)有可以看到是誰(shuí)推薦的功能呢? 說(shuō)明2:對(duì)所有的評(píng)論朋友表示感謝,即使是批評(píng)意見(jiàn)也很有價(jià)值?! ≌f(shuō)明3:是這個(gè)...
一點(diǎn)說(shuō)明:之所以叫不能說(shuō)的秘密,并非因?yàn)楸J?,而是因?yàn)楦嬖V一般人,他非但理解不了,還有可能要取笑你。所以有自尊的Hacker往往只傳自己信得過(guò)的人,以免自討沒(méi)趣。于是很多東西就逐漸成為了不能說(shuō)的秘密。所以這個(gè)H...