Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TODAY 看世界(?) 是我們在看扣啦!
Search
LINE Developers Taiwan
PRO
June 17, 2025
Technology
0
1.5k
TODAY 看世界(?) 是我們在看扣啦!
Speaker: Jeffery Bai, Min Chang
Event: LINE TECH FRESH 畢業分享會 2025
LINE Developers Taiwan
PRO
June 17, 2025
Tweet
Share
More Decks by LINE Developers Taiwan
See All by LINE Developers Taiwan
Live Activities in LINE
line_developers_tw
PRO
0
9
Neumorphism x Liquid Glass
line_developers_tw
PRO
0
10
猜你喜歡 – 打造高度擴展的個人化電商推薦
line_developers_tw
PRO
0
22
打造新電商搜尋體驗- 搜尋意圖辨識
line_developers_tw
PRO
0
7
比價群組
line_developers_tw
PRO
0
11
從混亂到優雅,讓專案不再失控:ATDD 與 Clean Architecture 的後端實戰之路
line_developers_tw
PRO
0
10
2049智能共存:透過LINE Bot Agent迎接後人類時代
line_developers_tw
PRO
0
39
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.4k
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
1.5k
Other Decks in Technology
See All in Technology
Obsidian応用活用術
onikun94
2
490
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
480
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.5k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
410
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
3
550
Agile PBL at New Grads Trainings
kawaguti
PRO
1
420
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
440
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
390
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
440
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
160
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
210
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Cult of Friendly URLs
andyhume
79
6.6k
Done Done
chrislema
185
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Balancing Empowerment & Direction
lara
3
620
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Six Lessons from altMBA
skipperchong
28
4k
Typedesign – Prime Four
hannesfritz
42
2.8k
It's Worth the Effort
3n
187
28k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Transcript
TODAY 看世界(?) 是我們在看扣啦! 上班到底都在看什麼勒?
Jeffery Bai LINE TODAY | TECH FRESH Education • Master
of Information Management @ NTU • Research Field: NLP, RecSys Experience • 2024 | TECH FRESH @ LINE Taiwan • 2023 | Data Scientist Intern @ MoBagel • 2021 | Data Analyst Intern @ USPACE
01 TODAY 要看什麼? CONTENT 02 演算法知道你愛看啥!? 03 讓你的架構乾淨起來 04 從0開始的
Refactor 生活
TODAY 要看什麼? 讓你逛不完的 LINE TODAY 產品 TODAY 看世界 國際 娛樂
10M↾ users 50M↾ traffic 3 regions Section 1
優質新聞節目 TODAY 看世界, TODAY 財知道, … 精彩賽事轉播 NBA, UBA 大專籃球,
CBL 中職,... 其他有趣內容 好康優惠, 電影聲量榜, 動漫票選,...
LINE MUSIC LINE SPOT
QA Data Engineer PM 大量的內容=超大量資料 Data Team 在做什麼? Machine Learning
Engineer ETL pipelines, Dashboard Recommendation Scrum!!!
SECTION 02 演算法知道你愛看啥!? 真假!? 什麼是「個人化推薦系統」? (Personalized Recommender System)
協同過濾 (Collaborative Filtering) 相似商品 (Similar Items) Source: Recommender Systems in
Machine Learning: Examples
協同過濾 (Collaborative Filtering) 相似商品 (Similar Items)
如何做推薦模型?先從資料開始! Define Data Spec 資料情境、定義 Feature Engineering 前處理、特徵工程 Model Design/Training
模型設計、訓練 User Features Item Features Interactions
可以上線了嗎?不行!先做 A/B Test A/B Testing 線上測試、更新 What to test? How
to test? How to Evaluate? 決定實驗組 vs. 對照組 決定使用者分群、實驗時間區間 決定衡量指標、通過條件
學校專案 vs. 業界實務 學校 實務 資料 小量、乾淨、定義清楚 巨量、複雜 → 資料分析
!!! 情境 固定、單純、受控制的命題 每天變動的環境 → 商業邏輯 團隊 小團隊、成員單一 多人協作、迅速迭代 → 表達呈現能力 規模 小規模、實驗性、會動就好 大規模開發維護 → 乾淨的 Code
Min Chang LINE TODAY | TECH FRESH MS @NCU IM
2024 ~ 2025 TECH FRESH @LINE Taiwan 2022 ~ 2024 Freelancer @Gamma Technologies
那專案架構上呢? 通常單次使用 更新頻率不高 多人一起頻繁修改 系統需要長期規劃 好擴充/鬆耦合
SECTION 03 什麼 Clean Architecture前端也能用嗎? 讓你的架構 乾淨起來
今晚我想來點 Clean Architecture • 核心理念:關注點分離 • 核心 (黃色/紅色):業務規則 - 系統中最穩定、最重要的部分。(放在下面)
• 外層 (藍色/綠色):技術細節 - 框架、資料庫、UI... 這些都是可以替換的工具。 (放在下面) • 由外向內的依賴關係 • Domain, Use case, Adapter, Framework
None
SECTION 04 從例子看起,慢慢搬成乾淨架構 從0開始的Refactor生活
LINE Music login Web 登入 SSO Server 驗證 session 登入成功
Any errors Session 合法 是否在服務區 顯示錯誤 訊息 …
什麼?加入LIFF登入 ? Session LIFF Token
什麼?加入LIFF登入 ? Web 登入 SSO Server 驗證 session 登入成功 Any
errors Session 合法 是否在服務區 顯示錯誤 訊息 …
什麼?加入LIFF登入 ? Web 登入 SSO Server 驗證 session 登入成功 Any
errors Session 合法 是否在服務區 顯示錯誤 訊息 …
原本的 SSO登入 登入 驗證 Session & 身分 驗證 SSO Session
保持不動加入LIFF登入看看?
None
Domain 聚焦在「核心概念」和「不變商業規則」上。 定義與操作那些與應用場景無關、永遠成立的業務邏輯。 User Domain
Domain 聚焦在「核心概念」和「不變商業規則」上。 定義與操作那些與應用場景無關、永遠成立的業務邏輯。
Domain 聚焦在「核心概念」和「不變商業規則」上。 定義與操作那些與應用場景無關、永遠成立的業務邏輯。
Use case 系統的業務規則和應用特定的業務邏輯 獨立於外部框架,使得業務邏輯可以在不受外部依賴變化影響的情況下被測試和維護 Login Authentication
Use case 系統的業務規則和應用特定的業務邏輯 獨立於外部框架,使得業務邏輯可以在不受外部依賴變化影響的情況下被測試和維護 Get Profile Get Access Token Validate
Session
Use case 系統的業務規則和應用特定的業務邏輯 獨立於外部框架,使得業務邏輯可以在不受外部依賴變化影響的情況下被測試和維護 用抽象取代實作 定義Delegator介面
Use case 系統的業務規則和應用特定的業務邏輯 獨立於外部框架,使得業務邏輯可以在不受外部依賴變化影響的情況下被測試和維護 不需要去判斷是哪種登入,交由delegator的實作決定
Use case 系統的業務規則和應用特定的業務邏輯 獨立於外部框架,使得業務邏輯可以在不受外部依賴變化影響的情況下被測試和維護 Handle Authentication 也同理
Adapter 將外部環境與業務流程組合
Adapter 將外部環境與業務流程組合 SSO LIFF Delegator 實作 SSO Delegator LIFF Delegator
Adapter 將外部環境與業務流程組合 最後來用hook與頁面整合 React
Framework 包含了選擇的第三方工具(框架、函式庫、驅動程式) 具體實現,而不是抽象邏輯 UserProfileAvatar.tsx
UserProfileAvatar.tsx useLoginHandle r Framework Adapter Use case SSODelegator LiffDelegator Delegator
login User Domain handleAuthenticatio n
None