回 OPENHOME 首頁
程式人專欄
我在
iThome
的
程式人專欄
索引 …
本質
速食文化下的技術本質
程式語言的特性本質(一)靜態語言與動態語言的信任抉擇
程式語言的特性本質(二)類別與原型的物件管理學
程式語言的特性本質(三)從消弭重複性看封裝、繼承、多型
程式語言的特性本質(四)往數學領域抽象化的函數程式設計
多型的本質 (一)介面一致、實作各異的特定多型
多型的本質 (二)參數多型用於減輕型態負擔
多型的本質 (三)思考行為外觀的次型態多型
現代程式庫的多重角色
用慣例管理複雜度,形成一致文化
框架的本質與附屬
從JDK時間API演進,看時間處理
從Thread到MapReduce
程式語言演化的考量
遞迴的美麗與哀愁
享受語言而不是與之對抗
笨方法學程式庫
游擊補強或猴子補丁?
對底層該有的探究能力與程度
找出框架的「框」
宣告你的問題、需求與架構
從攔截過濾器到AOP
動態擴展語言元素的程式設計
探索技術背後的原始情境
如何選擇第二門程式語言
Regex的強大與哀愁
從ECMAScript看語言約束
IDE、編輯器的迷思
算錢學問大
動與靜
動靜定型間的務實路線
靜態定型與單元測試之爭
從靜態定型瞭解動態定型
進一步思考Duck typing
打底
Hello World 的試煉
亂碼 1/2(上)頻遭模糊的字元集與編碼基礎
亂碼 1/2(下)常見字元編碼處理方式
Wat?為何不相等?
紙上程式設計
資料結構與演算法的七個思考術
瞭解語言衍生的技術地圖、慣例
開發者應認識的資料型態及效用函式
善用程式庫中的資料結構特性
重新認識HTTP請求方法
private繼承之爭
執行資料平行處理的效能考量
HTTP安全從「頭」開始
錯誤處理
Shit Happens!該抓還是該丟?
避免隱藏錯誤的防禦性設計
函數式風格錯誤處理
重構錯誤處理程式
Go的error與panic
物件導向
受限多重繼承的演進
物件導向語言中的一級函式
(可搭配
此篇
服用)
從函式重構到物件導向
設計模式
設計模式反映問題的抽象分類
實現共用程式樣版的模式
運用工廠、回呼與鞣製來自訂語意
MVC 與 Model 2 的變異與結合
從建構式到工廠方法
從具體到抽象的迭代器
辨識物件的可修飾行為
從轉接器到橋接器
指令物件的建立與組合
排序處理模式
產生器與惰性求值
非同步操作的多種模式
函數式
List 處理模式
抽象資料型態與代數資料型態
不可變動性帶來的思維轉換
用函數式重構程式碼與演算法
函式的鞣製化
神秘的Monad不神秘
盤點語言中的函數味
是否Lambda一下?
務實的函數式設計
遲到的Optional?
重構與代數資料型態
FRP與函數式
Reactive與Java 9
API
補救 null 的策略
程式碼收納術
寫一手流暢的API
易讀的參數設計
Getter、Setter的用與不用
哪來這麼多日誌程式庫?
遷移!往Java 9前進!
從XHR到Fetch
安全
HTTP安全從「頭」開始
驗證與授權
不是祕密的祕密
寫作
程式設計者的技術文筆與寫作
切入技術書籍寫作的三個角度
實現程式人心中的小說家
挑戰式的技術寫作
技術簡報
技術簡報三部曲
技術簡報檔的三元素
探索
程式語言與人格特質
程式設計的心之谷
消失的程式熱情?
自由工作者之自由
程式人沒生活?
程式人卡關的日子
對Y Combinator的好奇與挑戰
給校園程式人的參考方向
我的轉換跑道之路
產能
程式語言速成法
不只靠青春飯的程式人
程式人的時間魔法
程式人產能之謎
語意明確的版本變更
開發環境的虛擬化
訓練
教育訓練的迷思
教育訓練的節奏感
教育訓練的Kata設計
程式人的自主學習
技術演講與授課,兩碼子事!
教育訓練者的實戰經驗?
電子書
程式人與電子書
切入電子書出版的三個角度
我的電子書經營之道
社群
程式開發者的社群網路新世界
走入臺灣程式開發社群
人人都是技術傳教士
我的技術網站經營之道
江湖
程式語言的王者之爭
程式人的競爭力證明
人人都該學程式設計的反思
程式人的跨界與專注
程式人的頭銜
新手與老手之戰
技術圈就是江湖
尚未分類
手不離鍵盤的輕量標記語言
瞄準Lambda改造
尋找野生的Monad
程式語言沒什麼好學的?
程式人到底要知道幾件事?
教育訓練推動初期
是否自學程式的抉擇
就來談談Haskell
視覺化程式語言的未來
Java 8的函式重用
思考Haskell的多型
透過視覺化語言傳達設計概念
探索Haskell的Monad
從40個判斷式到1個算式
非純粹的界線:IO Monad
從Coder到Maker
發掘具組合性的抽象
技術名詞紛爭多
技術寫作產能工具
哪種程式語言才有未來?
程式、數學與Maker
程式人與微控制器開發板
Arduino、Web到IoT
技術論壇式微後的知識黑洞
程式人如何開始軟硬兼施?
重構與retrolambda
小小程式設計師適用?
重讀〈Java學校帶來的危害〉
MV-Whatever大家族
技術翻譯從己出發
全端開發者神話
設計原則五四三
你能學會多少技術?
跳入程式屎坑
在Web快速開發框架間徘徊
你有寵物專案嗎?
程式碼的美與醜
封裝與迪米特法則
從Spring看配置需求
投資組合與技能樹
從Java到Maker
你沒在用版本控制?
從Go看現代程式語言
要不要支持註解?
程式人養成之難
程式人常忽略的一件事
思考"1" + 2的問題
低級的Bug?
我的原始碼閱讀之道
3D建模與程式設計
挑戰OpenSCAD迷宮產生器
程式設計教育的雞與蛋
打造輪子的樂趣
另一種程式設計選擇
如何閱讀英文技術文件
Python 2.x或3.x?
思考Python的型態提示
不重複的深度學習
從產生器到async、await
舒適圈?深水區?
Python的群集與ABC
Python的檔案導向API
把例外當成例外
從OpenSCAD建模來學習分治法
寫A卻像B?
面對抽象雙面刃
精通VanillaJS
探查Python時間API
從日誌API認識日誌需求
從Debugger學除錯
關注平行程式設計
鎖?還是不鎖?
你的程式有多快?
從Mixins到HOCs
協程、微執行緒到asyncio
超越技術的階段
列舉與開放封閉原則
從Go語言看物件導向
電腦圖學樂趣多
避免隨意而重複的 if...else
你腦袋的C更新了嗎?
不只是裝飾器的裝飾器
程式設計的「設計」
探尋C語言名稱空間
關注冷門技術的樂趣
迷宮產生演算法之美妙
可程式的程式語言
程式人的數學書
用「邏輯」寫程式
你的程式夠「亂」嗎?
你想學什麼?本質還是附屬?
令人腦殘的程式語言
從X到Prolog
遞迴、碎形與數學
海龜不懂數學
運算思維的慣性
遺忘技術細節
來點不同的河內塔
函式首要之務
Java 9模組化概觀
可變?還是不可變?
多看一眼授權
白板上的演算法
如何撰寫英文技術文件
從貝茲曲線到曲面
那些語言中的符號型態
笨方法寫程式庫
如何才是模式?
換帽子的開發
走在解題的道路上
測試測什麼?
測試與抽象滲漏
XSS與ESAPI
從防禦認識CSRF
來寫一個CLI
在不變中求變
漫談JVM語言
型態變異與PECS
Type Hints的野心
找樂子的程式設計
從遊戲中產生想法
非前端開發的HTML5觀點
快速看一眼JUnit 5
Hello, JDK9?
當拼圖遇上反射
Servlet來到了4.0?
各自表述的Server Push
JavaScript模組之路
ECMAScript 6相等演算
ES6類別與原型
談談XHR Level 1?
篩選框架必要功能
ES6與meta程式設計
寫一個require.js
Promise與事件迴圈
取代Web MVC的Flux?
想跳舞的Java
運算隨想
ES6與lambda演算
程式是什麼?
不可運算的決策問題
打造圖靈機
瞎猜有益的機器
打造玩具語言
用抽象語法樹寫程式
設計語言剖析器
自造語言的好奇心
從實作看語言特性
無拘的物件導向
從語言實作看例外
JavaScript風格的this
ES6匯入地獄
靜動皆宜的型態提示
爬一下Python語法樹
型態提示之時機
漫談Python並行
從堆疊操作認識位元組碼
WebAssembly生態系現狀
不只是虛擬機的LLVM
Wasm儲存空間
Java依舊免費?
Go與WebAssembly
Go模組之路
Go型態系統
ES6後的規則表示式
Unicode與規則表示式
從動態代理到Spring AOP
Spring MVC的請求攔截
從Lombok到JSR269
從MVC到WebFlux
你的REST不是REST?
重構與微服務
區塊鏈技術漫談
從簡單到繁複的OAuth2
深入認識跨域請求
廢棄的finalize?
多風格物件之建立
瀏覽器裡的3D建模師
玩轉著色器語言
特意結合數學的程式練習
座標轉換與程式設計
從歐拉角到四元數旋轉
ES9非同步迭代
ES6後的重要特性
JavaScript陣列與群集
別對問題存在幻想
Unicode與JavaScript字串
JavaScript錯誤處理
細探JavaScript原型
你不懂的JS子型態
ES6模組匯入
探索ES6反射與代理
從Cookie到Storage
另眼看Web Worker
漫談前端網路請求
瀏覽器中的資料庫
快而髒的程式碼
關於HTML與JS混雜這件事
有限狀態機與前端
高效的虛擬DOM?
React的鉤子們!
解開對函數式的誤解
Go的錯誤處理實踐
有個性的Go鴨子
從Go學Unicode、UTF
C++與Unicode
傳值?傳參?
從C++看一級函式
從智慧指標到垃圾收集
語言文法淺淺談
LL/LR不神祕
巨集與語法糖
程式臨摹的三個姿勢
隨機演算之美
模組化是一級公民
構建專屬知識體系
自然噪聲與碎形
碎形與L-system
漫談Flutter UI
從Flutter看狀態管理
Flutter導覽/路由的是與非
理解波函數塌縮演算
asyncio由簡入繁
淺談Flutter渲染樹
另眼看抽象滲漏
程式碼的品味
漫談希爾伯特曲線
漫談細胞自動機
程式猴與基因演算法
Flutter動畫由簡入繁
聊聊自造物理引擎
新的型態提示PEP
Python資料類別方案
有趣的自產生程式
Python網頁擷取方案
創意寫碼與生成藝術
深入p5.js轉換操作
螺線之美與用
畫說曲線
從節點編碼看迷宮
演算法+資料結構=程式
方塊世界的演算
遊戲中的數值積分
深入Worley噪聲
Voronoi與Delaunay
等值線、帶、立方演算
波函數塌縮演算中的熵
趣拼王氏磚
網格生成演算
陣列程式設計
NumPy廣播以簡馭繁
巧用NumPy索引
NumPy與海龜繪圖
Matplotlib玩3D建模
淺談視覺化前的資料清理
從NumPy到OpenCV
淺談圖片雜訊處理
傅立葉轉換與影像處理(上)
傅立葉轉換與影像處理(中)
傅立葉轉換與影像處理(下)
淺談迴歸與感知器
漫談機器學習入門
從影子遊戲到主成分分析
從疾病檢驗到單純貝氏分類
在高維中尋找線性
畫分勢力範圍的K-means
從感知器到神經網路
Code+CAD的選擇
從NumPy到PyTorch
思考模型的可解釋性
從卷積到卷積神經網路
圓與球中的數學
從Java 11到Java 17
不只是語法糖的記錄類別
揭露型態邊界的彌封類別
模式比對與多型
從plugin學習開放原始碼
Python資料科學與幾何工具
型態提示、重載與Optional
思考Python結構化模式比對
技術網站架設經驗雜談
HTTP用戶端歷史與API架構
ES11的bigint
簡便資料載體的tuple
模式是語言缺陷?
生命遊戲與狀態模式
淺談反應擴散系統
從無到有實現球面Voronoi
從Haskell看代數資料型態
掌握Haskell型態類別
從reduce認識Monoid
Haskell裡的不純粹
組合優於繼承?
Go參數多型?次型態多型?
Clean Code:童子軍規則
淺談雜湊碼設計
重構與效能
波函式塌縮與函數式
函式?類別?可呼叫物件!
Python與meta程式設計
super與多重繼承
實現差別生長演算
實現隨機圓堆砌演算
淺談圖片取樣
開發者的知識焦慮
程式人的線性代數
刷題還是不刷題?
你不知道的費氏數列
改變世界的質數
演算創作的靈感來源
構造謝爾賓斯基三角
隨機過程與迷宮
馬可夫鏈與生成藝術
從凹包到alpha shape