轉職工程師:輸在起跑點
工作到現在差不多兩年多,因為公司業務的關係偶爾也會跟同事討論在學習當工程師或者寫程式上的經驗。所以打算寫一個系列的文章,跟大家分享一下我從學程式到成為一個工程師的過程,是怎麼樣的。
這是第一篇,我想用「輸在起跑點」來當開始。
工作到現在差不多兩年多,因為公司業務的關係偶爾也會跟同事討論在學習當工程師或者寫程式上的經驗。所以打算寫一個系列的文章,跟大家分享一下我從學程式到成為一個工程師的過程,是怎麼樣的。
這是第一篇,我想用「輸在起跑點」來當開始。
從退伍到工作差不多過了兩年,這段時間有不少經驗我想已經足夠跟大家分享。這篇算是一個前導的文章,想來跟大家分享「第一份工作」的重要性。
重點是技能成長那段,討論薪水的地方太長可以跳過喔 XD
這篇文章我們會把 Broadcast (廣播)功能實作出來,如此一來我們就擁有了可以將訊息透過 Fiber 實作的伺服器廣播給其他使用者的功能。
而這系列文章也就到此告一段落。
關於 Fiber 的系列文寫到現在也已經一個半月了,除了分享自己在使用 Fiber 的經驗之外,我也更加的熟悉 Fiber 的使用。
不過,這真的是有益於現有的專案嗎?
到這篇為止,我們已經完成了將 Fiber 應用在程式中的基本雛型,現在只需要將上週未完成的錯誤處理,我們就能獲得一個可以正常發送訊息到伺服器的伺服器。
上週我們開始重構 Fiber 的結構,透過一個統一的 Selector
物件來選取這個「當下」可以進行 I/O 操作的物件。
不過,我們原本預期是因為使用 rescue
來捕捉錯誤控制流程才讓他運行不正常,經過一週的思考後,卻發現事情跟預想的不太一樣。
經過前面幾篇文章的介紹,我們已經初步的了解 Fiber 的性質。這系列的文章目標是利用 Fiber 實現再不透過 Thread 或者 Process 的情境,來實現支援多人連線的 TCP 聊天伺服器。
從這一篇開始,我們就要正式的來挑戰完整的實作了!
經過上次的嘗試,我們已經開始對於 Fiber 的性質有一些了解,目前還需要解決已經結束的 Fiber 被呼叫,以及來不及處理的問題。
在上週的文章我們注意到 Fiber 的使用並不是那麼容易的,因為我們需要自行管理每一個 Fiber 被恢復(#resume
)的時機,這週就繼續來挑戰吧!
延續上一篇文章的實作,我們已經有一個簡易的 Thread 版本 TCP Socket 伺服器可以運作,那麼該怎麼用 Fiber 修改呢?