Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
2,3 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM o BÁO CÁO THỰC TẬP DOANH NGHIỆP ỨNG DỤNG AVAILABILITY CHAT SERVICE Công ty : DEK Technologies Việt Nam Người phụ trách : Lâm Khang Sinh viên : Hà Minh Thành MSSV : 18521401 Lớp : SE501.M21 Thành phố Hồ Chí Minh, tháng năm 2022 LỜI CẢM ƠN Chương trình thực tập khóa 29 (18/10/2021 – 24/12/2021) công ty DEK Technologies Việt Nam lần em trải nghiệm môi trường phát triển phần mềm thực tế với kỹ thuật công nghệ tiên tiến giới Đây hội lớn để em học kiến thức, kỹ thuật, kỹ mà em cịn áp dụng kiến thức, kỹ lãnh hội trường áp dụng vào môi trường làm việc quốc tế chuyên nghiệp công ty Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến trường quý thầy cô khoa Công nghệ phần mềm truyền đạt vốn kiến thức làm tảng cho em trình thực tập Tiếp đến, em xin gửi lời cảm ơn chân thành đến quý công ty DEK Technologies Việt Nam Khơng dịch bệnh nặng nề, công ty tạo hội thuận lợi giành nhiều quyền lợi cho em thời gian thực tập Em hưởng quyền lợi nhân viên thức, tham gia buổi training công ty, tham gia workshop, seminar, liên hoan, giải trí có dịp lễ hội, ngày đặc biệt năm Cũng không quên gửi lời cảm ơn chân thành đến anh Lâm Khang – PO team CBA, anh mentor team CBA chị phòng nhân có nhiều bảo tận tình giúp đỡ em q trình thực tập nói chung phát triển sản phẩm nói riêng Cuối cùng, xin gửi lời cảm ơn đến tất bạn team thực tập ln ln cố gắng, giúp đỡ để hồn thành tốt sản phẩm mang tính thực tiễn cao trình thực tập Xin chúc tất người nhiều sức khỏe, thành công sống Em xin chân thành cảm ơn! Hà Minh Thành Hồ Chí Minh, ngày 17 tháng năm 2022 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… MỤC LỤC LỜI CẢM ƠN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN MỤC LỤC DANH MỤC HÌNH ẢNH CHƯƠNG 1: GIỚI THIỆU CÔNG TY DEK TECHNOLOGIES VIỆT NAM 1.1 Thông tin chung 1.2 Lĩnh vực hoạt động 1.3 Đối tác công ty CHƯƠNG KIẾN THỨC- KỸ NĂNG ĐÃ ĐƯỢC TẬP HUẤN 11 2.1 Kiến thức Linux 11 2.1.1 Tổng quan Linux 11 2.1.2 Vai trò Linux mang lại cho doanh nghiệp 13 2.2 Kiến thức Scrum 14 2.2.1 Tổng quan Scrum [1] 14 2.2.2 Vai trò Scrum mang lại cho doanh nghiệp 17 2.3 Kiến thức Git 17 2.3.1 Tổng quan Git 17 2.3.2 Vai trò Git mang lại cho doanh nghiệp 18 2.4 Kiến thức CI 18 2.4.1 Tổng quan CI 18 2.4.2 2.5 Vai trò CI mang lại cho doanh nghiệp 21 Kiến thức Google Test 22 2.5.1 Tổng quan Google Test 22 2.5.2 Vai trò Google Test mang lại cho doanh nghiệp 24 2.6 Kiến thức Docker 24 2.6.1 Tổng quan Docker [4] 24 2.6.2 Vai trò Docker mang lại cho doanh nghiệp 25 2.7 Kiến thức Kubernetes 26 2.7.1 Tổng quan Kubernetes [5] 26 2.7.2 Vai trò Kubernetes mang lại cho doanh nghiệp 28 2.8 Tìm hiểu sử dụng công cụ Qt Creator Qt Design 29 CHƯƠNG TĨM TẮT Q TRÌNH THỰC TẬP 31 3.1 Giới thiệu nhóm dự án cơng việc tuần 31 3.1.1 Nhóm dự án 31 3.1.2 Lịch thực tập 31 3.1.3 Bảng chi tiết công việc tuần 32 3.2 Các công việc thực 33 3.2.1 Quá trình giao công việc 33 3.2.2 Các công cụ sử dụng trình làm việc 34 3.2.3 Nhiệm vụ giao 34 CHƯƠNG MÔ TẢ CÔNG VIỆC 36 4.1 Dự án xây dựng ứng dụng Availability Chat Service 36 4.1.1 Thông tin chung 36 4.1.2 Chi tiết cách hoạt động tính 36 4.1.3 Giao diện hệ thống 44 CHƯƠNG ĐÁNH GIÁ- NHẬN XÉT 51 5.1 Kết đạt 51 5.1.1 Những kiến thức lý thuyết cố: 51 5.1.2 Những kỹ thực hành học thêm: 51 5.2 Những hạn chế 52 5.3 Bài học kinh nghiệm 52 5.4 Quy trình cơng việc hoạt động tương lai 54 Tài liệu tham khảo: 55 DANH MỤC HÌNH ẢNH Hình 1:Mơ hình làm việc Scrum 15 Hình 2: Mơ hình làm việc Cross-functional 16 Hình 3: Q trình tích hợp CI 19 Hình 4: Pipeline CI 20 Hình 5: Đồ thị Pipeline 21 Hình 6: File test_server.cpp 23 Hình 7: Kết run file test_server.cpp 24 Hình 8: Quy trình, bước hoạt động Docker 25 Hình 9: Kiến trúc Kubernetes 26 Hình 10: Tạo project demo QtCreator 29 Hình 11: Dùng Qt Design thiết kế giao diện 30 Hình 12: Giao task Sprint qua Trello 34 Hình 13: Biểu đồ trình khởi tạo kết nối client server 37 Hình 14: Client nhập tài khoản 38 Hình 15: Client nhập sai tài khoản 38 Hình 16: Flowchart deploy Docker 39 Hình 17 Flowchart deploy Kubernets 40 Hình 18 Deploy Kubernets 40 Hình 19: Pipeline CI 41 Hình 20: Chi tiết Pipeline 41 Hình 21: Tìm kiếm user từ 42 Hình 22: Chat 1-1 43 Hình 23: Đổi màu tin nhắn 43 Hình 24: Giao diện đăng nhập 44 Hình 25: Đăng nhập khơng thành cơng 44 Hình 26: Đăng nhập thành công 45 Hình 27: Giao diện đăng ký 45 Hình 28: Giao diện đăng ký không thành công 46 Hình 29: Giao diện điền mật khơng hợp lệ 47 Hình 30: Giao diện điền lại mật khơng hợp lệ 47 Hình 31: Giao diện đăng ký thành công 48 Hình 32: Giao diện hình 49 Hình 33: Tìm kiếm tài khoản bạn bè 49 Hình 34: Đổi màu tin nhắn 50 Hình 35: Giao diện profile 50 CHƯƠNG 1: GIỚI THIỆU CÔNG TY DEK TECHNOLOGIES VIỆT NAM 1.1 Thơng tin chung − Tóm tắt thơng tin: DEK Technologies công ty gia công, phát triển giải pháp phần mềm phần cứng nước ngồi có trụ sở Melbourne - Úc, thành lập năm 1999 Cơng ty có chi nhánh Stockholm - Thụy Điển, Rome – Ý, thành phố Hồ Chí Minh - Việt Nam chi nhánh mở Thung lũng Silicon – Mỹ DEK Technologies Việt Nam thành lập vào năm 2008, văn phòng lớn với 170 nhân viên người Việt dẫn dắt giám đốc người Úc - Daniel Tedesco Nhờ đó, mơi trường làm việc nơi mang đậm nét riêng văn hóa phương Tây − Các sản phẩm công ty: + Telegea + IoT Platform + Các sản phẩm dựa mã nguồn mở − Trụ sở cơng ty Việt Nam: 121/137 Lê Lợi, phường Bến Thành, quận 1, thành phố Hồ Chí Minh − Website: https://www.dektech.com.au 1.2 Lĩnh vực hoạt động − Giải pháp dịch vụ phần mềm − Thiết kế phát triển phần mềm − Quản lý dự án phần mềm − Dịch vụ bảo trì hỗ trợ trọn gói sản phẩm cơng ty 1.3 Đối tác cơng ty − Mirantis đối tác cho dự án OpenStack, giúp công ty xây dựng quản lý sở hạ tầng đám mây riêng họ, cung cấp dịch vụ sau: + Sản phẩm Mirantis bán lại 10 + Dịch vụ hỗ trợ doanh nghiệp + 100% khóa đào tạo chứng nhận OpenStack 42 4.1.2.8 Backup Sau tích hợp Tính khả dụng liên tục (availability), chương trình có đến server hoạt động gồm active standby Trong trường hợp server bị sập, server standby lên thay lập tức, toàn kết nối từ client lên server cũ chuyển qua server Đồng thời hoạt động chat tiếp tục bình thường 4.1.2.9 Tính Gồm tính cho client sử dụng, tính có mẫu ‘ # ]’ − Tìm kiếm user từ bất kỳ: Sau gõ #s] người dùng nhập từ chữ để tìm kiếm xem user có username chứa chữ từ Hình 21: Tìm kiếm user từ − Chat 1-1: Là tính để client kết nối nhắn tin với cách trực tiếp 43 Hình 22: Chat 1-1 − Đổi màu tin nhắn: Sau gõ #c] menu chọn màu lên cho người dùng chọn màu để đổi màu tin nhắn theo mong muốn Màu áp dụng cho tin nhắn kể từ lúc chọn đổi màu, không áp dụng đổi tin nhắn cũ Hình 23: Đổi màu tin nhắn − Các function khác: + #e] : Thoát khỏi hệ thống + #b] : Thốt khỏi phịng chat 44 4.1.3 Giao diện hệ thống 4.1.3.1 Giao diện đăng nhập: Hình 24: Giao diện đăng nhập − Nếu người dùng đăng ký tài khoản, người dùng nhập Username password để đăng nhập vào ứng dụng − Nếu người dùng nhập không Username password, hiển thị thơng báo “Login failed!” Hình 25: Đăng nhập không thành công 45 − Nếu người dùng nhập Username password đăng nhập vào ứng dụng thành cơng, hiển thị hình lên Hình 26: Đăng nhập thành cơng 4.1.3.2Giao diện đăng ký: Hình 27: Giao diện đăng ký 46 − Nếu người dùng chưa đăng ký tài khoản, người dùng tiến hành chọn Register bên hình đăng nhập, giao diện đăng ký lên, người dùng tiến hành nhập Username password để đăng ký tài khoản − Ứng dụng yêu cầu Username khơng trùng, password có độ dài từ ký tự trở lên Nếu người dùng nhập Username tồn tại, hiển thị thông báo “Account is not available” Hình 28: Giao diện đăng ký khơng thành cơng − Nếu người dùng nhập password kí tự, thị thơng báo “Weak password” 47 Hình 29: Giao diện điền mật không hợp lệ − Nếu người dùng nhập lại password không đúng, thị thông báo “Password does not match!” Hình 30: Giao diện điền lại mật không hợp lệ 48 − Nếu người dùng nhập theo yêu cầu, thị thông báo đăng ký thành cơng quay trở lại hình login Hình 31: Giao diện đăng ký thành cơng 4.1.3.3Giao diện chính: Giao diện gồm bên, bên trái thị danh sách tài khoản bạn bè tìm kiếm, bên phải nơi trị chuyện với bạn bè button xem profile 49 Hình 32: Giao diện hình Hình 33: Tìm kiếm tài khoản bạn bè 50 Hình 34: Đổi màu tin nhắn 4.1.3.4 Giao diện profile: Khi click vào button xem profile bên hình chính, giao diện profile xuất Ta cập nhật ngày sinh bio giới thiệu Hình 35: Giao diện profile 51 CHƯƠNG ĐÁNH GIÁ- NHẬN XÉT 5.1 Kết đạt 5.1.1 Những kiến thức lý thuyết cố: − Kiến thức Scrum/Agile môn Quản lý dự án công nghệ thông tin: + Sau học lý thuyết lớp, DEK, em học thêm số lý thuyết bên như: cách phân bổ thời gian làm việc cho sprint cho phù hợp, cách xử lý khó khăn gặp vấn đề đó, cách mà thành viên đội chia sẻ với nhau, chung với giải Bên cạnh đó, điều quan trọng mà chúng em học tinh thần làm việc nhóm, vừa thực hành Scrum/Agile, vừa học lý thuyết giúp cho em ghi nhớ dễ dàng cách làm việc theo kiểu Scrum/Agile − Kiến thức lập trình: + Được sử dụng ngơn ngữ C/C++ học lớp, em hiểu sâu kiến thức trỏ cấp Hiểu cách quản lý code, cách khai báo biến, cách đọc hiểu code cách đọc tài liệu cách hiệu để lọc cần thiết để học hỏi trau dồi cho thân − Kiến thức Git học môn Nhập môn công nghệ phần mềm: + Hiểu thêm nhiều lệnh để quản lý code nhóm, cách phân bổ file Github/Gitlab cho hợp lý, cách để ghi commit “upload file” cách dễ hiểu 5.1.2 Những kỹ thực hành học thêm: − Kỹ sử dụng Linux: + Học cách sử dụng hệ điều hành Ubuntu, cách thao tác môi trường Linux + Học số kỹ thuật lập trình Linux với Bashscript, Multithread + Cách sử dụng vim lệnh Linux + Make file: 52 • Makefile file dạng script chứa thông tin: ▪ Cấu trúc project (file, phụ thuộc) ▪ Các lệnh để tạo file • Lệnh make đọc nội dung Makefile, hiểu kiến trúc project thực thi lệnh • Tìm hiểu Makefile Linux Cách biên dịch nhiều file c c++ lúc linux Makefile Viết Make file cho client server − Clean code: + Cách đặt tên biến cho phù hợp Tên phải thể ý nghĩa vai trị + Tránh dùng nhiều từ nhiều nghĩa + Chỉ rõ hành vi ý định + Chèn thêm thông tin quan trọng vào tên biến + Đặt tên biến tạm rõ ràng + Tên phải rõ ràng tránh hiểu nhầm − Học áp dụng CI, Gtest, Docker, Kubernetes, xây dựng giao diện công cụ QtCreator − Kỹ mềm: tiếng Anh cải thiện rõ rệt qua buổi trình bày kết thúc sprint Khơng dừng lại đó, thân tham gia vào buổi training, buổi giao lưu câu lạc tiếng Anh với mục đích tương tác trực tiếp với người xứ 5.2 Những hạn chế − Thực tập online nên hạn chế giao tiếp người với người lúc bình thường − Hạn chế thời gian, cần nhiều thời gian để thích nghi với môi trường làm việc 5.3 Bài học kinh nghiệm − Quy trình, văn hóa cơng ty: 53 + Được trải nghiệm làm việc mơi trường doanh nghiệp nước ngồi chuyên nghiệp đầy động + Học hỏi cách làm việc theo quy trình Agile, Scrum + Học hỏi cách làm việc từ anh mentor có kinh nghiệm lâu năm lĩnh vực cơng nghệ thông tin + Cách đảm bảo thời gian, xếp cơng việc hợp lí Sử dụng phần mềm hỗ trợ cơng ty, tìm hiểu tn thủ quy định công ty Policy − Bài học chủ động, giao tiếp mở rộng mối quan hệ: + Học hỏi cách giao tiếp đồng nghiệp, tạo thận thiện với người Mở rộng mối quan hệ với anh, chị, người có kinh nghiệm trước Học hỏi cách tác phong chun nghiệp, cầu tiến hồi bão − Tích cực học hỏi: + Các kiến thức trường không đủ để làm việc, em cần phải tự học, chủ động hỏi mentor, trao dồi thêm ngày để lấy nhiều kinh nghiệm cho thân − Kỹ thuyết trình: + Cách để giải thích thuật tốn, code làm + Cách để thuyết trình trước đám đông + Cách sử dụng tiếng Anh để thuyết trình − Kỹ làm việc nhóm: + Cách để thân hịa hợp vào nhóm, nhạy bén vấn đề nhóm phối hợp người làm việc để nhóm đạt mục tiêu + Giải mâu thuẫn nhóm để từ giúp nhóm trở nên khắn khít + Đảm bảo cơng việc nhóm phân cơng rõ ràng công + Cách lắng nghe thành viên nhóm, hiểu điểm yếu, điểm mạnh để phân công công việc cho phù hợp + Trách nhiệm nhiệm vụ giao, gặp khó khăn phần việc chúng em họp nhóm đưa cách giải cụ thể 54 5.4 Quy trình cơng việc hoạt động tương lai Hoạt động tương lai em tiếp tục lại cơng ty tham gia vị trí Software Developer 55 Tài liệu tham khảo: [1] "Scrum," [Online] Available: https://hocvienagile.com/agipedia/tong-quan-vescrum/ [2] "CI overview," [Online] Available: https://luyenkimmau.com.vn/continuousintegration-la-gi/ [3] "GitLab CI," [Online] Available: https://topdev.vn/blog/trien-khai-ci-cd-voigitlab/ [4] "Docker overview," [Online] Available: https://docs.docker.com/get- started/overview/ [5] "k8s overview," [Online] Available: https://kubernetes.io/docs/concepts/overview/ [6] [Online] Available: https://delecweb.com/tin-tuc -su-kien/docker-la-gi-tong- quan-va-huong-dan-cach-dung-docker-n207.html 56 ... 4.1 Dự án xây dựng ứng dụng Availability Chat Service 4.1.1 Thơng tin chung − Mục đích dự án xây dựng ứng dụng trò chuyện cách sử dụng kiến trúc microservice triển khai cách sử dụng Docker container... có đặc tính khả dụng liên tục (availability) Dự án sử dụng Kubernetes (https://kubernetes.io/) với tư cách người quản lý tính khả dụng liên tục cho ứng dụng microservice Ứng dụng viết ngơn ngữ... trình thực tập nói chung phát triển sản phẩm nói riêng Cuối cùng, xin gửi lời cảm ơn đến tất bạn team thực tập luôn cố gắng, giúp đỡ để hồn thành tốt sản phẩm mang tính thực tiễn cao trình thực tập