iT邦幫忙

code smell相關文章
共有 70 則文章
鐵人賽 Software Development DAY 30

技術 Day 30|從文藝復興到日常,把工藝精神留在下一次 commit

文藝復興的畫室,終究會關門 師傅會老去,畫室的招牌,總有一天會摘下來 但工藝精神,沒有跟著招牌一起消失它活在每一位曾經在那裡磨過顏料的學徒身上他們有些人,後來...

鐵人賽 Software Development DAY 29

技術 Day 29|只負責轉達話語,自己不畫一筆的傳令:中間人 (Middle Man)

有些畫室,會設一個「傳令」的角色 主顧要委託一幅畫,先找傳令;傳令再把需求轉達給真正動筆的畫家 如果這位傳令,真的懂畫、能幫主顧把模糊的需求翻譯成畫家聽得懂的...

鐵人賽 Software Development DAY 28

技術 Day 28|問個顏料存量,要問過五個學徒才有答案:訊息鏈 (Message Chains)

畫室主人想知道,紅色顏料還剩多少合理的做法,是直接問管理顏料的那位學徒 不合理的做法,是主人得先問大學徒「顏料放在哪個房間」,再問那個房間的學徒「放在哪個櫃子...

鐵人賽 Software Development DAY 27

技術 Day 27|兩間畫室共用一把鑰匙:不適當的親密關係 (Inappropriate Intimacy)

依戀情結,是學徒天天跑去隔壁幫忙 不適當的親密關係,是更嚴重的下一步 兩間畫室,乾脆共用一把鑰匙,誰都能隨時進出對方的工作間翻看對方還沒完成的草稿、隨手調整對...

鐵人賽 Software Development DAY 26

技術 Day 26|學徒天天跑去隔壁畫室幫忙調色:依戀情結 (Feature Envy)

文藝復興的畫室,是一個分工細密的組織師傅負責構圖、定調;資深學徒處理背景與衣褶;新來的學徒,負責磨顏料、打底 這套分工能運作,靠一條不成文的默契每個人做好自己...

鐵人賽 Software Development DAY 25

技術 Day 25|清倉日:敢刪,比敢加更需要判斷力

畫室每隔一段時間,會有一次清倉日 堆在角落的舊畫架、調配失敗的顏料、學徒試手感留下的草稿師傅會一件一件檢查,決定哪些留、哪些丟 沒有人喜歡清倉日,「留著,至少...

鐵人賽 Software Development DAY 24

技術 Day 24|為了「以後可能會畫」先買好的十種畫框:猜測性通用 (Speculative Generality)

有位畫室主人,開店前想得很遠 他心想:「以後客人可能會要油畫框、水彩框、粉彩框……」於是一口氣訂了十種畫框,擺滿整面牆 半年後盤點,九種畫框,一次都沒被用過,...

鐵人賽 Software Development DAY 23

技術 Day 23|畫室角落,早就沒人用的舊畫架:無用的程式碼 (Dead Code)

每間開業夠久的畫室,角落總會堆著幾個舊畫架 它們曾經很重要——某一年、某一種畫法,天天用到它 後來畫法換了,新畫架進來,舊畫架就被推到角落,沒有人再碰,也沒有...

鐵人賽 Software Development DAY 22

技術 Day 22|只會被人擠顏料,自己不會調色的調色盤:純資料類別 (Data Class)

畫室裡有一種工具,叫調色盤 它的角色,就是被動地裝顏料畫家把紅色、黃色擠上去,自己動手調出想要的橘色 調色盤本身不會調色,這很正常,它本來就只是個容器 但如果...

鐵人賽 Software Development DAY 21

技術 Day 21|領了畫布錢,卻什麼都沒畫的學徒:懶惰的類別 (Lazy Class)

畫室養一位學徒,是有成本的 要給他一個位置、分他畫布跟顏料、師傅要花時間指導他 如果這位學徒,每天只做一件早就可以交給別人順手完成的小事畫室養著他的成本,早就...

鐵人賽 Software Development DAY 20

技術 Day 20|同一張草稿,抄了五份放在不同抽屜:重複的程式碼 (Duplicate Code)

畫室裡,構圖草稿通常只有一份正本 如果同一張草稿,被謄抄了五份,分別放在五個抽屜日後只要構圖有一點點調整,就得找出全部五份,一份一份修改 漏改一份,這幅畫的五...

鐵人賽 Software Development DAY 19

技術 Day 19|畫框上寫著「這裡應該是一朵花」:註解 (Comments)

李昂・巴蒂斯塔・阿伯提(Leon Battista Alberti)在《論建築》裡提出 concinnitas各部分之間的和諧比例,並給「美」下了近乎嚴苛的定...

鐵人賽 Software Development DAY 18

技術 Day 18|灰泥要乾之前:現在修,還是先記一筆技術債?

米開朗基羅畫西斯汀天頂時,不是每一塊 giornata,發現問題都會當場處理 灰泥還沒乾的那幾個小時,是真正能修改的好時機過了這個好時機,這塊區域的設計就定案...

鐵人賽 Software Development DAY 17

技術 Day 17|兩本手抄本,永遠要一起翻頁:平行繼承體系 (Parallel Inheritance Hierarchies)

畫室的花名冊,通常不只一本 一本記著「誰是誰的徒弟」,另一本記著「誰負責哪一種顏料的調配權限」 兩本冊子,乍看是獨立的紀錄,但仔細一看每收一位新學徒,兩本冊子...

鐵人賽 Software Development DAY 16

技術 Day 16|換一種顏料,整間畫室都要重新調色:霰彈式修改 (Shotgun Surgery)

有些顏料配方,不是由一位畫家獨自掌握,而是畫室裡每一個工作站,各自記著一份配方筆記 準備底漆的學徒記一份、調肉色的師傅記一份、修飾金箔邊框的工匠也記一份 如果...

鐵人賽 Software Development DAY 15

技術 Day 15|改一個需求,卻要在同一幅畫裡到處補筆:發散式變更 (Divergent Change)

濕壁畫(fresco)有一個殘酷的物理限制:灰泥抹上牆的那一刻起,趁灰泥還沒乾透之前完成筆觸,畫家只有幾個小時可以動作灰泥一乾,顏料就再也吃不進去了;畫錯一筆...

鐵人賽 Software Development DAY 14

技術 Day 14|達文西退後三步:結構對了,還要整幅畫都對得上

達文西畫完一張臉的透視,不會就此收筆他會退後三步,看這張臉跟整幅畫其他物件的消失點,是不是還落在同一個點上 單一物件的結構畫對了,不代表整幅畫的空間邏輯是一致...

鐵人賽 Software Development DAY 13

技術 Day 13|租來的畫室,牆上釘不得釘子:不完整的程式庫類別 (Incomplete Library Class)

有些畫室是租來的,牆是房東的牆,樑柱是房東的樑柱,你不能在上面隨便釘釘子、鑿洞掛燈 但畫室要正常運作,總需要掛畫架、放顏料架、裝一盞夠亮的燈 聰明的畫家不會去...

鐵人賽 Software Development DAY 12

技術 Day 12|兩位畫家,同一個場景,不同的簽名方式:異曲同工的類別 (Alternative Classes with Different Interfaces)

兩間相隔一條街的畫室,各自接了「聖母領報」這個題材的委託構圖幾乎一樣,天使、聖母、百合花,連光線角度都相近 但兩位畫家彼此不認識,也沒看過對方的畫簽名的方式,...

鐵人賽 Software Development DAY 11

技術 Day 11|繼承了畫室招牌,卻不用畫室的技法:拒絕的遺贈 (Refused Bequest)

文藝復興的畫室,招牌不是隨便掛的掛上某位大師的招牌,代表你承諾了這間畫室的一整套技法濕壁畫怎麼在灰泥未乾前完工、油彩怎麼分層堆疊 客戶看到招牌,就會預期,「不...

鐵人賽 Software Development DAY 10

技術 Day 10|畫布上只在某幾筆才用到的顏料槽:暫時欄位 (Temporary Field)

畫室裡的工作台,是共用的今天甲師傅接了一件濕壁畫委託,把灰泥、顏料、刮刀擺上工作台,開始動工如果乙師傅在甲師傅還沒收工前,也搬了自己的材料上同一張工作台 兩人...

鐵人賽 Software Development DAY 9

技術 Day 09|每加一種類型就多畫一筆的素描:Switch 陳述式 (Switch Statements)

中世紀的畫,人物常常是「該重要的畫大一點」國王比隨從大,聖人比信徒大,畫面熱鬧,卻沒有一致的空間邏輯 達文西的手稿裡,留下大量人體解剖圖、光影角度計算、透視...

鐵人賽 Software Development DAY 8

技術 Day 08|退到工地外,看圓頂的比例:五個警訊,同時出現先修哪一個?

磚一圈一圈砌了五天,布魯內雷斯基會做一件事走到教堂外面,退到廣場另一頭,抬頭看整座圓頂的輪廓對不對稱 近看,每一圈磚都合格;但只有退遠一點,才看得出比例有沒...

鐵人賽 Software Development DAY 7

技術 Day 07|總是結伴出現卻沒有名字的三兄弟:資料泥團 (Data Clumps)

工匠採買磚頭,從來不是單獨算一塊一塊的價錢。磚的種類、數量、要送去哪一圈。 這三件事,永遠是一起被記在同一張採購單上 沒有人會把「數量」單獨記在一本帳,「種類」...

鐵人賽 Software Development DAY 6

技術 Day 06|召喚一個函式要念十句咒語:過長參數列表 (Long Parameter List)

文藝復興的畫室接委託案,客戶上門通常不會空手講幾句就走 畫多大、畫誰、用什麼背景、木板還是畫布、要不要鑲金、什麼時候要每一項都得講清楚 講一次可能還好但如果...

鐵人賽 Software Development DAY 5

技術 Day 05|沒有模具的工地:原始型別執念 (Primitive Obsession)

圓頂的曲線,不是每一位工匠憑感覺砌出來的布魯內雷斯基替不同高度的每一圈磚,都準備了專屬的木製模具(centina) 工匠不需要自己判斷「這一圈該彎多少」,只要照...

鐵人賽 Software Development DAY 4

技術 Day 04|身兼一切的工地主任:巨大類別 (Large Class)

蓋一座圓頂,需要的角色其實很多 有人決定結構怎麼設計 有人管磚頭、木料怎麼採購 有人算工錢、記帳 有人監督工地現場的安全與進度 佛羅倫斯教堂的營建委員會...

鐵人賽 Software Development DAY 3

技術 Day 03|一氣呵成的迷思:過長方法 (Long Method)

昨天,我們把五條規矩刻上了畫室門楣今天,第一次套進具體場景 1296 年,佛羅倫斯開始蓋聖母百花大教堂,八角形的底座很早就完成了,唯獨中間那個洞留給圓頂的位置,...

鐵人賽 Software Development DAY 2

技術 Day 02|行會規範:畫室開工前,刻在門楣上的五條規矩(SOLID)

在任何一位學徒被允許碰畫筆之前,畫室的門楣上,早就刻好了五條規矩(SOLID)不是技法,不是配色,是更底層的東西「一幅畫該怎麼分工、一個角色該扛多少責任、換人代...

鐵人賽 Software Development DAY 1

技術 Day 01|文藝復興宣言:當 AI 開始寫程式,誰來守住工藝?

抄得快,不代表抄得對畫得多,不代表畫得好程式碼跑得動,不代表它值得留到明天 AI 可以在三秒內生出一百行程式碼,但沒有一行程式碼會在三秒內告訴你,它三個月後...