bbs

Month: 2021-05

2021-05-01

pichuchen 21:49:27
Test sheet 的部分需要大家協助喔

2021-05-02

pichuchen 03:54:23
測試站目前的顯示和 ptt 有些不同,主要是目前不是用 pmore, 做個紀錄,避免我晚點睡起來忘掉
搞定了...

2021-05-05

pichuchen 09:23:58
這週影片會再晚一點上傳,我多一點時間想一下 C 轉成自然語言要怎麼表達比較好
陳昱廷 16:50:07
https://github.com/Ptt-official-app/Ptt-backend/pull/198

#198 增加 smtp provider 回傳

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/196|#196> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/191|#191> *:pick: 變更內容 / Details of Changes* 增加 smtp provider

andylee1013 2021-05-07 20:09:25
我覺得這個PR大家可以多多看看
其實我們已經討論了不少細節
但是可能還會有沒注意到的細節
也辛苦Yu大大了 👍
陳昱廷 16:50:28
這個希望大家參與討論一下
陳昱廷 16:51:07
需要集思廣益
pichuchen 18:20:36
我剛剛發現我前幾天打的review紀錄卡在Pending沒送出 Orz

2021-05-06

pichuchen 01:17:44
本週影片發出去了,然後又是發出去才想到有東西忘了講,pmore相關的忘了講
Rico 20:55:49
關於轉錄文章到看板一些問題
要去哪裡抓 user 有 permission 在特定的 board 可以發文?
喔,看到了,在 token 那邊
嗯嗯

2021-05-07

Rico 20:54:08
feat: forward article usecase & repository
想問大家這樣的方向對不對,或者哪裡還需要補的?
https://github.com/Ptt-official-app/Ptt-backend/pull/203

#203 feat: forward article usecase &amp; repository

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/154|#154> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/66|#66> • <https://github.com/Ptt-official-app/Ptt-backend/issues/152|#152> • <https://github.com/Ptt-official-app/Ptt-backend/issues/153|#153> *:pick: 變更內容 / Details of Changes* • add forward article usecase • add forward article repository

2021-05-08

nickyanggg 17:25:13
再麻煩大家幫忙 review 一下,謝謝
https://github.com/Ptt-official-app/go-bbs/pull/84

#84 Feature/#83 實作發表文章

*:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/go-bbs/issues/83|#83> *:pick: 變更內容 / Details of Changes* • 在 bbs.go 中新增 WriteArticleConnector、NewArticleRecord、AddArticleRecordFileRecord • 新增 pttbbs/pttbbs_write_article_connector.go • 在 pttbbs/file.go 中新增 AppendFileHeaderFileRecord、NewFileRecord,其中比較不確定或是尚未實作的部分都有加上註解 • 在 pttbbs/file_test.go 中新增 TestAppendFileHeaderFileRecord、TestAppendFileHeaderFileRecordWithError

2021-05-09

titaneric 00:49:19
不好意思我想請問一下,我在改Ptt Backend時候遇到要對MockRepository與MockUsecase這兩個mock object兩邊都要新增類似MockUserDraft的struct這種情況,但我自己覺得只要在MockRepository新增就好,MockUsecase就呼叫MockRepository對應method就好(照我們的設計)。這邊我想討論MockUsecase的必要性,我看method測試function上,也沒有統一在MockRepository還是MockUsecase。如果說移除MockUsecase剩下MockRepository可能會比較好維護?
補充一下,對於一些repo沒有對應method的,可能MockUsecase是必要的。
nickyanggg 2021-05-09 11:45:22
我想 MockXXX 的存在意義除了在測試的時候可以更加方便控制預期結果,並且也可以讓測試著重在要測試的 function 本身,而不用去考慮當中呼叫的 function 的正確性,畢竟後者也會有屬於它自己的測試來驗證。
Mock 系列有兩個作用,一個是在Unit test 的時候用的,另外一個是一開始做的時候避免大家等來等去當作像是一般工地灌水泥的模板或是鷹架用的,所以後面這種作用上的 Mock 會需要移除掉
也就是release之後,mock 系列可能會只有在 _test 被編譯時才會被編譯
andylee1013 2021-05-09 13:29:10
既然我們當初把usecase 跟 repository切開,那他就會有存在的必要,有可能我們現在寫的code比較多是usecase直接回傳repo的結果,但是照理說一些商業邏輯是會做在這邊的,等之後功能越來越多(或是做refactor)應該就會看到越多method是拿repo的結果回來做處理再往回丟。我是覺得要切就要切乾淨,不然當初design不就應該只留http跟repo層就好。
我目前了解usecase是有他的功用,但覺得mock系列不管是MockRespository還是MockUsecase有些method沒有區分清楚,怕對後續維護有影響。當然如果之後開發穩定了再拔掉當然OK
Mock 的功能基本上沒有實際作用,所以實際上線的程式碼不會有Mock
andylee1013 2021-05-09 19:12:27
mock implement interface還有個好處啦 就是會強迫你寫test XD
目前有檢查涵蓋率的套件會幫忙確認test
pichuchen 12:34:13
https://github.com/Ptt-official-app/Ptt-backend/pull/199

這個需要請大家協助確認

#199 實作發文 repo

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/180|#180> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/180|#180> • <https://github.com/Ptt-official-app/Ptt-backend/issues/68|#68> *:pick: 變更內容 / Details of Changes* • usecase function `checkPermission` 新增傳入參數 context • 新增 checkPermission 關於發文的部份邏輯 • 新增 repo CreateArticle function

2021-05-10

titaneric 00:50:51
需要幫忙review以下PR,謝謝大家 https://github.com/Ptt-official-app/Ptt-backend/pull/204

#204 Feature/#167 實作草稿repo

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/167|#167> *:pick: 變更內容 / Details of Changes* • `GetUserDrafts`與`UpdateUserDraft`改傳回自定義的`UserDraft`,這需要在go-bbs內被實作 • 在`MockUsercase`與`MockRepository`新增`MockUserDraft` 以mock`UserDraft` *注意* • 目前`MockUserDraft` 是兩邊各定義相同的struct,之後可能要統一呼叫repo的

2021-05-11

amberfu 07:04:51
需要幫忙 review PR,感謝!
https://github.com/Ptt-official-app/go-bbs/pull/85

#85 Feature/#78 取得使用者設定

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/78|#78> *:pick: 變更內容 / Details of Changes* • 新增 pttbbs/usersettings.go 與 pttbbs/usersettings_test.go 檔案 • 在 pttbbs/const.go 新增 uflags • 在 bbs.go 的 UserRecord interface 中新增 UserFlag() • 在 pttbbs/passwd.go 中修改 Userec struct 的 userFlag (原為 UserFlag) • 在 pttbbs/passwd_test.go 中修改所有 UserFlag 成為 userFlag • 在 serverlet/route_users_test.go 中新增 UserFlag() function

Lint 有問題喔
@pichuchen 請問什麼是 Lint 呢?不好意思,不太熟悉...
自動檢查程式碼的工具
https://github.com/Ptt-official-app/go-bbs/pull/85/files

現在有比較好了,還會寫在這
我會試著修改再重新提交,感謝!
👀 1

2021-05-12

Wombat007 17:11:52
ˋ7ㄚㄏˋ
Lex Liu 18:20:27
https://github.com/Ptt-official-app/go-bbs/issues/86

我想要嘗試這個 issue,但在 go-bbs 中沒看到 add comments 相關的實作,所以有幾個問題。
1. 是否需要在 ArticleRecord 中加入 comments 清單?
2. 是否需要考慮顏色的編碼? 參考 pptbbs/mbbsd/comments.c:4 FormatCommentString

#86 [主線] [PTT] 實作個人看板的歷史留言

*實作細節 / Details of Implement* • 基本上實作是參考 <https://github.com/Ptt-official-app/go-bbs/issues/64|#64> • 這個功能需要能夠掃瞄所有看板的所有文章,並列舉出所有屬於某個使用者的留言 • 因目前還未實作推文的功能,所以暫時的做法是透過 ReadBoardArticleFile 讀出文章內容後,判斷內容是否有包含使用者ID,有的話視為此使用者有留言。加上 TODO 之後再另起 issue 修改 • 新增 user_comment_record.go,定義 UserCommentRecord interface,至少實作以下 function • CommentOrder() int // 評論順序,從1開始,在 PTT 代表是幾樓的意思 • CommentTime() time.Time // 評論時間,發出推文的時間 • 在 bbs.go 新增 UserCommentConnector interface,實作以下 function • GetUserCommentRecordsPath(userID string) (string, error) // 取得儲放歷史留言快取資料庫的路徑 • ReadUserCommentRecordFile(name string) ([]UserCommentRecord, error) // 讀取快取資料,並輸出為[]UserCommentRecord • 在 bbs.go 新增 func (db *DB) GetUserCommentRecordFile(userID string) ([]UserCommentRecord, error) • 參考 <https://github.com/Ptt-official-app/go-bbs/blob/0a4883fa41988439603d95007d3ea25df682fddb/bbs.go#L399|GetUserArticleRecordFile>,先讀取快取資料庫的內容,若無資料則重新從所有看板的所有文章撈取。因目前沒有 comment_order 與 comment_time 的資料,可先回傳 empty value,再標記 TODO *期程 / Schedule* (希望這個任務大概什麼時候做完,如果會卡到其他地方的功能也請在這邊提出。) • 討論時間: 一週, 到 5/17 • 實作時間: 一週, 到 5/24 • 確認時間: 一週, 到 5/31 *相關文件 / Documents* • <https://github.com/Ptt-official-app/go-bbs/issues/64|#64> • <https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k/edit#heading=h.xtgbc6lc04uw|API文件>

1. 要
2. 我覺得這階段不用

2021-05-13

Julian Chu 19:12:39
需要幫忙 review PR 麻煩大家了
https://github.com/Ptt-official-app/Ptt-backend/pull/206

#206 Router benchmark

*:clap: 解決掉的 issue / Resolved Issues* *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/7|#7> • <https://github.com/Ptt-official-app/Ptt-backend/pull/124|#124> *:pick: 變更內容 / Details of Changes* • 補完 <https://github.com/Ptt-official-app/Ptt-backend/pull/124|#124> • 針對 ServeMux, gorillamux, httprouter 補上 benchmark

❤️ 2

2021-05-14

Rico 19:20:17
稍微修正了一下,再麻煩大家指點迷津了

feat: forward article usecase &amp; repository 想問大家這樣的方向對不對,或者哪裡還需要補的? <https://github.com/Ptt-official-app/Ptt-backend/pull/203>

👍 1

2021-05-15

ichsu 01:20:19
@ichsu has joined the channel
nickyanggg 06:28:49
已修正完畢~ 再麻煩大家幫忙 review
https://github.com/Ptt-official-app/go-bbs/pull/84

#84 Feature/#83 實作發表文章

*:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/go-bbs/issues/83|#83> *:pick: 變更內容 / Details of Changes* • 在 bbs.go 中新增 WriteArticleConnector、NewArticleRecord、AddArticleRecordFileRecord • 新增 pttbbs/pttbbs_write_article_connector.go、pttbbs/pttbbs_write_article_connector.go • 在 pttbbs/file.go 中新增 AppendFileHeaderFileRecord,其中尚未實作的部分有加上註解 • 在 pttbbs/file_test.go 中新增 TestAppendFileHeaderFileRecord

andylee1013 14:10:20
請大家幫忙 Review~ 感謝~
https://github.com/Ptt-official-app/Ptt-backend/pull/207

#207 feat: Implement mailgun provider

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/197|#197> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/191|#191> *:pick: 變更內容 / Details of Changes* • `mail.go` - 新增 case 呼叫新增 mailgun provider • `mail_test.go` - 新增兩個測試關於 `NewMailProvider()` • `mailgun.go` - mailgun provider 實作 • `mailgun_test.go` - 測試 mailgun provider *其他* 關於 mailgun provider test,我是用自己起一個 https server 的作法去測,這樣 Send 成功以及失敗就都可以被測到。 測試成功的部份有在 handler function 裡面對 request 做一些檢查,如果覺得這個部分不需要,其實也可以拿掉。 另外我新增了 `mail_test.go` 的想法是覺得 `NewMailProvider()` 裡面的邏輯 應該是要在這個 test file 裡面驗證。

2021-05-17

Lex Liu 14:31:08
請支援 review
感謝
https://github.com/Ptt-official-app/go-bbs/pull/87

#87 Feature/#86 實作個人看板的歷史留言

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/86|#86> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/go-bbs/issues/86|#86> *:pick: 變更內容 / Details of Changes* • 新增 user_comment_record.go • NewUserCommentRecord 可判斷傳入的資料是否符合留言的格式,並從符合格式的資料中擷取留言者與時間。 • 新增 ansi.go • 小工具可以將 ANSI escape code 移除。 • 修改 bbs.go • 新增 UserCommentConnector interface 處理個人留言的快取(未實作細節)。 • 新增 GetUserCommentRecordFile method 從所有開板中找出使用者的歷史留言。 • 新增 GetBoardUserCommentRecord method 從特定看板中找出使用者的歷史留言。 • 新增 GetBoardArticleCommentRecords method 從特定文章中找出所有使用者的留言。 • 新增 bbs_test.go 利用 fakeConnector 模擬實際存取檔案的功能,藉此完成 DB 邏輯的測試。

已修正
👀 1

2021-05-18

pichuchen 20:22:21
C 程式碼有人有寫註解了,看有沒有人要幫忙Review這樣
怎麼給 comment 比較好?直接在連結下面討論嗎?
按右鍵

2021-05-19

陳昱廷 14:21:27
這周的 email 有要發嗎
陳昱廷 14:21:30
還是難產中?
pichuchen 15:16:10
這週有,不過分心到簡訊實聯中
挖,你們簡訊實聯是在哪裡討論的啊?
pichuchen 15:16:33
目前確實有難產部分,主要是在C程式碼教學上
Rain Wu 20:37:57
@s0958334772 has joined the channel

2021-05-20

pichuchen 01:25:14
大家不好意思,我覺得影片我可能要再拖一天,因為週四早上有線上課程="=
pichuchen 01:36:49
https://github.com/Ptt-official-app/Ptt-backend/pull/203/files

這個PR 需要請大家幫忙協助Review
已 review
Guo-Jim 07:31:01
@guo-jim has joined the channel

2021-05-22

pichuchen 01:47:53
https://docs.google.com/spreadsheets/d/1uo4AJuSi5xTXEht2o2EHogLivCJlJqlLaeqoj1RceDY/edit#gid=0


測試表我寫一輪了,晚點會請大家協助Review
我在想這部份是否要寫成 e2e test,不過要寫在哪邊是個問題就是了
然後我建議用 https://pttapp.cc/ 當測試網站,作為標準依據
測試網站要用pttapp.cc或是離線自己測試我覺得都可以,理論上兩者行為應該要一樣
e2e test 有範例嗎?
我寫一個 e2e test
pichuchen 02:46:13
本週的影片和問卷寄出了,再請大家注意信箱。
👍 2

2021-05-24

陳昱廷 13:48:05
https://github.com/Ptt-official-app/Ptt-backend/issues/208

#208 [主線] [PTT] End To End Test millstone1

*實作細節 / Details of Implement* 目前有幾個想法實做測試 1. 手動測試 - 最簡單,但難重現 2. postman test - 最難,但不需要用 golang,使用類 js 語言開發 3. golang test - 使用 http/curl 實做,可以整合進 ci 我會先實做一個 golang 的 e2e 測試供大家參考,大家可以下方討論有沒有更好的作法 *期程 / Schedule* • 討論時間:一週 • 實作時間: 未定 • 確認時間: 未定 *相關文件 / Documents* <https://docs.google.com/spreadsheets/d/1uo4AJuSi5xTXEht2o2EHogLivCJlJqlLaeqoj1RceDY/edit#gid=0|測試表>

陳昱廷 13:48:12
我開了一個關於測試表的討論
陳昱廷 13:48:17
大家可以討論一下

2021-05-25

Mao Hsu 12:25:44
@maofanhsu has joined the channel

2021-05-26

pichuchen 02:06:12
這週影片雖然還沒發出去,不過有在人力狀態表上沒有掛「最近比較忙」的我都有把工作發出去了,請再幫我確認一下信箱這樣
usingunix 18:57:21
@usingunix has joined the channel
min 22:46:28
@side112358 has joined the channel

2021-05-27

pichuchen 01:15:22
再貼一次
pichuchen 02:10:19
本週影片已經寄出去了,如果沒收到影片的話再私訊我這樣
👍 1
陳昱廷 20:22:47
https://github.com/Ptt-official-app/go-bbs/pull/85

#85 Feature/#78 取得使用者設定

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/78|#78> *:pick: 變更內容 / Details of Changes* • 新增 pttbbs/usersettings.go 與 pttbbs/usersettings_test.go 檔案 • 在 pttbbs/const.go 新增 uflags • 在 bbs.go 的 UserRecord interface 中新增 UserFlag() • 在 pttbbs/passwd.go 中修改 Userec struct 的 userFlag (原為 UserFlag) • 在 pttbbs/passwd_test.go 中修改所有 UserFlag 成為 userFlag • 在 serverlet/route_users_test.go 中新增 UserFlag() function

👍 1
陳昱廷 20:22:57
這個大家麻煩 review 一下

2021-05-30

pichuchen 18:00:32
https://github.com/Ptt-official-app/Ptt-backend/issues/210

#210 [主線] [PTT] 實作上下箭頭推文

*實作細節 / Details of Implement* Quote from Pichu: &gt; 在放入 user01 Access Token 的情況下,發出一篇文章,user02 可以用 &gt; 「↑」進行推文,評價數要加一,user02第二次用 ↑ 推文時評價數不變 接著user02 用 &gt; 「↓」推文時原先的上箭頭推文被刪去,評價數減一(收回),第二次用 ↓ 推文時評價數減一,第三次用↓推文時評價數不變 &gt; 在放入 user01 Access Token 的情況下,發出一篇文章,user01 用 「↑」進行推文,評價數不變 (自己不能推自己) • 修改`usecase /article.go` • 增加類似`UpdateUsefulness` function,以模仿stackoverflow或reddit • 在`repository/article.go`中新增`Usefulness` struct,與後端`gobbs`對接 • 在`delivery/http`新增`route_update_usefulness.go`處理http routing • 可能會有權限問題需要處理 • 對應測試需要撰寫 *期程 / Schedule* • 討論時間: 兩周 • 實作時間: 兩周 • 確認時間: 兩周 *備註* • 目前Google doc那裏還沒更新 • 子issue需要協助開立

s8901489 21:37:21
https://github.com/Ptt-official-app/go-bbs/pull/88
這個PR需要大家幫忙review,麻煩了

#88 Feature/#82 do_add_recommend

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/82|#82> *:pick: 變更內容 / Details of Changes* • xxxxxx • xxx

❤️ 1

2021-05-31

pichuchen 01:55:48
好像有lint的問題喔
有再跑過一次go fmt了,前面少跑了一個檔案