| asyncio | 林信良 | 程式人

asyncio由簡入繁

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

2020-07-17

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

從Flutter看狀態管理

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

2020-06-18

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

漫談Flutter UI

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

2020-06-11

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

構建專屬知識體系

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

2020-05-14

| 模組化 | Java 9 | 程式學習 | 程式人 | 林信良

模組化是一級公民

設計模組看似與設計函式、類別相像,但主要是以系統的整體關係來思考、規畫,而不只是將一堆套件組合起來、透過API相互取用,僅考量到物件等技術層面的元素

2020-05-07

| 程式人 | 林信良 | 隨機函式 | 隨機 | 隨機演算法 | 程式學習

隨機演算之美

在演算中,我們可以運用隨機性來增加變化,然而,這樣看似無法預測的狀況,並不代表彼此無關聯性,而為了能夠產生更妥善的隨機現象,我們仍然可以持續尋找當中的規律,以便獲得許多的啟發

2020-04-23

| 臨摹 | 演算法 | 程式人 | Kata | 重構 | 林信良.程式學習 | 開發

程式臨摹的三個姿勢

學習書法等新的技能時,我們經常會用到「臨摹」,而在開發應用程式時,也不例外,對於資深人員而言,可以獲得更多認識和技巧,也能有更多機會去實現不同的演算法

2020-04-16

| 程式學習 | 程式人 | 林信良 | 巨集 | foreach | 前置處理器指令 | preprocessor directive | C語言

巨集與語法糖

我們可以運用巨集,來消除重複,也就是透過前置處理器指令去定義文字替換的規則,產生另一組程式碼,甚至還能創造語言本身沒有的語法,就像自定語言的語法糖!

2020-04-09

| 剖析器 | 剖析樹 | LL | LR | 程式學習 | 林信良 | 程式人

LL/LR不神祕

對於文字剖析處理,也是設計語言時,會接觸到的工作,因為描述文字結構的方式就是語言的文法,而在實現剖析器之際,就已在設計文法。不過,為何還有LL剖析器與LR剖析器之別?

2020-04-02

| 程式人 | 林信良 | 規則表示式 | 文法 | 程式學習

語言文法淺淺談

想要撰寫程式碼,我們可以試著自行構造語言,要如何著手呢?關鍵在於文法的設計,事實上,如果在程式開發過程中,我們曾訂定數學公式與規則表示式的經驗,就已經涉及語言的定義

2020-03-19

| 程式人 | 林信良 | 垃圾收集 | 程式學習 | C++智慧指標

從智慧指標到垃圾收集

程式碼執行之後,若要回收不會再繼續使用的記憶體資源,可透過程式語言的垃圾收集來進行,以C++而言,先前並未有這樣的機制,從C++ 11開始可用智慧型指標來處理,但這之前是如何處理的?

2020-03-13

| 程式學習 | 程式語言 | 林信良 | 程式人 | C++ | 傳遞函式 | 函子 | Functor | lambda運算式 | 函式物件

從C++看一級函式

在程式語言C++當中,關於函式的傳遞,目前有很多種可行的作法,而依照開發者當下應用目的不同,函式指標、函子、lambda運算式,都可以是選擇

2020-03-05