Dcard Backend 實習心得
文章推薦指數: 80 %
嗨大家好,我是Justin,目前就讀清華大學資訊工程學系四年級,在Dcard 做backend intern 也半年了,想跟大家分享在Dcard 實習這半年來的心得~ 在 ...
0%
嗨大家好,我是Justin,目前就讀清華大學資訊工程學系四年級,在Dcard做backendintern也半年了,想跟大家分享在Dcard實習這半年來的心得~
在進入Dcard之前,因為已經有些後端開發經驗,但是並沒有機會接觸到高流量的系統是如何設計與開發的。
因此找實習時,主要就是希望能接觸到大型系統開發以及能使用到最新技術。
Dcard在這方面算是非常符合,流量的部分相信不用多做說明,使用的技術部分也是相當的新,包含Golang、Kubernetes、Microservices、gRPC以及OpenTelemetry這些雲原生生態系最熱門技術Dcard都有在使用!
DcardBackendTeam日常
開發方面,DcardBackend目前主要使用Golang作為開發語言,但還是有少部分比較早期的repo使用NodeJS。
目前都採用Microservices架構,對內服務使用gRPC,對外則是一般的RESTfulAPI。
而Backend內部有一套codegeneratingtool,可以幫助避免boilerplatecode的撰寫,讓工程師們只需要專注於businesslogic與architecturedesign上。
資料庫主要使用PostgreSQL以及Redis。
Infra的部分則是Kubernetes。
在DcardBackend會用到很多新的技術,例如CaptureDataChange(CDC)就是我在Dcard才第一次聽到並且使用到的技術。
在Microservices中,最難處理的就是跨services的資料同步問題。
早期Dcard內部是使用event-driven的方式,也就是透過applicationlayer發送訊息到messagequeue中,再由另一端的servicesubscribe並消費這些events。
使用event-driven的麻煩之處在於工程師還要自己定義event的形式並且撰寫發送與接收的邏輯,另外要確保資料的寫入與event是否有同時寫到messagequeue中也是一個難點。
現在DcardBackend都大量改用CDC來處理這些資料同步化的問題,利用PostgreSQL的logicalreplication功能,工程師就只需要專注在訂閱資料的變化即可。
我認為在Dcard實習很棒的一點在於,這邊的工作環境不會讓你感受到因為你是實習生,而就不看重你的意見,或是會讓你感到不敢發言,在這裡各種意見都是歡迎的,並且大家都會很踴躍的提出看法。
舉例來說,因為DcardBackend常常會有一些新技術的使用或是架構上的改進,因此backend在每週五都會有一次syncup會議進行分享與討論,在這些會議上我也常常能提出很多看法意見~
在DcardBackend,主管也不會因為你是實習生,而派遣一些不重要的工作給你。
像我現在就獨立的待在一個deliveryteam裡面,學習與PM溝通開出你認為可以實作的spec,與Android/iOS/Web工程師們溝通適合的API並且常常會需要記得為他們考慮向下相容的問題。
我目前做過最有趣的專案是抽卡匹配算法的改善,因為自己本身是就是打競賽的,從沒想過真的有一天能將競賽用到的Dinic演算法用在實務的backend開發上,真的是很有意思。
但如果平時都自己待在deliveryteam,要怎麼知道自己的架構設計好不好呢?在開發大型專案之前,會透過舉辦DesignReview的形式,大家自由的參加review來討論這樣的設計是不是有任何改進的地方。
若在設計上面有任何疑問,公司一些比較資深的前輩或是主管也都非常好相處,有任何不懂的地方就去提問、討論,他們都能提供很棒的建議!
在DcardBackend每兩週會舉辦一次讀書會,像是我剛加入時剛好開始讀一本叫做DesigningData-IntensiveApplication的書,最近也剛讀完整本書了。
書中講到的各種分散式系統架構下重要的理論,真的是讓我受益良多。
我也在讀書會中負責分享了其中的一個章節。
對這本書有興趣的也可以去看我的部落格文章,雖然我還剩下很多章節的文章還沒補完😢。
另外,每週五下午會舉辦developer’ssession,不同team的工程師出來分享一些開發上的知識。
例如backend分享過cache-control的機制讓前端工程師了解為什麼資料不會立即更新;Android之前分享過如何處理emoji字數統計的問題。
Dcard公司福利
Dcard公司福利也是很讚的一部分,吃不完的零食,冰箱飲料有午後時光,每週二五公司請客一杯手搖,每週二還會提供午餐,每週五提供下午茶,特殊節日也會送一堆禮物~
另外公司的上班時間也很彈性,基本上表定時間是上午10點到晚上7點,但是有事的話都可以提早離開時數自己補。
這樣的制度對還在上學的我真的很讚,不用特地為了考兩小時的期中考請假,直接提早兩小時去上班,在公司直接考試完再繼續工作XD!
投DcardBackend實習
如果你有興趣投DcardBackend實習但擔心不知如何準備的,可以去看我的另一篇文章2021-Dcard-Backend-Intern-面試經驗分享,相信會對你的準備很有幫助的!有任何疑問也歡迎來找我詢問~
最後,如果你喜歡這篇文章,或是文章對你有幫助的話,可以幫我按個喜歡、或是留言!你的支持就是我寫作的最大動力。
有任何想問的問題也可以在底下留言喔~
延伸文章資訊
- 1有人去過Dcard的面試嗎? - 工作板
之前面試過實習給我的印象非常差問的問題不僅不專業還沒禮貌我說到有使用ptt,對方就回我「你是肥宅?」 我都沒說你們是低能卡了^_^. B152021年8月3日.
- 2344 天的Dcard 奇幻旅程!2021 Web Frontend Intern 實習心得
在醞釀這篇文章的時候,就一直在想可以分享哪些過去實習生的心得沒有提及過事情,最後就想到我這個「非本科系進攻Dcard 工程團隊」的勵志故事應該可以激勵到不少捧油。
- 3Dcard Lab - 【應徵Dcard 實習生必看攻略】 不要和PM 說
【應徵Dcard 實習生必看攻略】 不要和PM 說,小編偷偷和你們分享今年的實習心得。 很有心得男同學和大家分享這次的面試過程,今年沒上的人也不要氣餒 ...
- 4Dcard Backend 實習心得
嗨大家好,我是Justin,目前就讀清華大學資訊工程學系四年級,在Dcard 做backend intern 也半年了,想跟大家分享在Dcard 實習這半年來的心得~ 在 ...
- 5Dcard 社群行銷實習生— 面試經驗與技巧分享 - Medium
當時在個人社群分享在Dcard 實習的點滴後,被很多認識的朋友私訊面試準備過程和工作內容,感受到大家對這份工作的興趣,因此才有了這篇的產生呀✨如果有 ...