Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CSS_重構.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
CypressKuo
January 28, 2021
Technology
30
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CSS_重構.pdf
CypressKuo
January 28, 2021
More Decks by CypressKuo
See All by CypressKuo
Deep-copying.pdf
cypresskuo
0
42
CSS_for_Web_Vitals.pdf
cypresskuo
0
47
談談_Code_review.pdf
cypresskuo
0
52
REST_vs_GraphQL_今夜はご注文はどっち.pdf
cypresskuo
0
27
跟上_JS_的腳步-ES2020.pdf
cypresskuo
0
35
Core_Web_Vitals.pdf
cypresskuo
0
62
這個時代人人都知道的敏捷開發.pdf
cypresskuo
0
69
Webassembly.pdf
cypresskuo
0
19
談談_Functional_Programming.pdf
cypresskuo
0
33
Other Decks in Technology
See All in Technology
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
210
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
210
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
670
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.2k
Goodbye ShellScript, Hello File-based App
shunsock
0
250
事業課題から技術的負債に向き合う
sansantech
PRO
2
2k
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.4k
LLMに渡さなかった仕事
nanaism
0
850
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
1k
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
180
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Tell your own story through comics
letsgokoyo
1
1.1k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
The Language of Interfaces
destraynor
162
27k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
Building Applications with DynamoDB
mza
96
7.2k
We Have a Design System, Now What?
morganepeng
55
8.3k
Design in an AI World
tapps
1
320
Transcript
CSS 重構 架構完善的樣式表
CSS Refactoring CSS重構 作者: Steve Lindstrom 譯者: 陳健文 出版社:歐萊禮 出版日期:2017/04/25
Agenda 1. 重構與架構 2. 串接 3. Good CSS 4. 正規化
5. 測試 6. 重構策略
重構與架構 重構:讓簡化程式、好複用、不改變其行為 軟體架構:描述軟體專案中,各種零件如何組織的用語
好架構 可預期 有助複用 易擴充 好維護
重構 誰需要:還活著的程式碼 誰不需要:沒有新需求、死掉的程式碼 何時:發現異味
重構與架構 簡單的說,重構能改善軟體的架構。
串接 決定樣式如何套用到元素上的方法 (其實就是 CSS 的權重
None
Good CSS 善用註解 一致的結構 (coding style) 單純的選取器 切斷 CSS 與
JS 的耦合 使用類別選取器 取有意義的名稱 避免過度模組化(? 使用對的 box model
正規化 (略 都 2021 年了,就善用別人寫好的。 把精力留在其他地方 reset.css normalize.css
測試 測試 CSS 難度高 瀏覽器多 視窗尺寸 自動化困難
測試 只測重要的瀏覽器 有彈性的設計 使用視覺回歸測試 ex: Gemini (https://github.com/gemini-testing/gemini) 遵守 Style Guide
重構策略 使用工具分析 CSS Dig (https://www.cssdig.com) 大家的好朋友: chrome dev tool
重構策略 一致性的架構規則 (coding style) 刪除廢碼 切斷 CSS 與 JS 的耦合
拆分基底樣式、拆分工具樣式 移除多餘的 ID、將 ID 轉為類別 定義可複用組件 移除行內 CSS 隔離針對性的 CSS (ex IE only or Safari only)
成效評估 沒改壞 降低耦合 減少檔案大小 省下開發時間
同場加映 OOCSS SMACSS BEM CSS Modules CSS in JS
重構過程很繁雜,但結果會讓人身心愉快,就像減肥一樣
感謝聆聽 Q & A