bbs

Month: 2021-03

2021-03-01

Amos Chang 21:21:13
Hi,
這個 PR 還缺一個 reviewer,還請有空的人幫忙看一下~
https://github.com/Ptt-official-app/Ptt-backend/pull/87

#87 Add mock for repository.GetPopularArticleRecords

and repository.BBSPopularArticleRecord since go-bbs has not implemented it yet *:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/86|#86> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/50|#50> *:pick: 變更內容 / Details of Changes* • add `BBSPopularArticleRecord` to mock `bbs.PopularArticleRecord` since go-bbs has not implemented it yet • add `GetPopularArticles()` to interface `Repository`

Amos Chang 22:27:22
等等,雖然我看 #107 沒有 assignee,所以開口要了這個 issue
然後再看母 issue 的時候赫然發現,開 issue 的 linmechu 本人說他想要寫看看 delivery/http:
https://github.com/Ptt-official-app/Ptt-backend/issues/50#issuecomment-780408877
Amos Chang 2021-03-02 11:16:52
啊抱歉我錯頻了…
Amos Chang 2021-03-02 11:20:04
本來是要pm @pichuchen 的,
那你有要做這個沒錯吧?
那就還給你囉?
好喔!!
感恩
我把#107 Assignment 過去了
🙏
😮 1
Amos Chang 22:28:40
如果不小心搶了他的 issue 可以還給他

2021-03-02

j31422210 02:31:09
@j31422210 has joined the channel
陳昱廷 11:38:34
https://github.com/Ptt-official-app/Ptt-backend/pull/108

#108 Development enable lint

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/88|#88> *:pick: 變更內容 / Details of Changes* 1. 增加了 1.16 的 ci 測試 2. 將上個星期的 development 的 code 合併進 development _enalbe_lint 3. 移除空白跟 id to ID

陳昱廷 11:38:58
把上個星期的的合併進去
陳昱廷 15:32:06
development to development_enable_lint 單向同步好了
陳昱廷 15:32:18
有空可以重拉
陳昱廷 15:32:35
然後現在有一個 issue 需要有人幫忙
陳昱廷 15:32:40
https://github.com/Ptt-official-app/Ptt-backend/issues/112

#112 [主線] [PTT] 實作 我的最愛列表 的測試

*實作細節 / Details of Implement* internal\delivery\http\route_users.go:76 - getUserFavorites 此 route 尚未實作測試 *期程 / Schedule* • 討論時間:一天 • 實作時間:三天 • 確認時間:一天 *相關文件 / Documents* 可參考 <https://github.com/Ptt-official-app/Ptt-backend/issues/45|#45> *備註* 開發前請先參考 FOR_TEST_DEVELOPERS.md 裡的說明

陳昱廷 15:33:56
https://github.com/Ptt-official-app/Ptt-backend/pull/111

#111 增加 route_users 相關註解

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

陳昱廷 15:34:01
這個 pr 則是需要討論
go docs 好像有關於註解的範例,基本上 golang 註解沒有 i18n 因此我對於要使用中文還是英文註解有點困擾,最後我的結論是使用英文註解,但是要確保註解內容直接丟到 Google 翻譯上轉成中文是通順的。
通常第一個字會是這個 method 或是 class 的名稱
然後描述每個參數的用途以及回傳的資訊
然後 Testcase 的註解不一定要是這種格式
https://golang.org/src/database/sql/sql_test.go?s=40292:40342#L1340

他可能會針對為什麼要有這個 test 而寫註解
pichuchen 19:06:37
這週的影片連結發出了,然後和大家提醒一下,我們有個每週的影片和問卷,如果不知道我在講什麼的請私訊我然後告訴我你的 email
MCLin 20:52:55
大家晚安!
麻煩幫忙 review 一下!! 🙏
https://github.com/Ptt-official-app/Ptt-backend/pull/113

#113 implement popular articles (http)

*:clap: 解決掉的 issue / Resolved Issues* • closed <https://github.com/Ptt-official-app/Ptt-backend/issues/107|#107> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/83|#83> • <https://github.com/Ptt-official-app/Ptt-backend/issues/86|#86> *:pick: 變更內容 / Details of Changes* • 實作熱門文章的 http 套件

@gn01842919
要幫忙 review 一下嗎 哈哈哈哈哈
Amos Chang 2021-03-02 21:15:30
好啊
那你也幫我看一下好了XD
https://github.com/Ptt-official-app/Ptt-backend/pull/87

pichuchen 22:12:37
下次的g0v大松在3/20 歡迎大家報名
👀 1

2021-03-03

whitefloor 22:46:55
hi~可以請問https://github.com/Ptt-official-app/go-bbs/issues/59 有文件或是類似的段落可以參考嗎
這個好像沒寫清楚是 http 還是 usecase的
whitefloor 2021-03-04 19:48:19
好的 我改一下
whitefloor 2021-03-04 19:52:05
是針對repository的
等等,兩個 issue 剛好同個 ID ...
go-bbs 應該不用處理歷史文章? 應該是交由 Ptt-backend 的 usecase去處理?
whitefloor 2021-03-04 20:39:36
我看一下有沒有query
whitefloor 2021-03-04 20:47:29
我有看到GetBoardArticleRecords
whitefloor 2021-03-04 20:48:06
我是想直接撈到userID的所有文章,還是說在這之前要先用看板分類?
因為目前 PTT 的資料庫並沒有存某個 userID 的所有文章
所以可能要先用看板分類掃過一輪這樣
whitefloor 2021-03-04 20:52:50
原來是這樣
whitefloor 2021-03-04 20:52:53
那我可以請問
whitefloor 2021-03-04 20:53:31
有哪裡可以參考data structure
whitefloor 2021-03-04 20:54:04
因為這樣跟一般的RDB處理不一樣
whitefloor 2021-03-04 20:56:42
我沒處理過這種的,所以query就不太了解,抱歉
👀 1

2021-03-04

pichuchen 19:42:35
https://github.com/Ptt-official-app/go-bbs/runs/2030664432?check_suite_focus=true#step:6:45

遇到小狀況了,SHM在 GitHub 上面跑 test 可能會有問題
pichuchen 20:24:34
踩到雷了 shmid_ds 在 linux 和 darwin 的狀況不一樣
jk82421723 20:54:00
@jk82421723 has joined the channel
jk82421723 21:18:35
大家好 ~

*怎麼知道這個專案的?*
soft_job

*您平常的活動或是工作?*
software engineer 工作內容偏全端+AWS

*平常出沒的區域?*
新北 / 台北

*您有興趣或者是關心的主題?*
System Design / Backend / Infra
好久不見的新手介紹
jk82421723 2021-03-04 21:25:23
hihi 剛剛才下完 go build 打完 /v1/token api
但對 go 不熟, 我要先看著專案惡補一下 Go 的基本語法了 XD
再來去認領 issue 了 XD
Timo Chiang 2021-03-05 09:37:58
Hi 歡迎加入!
這邊有些issue需要幫忙,有興趣的話歡迎認領唷!☺️
https://github.com/Ptt-official-app/Ptt-backend/issues/60
https://github.com/Ptt-official-app/Ptt-backend/issues/61
Timo 極力宣傳中!
Timo Chiang 2021-03-05 14:27:09
你要不要也來幫幫忙😆
好啊
Timo Chiang 2021-03-05 14:38:32
感恩!再麻煩在issue底下留言認領哦~
👋 1
pichuchen 21:24:25
我發現 ipc_perm 的部分我可能不用cgo 很難安全地寫出來,因為實際上系統的狀況和 man 裡面的狀況會有出入
pichuchen 21:25:32
這是man 的 ,後面是實際上 source code 的
截圖 2021-03-04 下午9.24.44.png
截圖 2021-03-04 下午9.25.10.png
👀 2

2021-03-05

2021-03-06

titaneric 10:10:08
需要幫忙review以下PR,謝謝https://github.com/Ptt-official-app/go-bbs/pull/54

#54 解決go lint上顯示的warning,包含縮寫及error命名、一致的receiver命名等

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/52|#52> • close <https://github.com/Ptt-official-app/go-bbs/issues/53|#53> *:pick: 變更內容 / Details of Changes* • 縮寫命名 • JSON • UI • ID • 一致的receiver命名 • Error命名 • increment (E.g., idx++) • unreachable code • typo • PosOf省略bbs名稱

jk82421723 12:27:31
好奇想請教問一下, 用 intellij 裝 GoLand plugin 去寫的話, 跟本身直接用 GoLand 有什麼差別嗎
kira 15:05:30
Hi all, 有空的人幫忙 review 一下 PR

#63 add user information struct

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/38|#38> *:memo: 相關的 issue / Related Issues* • None *:pick: 變更內容 / Details of Changes* • 新增 user information 相關 `struct` (<https://github.com/ptt/pttbbs/blob/4d56e77f264960e43e060b77e442e166e5706417/include/pttstruct.h#L349|REF>)

pichuchen 23:07:03
https://github.com/Ptt-official-app/Ptt-backend/issues/117

熱門文章的實作討論

#117 [建議] 熱門文章的文章列表改由 Ptt-backend 做統計篩選

*原本作法的問題 / Existed Problem* • 目前 PTT 的資料庫裡面是沒有熱門文章的 • 大家市面上看到的熱門文章其實是第三方網站幫PTT統計出來的,統計演算法應該也是各家不同 • 根據 <https://github.com/Ptt-official-app/Ptt-backend/issues/51|#51> 討論,應該在 Ptt-backend 這邊做會比較好? *實作細節 / Details of Implement* • 大致上會在 usecase 或是哪邊每隔一段時間就掃描一次目前的所有看板和所有文章,把可以統計的看板(公開看板)的文章統計出前幾名放在熱門文章資料庫(可能先存在 Process 裡面) • 在 usecase 有使用者請求時直接輸出這個資料庫的結果 *期程 / Schedule* • 討論時間:一週,到 3/13 • 實作時間:一週,到 3/20 • 確認時間:一週,到 3/27 *相關文件 / Documents* • 在其他網頁的熱門文章參考:<https://www.pttweb.cc/hot/all/today|https://www.pttweb.cc/hot/all/today> • 熱門看板: <https://www.ptt.cc/bbs/hotboards.html|https://www.ptt.cc/bbs/hotboards.html> • 在PTT八卦版上的相關討論: <https://www.ptt.cc/bbs/Gossiping/M.1592178635.A.0F8.html|https://www.ptt.cc/bbs/Gossiping/M.1592178635.A.0F8.html>

2021-03-07

pichuchen 17:50:51
<!channel> 這部分需要討論,這個也是先前提到的一個重點,我希望可以把原本的檔案儲存格式替換掉
目前我大致上列了三個大方向 TLV8, Protobuf 以及 JSON ,各自有各自的優缺點,如果有其他好的建議的話也歡迎提出來,這些我會放在影片上讓大家知道然後進一步討論這樣。
之前有碰過avro,感覺也可以考慮。JSON雖然可以直接肉眼閱讀,但還蠻占空間的
如果說 avro 和 protobuf 比較呢?
https://openweave.io/documents/weave-tlv-white-paper.pdf

這邊有些比較,不過沒有提到 avro
Designing Data-Intensive Applications 這本書有介紹Protobuf以及avro,大致整理如下:
兩個方法都需要schema,Protobuf會需要tag name,每個field都不一樣,這會影響到schema變更,但不影響向前向後兼容。Avro可以用JSON定義schema,但向後兼容性較差,但好處是schema可以動態生成
tag name 的部分應該兩者都一樣,JSON定schema的部分也是,不過avro有向後兼容性,但是protobuf現在也支援map了
avro 的 json 有格式檢查用的工具嗎?
https://github.com/go-avro/avro

然後目前對 golang 的支援似乎沒有特別好,雖然 protobuf 也是要另外用 code gen 就是了
這樣看起來PB就好很多,畢竟他跟Go依樣是Google親兒子。我投Protobuf一票
我剛剛稍微試一下 proto 檔,整個有點像是再學一種和 golang 很類似的語言
現在是在儲存的結構上假如不是以4K的因數來儲存的話,那這樣讀寫上可能不會最佳化的問題
json的話有辦法透過 {}{} 這樣來辨別是兩筆資料,但是 Protobuf 似乎不行,除非定義一筆資料的file tag 然後用 stream 的方式讀入
@pichuchen 指的是多個struct合併到同個protobuf裡面嗎
對,因為現在要從原有方式轉換成 protobuf 之類的方式,需要考慮到append record 的便利性
如同這篇所寫的
因為如果不支援Append 純粹用 protobuf 提供的 repeated 或是 packed 來做的話,每新增一筆紀錄可以說整份檔案要重新寫入
vu84au042k7
下面的Large Data Sets也反映同樣的訊息,這就看說儲存的資料是看成資料集還是DB。但我覺得我們儲存的比較像是DB類型...也就反映到一開始討論的用DB儲存
用DB例如Sqlite 一樣還是會面臨類似的效能問題
的確,長期來看可能要引入數據工程的系統如Hadoop HDFS
那個有點長,如果PTT打進美國的話也許可以考慮XD
不過我覺得用sqlite 來儲存搞不好是個方向,不然就是實作兩個版本,一個用Protobuf 然後把所有發文紀錄存在使用者家目錄下,另外一個用sqlite來做,然後也是放在使用者家目錄下,最後跑benchmark來決定
感覺上面方法可行
gogog22510 2021-03-09 12:17:56
protobuf我用過,他是用來定義message type,不建議把他當成DB技術使用, 所以要自己實作或選擇一個data store or file system來存取資料。假如考慮到file格式可以選用類似SSTable (https://github.com/thomasjungblut/go-sstables)或是配套DB之類的
sqlite就是SQL DB了,基本上是不同種技術
剛好在Designing Data-Intensive Applications上也有比較SSTable格式的LSM Tree以及B Tree。一樣要看所屬應用,LSM Tree在write資料很快,B Tree則是在read時比較快。在bbs這裡的話應該還是要看不同資料特性決定不同資料儲存格式
SSTable 我就真的沒聽過他了,BTree 我知道,不過把 BTree壓進檔案裡也是一個點。

然後目前要存的東西是使用者的發文紀錄,然後會分開放在每個使用者的家目錄,比較特別的需求大概是通常都是最新的幾筆比較常會被存取
說存取大概也是讀取比較多
Julian Chu 2021-03-09 15:16:39
會有管理者要直接修改資料的情況嗎,
應該不太會?
Julian Chu 2021-03-09 16:32:12
恩 我的考量點是SQL Lite或是json的話 站長或是管理者要修改比較方便,但不確定現行的情況是怎樣的
,其他格式的話我們可能要提供額外的工具? 另外想問的是pichu你期望的效能要到什麼程度
他其實只是一個暫時性的檔案而已,有點像是幫使用者紀錄已讀用的檔案,只是原先的作法通常會直接 fwrite 把本來的資料結構放入那個檔案裡
那這樣的做法其實後面的人要去維護他或者是要新增欄位會麻煩很多,可能要全站停機才能做格式升級
效能上的話是佔用的資源越低越好,越低的話那同樣的主機可以提供的服務資源會更多
以數據來說的話,大部分的使用者發文數量可能是少於一百篇的,少數使用者可能會到三千多篇
1000篇的狀況即使不小心用了 O(n^2) 的演算法,應該還不會感覺到哪裡怪怪的
gogog22510 2021-03-10 00:48:10
SSTable是Google內部用來實作index的檔案格式,以歷史文章來說的話,可以使用RecordIO也是Google內部常用的檔案格式,適合append,read and skip。假如要用protobuf的話,建議可以用protobuf+SSTable或RecordIO。 至於效能的話應該還是挺不錯的,但具體上可以跑benchmark決定
目前很粗糙的測試結果出來了
```$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkProtobufWrite-4 100 12488268 ns/op
BenchmarkProtobufArrayWrite-4 667 1519035 ns/op
BenchmarkSqliteWrite-4 79 16020372 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 4.517s```
https://github.com/Ptt-official-app/go-bbs/blob/feature/user_articles/user_article_test.go
@gogog22510 SSTable 有套件連結嗎? 看要不要我這邊順便把測試程式碼寫上去
然後檔案大小的比較是這樣: BenchmarkProtobufWrite: 30000
BenchmarkProtobufArrayWrite: 32000
BenchmarkSqliteWrite: 45056

上面的測試是純粹開檔後寫入一千筆相同紀錄後關檔然後再刪掉他
gogog22510 2021-03-10 00:53:50
https://github.com/thomasjungblut/go-sstables
我是找到這個,看看能不能用,這是別人實作的go套件
gogog22510 2021-03-10 01:01:51
看起來是的
插入的效能看起來沒有比較好
```$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkSSTableProtobufWrite-4 75 90115719 ns/op
BenchmarkProtobufWrite-4 100 41232748 ns/op
BenchmarkProtobufArrayWrite-4 474 3451642 ns/op
BenchmarkSqliteWrite-4 48 33417956 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 14.940s```
也有可能是Bench code 不夠準確的問題
檔案大小方面,1000筆佔 45056 bytes
我剛剛去翻一下SSTable 的資料,他應該是 Key/Value Map, 這點的話應該和我們現在要解決的問題比較不同,因為我們在查詢資料的方式大概會是在一定時間後的多少筆資料這樣
gogog22510 2021-03-10 01:21:12
對的,SSTable只是key/value 但sorted, 所以key是time stamp的話也是可以的
可以偷吃步的把filename當作Key, 因為BBS的filename通常和timestamp相關
gogog22510 2021-03-10 01:23:28
且可能多了一些meta data所以有影響,畢竟它是用來做index
嗯嗯
我剛剛比較驚訝的是寫成Array會比單純疊資料還要慢的這點(還慢很多),所以我把寫法稍作修改,讓Write變成一次寫入
結果和Array的版本不相上下了
```$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkSSTableProtobufWrite-4 100 22619798 ns/op
BenchmarkProtobufWrite-4 169 6769876 ns/op
BenchmarkProtobufBufWrite-4 1362 899403 ns/op
BenchmarkProtobufArrayWrite-4 1497 772189 ns/op
BenchmarkSqliteWrite-4 177 7717207 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 10.133s```
gogog22510 2021-03-10 01:32:24
還可以比較read囉,的確可以預期SSTable write差一點因為是index, 但理論上query會快一些
gogog22510 2021-03-10 01:36:10
理論上歷史數據功能可能是read > write的,所以假如read有比較優秀是不錯的
SQLite好處也是方便使用比較多人會
我待會再寫一個 Append 的,這個應該Array的方法就會輸了(吧
append 遇到狀況了
``` user_article_test.go:87: error: file is not empty
user_article_test.go:92: error: writer was either not opened yet or is closed already```
他是不是只能一次寫完不能append啊?
新增了十筆以及JSON的狀況
```$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkSSTableProtobufWrite-4 1255 4859450 ns/op
BenchmarkProtobufWrite-4 285 3752161 ns/op
BenchmarkProtobufAppend-4 282 5166763 ns/op
BenchmarkProtobufBufWrite-4 448 2492569 ns/op
BenchmarkProtobufArrayWrite-4 1419 1808260 ns/op
BenchmarkProtobufArrayAppend-4 195 8061710 ns/op
BenchmarkJSONStreamWrite-4 516 2251661 ns/op
BenchmarkJSONStreamBufWrite-4 1166 1209535 ns/op
BenchmarkJSONStreamAppend-4 518 3277587 ns/op
BenchmarkJSONArrayWrite-4 745 5451195 ns/op
BenchmarkJSONArrayAppend-4 100 21793137 ns/op
BenchmarkSqliteWrite-4 177 7465205 ns/op
BenchmarkSqliteAppend-4 27 45531985 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 35.766s```
gogog22510 2021-03-10 02:33:03
讓我研究看看
gogog22510 2021-03-10 02:41:13
沒錯我忘記了XD SSTable是immutable的,假如能保證sequence的話,你可以試試看RecordIo嗎?

https://github.com/thomasjungblut/go-sstables/blob/master/recordio/README.md
讀取後重新寫入的部分我試了一下沒辦法
我先把目前結果推上去了
$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkSSTableProtobufWrite-4 100 62030975 ns/op
BenchmarkProtobufWrite-4 76 35507473 ns/op
BenchmarkProtobufAppend-4 7 146766586 ns/op
BenchmarkProtobufBufWrite-4 37 49721741 ns/op
BenchmarkProtobufArrayWrite-4 908 1639579 ns/op
BenchmarkProtobufArrayAppend-4 2 535421312 ns/op
BenchmarkJSONStreamWrite-4 100 14779489 ns/op
BenchmarkJSONStreamBufWrite-4 469 2836098 ns/op
BenchmarkJSONStreamAppend-4 6 223996055 ns/op
BenchmarkJSONArrayWrite-4 100 59582955 ns/op
BenchmarkJSONArrayAppend-4 1 1353481958 ns/op
BenchmarkSqliteWrite-4 66 20464509 ns/op
BenchmarkSqliteAppend-4 1 4681380500 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 37.165s
gogog22510 2021-03-10 03:33:16
那個套件不支援append.... 我找了另一個
https://pkg.go.dev/github.com/eclesh/recordio
gogog22510 2021-03-10 03:33:23
這是結果
goos: linux
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
cpu: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
BenchmarkRecordIOProtobufWrite-4 5654 198166 ns/op
BenchmarkProtobufWrite-4 642 1680291 ns/op
BenchmarkProtobufBufWrite-4 4791 243438 ns/op
BenchmarkProtobufArrayWrite-4 8821 138341 ns/op
BenchmarkSqliteWrite-4 39 33877995 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 6.208s

2021-03-08

whitefloor 04:08:16
我想請問我push 到 development說我身份驗證失敗 是因為用clone複製專案的關係嗎==
wagaru 11:26:10
嗨,大家有空的可以幫忙 review 一下~

https://github.com/Ptt-official-app/Ptt-backend/pull/120

#120 add repository function for board post limit information

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/116|#116> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/116|#116> • <https://github.com/Ptt-official-app/Ptt-backend/issues/63|#63> *:pick: 變更內容 / Details of Changes* • 參考 <https://github.com/Ptt-official-app/go-bbs/issues/61|go-bbs的討論> • 在 repository/board.go 新增以下 mock interfaces: • PostsLimitedBoardRecord • LoginsLimitedBoardRecord • BadPostLimitedBoardRecord • repository/repository.go 的 Repository interface 提供以下 method • GetBoardPostsLimited() • GetBoardLoginsLimited() • GetBoardBadPostLimited()

陳昱廷 11:36:48
https://github.com/Ptt-official-app/Ptt-backend/pull/122

#122 修正包名

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/121|#121> • close #0 *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/17|#17> *:pick: 變更內容 / Details of Changes* 變更包名

陳昱廷 11:38:45
今天會先把包名修正在 merge 主線
陳昱廷 11:39:34
https://github.com/Ptt-official-app/Ptt-backend/issues/73 目前需要人幫忙

#73 [主線] [PTT] 實作 route_boards_treasures_test.go

實作細節 / Details of Implement 實作 <https://github.com/Ptt-official-app/Ptt-backend/issues/36|#36> 內的討論進行實作 期程 / Schedule 討論時間: 三天 實作時間: 一天 確認時間: 一天 相關文件 / Documents route_boards_treasures.go route_boards_treasures_test.go 備註: pr 請指向 development_enable_lint branch

J 個我想要試試看,謝謝。
陳昱廷 11:40:28
有興趣者可以直接 tag 或者 私訊我

2021-03-09

陳昱廷 12:03:33
https://github.com/Ptt-official-app/Ptt-backend/pull/111

#111 增加 route_users 相關註解

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

陳昱廷 12:03:43
這個根據討論修改了
陳昱廷 12:03:50
大家有空可以繼續討論
如果是 /* */ 這樣的註解 go doc 能順利生成嗎?
gogog22510 12:04:06
@gogog22510 has joined the channel
陳昱廷 15:11:57
我看兩小時前有一個 go-bbs 到0.3 版
陳昱廷 15:12:05
但是我拉不下來
pichuchen 17:21:05
剛剛查一下, windows 上面的 go 居然會 build _unix.go

2021-03-10

pichuchen 00:48:55
目前很粗糙的測試結果出來了
```$ go test -bench=.
goos: darwin
goarch: amd64
pkg: github.com/Ptt-official-app/go-bbs
BenchmarkProtobufWrite-4 100 12488268 ns/op
BenchmarkProtobufArrayWrite-4 667 1519035 ns/op
BenchmarkSqliteWrite-4 79 16020372 ns/op
PASS
ok github.com/Ptt-official-app/go-bbs 4.517s```
https://github.com/Ptt-official-app/go-bbs/blob/feature/user_articles/user_article_test.go
whitefloor 03:48:18
各位好,請有空的人麻煩幫我Review,感謝
https://github.com/Ptt-official-app/Ptt-backend/pull/123

#123 實作個人看板歷史文章

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/59|#59> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/59|#59> *:pick: 變更內容 / Details of Changes* • 實作 http/usecase/repository • 測試 http/usecase

Julian Chu 2021-03-10 16:44:07
這個api 應該要看那段文件? 我沒找到的說
whitefloor 2021-03-10 20:22:16
然後那個是一次實作完三個子ISSUE嗎?XD
whitefloor 2021-03-10 20:25:46
對的 我晚點把說明改一下
Julian Chu 2021-03-10 21:37:12
搞笑了,我以為是”個人看板”歷史文章XD
XDDDDD

個版的歷史文章不就是看板文章了?
不過確實以前不需要這項功能是因為大家會把自己發過想留的文轉回自己個版
whitefloor 2021-03-11 14:03:36
我有在doc加上修改建議了,大家找這個好像都找不到XDDDDDD
whitefloor 2021-03-11 14:03:42
我也是剛好矇中才看到的
whitefloor 2021-03-15 01:02:04
hi 請問這個PR還有需要改進的地方嗎
Julian Chu 2021-03-15 01:12:36
approved了,  我會建議下次 re-request a PR review  , 這樣 reviewer才會知道你完成了
whitefloor 2021-03-15 01:35:21
好的,感謝
whitefloor 2021-03-15 01:51:13
原來還有這種功能,我以為push之後在issue的member都會看到XD
Julian Chu 2021-03-15 02:33:01
會看到啊 只是不能確定修改完成了沒XD
👀 1
wagaru 11:00:51
https://github.com/Ptt-official-app/Ptt-backend/issues/63 這個issue有人要試試嗎?還剩usecase跟delivery🙂

#63 [主線] [PTT] 實作顯示發文限制

*實作細節 / Details of Implement* 根據目前架構,應該分成 `delivery/http` `usecase` `repository` 三個子 ISSUE 下去實作。 ☐ http 部分請依照文件實作並且有初步的 testcode。 ☐ usecase 部分應該是直接將 repository 的結果輸出即可。 ☐ repository 因為 go-bbs 可能還沒完成,因此需要先 mock 一個暫時性的結果等待 go-bbs 完成之後進行串接。 • ISSUE <https://github.com/Ptt-official-app/Ptt-backend/issues/116|#116> *期程 / Schedule* • 討論時間: 一週, 到 3/9 • 實作時間: 一週, 到 3/16 • 確認時間: 一週, 到 3/23 注意這個 endpoint 是 `/v1/boards/{{board_id}}/information` *相關文件 / Documents* <https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k|PTT 後端系統協定>

gogog22510 2021-03-10 11:36:18
我可以試試
好的,那記得先看開子issue再實作
陳昱廷 15:11:58
https://github.com/Ptt-official-app/go-bbs/pull/68

#68 修正 windows build fail 問題

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/67|#67> *:memo: 相關的 issue / Related Issues* 無 *:pick: 變更內容 / Details of Changes* 增加了 windows build 的支援。

陳昱廷 15:12:12
增加了對 windows 支援

2021-03-11

pichuchen 10:50:56
go-bbs v0.3.3 修正好 windows 的tag 推上去了
陳昱廷 16:38:34
https://github.com/Ptt-official-app/Ptt-backend/pull/129

#129 更新至0.3 與修正 lint

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/128|#128> • close #0 *:memo: 相關的 issue / Related Issues* *:pick: 變更內容 / Details of Changes* 增加對 go-bbs 0.3 support 跟修正 lint

陳昱廷 16:40:56
目前 pr 在 ubuntu 跑 golangci-lint 會 fail
陳昱廷 16:41:16
希望有一個人可以幫我拉到 ubuntu 作測試
手邊剛好有 ubuntu 20.04 
我要測試的話是要先 clone 你的專案 
然後 go build . 嗎?
Julian Chu 2021-03-12 00:53:01
go.sum 的問題
Julian Chu 2021-03-12 00:53:50
用 ./make.bash deps或 make.bat deps
更新 go.sum後 commit 應該就可以了
修正好了
陳昱廷 16:46:24
windows 上測試是沒問題的 build test 都能通過

2021-03-12

陳昱廷 11:03:51
經過了三個星期終於修好 lint,感動的一瞬間
❤️ 4 👍 3 🙌 2 🎉 1
titaneric 12:10:30
https://github.com/Ptt-official-app/go-bbs/pull/70 上面PR需要幫忙review,麻煩一下

#70 Add serialization for BoardHeader

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/65|#65> *:pick: 變更內容 / Details of Changes* • 補足BoardHeader剩餘欄位 • 新增對應測試,但因原本的測試資料中在BrdName及title這兩個field中有塞其他資料(NewBoardHeaderWithByte才要用split取\x00之前的),所以沒辦法全測,改測前兩個。

Lester 14:39:42
https://github.com/Ptt-official-app/Ptt-backend/pull/134
這個 PR 需要幫忙 Review ,謝謝大家。

#134 實作 #route board treasures test

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/73|#73> *:pick: 變更內容 / Details of Changes* • Implement MockUsecase.GetBoardTreasures • Added TestFetchBoardTreasures

2021-03-13

gogog22510 10:56:40
https://github.com/Ptt-official-app/Ptt-backend/pull/127
需要幫忙 Review PR,謝謝大家

#127 Implement get board information for usecase and delivery/http

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/126|#126> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/63|#63> *:pick: 變更內容 / Details of Changes* • 實作 http/usecase • 測試 http/usecase

✅ 1

2021-03-14

nickyanggg 08:44:19
再麻煩大家幫忙 review 一下,感謝~
https://github.com/Ptt-official-app/Ptt-backend/pull/138

#138 實作顯示看板資訊細部資訊

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/137|#137> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/137|#137> *:pick: 變更內容 / Details of Changes* • delivery/http/route.go • delivery/http/route_boards.go 中新增 getBoardSettings、marshalBoardHeaderSettings

👀 1
pichuchen 17:30:02
開發站上面的程式更新了

2021-03-15

whitefloor 00:50:05
hi 請問 #123這個PR還有需要改進的地方嗎
陳昱廷 11:54:42
https://github.com/Ptt-official-app/Ptt-backend/pull/139

#139 Development enable lint

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/88|#88> • close #0 *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:pick: 變更內容 / Details of Changes* 修正 lint 跟合併了 development

陳昱廷 11:55:06
這個合併好以後就會把兩條線合再一起
陳昱廷 11:55:30
之後不管事測試還是開發都只要對 development 送 pr 就好
🙌 1 👍 2
陳昱廷 17:01:01
https://github.com/Ptt-official-app/Ptt-backend/pull/140

#140 Development enable lint

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/90|#90> *:pick: 變更內容 / Details of Changes* 二合一

❤️ 1 ✅ 1
pichuchen 17:38:48
因為enable lint 的部分已經完成了,所以接下來 development branch 預設都會跑 lint 了,感謝大家的努力 🙏。
🙌 3 👍 2

2021-03-16

陳昱廷 15:52:54
https://github.com/Ptt-official-app/Ptt-backend/pull/142

#142 增加route_users 相關註解

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/110|#110> *:pick: 變更內容 / Details of Changes* 增加註解

👀 1
陳昱廷 15:53:14
之前的註解討論我另開了一個 pr 修正
陳昱廷 15:53:30
舊的因為大改版我關掉了
陳昱廷 15:53:39
直接從這邊重新討論
pichuchen 20:25:24
本週的影片送出了
👀 2 🙌 1 👍 1
pichuchen 22:14:51
目前 pttbbs 有使用的 config flag 有
```
> USE_COOLDOWN
> HOTBOARDCACHE
> NOKILLWATERBALL```
這三個,另外目前台大機房似乎還不支援IPv6,尚未有時程表。

2021-03-17

Wombat007 00:54:47
@chihhao.wang007 has joined the channel
陳昱廷 16:36:56
註解的部分大家覺得是要都用 // 還是用 /**/ 還是混用?
gogog22510 2021-03-18 05:25:57
我覺得可以function裡面用//, function外用/**/
目前我沒有看到文件是說哪邊建議用 /**/ 的
gogog22510 2021-03-18 11:40:15
go source code 好像都是 // 可能就用//囉

2021-03-18

pichuchen 11:37:12
借問一下,有建議的取得磁碟剩餘空間的作法嗎?
gogog22510 2021-03-19 12:27:44
不知道這個可不可以
https://stackoverflow.com/questions/20108520/get-amount-of-free-disk-space-using-go
我公司也是用類似的作法
我有看到這篇,後來我實作的方法是直接call df -h (不是在這個專案)
pichuchen 11:37:15
golang
pichuchen 11:37:48
我還滿驚訝在 runtime package 裡面居然沒有...

2021-03-19

陳昱廷 18:08:38
https://github.com/Ptt-official-app/go-bbs/pull/74

#74 修正 OpenFavFile err 未處理錯誤

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/39|#39> *:pick: 變更內容 / Details of Changes* OpenFavFile 錯誤處理 增加對 ReadUserFavoriteRecordsFile test

✅ 1
陳昱廷 18:08:44
大家幫忙 review 一下

2021-03-20

craftwar 13:02:33
@craftwar.open has joined the channel
pichuchen 14:32:48
https://github.com/Ptt-official-app/Ptt-backend/pull/138

這個 PR 徵人 Review 中喔

#138 實作顯示看板資訊細部資訊

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/137|#137> *:memo: 相關的 issue / Related Issues* • <https://github.com/Ptt-official-app/Ptt-backend/issues/137|#137> *:pick: 變更內容 / Details of Changes* • delivery/http/route.go • delivery/http/route_boards.go 中新增 getBoardSettings、marshalBoardHeaderSettings

👍 1
pichuchen 15:21:25
https://github.com/Ptt-official-app/go-bbs/pull/75/files

然後使用者文章的掃描有出現了

2021-03-22

陳昱廷 09:33:38
https://github.com/Ptt-official-app/Ptt-backend/pull/142

#142 增加route_users 相關註解

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/Ptt-backend/issues/110|#110> *:pick: 變更內容 / Details of Changes* 增加註解

陳昱廷 09:35:28
https://github.com/Ptt-official-app/go-bbs/pull/74

#74 修正 OpenFavFile err 未處理錯誤

*:clap: 解決掉的 issue / Resolved Issues* • close <https://github.com/Ptt-official-app/go-bbs/issues/39|#39> *:pick: 變更內容 / Details of Changes* OpenFavFile 錯誤處理 增加對 ReadUserFavoriteRecordsFile test

👀 1
陳昱廷 09:35:33
這兩個再麻煩大家了

2021-03-23

pichuchen 19:27:48
本週很短的影片寄出了
👍 1

2021-03-29

pichuchen 09:32:30
https://github.com/Ptt-official-app/Ptt-backend/issues/148

目前這個 ISSUE 大致上走到哪邊了?

#148 [主線] [PTT] 實作使用者設定 -- 修改usecase和repository

*實作細節 / Details of Implement* • 修改 internal/usecase/user.go • 修改GetUserPreferences內的data • 修改 internal/repsitory/user.go • 新增dummy function給usecase *期程 / Schedule* • 討論時間: 兩天, 到 3/25 • 實作時間: 兩天, 到 3/27 • 確認時間: 兩天, 到 3/29 *相關文件 / Documents* 主issue: <https://github.com/Ptt-official-app/Ptt-backend/issues/62|#62> <https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k|PTT 後端系統協定>

pichuchen 13:10:24
看板細部資訊的 usecase 和 repository 好像已經好了?
nickyanggg 2021-03-29 13:27:39
恩恩 看起來應該是直接用之前寫好的就行
pichuchen 13:10:32
https://github.com/Ptt-official-app/Ptt-backend/issues/65

#65 [主線] [PTT] 實作顯示看板資訊細部資訊

*實作細節 / Details of Implement* 根據目前架構,應該分成 `delivery/http` `usecase` `repository` 三個子 ISSUE 下去實作。 ☑︎ http 部分請依照文件實作並且有初步的 testcode。 • ISSUE <https://github.com/Ptt-official-app/Ptt-backend/issues/137|#137> ☐ usecase 部分應該是直接將 repository 的結果輸出即可。 ☐ repository 因為 go-bbs 可能還沒完成,因此需要先 mock 一個暫時性的結果等待 go-bbs 完成之後進行串接。 注意這個 ISSUE 指的是「細部資訊」 `/v1/boards/{{board_id}}/settings` *期程 / Schedule* • 討論時間: 一週, 到 3/9 • 實作時間: 一週, 到 3/16 • 確認時間: 一週, 到 3/23 *相關文件 / Documents* <https://docs.google.com/document/d/18DsZOyrlr5BIl2kKxZH7P2QxFLG02xL2SO0PzVHVY3k|PTT 後端系統協定>

2021-03-30

pichuchen 18:00:40
最近好像整體進度變慢很多,不知道目前大家有什麼意見想提出來討論的?
pichuchen 20:03:21
今天影片會比較晚,我整理一下目前名單和工作進度這樣,避免影片內容太空
👍 1

2021-03-31

陳昱廷 15:44:19
https://github.com/Ptt-official-app/Ptt-backend/issues/151

#151 [主線] [PTT] 將 readme.md 調整對開發者更易上手的格式

*實作細節 / Details of Implement* 目前的話,readme.md 皆是以歷史背景出發點再說的。 開發者對於如何參與這個專案是一頭霧水的。 目前我個人看法是應該直接把 milestone 擺在顯眼的地方,並且每個 isssue 都應該要確實的 assign 給某個要接的人。 避免出現明明這個 issue 有人再做卻要看討論才知道。 然後應該要把時程表放在顯眼的地方,哪邊做了哪邊沒做,方便開發者知道目前進度。 *期程 / Schedule* 無,討論到大家滿意為止 *相關文件 / Documents* README.md

陳昱廷 15:44:41
最近比較忙,上星期有提到這件事情
陳昱廷 15:44:51
所以我弄了一些建議給大家討論
pichuchen 17:25:06
本週的影片寄出了,如果沒收到的話再檢查一下垃圾信箱
👀 3