Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
155,08 KB
Nội dung
TRƯ ỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP FULL-STACK WEB DEVELOPER Công ty thực tập: VNG Corporation Người phụ trách: Nguyễn Tiến Tùng Thực tập sinh: Hồ Nguyên Bảo Tp Hồ Chí Minh, tháng 01 năm 2021\ LỜI MỞ ĐẦU Hiện nay, sống kỷ nguyên bùng nổ Cơng nghệ thơng tin Thời đại có nhiều phương thức để truyền đạt thông tin, việc truyền đạt thơng tin cơng nghệ số phổ biến dễ dàng tiếp cận nhiều người Các website giúp tổ chức đạt hiệu kinh tế, trị nhờ vào khả truyền tải thu nhận thơng tin Với nhu cầu xây dựng website ngày tăng công nghệ hỗ trợ xây dựng website ngày xuất nhiều, em định thân theo hướng động Sau ba năm học đại học, để thân áp dụng kiến thức có đạt kinh nghiệm thực tế môi trường chuyên nghiệp, em định thực tập VNG Corporation – môi trường động, sáng tạo chuyên nghiệp – nơi giúp em phát triển với định hướng thân Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo LỜI CẢM ƠN Trân trọng gửi lời cảm ơn VNG Corporation tạo điều kiện cho em có hội thực tập cơng ty Nhờ dẫn nhiệt tình anh chị team, em tiếp thu kiến thức quan trọng để tham gia dự án thực tế Chân thành cảm ơn anh Nguyễn Tiến Tùng, anh Đỗ Minh Thiện, anh chị nhóm ZStudio hướng dẫn cho em mơi trường làm việc, kiến trúc kĩ thuật có team kĩ lập trình để hồn thành tốt dự án Xin cảm ơn thầy khoa Cơng nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện cho em làm báo cáo Tp Hồ Chí Minh, 01 tháng 01 năm 2021 Hồ Nguyên Bảo Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo NHẬN XÉT CỦA KHOA ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… ………………………………………………………………………………………………………… Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN Chương 1: Giới thiệu công ty thực tập Giới thiệu VNG Corporation Sản phẩm công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc 2.2 Tìm hiểu React Preact 2.3 Tìm hiểu xây dựng Java Web API 2.4 Tìm hiểu xây dựng microservice server 10 Thực Project 12 Lịch làm việc 12 Chương 3: Chi tiết Project 14 Project Group Review 14 1.1 Giới thiệu 14 1.2 Thực 15 1.3 Kết .16 Project FCM Thrift Service 16 2.1 Giới thiệu 16 2.2 Thực 16 2.3 Kết .17 TÀI LIỆU THAM KHẢO 18 TỔNG KẾT 19 Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo Chương 1: Giới thiệu công ty thực tập Giới thiệu VNG Corporation VNG (viết tắt Vinagame) công ty công nghệ Việt Nam, thành lập vào năm 2004 với mảng sản phẩm Trị chơi trực tuyến, Nền tảng kết nối, Thanh toán điện tử Dịch vụ điện tốn đám mây Cơng ty có văn phịng Hồ Chí Minh, Hà Nội, Đà Nẵng, Thái Lan Myanmar với số lượng nhân viên khoảng 2700 vào năm 2018 Công ty tập trung phát triển nhóm sản phẩm chính: Trị chơi trực tuyến, tảng kết nối, tài tốn, dịch vụ đám mây Sản phẩm cơng ty Trị chơi trực tuyến o Phát triển sản xuất trò chơi trực tuyến, phát hành thị trường quốc tế Sản phẩm: Khu vườn mây, Dead Target, iCá…) o Nhập Phát hành trò chơi tiếng giới Sản phẩm: Võ Lâm Truyền Kỳ, Rules of Survival, Crossfire Legend… Nền tảng kết nối o Các tảng kết nối đa dạng, đa dịch vụ, phục vụ tồn diện nhu cầu kết nối, giải trí, tìm kiếm cá nhân tổ chức o Nền tảng OTT Zalo, hệ sinh thái mạng xã hội giải trí Zing (Zing TV, Zing MP3…) o Các tảng vCS, 123Go, 123Phim, cơng cụ tìm kiếm Laban.vn… Tài chính toán Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo o Các tảng kết nối đa dạng, đa dịch vụ, phục vụ toàn diện nhu cầu kết nối, giải trí, tìm kiếm cá nhân tổ chức o Nền tảng OTT Zalo, hệ sinh thái mạng xã hội giải trí Zing (Zing TV, Zing MP3…) o Các tảng vCS, 123Go, 123Phim, cơng cụ tìm kiếm Laban.vn… Dịch Vụ Đám Mây o Cung cấp dịch vụ đám mây toàn diện cho tổ chức, doanh nghiệp, địa phương o Các hệ thống, giải pháp công nghệ thông minh dựa kết nối Internet công nghệ đám mây o Sản phẩm: 123CS, Cloud server, IoT HUB, vCloudStack, vObjectStorage, Tape Backup, vCloudcam, Vending Machine, … Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Thời gian: ngày Nội dung: Giới thiệu công ty, cách tổ chức công ty o Người phụ trách giới thiệu cơng ty, quy trình làm việc từ cao xuống thấp, thời gian làm việc o Đồng thời thực tập sinh giới thiệu cấu trúc team làm việc, văn hoá team, … Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo Kết quả: Hiểu thêm công ty VNG Corp, trình thành lập phát triển Biết thêm team mục tiêu hướng đến team Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Thời gian: tuần Nội dung: Tìm hiểu cơng cụ sử dụng q trình làm việc Trong thời gian này, người phụ trách hướng dẫn công cụ như: o Netbeans – IDE dùng để xây dựng project backend sau o VS Code – Editor dùng để xây dựng project frontend sau o SVN – hệ thống quản lý version quản lý thư viện nội o Gitlab – hệ thống quản lý source code o Zeplin – công cụ làm việc designer developer Thực hiện: Thực hành sử dụng phần mềm nêu Kết quả: Có thể sử dụng phần mềm nêu để tham gia vào project 2.2 Tìm hiểu React Preact Thời gian: tuần Nội dung: Được training khái niệm react việc áp dụng preact – phiên gọn nhẹ react, project team Props: o Sử dụng để lưu liệu thay đổi chúng o Thường sử dụng props trường hợp muốn truyền liệu vào component Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo State: o State nơi chứa liệu component, thay đối tồn vịng đời component o State khởi tạo constructor Life cycle: o Initialization: Thời điểm khởi tạo component o Mounting: Ngay sau component khởi tạo o Updation: Các cập nhật state làm cho component component render lại o Unmounting Việc nắm bắt props, state life cycle giúp làm việc với react dễ dàng Preact o Là thư viện nhỏ gọn, nhỏ 3KB, hồn tồn thay thư viện React o Nó cung cấp khả render cực nhanh o Phù hợp với project team sản phẩm Ecard kiện cho Zalo, cần tốc độ load trang nhanh gọn Thực hiện: Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo o Tìm hiểu lý thuyết o Đọc code project frontend có team o Tiến hành dựng lại project Ecard có team review góp ý mentor, đồng thời cải thiện số thuật toán vẽ canvas Kết quả: o Nắm vận dụng preact để xây dựng project frontend gọn nhẹ o Ngồi cịn biết quy ước code team cách tổ chức file project tương tự 2.3 Tìm hiểu xây dựng Java Web API Thời gian: tuần Nội dung: Được training cấu trúc Web API, thư viện nội sử dụng Jetty: o Thư viện cung cấp web server tích hợp vào project ThreadProfiler: o Thư viện nội dùng để kiểm tra lượt gọi tới hàm chương trình Logger: o Thư viện nội dùng để ghi lại thông tin debug lỗi chương trình Cấu trúc project: o Hệ thống Zalo xây dựng với kiến trúc Microservices nên HTTP Server không tương tác trực tiếp với DB mà tương tác thông qua service client o Config: Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 10 o Các thiết lập toàn cục o Service: o Wrapper cho service client o Model: o Xây dựng business logic xử lý request o Handler: o Định nghĩa đường dẫn hàm xử lý tương ứng từ model o Server: o Thiết lập khởi tạo Jetty Server Thực hiện: o Tìm hiểu lý thuyết o Đọc code project Web API có team o Xây dựng thêm Web API cho project Ecard team góp ý review mentor Kết quả: o Hiểu vận dụng kiến thức để xây dựng project API 2.4 Tìm hiểu xây dựng microservice server Thời gian: tuần Nội dung: Được training kiến trúc microservice cách xây dựng service Apache Thrift Kiến trúc microservices: Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 11 o Các hệ thống Web API không trực tiếp tương tác với DB mà phải thông qua service tương ứng việc lấy thông tin user Apache Thrift: o Là RPC framework o RPC hay remote procedure call việc làm cho procedure thực không gian địa riêng (thường máy khác mạng chia sẻ) o Độc lập với ngơn ngữ lập trình với chế sinh code tự động có liên kết cho RPC o Cung cấp lớp trừu tượng cho việc truyền liệu, serialize liệu cho việc thực thi mức ứng dụng o Thrift IDL (Interface Definition Language - ngôn ngữ định nghĩa giao tiếp) để cung cấp service đa tảng Source code client server sinh từ IDL Thực hiện: o Tìm hiểu Apache Thrift o Đọc hiểu code service có Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 12 o Xây dựng service server sử dụng project khác dùng service client để gội tới service server Kết quả: o Hiểu vận dụng xây dựng service Thực Project Sau tháng training thực hành, thực tập sinh nắm kiến thức Trong tháng thứ hai, thực tập sinh tham gia vào dự án thực tế góp ý người phụ trách Lịch làm việc Tuần Công việc Người hướng dẫn Mức độ hồn thành Tìm hiểu cơng ty, cách tổ chức cơng ty Nguyễn Tiến Tùng 100% Tìm hiểu công cụ sử dụng trình làm việc Nguyễn Tiến Tùng 100% Tìm hiểu React Preact Nguyễn Tiến Tùng 100% Tìm hiểu xây dựng Java Web API Nguyễn Tiến Tùng 100% Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 13 Tìm hiểu xây dựng microservice server Nguyễn Tiến Tùng 100% Project Group Review: Nguyễn Tiến Tùng 100% Nguyễn Tiến Tùng 100% Nguyễn Tiến Tùng 100% - Tìm hiểu yêu cầu - Nhận design Project Group Review: - Xây dựng Java Web API Project Group Review: - Xây dựng Frontend React Project Group Review: Nguyễn Tiến Tùng - Nhận bug từ tester fix bug Project FCM: Nguyễn Tiến Tùng 100% - Tìm hiểu Firebase Cloud Messaging Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 14 - Tìm hiểu yêu cầu team product 10 Project FCM: Nguyễn Tiến Tùng 100% Nguyễn Tiến Tùng 100% - Xây dựng thrift service 11 Project FCM: - Nhận bug từ tester fix bug Chương 3: Chi tiết Project Project Group Review 1.1 Giới thiệu Group review (Tổng kết nhóm) chức xem lại tổng kết nhóm Zalo Mobile Zalo PC thơng qua Web View tích hợp Ý tưởng: o Người dùng nhóm vào chức tổng kết nhóm để xem huy hiệu cấp cho thành viên có nhiều tin nhắn nhất, nhiều cảm xúc nhất, o Đồng thời người dùng chia sẻ huy hiệu vào nhóm để người xem Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 15 1.2 Thực Người thực o Lên ý tưởng: Anh Lê Khánh Thông thuộc team product o Thiết kế giao diện: Anh Nguyễn Phú thuộc team design o Xây dựng hệ thống: Thực tập sinh Hồ Nguyên Bảo thuộc team ZStudio o Data: Chị Đỗ Quỳnh Như xây dựng trả liệu thống kê o Tester: anh Nguyễn Kiên bên team tester Quá trình thực hiện: Tìm hiểu yêu cầu nhận design o Trao đổi với product để hiểu rõ yêu cầu Xây dựng Java Web API từ liệu nhận từ data service o Trao đổi với data, xây dựng trường thông tin cần thiết để trả Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 16 o Đồng thời trao đổi với product data xem yêu cầu hay chưa Xây dựng Frontend React o Trao đổi với designer tính khả thi design thời gian có hạn o Xây dựng frontend, đồng thời lúc designer product review để có chỉnh sửa cần thiết Nhận bug report (UAT) tiến hành fix bug o Trao đổi với tester để nhận UAT Checklist, sửa lỗi, cập nhật tình trạng lỗi để tester xác nhận 1.3 Kết Dự án tính Zalo chạy ổn định tiếp cận nhiều người dùng Project FCM Thrift Service 2.1 Giới thiệu FCM Service service xây dựng để broadcast thông báo kiện game action tương ứng tới điện thoại cài đặt game team Hiện tích hợp game Shan Koe Mee Ý tưởng: o Sử dụng Firebase Cloud Messaging để bắn thông báo tới điện thoại o Sau người dùng đăng nhập game cập nhật token người dùng lên DB, lưu trữ lại để sử dụng gửi thông báo tới device sau o Hệ thống gồm client nhận thơng báo tích hợp vào game, thrift service cung cấp chức cần thiết để bắn thông báo tới client 2.2 Thực Người thực hiện: Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 17 o Phía client tích hợp vơ game: Anh Lê Thiện Trí o Phía thrift service: Thực tập sinh Hồ Nguyên Bảo Quá trình thực hiện: Tìm hiểu yêu cầu product, chế firebase cloud messaging cách tích hợp vào hệ thống Java Xây dựng service o Trao đổi với anh Trí lúc làm để kiểm thử hàm bắn message từ Google SDK tích hợp o Xây dựng service build jar phục vụ việc tích hợp sau Kiểm thử o Hệ thống kiểm thử đội tester, sau nhận checklist, tiến hành sửa chữa nhận xác nhận từ tester 2.3 Kết Dự án tích hợp game Shan Koe Mee (Google Play) ZStudio, chạy ổn định Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 18 TÀI LIỆU THAM KHẢO For Apache Thrift Development https://thrift.apache.org/docs/ https://thrift-tutorial.readthedocs.io/en/latest/usage-example.html For Preact Development https://preactjs.com/guide/v10/getting-started/ https://reactjs.org/docs/hello-world.html For Jetty Server Development https://www.baeldung.com/jetty-embedded Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo 19 TỔNG KẾT Như vòng gần tháng, em nắm công nghệ sử dụng phổ biến lập trình web, phát huy khả giao tiếp, trao đổi trình thực dự án tiến độ Đồng thời tiếp xúc với anh chị product dự án thực tế giúp em có thêm góc nhìn sản phẩm người dùng Chân thành cảm ơn giúp đỡ anh chị nhóm ZStudio Người phụ trách: Nguyễn Tiến Tùng Sinh viên: Hồ Nguyên Bảo ... o Hiểu vận dụng xây dựng service Thực Project Sau tháng training thực hành, thực tập sinh nắm kiến thức Trong tháng thứ hai, thực tập sinh tham gia vào dự án thực tế góp ý người phụ trách Lịch... sử dụng gửi thơng báo tới device sau o Hệ thống gồm client nhận thơng báo tích hợp vào game, thrift service cung cấp chức cần thiết để bắn thông báo tới client 2.2 Thực Người thực hiện: Người... Hồ Nguyên Bảo 15 1.2 Thực Người thực o Lên ý tưởng: Anh Lê Khánh Thông thuộc team product o Thiết kế giao diện: Anh Nguyễn Phú thuộc team design o Xây dựng hệ thống: Thực tập sinh Hồ Nguyên Bảo