Web Side Project for daily study trello

![study]({{ site.url }}/assets/images/side-project.png) 前言 用 Trello 紀錄自己的每日學習進度也好一陣子了,雖然 Trello board 搭配 plugin Calendar 很好用,但是卻有資訊分散在各張卡的問題。因此為了便於在月末寫當月學習報告,以及整理所有曾經讀過的 article/post link,就開發了一個小工具 trello-transform 來從 trello cards 中擷取資訊。其實這個 side project 寫了有一段時間了,之前曾經立志要寫一個有前後端的小網站,這樣不會寫 code 的人也可以使用,但是後來就有點擱置了 XD 原因是我把這個功能寫成一個小框架,以因應每個人紀錄習慣不同,不過這樣的調整就需要會寫一點 code 並知道如何修改,對於不會寫 code 的人來說,可能便利性就沒這麼高。另外就是寫成網頁反而不利於我寫 blog,基於這個 side project 本來就是希望先滿足自己需求,因此後來目標就改成就先以 cli tool 實作為主。

Web Tail Recursion in Go

前言 最近在實驗效能分析時,有使用到 Tail Recursion 寫法,因此也好奇在 Go 中是否有跟 C 一樣進行 Tail Recursion optimization 優化。在文章中,首先會用 C asm 來說明 tail call optimization,接著 dump Go asm code 來觀察結果。

Web 2019/05月份自我學習回顧

![study]({{ site.url }}/assets/images/study-201906.png) 前言 五月的時候,團隊來了一位經驗豐富的瑞典人,而剛好有這個機會跟他合作,除了跟他練練英文口說能力之外,順便學習一下他的程式經驗。瑞典人是一位懂很多層面的工程師,從韌體到 Web Front-end 都有實務經驗,而且為人也不錯,會很認真地看每個 Pull Request,並給予架構上或是程式寫法上的回饋,能有這樣的同事真的很開心,即使在當個碼農趕專案,也會覺得從中學習到不少。

Web 2019/04月份自我學習回顧

![study]({{ site.url }}/assets/images/golang.jpg) 前言 不知不覺又過了一個月了,本來想說一週要產出一篇文章,結果發現技術文章真的蠻容易難產的,主要原因是我希望能盡可能地從根本去探討這些技術背後運作模式和原理,因此會花費大量時間在整理內容和實驗上。不過部分原因也可能是因為資歷不夠,所以這些內容要思考很久,才會下筆去寫,希望之後慢慢熟稔之後可以加快產出速度。 上個月曾經提到,我會開始複習大學 CS 基礎課程,因為工作後會隨著時間漸漸地把這些基礎原理忘掉,所以這個月就從離散數學開始看起。說到數學,我覺得現在的我把數學當作一種訓練自己思考邏輯的方式,雖然他對我來說真的有點挑戰性,但是在了解這些數學是如何解出最終解的過程中,其實蠻有樂趣,會讓我很訝異原來可以透過這樣子的方式去找答案。當然我在大學時期也很討厭上課,之所有會有這樣體悟,真的是要等待我出社會累積經歷後,才會認知到這樣邏輯訓練很有助於工作效率。 除了念書之外,4月份我也去擔任志工協助 Golang Taipei 的擺攤宣傳。在參加活動上我是超級菜逼八,不過真的蠻有意思,可以認識到不同社群的人,能夠互相交流。雖然目前因為工作關係定居在新竹,但還是希望自己能夠多多參與這樣的活動,看看別人如何推廣技術社群也是一種學習!

Web 2019/03月份自我學習回顧

![study]({{ site.url }}/assets/images/golang-meetup.jpeg) 前言 最近這一個月工作慢慢步上軌道,心情有比較踏實些。剛開始來的時候,實在不太確定自己能幫上什麼忙,不過這個月漸漸地有任務可以做,並且也和其他組員一起合作開發,感覺在團隊中可以發揮自己的價值:) 另外,這個月比較大的轉變是完全負責 back-end ,之前還想說可能會接觸到 React ,所以花了一些時間在看 React 原理,不過目前確定會都以 Go 和 Device application 開發為主,因此後續就會把學習重心放在 Back-end。話雖如此,自己還是有加入公司的 front-end 學習群,跟著裡面的大神們一起念 React Core ,畢竟過去一年蠻大比例是使用 JavaScript 開發,要放棄也是蠻可惜的。

Web Functional options pattern in GO

前言 之所以使用 Functional options 的契機,是因為用到 gRPC 的 New Server API,發現他是用 functional options 來讓使用者調整 Server 預設配置,這樣的作法不但兼具了擴充性和可用性,也能避免一些使用者誤用。而除了看 source code 來學習如何實作之外,也找起相關文章,進而發現原來早在 2014 年就有人發表過類似教學文,實在是太孤陋寡聞了~

Web 2019/02月份自我學習回顧

![study-2019-02]({{ site.url }}/assets/images/study-2019-02.png) 前言 這個月大多在適應新的生活環境,第一次來新竹工作,不意外地在新手村落腳。在還沒來新竹之前,就聽聞過新竹可能是個比台北無聊的地方,那時候覺得反正我生活也很宅,不是 coding 就是買化妝品,只要有舒適的套房和康是美就可以存活了,但是實際上沒有我想的這麼簡單XD 畢竟新竹的社群活動真的少很多,讓假日少了一些樂趣。既然沒有實體活動,只能在線上多參與一些活動或是多看別人分享的文章了。 本月份學習內容除了加強 React 之外,也開始加入多一點 Golang 內容,不意外的話,之後工作使用語言應該會是 JavaScript 和 Golang,所以先安排階段性的練習,在之後專案中也能比較快上手。

Web React Hooks with memoizedState

前言 React Hooks 自從正式 release 後,就出現很多相關教學文章,所以這篇不是講如何實作,而是說他如何在 stateless functional component 中保存當前 state。 此外,最近也開始嘗試把 class component 轉換成使用 hooks 的 components,但過程中還是需要蠻多調整,包含之前有使用一些 lifecycle functions ,藉此機會順便檢視是否真的必要使用這些 functions,是否可以透過其他架構方式來簡化。