* For English version, please see Google Translate, which has been reviewed.
公司名稱: 個人
職缺:
* Golang 後端測試工程師
* Golang 後端開發工程師
主要工作事項:
* 參加每週一次線上會議
* 相關系統開發
薪資:
* 沒有,基本上是來交朋友的。
任務介紹:
大家好,我是 Pichu ,這個專案基本上是和 PTT APP 相關的任務,不過因為目前還沒
確定 PTT APP 後面會採用哪個版本的後端,因此我也沒辦法保證目前的製作結果會被
PTT 官方變成最後採用版本,不過我會試著說服幾個合作中的小站以及我們家 Formosa
BBS 讓實作的心力和資源不會被浪費這樣。
就像是 Gossiping 不等於整個 PTT, PTT 不等於整個 BBS 一樣,雖然說目前 PTT
APP 小組大部分原先要處理的問題都是 Gossiping 上的問題,不過我個人認為整體 BBS
的程式碼也夠久了,應該要整個大修了,不然遲早我們會面臨名為技術債的報復。
目前 BBS 需處理的問題由輕重緩急排列如下:
1. 介面/商業邏輯/資料庫的程式碼混在一起,造成調整使用者體驗上以及使用者介面
上調整困難。
2. 程式碼缺乏註解,可讀性極低。
3. 原先的程式碼完全沒有 testing code.
4. 程式碼完全沒有 benchmark 機制,修改架構仰賴設計者的威望而非科學證據。
5. 大部分的架構仍然使用 32 位元的時間表示方式,這會導致 2038 問題。
6. 密碼仍採用基於 DES 的雜湊方式,換句話說,強度不足。
7. 過度仰賴共享記憶體的設計造成伺服器分散困難。
8. 索引檔儲存方式彈性不足,不易新增新欄位。
9. 轉信機制死亡已久。
10. 站內訊息 (水球)、站內信無法透過手機即時通知使用者。
11. Current PTT 程式碼尚不支援 IPv6.
12. 站內文章仍然使用 Big-5 儲存,不支援 emoji 或是台羅拼音。
13. 不支援圖片上傳、音訊或是視訊通訊。
而目前我提出的解決方案是重新設計後端介面。
我們初期將會得到一個新的基於 HTTP 的後端介面, PTT APP 中台或者是行動 APP 的
開發夥伴可以透過這個介面來存取 BBS 的資料庫。
在開發中有別以往 BBS 的開發流程,新的流程我會先將需要的功能寫成文字文件並且
提出討論,一段時間後開立 GitHub ISSUE 進行實作。
因此可以確保新的程式碼是有文件以及清晰易懂的測試案例的,避免重蹈覆轍。
目前我們已經完成驗證帳號、取得看板(baord)列表、取得文章列表以及取得文章內容
等功能,我們還需要持續完成新增推文(push/recommend)、新增文章、編輯我的最愛等等
的功能。
但是我個人有個額外的請求,因為有先前在 Soft_Job 上提到的「東京都新冠肺炎對策
網站(https://stopcovid19.metro.tokyo.lg.jp/)」的經驗,我還是希望能做到是由社群
的多數人共同完成這個專案,而不是如同多數在台灣的開源專案,是由固定幾個「大神」
來完成的。
原則上軟體專案人數的增加並不會增加開發效率,反而還會降低效率,但是開發人數過
少的專案反而會有公車指數(bus factor)過低的問題,也就是少數幾個人離開專案就會導
致專案進度停擺或是沒有人能繼續維護。
因此我會希望邀請有興趣共同開發的工程師加入,大約一週兩到四個小時的時間就可以
了,而我自己扮演的角色會傾向專案管理的角色,準確有效率的分配任務給貢獻者們,同
時能確保工作進度和程式碼品質。這對我個人而言也算是具挑戰性的任務。
注意事項:
* 這個專案並不會存取現有 PTT 使用者個資
* 有興趣者可透過站內信聯絡
職缺能力經歷要求:
基本需求 /
* 基本的 Shell 使用能力
** 會下 git clone
** 會下 go build
額外需求 /
* 讀過 "database/sql", "go-sql-driver/mysql" 兩個套件的原始碼
===========
2021/01/20 更新:
目前有站內信給我的我有回信了,如果沒收到的話請再寄一次這樣。
如果還是找不到我的話可以從 join.g0v.tw 到 g0v 的 slack 找到我
============
2021/01/26 更新:
這之前有站內信給我的我有回信了。
然後第一週的影片有透過聯絡用的信箱轉寄給大家了,怕信被送入垃圾郵件中,如果
沒收到標題為 [BBS] BBS 後端實作聯絡 的Email的話請再用站內信和我確認一下。