一個人坐在座位上符號

CSS Grid 與表單實作電影院座位選位系統

之前碰到一道有趣的前端 UI 題,發現需要對於前端有較為全面的認知才有辦法解出來,並且也可以針對感興趣的領域延伸提出更更多問題,於是特地紀錄一下我的思考解題過程。身為一名前端工程師,你會怎麼實作上圖的電影院座位選位系統?

網格符號

CSS Grid 真實案例:凸出的側欄

實際網頁很少遇到特殊的視覺會需要動用到 CSS Grid 的情況,而我近期在製作一些比較特殊視覺的網頁布局,事後感覺特別適合作為一個 CSS Grid 的啟發教材,於是寫下了本篇文章幫助透過真實世界案例更深刻了解 CSS Grid。

盾牌符號

寫給網頁開發者的 CORS 理解

CORS (Cross-Origin Resource Sharing) 跨來源資源共享,是一個機制用來決定網頁是否能夠存取其他來源的資源,能有效防止不同來源之間的不正當資源存取。透過 CORS,可以在保護用戶資料的同時,允許合法的跨來源請求。

程式文件符號

來解 FizzBuzz 吧!附詳細解題思路

這次我透過一步一步拆解解題路徑來描述如何解題。從基本解到分離資料與邏輯、保持 immutable 以及邊緣案例還有文件編寫都有涵蓋。打印出 1 到 100 的數字、假如數字是 3 的倍數,則打印 Fizz、假如數字是 5 的倍數,則打印 Buzz、假如數字是 3 和 5 的公倍數,則打印 FizzBuzz。

盾牌符號

寫給網頁開發者的 CSRF 理解與防範

無論如何都不輕易相信用戶請求即能最大程度防範 CSRF。最近在碰一些資安的東東,發現自己對於這一塊知識都比較薄弱,身為前端工程師資安通常並不是首要關注的職責,但一但有漏洞保證後果不堪設想,於是近期來補足一下這方面的知識。

盾牌符號

寫給網頁開發者的 XSS 理解與防範

總結是無論如何都不輕易相信用戶輸入即能最大程度防範 XSS。最近在碰一些資安的東東,發現自己對於這一塊知識都比較薄弱,身為前端工程師資安通常並不是首要關注的職責,但一但有漏洞保證後果不堪設想,於是近期來補足一下這方面的知識。現代齊全的工具與文件幫助下意外執行用戶提供的惡意腳本的機率已經大幅降低。

工具箱符號

如何管理工具函式

近期維護專案時發現有許多通用的函式散亂的分布在專案當中,於是趁有空時整理出一個統一的結構規則以便團隊使用。很多時候我們對這些通用工具函式的印象只停留在要抽離到某個資料夾,至於要怎麼管理或是維護這些函式就沒有太多想法,導致許多亂象產生,像是:過度抽象、意義不明的命名、神級函式。

桶子符號

什麼是桶文件(Barrel File)模式?

會想調查這個主題是因為目前所在的團隊大量地使用到這樣的模式,但 Vite 並不會在開發中進行 Tree Shake 就導致每一次開發環境都有大量的無用代碼被打包進去,嚴重影響到開發體驗。因此研究一下這種方法的理念與優缺點以架構更好的專案。

箱子符號

了解網頁元件化的未來:Web Components

從很早以前就大致知道瀏覽器開始推出 Web Components 相關 API 與標準,但一直沒有機會在實戰中使用這項技術。想撰寫這篇文章記錄是因為隨著時間推移發現 Web Components 的應用範疇越來越廣,因此趁著有空也來了解一下相關知識,並且分析它與現有的解決方案有什麼不同。

溫度計符號

為什麼要替軟體進行測試?

近期我對自己看待撰寫程式這件事有更高的期許,除了最基本的效能、閱讀性、擴充性……之外還有一個非常重要的領域就是:測試。不過程式好端端的能動就代表測試沒有必要了嗎?在我剛工作時實際上做了一段時間的自動化 QA 工程一段時間,不過那時候的我其實也並不明白寫測試的原因,就是有程式就拿來自動化測試,並沒有想太多。

箱子符號

了解 ES6 JavaScript 當中的內建資料結構: Map

JavaScript ES6 中有一個用法與物件近似的資料結構我一直不是很清楚用途。 —— Map,這篇文章會主要拿熟知常見的物件與 Map 來做比較以分辨出 Map 的特性與使用時機。總結來說可以把 Map 當作是用來頻繁讀寫的物件,它具備更好的性能、更明確的語法。

不高興表情符號

為什麼專案時間預估這麼難?具體可以如何解決時程預判問題

發現身為初階打工人其實通常只是看見問題並拼命解決它,但換個角度思考:「如果現在手上專案燒起來,主管定個超乎預期的時程但你也沒有自己一套說法,要如何交代?」,最貼近實作的人其實是最能開出真實預估的人。參考:The work is never just “the work” - Dave Stewart 文章。

層級符號

具體來說可以怎麼建立與管理產品的設計令牌或變數

近期執行的專案在進行翻新包含了整體的視覺設計,因此前端也面臨要如何同步管理產品視覺的問題。先說痛點,先前專案並沒有具體的規範應該如何定義 UI 當中的數值,導致魔法數字(沒有規範與描述的值)流竄於整個產品當中,造成了非常大的的困擾。我會解釋得盡量具體明白如果要重新設計一款數位產品會怎麼管理其中的數值。