| 遞迴 | 林信良 | 希爾伯特曲線 | Hilbert curve | 碎形圖案 | 程式學習

漫談希爾伯特曲線

在程式設計的過程當中,若要學會遞迴處理的實作,我們可由碎形圖案的繪製來熟悉,而希爾伯特曲線正是常見的圖案,讓我們來用這樣的曲線來畫一條龍吧!

2020-08-20

| 林信良 | 程式碼 | Linux之父 | Linus Torvalds

程式碼的品味

透過撰寫程式碼來解決問題時,若能具有深厚的知識,像是語法、慣例、語言特性、模式、社群文化,經由不同角度來審視問題,適當地運用,就可以發展出更精緻的作法

2020-08-13

| API文件 | 程式學習 | 原始碼 | 抽象滲漏 | 林信良

另眼看抽象滲漏

掌握軟體開發技術,我們有時需閱讀API文件,若無法確切理解,還是要從原始碼一探究竟,但這能說是抽象滲透?實際上,開發者本身就有掌握底層的需求,因此有其必要

2020-07-30

| UI框架 | Flutter | RenderObject | render tree | 渲染樹 | 程式人 | 林信良 | 程式學習

淺談Flutter渲染樹

採用UI框架Flutter時,如果我們想要自行調整元件,不只是需要了解Widget樹與Element樹,還需要知道由負責繪圖的RenderObject組成的渲染樹

2020-07-23

| asyncio | 林信良 | 程式人

asyncio由簡入繁

在Python這套程式語言的開發環境當中,我們可以使用非同步I/O的處理方式,但似乎不易著手,事實上,我們可以先掌握async.run的使用,必要時研究其原始碼,瞭解事件迴圈基本操作

2020-07-17

| 波函數塌縮 | 演算法 | Wave Function Collapse | 林信良

理解波函數塌縮演算

我們在遊戲中,如果想要創造無限延伸又變化多端的世界,又想讓自動產生的建築物不會出現破碎、斷裂,該怎麼設計?在Minecraft當中,有人利用波函數塌縮演算實現了這樣的概念

2020-07-09

| Flutter | 林信良

Flutter導覽/路由的是與非

使用Flutter這套UI框架時,在面對導覽與路由的作法,可能會產生一些疑問,此時,我們可透過設計概念與隱喻來理解,或探索API架構甚至原始碼,而非只是元件組合

2020-07-03

| Flutter | 狀態管理 | 程式人 | 林信良

從Flutter看狀態管理

若要掌握UI框架的使用方式,不只是了解個別元件的架構,接下來的重點在於框架對狀態管理的設計,以及支援方式

2020-06-18

| UI框架 | 程式人 | 林信良 | API | Flutter UI

漫談Flutter UI

面對UI框架,若只能個別元件著手,容易產生見樹不見林的狀況,我們不妨寫一支Hello World程式,來理解這些元件的API架構,之後,還需要知道應遵循的設計原則與用意,以便充分掌握特性

2020-06-11

| 碎形 | l-system | 程式學習 | 林信良 | 海龜繪圖

碎形與L-system

關於碎形的生成,我們可以用起始元與生成元來描繪,不過,若要讓這樣的處理過程能夠通用,我們可以採用一種名為L-system的符號描述方式,來制定正式文法

2020-05-28

| Perlin噪聲 | 弦波 | 噪聲 | 碎形布朗運動 | Worley噪聲 | 碎形噪聲 | 程式學習 | 林信良

自然噪聲與碎形

在程式世界模擬真實世界的場景時,我們可以運用Perlin噪聲來實現連續性與隨機性,並搭配疊加的作法,而從中延伸出碎形的處理方式,如此一來,能夠增進解決問題的思考面向

2020-05-21

| 知識體系 | 演算法 | 程式人 | 林信良 | 程式學習

構建專屬知識體系

每個人需要的知識各不相同,我們可以透過學習或處理事情的經驗,來獲取既有的知識體系,不過,面對各式問題,我們可能需要拼湊種種已知的解法,甚至需要自行建構知識體系

2020-05-14