9. Replace Weather Bot System
CAUSE
Reason for replace
REQUIREMENT
Of Weather Bot
CONS
Of Weather Bot System
PROS
Of Weather Bot System
SOLUTION
For New System
10. Cause
Difficult
To scale, change, add more Bot
Update API
To new Message API (version 2.0)
Old Language
Using programming language (PERL)
Change Provider
To Weather Forecast Content Provider
Not Enough
Monitor System is not enough
Others
…
17. Solutions
Break
&
Build
Devs always want to break and build instead of
modification
Having a balance point between Time and Dream
Some parts are recreated, some parts are
modified but recreated later
18. Solutions
Project Quality
Use Git Process
Review
Unit Test, Intergration Test (for Developer)
Auto Test (for Tester)
Monitoring System (System and App Logic)
Flow must be reviewed before coding
Code must be reviewed before merging
Xin chào tất cả các bạn, mình tên Tuấn đến từ line corp. Trong buổi hôm nay mình sẽ chia sẻ các kinh nghiệm về việc nâng cấp, thay thế một hệ thống đã có. Các vấn đề và giải pháp focus vào weather bot tuy nhiên mình tin với các hệ thống khác ko ít thì nhiều cũng sẽ gặp vài vấn đề tương tự.
Trước tiên mình trình bay qua về line bot, weather bot sau đó tập trung về vấn đề – giải pháp trong weather bot.
Từ 2,3 năm trở lại đây thuật ngữ chat bot xuất hiện như xu hướng liên quan đến mạng xã hội. Line bot có thể hiểu là chat bot của line. Các bài báo PR thường có xu hướng cao siêu hoá vấn đề, bản chất nhìn về mặt thiết kế hệ thống, một chat bot khá đơn giản.
Tạo ra một con bot mới rất đơn giản, các bạn tạo hệ thống nhận message và phản hồi message nhận được là xong một con bot. Việc con bot thông minh hay không tuỳ thuộc vào hệ thống bot mà các bạn phát triển.
Cơ bản message phản hồi có thể chia làm 3 loại:
Dựa trên AI
Dựa trên rule base
Dựa trên cơm
Weather bot phát triển dựa trên rule base.
Weather bot là gì tên cũng hình dung ra được, con bot cung cấp thông tin thời tiết
Tại sao tôi phải nâng cấp, thay thế một hệ thống đang chạy ổn định. – Quay lại vấn đề của nokia, CEO của nokia sau khi bán cho micrsoft đã nói một câu nói rất đau xoát và nổi tiếng: Chúng tôi không làm gì sai cả, nhưng chúng tôi đã thất bại.
Việc không cần thay đổi chỉ xảy ra trong môi trường độc quyền ko cạnh tranh – không tồn tại trong thế giới công nghệ.
Weather bot hiện tại ko có bot khác cạnh tranh trên hệ thống của Line nhưng ko nằm ngoài quy luật vẫn luôn cần nâng cấp, cải thiện (mục tiêu tối thượng: luôn tìm cách đem lại trải nghiệm tốt hơn cho user)
Hệ thống phức tạp: các thành phần đều móc nối đến nhau khó nâng cấp, sửa code hoặc add thêm chức năng, khó scale.
Tại line chúng tớ có rất nhiều chuyên gia tránh được nhiều đường vòng.
Phân rã hệ thống: phân tách layer, định vị rõ từng thành phần trong mỗi layer. 1, 2 người làm sau đó cả team ngồi review, phân tích để đưa ra quyết định layer nào hoặc thành phần nào sẽ được nâng cấp. Hoạc thay thế trước.
Nâng cấp, thay thế từng thành phần nhỏ test deploy. thay thế các thành phần background trước.
KN: tránh deploy quá nhiều thứ cùng lúc không control được chất lượng.
Document được tạo ra từ code có khá nhiều điểm khác biệt so với spec dựng từ end-user: thống nhất đây là chức năng ko phải bug.
Trong quá trình thay thế hệ thống bọn tớ loại bỏ vài chức năng ko phải là bug này :))
End user nghĩ phần mềm version cao tốt hơn phần mềm version thấp -> coder mới hiểu ko phải phần mềm version cao đều tốt hơn phần mềm version thấp.
- Để triển khai được unit-test thành công: cần chọn con người trước, trainning tư tưởng về unit-test: dependency, stub, mock, code covarage.
- Sự khác nhau giữa unit-test vs intergration test.
- Hiện tại dự án code covarage đạt > 90%. tập trung sang branch covarage.
Với dự án ít dev ko cần care nhiều về git process, nhưng với các dự án nhiều dev, phát triển nhiều chức năng cùng lúc, trình tự deploy các chức năng không đồng nhất -> nếu ko có quy trình git sẽ có rất nhiều vấn đề:
Code conflict.
Test ok - demo cho khách hàng thì lỗi
Release chức năng sai plant.
Sau khi thay thế hê thống -> số lượng user tăng nên và tập đoàn quyết định tăng số lượng bot