1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực tập doanh nghiệp backend developer

32 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Thực Tập Doanh Nghiệp Backend Developer
Tác giả Nguyễn Thế Đan
Người hướng dẫn P. Geoffrey Tipton
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố Hồ Chí Minh
Định dạng
Số trang 32
Dung lượng 880,91 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU CÔNG TY IMBRACE HONGKONG (8)
    • 1.1 Thông tin chung (8)
    • 1.2 Lĩnh vực hoạt động (8)
    • 1.3 Đối tác công ty (8)
  • CHƯƠNG 2 KIẾN THỨC- KỸ NĂNG ĐÃ ĐƯỢC TẬP HUẤN (9)
    • 2.1.1 Tổng quan về NodeJS (9)
    • 2.1.2 Vai trò của NodeJS mang lại cho doanh nghiệp (10)
    • 2.2 Kiến thức về Scrum (11)
      • 2.2.1 Tổng quan về Scrum [1] (11)
      • 2.2.2 Vai trò của Scrum mang lại cho doanh nghiệp (14)
    • 2.3 Kiến thức về Git (14)
      • 2.3.1 Tổng quan về Git (14)
      • 2.3.2 Vai trò của Git mang lại cho doanh nghiệp (15)
    • 2.4 Kiến thức về CI (16)
      • 2.4.1 Tổng quan về CI (16)
      • 2.4.2 Vai trò của CI mang lại cho doanh nghiệp (19)
    • 2.5 Kiến thức về Docker (20)
      • 2.5.1. Tổng quan về Docker [4] (20)
      • 2.5.2. Vai trò của Docker mang lại cho doanh nghiệp (21)
  • CHƯƠNG 3 TÓM TẮT QUÁ TRÌNH THỰC TẬP (21)
    • 3.1 Giới thiệu nhóm dự án và công việc mỗi tuần (21)
      • 3.1.1 Nhóm dự án (21)
      • 3.1.2 Lịch thực tập (22)
      • 3.1.3 Bảng chi tiết công việc mỗi tuần (22)
    • 3.2 Các công việc đã thực hiện (23)
      • 3.2.1 Quá trình giao công việc (23)
      • 3.2.2 Các công cụ sử dụng trong quá trình làm việc (24)
      • 3.2.3 Nhiệm vụ được giao (24)
  • CHƯƠNG 4 MÔ TẢ CÔNG VIỆC (25)
    • 4.1 Ứng dụng Imbrace (25)
      • 4.1.1 Thông tin chung (25)
      • 4.1.2 Chi tiết công việc trong quá trình thực tập (26)
  • CHƯƠNG 5 ĐÁNH GIÁ- NHẬN XÉT (28)
    • 5.1 Kết quả đạt được (28)
      • 5.1.1 Những kiến thức lý thuyết đã được cũng cố (28)
      • 5.1.2 Những kỹ năng thực hành đã được học thêm (28)
    • 5.2 Những hạn chế (29)

Nội dung

GIỚI THIỆU CÔNG TY IMBRACE HONGKONG

Thông tin chung

Imbrace Hong Kong, officially known as Future Embrace Limited, is an international production company established in 2021, with its headquarters located in Tsuen Wan, Hong Kong The company currently operates three branches situated in Tsuen Wan, Hong Kong; Ipoh, Malaysia; and Kaohsiung, Taiwan.

− Các sản phẩm của công ty:

− Trụ sở chính của công ty tại Việt Nam: Hiện tại công ty chưa có chi nhánh ở Việt Nam

− Website: https://www.imbrace.co/

Lĩnh vực hoạt động

− Giải pháp dịch vụ phần mềm

− Thiết kế và phát triển phần mềm

− Quản lý dự án phần mềm.

− Dịch vụ bảo trì và hỗ trợ trọn gói sản phẩm của công ty

Đối tác công ty

Imbrace Hong Kong is a product-based company that is widely utilized by various businesses for automating their operational processes Notable clients include KBQuest, Redwolf Airsoft, Master Concept, GoGoX, Patrick Henry Group, Partner Rhodes Restaurant Group, Jadine Restaurant Group, and Mercedez-Benz.

KIẾN THỨC- KỸ NĂNG ĐÃ ĐƯỢC TẬP HUẤN

Tổng quan về NodeJS

Node.js là môi trường thực thi mã JavaScript phía máy chủ, được phát triển dựa trên động cơ V8 của Chrome Nó cho phép chạy mã JavaScript bên ngoài trình duyệt, giúp xây dựng các ứng dụng mạng đa năng và hiệu suất cao.

Dưới đây là một số điểm quan trọng về Node.js:

Kiến trúc không đồng bộ của Node.js sử dụng mô hình không đồng bộ và hướng sự kiện, cho phép xử lý nhiều yêu cầu đồng thời mà không cần tạo ra các luồng riêng biệt Điều này không chỉ nâng cao hiệu suất mà còn cải thiện khả năng mở rộng của ứng dụng.

Node.js cho phép lập trình viên sử dụng JavaScript để phát triển các ứng dụng phía máy chủ, bao gồm dịch vụ web, API, ứng dụng mạng và ứng dụng thời gian thực.

Node.js là một nền tảng mã nguồn mở với cộng đồng lớn và năng động, giúp đảm bảo sự phát triển nhanh chóng, hỗ trợ đa dạng và liên tục cải tiến cho nền tảng này.

Node.js sở hữu một hệ sinh thái mô-đun phong phú, cho phép các nhà phát triển dễ dàng sử dụng và tái sử dụng các mô-đun có sẵn Nền tảng npm (Node Package Manager) nổi bật với khả năng tìm kiếm, cài đặt và quản lý các mô-đun thư viện một cách hiệu quả, tạo điều kiện thuận lợi cho quá trình phát triển ứng dụng.

Node.js là lựa chọn lý tưởng để phát triển các ứng dụng thời gian thực nhờ vào tính năng không đồng bộ và hướng sự kiện, phù hợp cho các ứng dụng như chat, streaming và game trực tuyến.

Node.js hỗ trợ mở rộng ứng dụng một cách linh hoạt, cho phép bạn dễ dàng tăng cường khả năng xử lý và đáp ứng Bằng cách áp dụng các kỹ thuật như clustering và load balancing, bạn có thể tối ưu hóa hiệu suất của ứng dụng một cách hiệu quả.

Node.js là nền tảng phát triển ứng dụng mạng phía máy chủ mạnh mẽ, nổi bật với tính năng không đồng bộ, hướng sự kiện và khả năng mở rộng Được sử dụng phổ biến trong cộng đồng phát triển phần mềm, Node.js là công cụ quan trọng để xây dựng các ứng dụng hiệu suất cao và linh hoạt.

Vai trò của NodeJS mang lại cho doanh nghiệp

Node.js mang lại một số lợi ích quan trọng cho Ombrace Dưới đây là một số vai trò quan trọng mà Node.js mang lại:

Node.js hỗ trợ phát triển ứng dụng mạng nhanh chóng nhờ vào mô hình không đồng bộ và hướng sự kiện, cho phép xử lý nhiều yêu cầu đồng thời mà không gặp phải tình trạng chờ đợi Điều này không chỉ rút ngắn thời gian phát triển ứng dụng mà còn cải thiện tốc độ phản hồi, mang đến trải nghiệm người dùng tốt hơn.

Node.js hỗ trợ mở rộng ứng dụng một cách linh hoạt, cho phép xử lý hàng ngàn kết nối đồng thời Nhờ vào các kỹ thuật như clustering và load balancing, Node.js đảm bảo hiệu suất ổn định ngay cả khi có nhiều người dùng truy cập cùng lúc.

Node.js tiết kiệm tài nguyên nhờ vào mô hình không đồng bộ, cho phép xử lý nhiều yêu cầu mà không cần tạo luồng riêng biệt như trong các ứng dụng truyền thống Điều này không chỉ giúp giảm tải cho máy chủ mà còn làm giảm chi phí vận hành hệ thống.

Node.js là lựa chọn lý tưởng cho việc phát triển ứng dụng thời gian thực nhờ khả năng xử lý sự kiện và tính không đồng bộ Nó phù hợp cho các ứng dụng như trò chơi trực tuyến, streaming trực tiếp, chat trực tuyến và các ứng dụng IoT (Internet of Things).

Hệ sinh thái mô-đun phong phú của Node.js thông qua npm cho phép các nhà phát triển dễ dàng tìm kiếm và tái sử dụng thư viện, mô-đun và công cụ, từ đó nâng cao hiệu suất và tốc độ phát triển ứng dụng.

Node.js dễ dàng tích hợp với nhiều công nghệ như JSON, RESTful API, WebSocket và GraphQL, cho phép xây dựng các ứng dụng phức tạp và linh hoạt thông qua khả năng tương thích tốt với các hệ thống và dịch vụ khác.

Node.js mang lại nhiều lợi ích quan trọng cho Imbrace, bao gồm việc tăng tốc độ phát triển ứng dụng, dễ dàng mở rộng, tiết kiệm tài nguyên và hỗ trợ các ứng dụng thời gian thực.

Kiến thức về Scrum

Scrum là một phương pháp Agile, tập trung vào phát triển phần mềm linh hoạt thông qua cơ chế lặp và tăng trưởng Phương pháp này được thiết kế nhằm hỗ trợ việc phát triển, cung cấp và cải tiến các sản phẩm phức tạp một cách hiệu quả.

Scrum là phương pháp quản lý dự án hiệu quả, thực hiện thông qua các phân đoạn lặp đi lặp lại gọi là sprint, thường kéo dài từ 1 đến 4 tuần Trong mỗi sprint, nhóm phát triển thực hiện đầy đủ các công việc như lập kế hoạch, phân tích yêu cầu, thiết kế, triển khai và kiểm thử để tạo ra các phần nhỏ của sản phẩm Phương pháp này rất phù hợp cho các dự án cần sự điều chỉnh liên tục và yêu cầu tốc độ cao trong quá trình phát triển.

− Với mô hình phát triển lặp đi lặp lại Scrum, có 3 vai trò chính:

+ Product Owner: Quản lý Product Backlog Định nghĩa các yêu cầu của khách hàng và đánh giá cuối cùng đầu ra của các nhà phát triển phần mềm.

Scrum Master đóng vai trò quan trọng trong việc đảm bảo hiệu quả hoạt động của nhóm, giúp nhóm tuân thủ mô hình làm việc chuẩn và hoàn thành các sprint với mục tiêu đã đề ra.

+ Development Team (Dev, Test, …): lập kế hoạch cho các sprint, thiết kế, thực hiện và triển khai yêu cầu từ đầu.

Hình 1:Mô hình làm việc Scrum

Scrum thiết lập các quy tắc cho bốn sự kiện chủ chốt, giúp tạo ra môi trường làm việc và hợp tác hiệu quả cho các thành viên trong dự án.

− Sprint là một phân đoạn lặp đi lặp lại trong quy trình phát triển phần mềm, thường có khung thời gian ngắn (từ 1 – 4 tuần).

+ Sprint Planning (Họp Kế hoạch Sprint)

Nhóm phát triển tổ chức cuộc họp với Product Owner để lập kế hoạch cho một Sprint Trong quá trình này, nhóm sẽ lựa chọn các yêu cầu cần phát triển, phân tích và xác định các công việc cần thực hiện, đồng thời ước lượng thời gian cần thiết để hoàn thành các tác vụ.

Scrum áp dụng phương pháp lập kế hoạch từng phần và phát triển dần theo thời gian, cho phép quá trình lập kế hoạch không chỉ diễn ra một lần mà được thực hiện lặp đi lặp lại Điều này giúp đội ngũ thích nghi với các tình huống thực tế trong suốt quá trình phát triển sản phẩm.

+ Daily Scrum (Họp Scrum hằng ngày)

Scrum Master tổ chức cuộc họp hàng ngày kéo dài 15 phút cho Đội sản xuất, nơi Nhóm Phát triển có cơ hội chia sẻ tiến độ công việc và thảo luận về những khó khăn gặp phải trong quá trình phát triển phần mềm trong suốt Sprint.

+ Sprint Review (Họp Sơ kết Sprint)

Cuối mỗi Sprint, nhóm phát triển và Product Owner sẽ cùng nhau xem xét các công việc đã hoàn thành trong Sprint trước đó, đồng thời đề xuất những điều chỉnh hoặc thay đổi cần thiết cho sản phẩm.

+ Sprint Retrospective (Họp Cải tiến Sprint)

● Dưới sự trợ giúp của Scrum Master, nhóm phát triển sẽ rà soát lại toàn diện

Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm.

− Theo đó, công ty định sẵn đặc trưng Scrum là Cross-Functional – liên chức năng:

+ Các thành viên kỹ năng bổ trợ cho nhau, tự hoàn thành công việc mà không phụ thuộc người khác bên ngoài nhóm.

+ Không có các chức danh nào khác ngoài Team members (hoặc Developers).

Hình 2: Mô hình làm việc Cross-functional

2.2.2 Vai trò của Scrum mang lại cho doanh nghiệp

− Scrum thích ứng nhanh với sự thay đổi yêu cầu

Scrum hoạt động dựa trên đặc điểm tự nhiên của các nhà phát triển, giúp dễ dàng hiểu và áp dụng Phương pháp này tạo ra sự tương tác cao giữa các thành viên trong nhóm, thay vì bị áp đặt từ bên ngoài.

Scrum giúp đội ngũ tập trung vào sản phẩm và nhanh chóng thích ứng với thay đổi yêu cầu, từ đó nâng cao sự tương tác giữa khách hàng và nhóm phát triển, đảm bảo sản phẩm cuối cùng đáp ứng đúng mong muốn của khách hàng.

Kiến thức về Git

− Git là phần mềm quản lí mã nguồn phân tán.

Git là một hệ thống quản lý phiên bản (VCS) phân tán, cho phép quản lý mã nguồn hiệu quả hơn so với các hệ thống tập trung như SVN và CVS.

− Các hệ thống giúp quản lí dự án hiện nay như: github, gitlab, Jira ticket, Backlog.

− Một số lệnh cơ bản

+ git init: Khởi tạo git repo, sẽ tạo ra một thư mục git, thư mục này chứa tất cả các tập tin cần thiết cho repo.

+ git clone: Sao chép một remote repo về máy tính mình.

+ git status: để kiểm tra trạng thái của tệp tin (staged, modified, committed)

+ git add: Cập nhật các file lên Staging Area

+ git commit: Cập nhật file lên local repository.

+ git push: Cập nhật file từ local repository lên remote repository.

+ git fetch: Cập nhật các thay đổi từ remote repo về local repo, nhưng không tiến hành merge.

+ git pull: Cập nhật những thay đổi từ remote repo về local repo, đồng thời tiến hành merge.

+ git merge: Gộp các branch lại với nhau.

+ git rebase: Gộp các commit lại với nhau.

+ git branch: xem các branch

+ git checkout : checkout sang branch

+ git checkout -b : vừa tạo ra vừa checkout sang branch mới. + git commit amend: sửa code mà không muốn tạo commit mới.

2.3.2 Vai trò của Git mang lại cho doanh nghiệp

− Giúp quy trình làm việc code theo nhóm đơn giản hơn rất nhiều bằng việc kết hợp các phân nhánh (branch).

− Sắp xếp công việc tốt hơn.

− Linh hoạt hơn khi cùng lúc phải làm nhiều task.

− Tự tin thử nghiệm những ý tưởng mới.

− Dễ dàng trong việc phát triển sản phẩm.

− Có thể làm việc bất cứ đâu, chỉ cần clone mã nguồn từ repo về máy.

Kiến thức về CI

CI, viết tắt của Continuous Integration (tích hợp liên tục), là quá trình cho phép các thành viên trong đội ngũ liên tục lưu trữ mã mới vào kho mã nguồn Nhờ vào lượng dữ liệu này, CI tự động thực hiện kiểm tra và chạy test để đảm bảo độ chính xác Đồng thời, CI cũng thúc đẩy phát triển phần mềm nhanh chóng hơn bằng cách phát hiện lỗi và cung cấp gợi ý giải quyết.

Khi lập trình viên tải mã lên kho lưu trữ, CI tự động nhận dữ liệu và thực hiện kiểm tra để đảm bảo mã nguồn không có lỗi CI sử dụng nhiều thước đo khác nhau để đảm bảo mã chạy ổn định trong mọi điều kiện Mỗi tiến trình đều có thông báo trả về giúp người dùng theo dõi sự phát triển của phần mềm, nhận diện lỗi và rút kinh nghiệm cho các lần phát triển sau.

Hình 3: Quá trình tích hợp CI

Quá trình tích hợp mã vào kho có thể tự động hóa nếu được cài đặt trước, giúp dây chuyền tích hợp, kiểm tra, test và báo cáo diễn ra liền mạch Nhờ đó, lập trình viên tiết kiệm thời gian để phát triển các phần khác và có thể quay lại xem báo cáo sau khi hoàn tất việc build và test.

− Các yêu cầu cơ bản cho một hệ thống CI đó là: [2]

+ Build được chạy tự động.

+ Test được chạy tự động.

+ Thường xuyên commits các thay đổi tới repository của dự án.

+ Cung cấp giao diện dễ nhìn cho các tiền trình của hệ thống cũng như real-time status cho cả team có thể theo dõi.

Cần có một Hệ thống Kiểm soát Phiên bản (VCS) để tập trung và lưu trữ các thay đổi của dự án theo thời gian Bên cạnh đó, cần thiết lập một máy chủ hoặc máy ảo để triển khai hệ thống Tích hợp Liên tục (CI) tại chỗ.

+ Gitlab có tính năng Gitlab CI, code để ở Gitlab, rồi trong đó có cho cài đặt CI để test và deploy code tự động.

+ Để GitLab CI cỏ thể hoạt động được chúng ta sẽ cần 02 thành phần:

File gitlab-ci.yml nằm ở thư mục gốc của repository, và nó có vai trò quan trọng trong việc định nghĩa các Job cần thực hiện Các Job này sẽ xác định cách thức và địa điểm chạy, cũng như cấu hình dự án để sử dụng các Runner.

● Gitlab Runner: Có nhiệm vụ clone project về, đọc file gitlab-ci.yml và thực hiện các hưởng dẫn trong file Luồng thực hiện như sau:

Khi thực hiện lệnh git push hoặc kích hoạt pipeline, GitLab repo sẽ thông báo cho GitLab Runner Sau đó, GitLab Runner sẽ tải mã nguồn mới về, đọc tệp gitlab-ci.yml và thực hiện các bước đã được định nghĩa trong tệp đó.

▪ Một Pipeline CI sinh ra và report sẽ được hiển thị giao diện sau.

+ Pipelines là thành phần cấp cao nhất của tích hợp, phân phối và triển khai liên tục Pipeline bao gồm:

● Jobs: Các công việc được giao thực thi (Ví dụ: biên dịch mã hoặc chạy test)

● Stage: Xác định các thời điểm và cách thực hiện (Ví dụ: test chỉ chạy sau khi biên dịch thành công)

● Pipeline hoạt động theo nguyên tắc sau:

▪ Tất cả các công việc trong cùng một stage được Runner thực hiện song song, nếu có đủ số lượng Runner đồng thời.

▪ Nếu Success, pipeline chuyển sang stage tiếp theo.

▪ Nếu Failed, pipeline sẽ dừng lại Có một ngoại lệ là nếu job được đánh dấu làm thủ công, thì dù bị fail thì pipeline vẫn tiếp tục.

▪ Bên dưới là ví dụ về đồ thị Pipeline thông thường:

+ Tóm lại, các bước để Gitlab CI hoạt động như sau:

● Thêm.gitlab-ci.yml vào thư mục gốc của repo.

2.4.2 Vai trò của CI mang lại cho doanh nghiệp

Việc phát hiện và sửa lỗi sớm giúp giảm thiểu rủi ro và nâng cao chất lượng sản phẩm thông qua khả năng tự động kiểm tra và giám sát.

Quy trình thủ công lặp lại hàng ngày đã được giảm thiểu, nhường chỗ cho việc xây dựng và kiểm thử tự động mà không cần sự can thiệp của con người.

− Một đặc điểm nữa của CI chính là có thể deploy, triển khai phần mềm ở bất cứ địa điểm và thời gian nào.

Việc tích hợp mã lên CI không chỉ tăng cường khả năng chia sẻ thông tin giữa các thành viên trong nhóm, mà còn giúp họ cập nhật liên tục và xây dựng kế hoạch triển khai phù hợp với công việc của mình.

Kiến thức về Docker

Docker is a platform that simplifies the building, deploying, and running of applications by utilizing containers based on virtualization technology.

Containers giúp lập trình viên đóng gói ứng dụng cùng với tất cả thư viện và phụ thuộc cần thiết, tạo thành một package duy nhất Nhờ vào công nghệ container, ứng dụng có thể chạy trên mọi máy Linux, bất kể các cài đặt tùy chỉnh khác nhau so với máy phát triển.

Hình 6: Quy trình, các bước hoạt động của Docker

Để bắt đầu, hãy truy cập Docker và tạo một Dockerfile chứa mã nguồn của bạn Dockerfile này cần được thiết lập trên thiết bị đã được cài đặt Docker.

Docker Engine Sau khi tạo Dockerfile, người dùng sẽ có 1 Container lưu trữ bộ thư viện và ứng dụng của mình.

+ Push: có được container sẽ được người dùng push lên đám mây và lưu trữ tại đó Thao tác này được thực hiện qua mạng Internet.

Để truy cập vào container từ một thiết bị khác đã cài đặt Docker Engine, người dùng cần thực hiện thao tác Pull để tải container về máy và sau đó tiến hành Run container.

2.5.2 Vai trò của Docker mang lại cho doanh nghiệp

Docker mang đến sự nhanh chóng và tiện lợi, giúp giảm thời gian triển khai ứng dụng/dịch vụ trên máy ảo (VMs) từ vài chục phút xuống chỉ còn vài phút.

Docker containers tối ưu hóa việc sử dụng tài nguyên, vì mỗi container chỉ tiêu tốn tài nguyên khi đang hoạt động Nếu không sử dụng, tất cả tài nguyên sẽ được trả lại cho máy chủ host, giúp tiết kiệm tối đa tài nguyên hệ thống.

Mức độ tự động hóa của hệ thống sẽ được nâng cao, cho phép khởi tạo và tắt docker container một cách dễ dàng hơn, đồng thời dựa trên nhiều chỉ số (metric) của hệ thống để đáp ứng tốt nhất nhu cầu của người dùng.

MÔ TẢ CÔNG VIỆC

Ứng dụng Imbrace

Ứng dụng Imbrace là nền tảng quản lý mối quan hệ khách hàng (CRM) với tính năng độc đáo, kết nối nhiều kênh như Facebook Messenger, Message, Line, Whatsapp, và Instagram vào một ứng dụng duy nhất Điều này giúp người dùng dễ dàng quản lý và tương tác mà không cần phải thao tác với từng kênh riêng lẻ Ngoài ra, Imbrace còn cung cấp nhiều tính năng hỗ trợ khác, giúp doanh nghiệp và người bán quản lý hiệu quả mối quan hệ khách hàng.

− Ứng dụng có các tính năng:

+ CRM ( Quản lý mối quan hệ khách hàng )

+ Một hệ thống realtime messaging tích hợp tất cả các tin nhắn từ rất nhiêu kênh phổ biến trên thế giới.

+ Workflow: Một quy trình xử lý dữ liệu được định sẵn

4.1.2 Chi tiết công việc trong quá trình thực tập

Cung cấp một endpoint cho phép trả về JWT (JsonWebToken) mà khách hàng có thể sử dụng để gọi API của Imbrace, với điều kiện họ sở hữu một Apikey hợp lệ.

Hình 8: Ví dụ khi gọi tới endpoint Oauth

4.1.2.2 Viết documents cho các endpoint

- Viết documents cho các endpoint để team frontend có thể dễ dàng sử dụng các endpoint của mình mà không mất quá nhiều thời gian

4.1.2.3 Xây dựng service cho phép sắp xếp và lọc các thông tin liên hệ

Ứng dụng Imbrace tích hợp chức năng CRM (Quản lý mối quan hệ khách hàng), cho phép người dùng thực hiện các thao tác CRUD (Thêm, Xóa, Sửa) thông tin liên hệ Người dùng có thể dễ dàng lọc và tìm kiếm thông tin liên hệ theo các tiêu chí mà họ mong muốn trên màn hình hiển thị.

Công việc của tôi là phát triển một dịch vụ độc lập, cho phép các lập trình viên frontend gửi yêu cầu về việc sắp xếp và lọc dữ liệu từ khách hàng Dịch vụ này sẽ trả về danh sách đã được lọc theo yêu cầu.

Hình 9: Ví dụ khi gọi tới endpoint search.

ĐÁNH GIÁ- NHẬN XÉT

Kết quả đạt được

5.1.1 Những kiến thức lý thuyết đã được củng cố:

− Kiến thức về Scrum/Agile ở môn Quản lý dự án công nghệ thông tin:

Tại Imbrace Hong Kong, sau khi học lý thuyết trên lớp, em đã được bổ sung kiến thức về cách phân bổ thời gian cho mỗi sprint, xử lý khó khăn khi gặp vấn đề, và cách các thành viên trong đội chia sẻ và hợp tác để giải quyết Quan trọng hơn, em đã học được tinh thần làm việc nhóm, kết hợp giữa thực hành Scrum/Agile và lý thuyết, giúp em ghi nhớ và áp dụng phương pháp làm việc này một cách hiệu quả.

Sử dụng NodeJS và RESTful API trong dự án học tập đã giúp tôi có kiến thức cơ bản cho vị trí BACKEND DEVELOPER tại Imbrace Tại đây, tôi đã cải thiện đáng kể tư duy bảo mật và kỹ năng lập trình nhờ vào môi trường làm việc chuyên nghiệp.

− Kiến thức về Git đã được học ở môn Nhập môn công nghệ phần mềm:

Nắm vững các lệnh mới để quản lý mã nguồn cho cả nhóm, phân bổ hợp lý các tệp tin trong Github/Gitlab và ghi chú commit khi "upload file" một cách dễ hiểu nhất.

5.1.2 Những kỹ năng thực hành đã được học thêm:

+ Cách đặt tên biến cho phù hợp Tên phải thể hiện được ý nghĩa và vai trò của nó. + Tránh dùng nhiều từ nhiều nghĩa.

+ Chỉ rõ hành vi chứ không phải ý định.

+ Chèn thêm những thông tin quan trọng vào tên biến.

+ Đặt tên biến tạm rõ ràng hơn.

+ Tên phải rõ ràng tránh sự hiểu nhầm.

− Học và áp dụng được về CI, Unit test, Docker, ClickUp, Slack, …

Kỹ năng mềm được cải thiện đáng kể nhờ vào các buổi trình bày sau mỗi sprint, giúp nâng cao khả năng giao tiếp bằng tiếng Anh Bên cạnh đó, việc tham gia các buổi đào tạo và giao lưu của câu lạc bộ tiếng Anh đã tạo cơ hội để tương tác trực tiếp với người bản xứ, từ đó phát triển kỹ năng ngôn ngữ một cách hiệu quả.

Những hạn chế

− Thực tập remote nên còn hạn chế về giao tiếp giữa người với người hơn lúc bình thường

− Hạn chế về thời gian, cần nhiều thời gian để thích nghi với môi trường làm việc.

− Quy trình, văn hóa công ty:

+ Được trải nghiệm làm việc trong môi trường doanh nghiệp nước ngoài rất chuyên nghiệp và đầy năng động

+ Học hỏi được cách làm việc theo quy trình Agile, Scrum.

+ Học hỏi được cách làm việc từ những anh mentor có kinh nghiệm lâu năm trong lĩnh vực công nghệ thông tin.

Để đảm bảo thời gian và sắp xếp công việc hợp lý, bạn nên sử dụng các phần mềm hỗ trợ của công ty Hơn nữa, việc tìm hiểu và tuân thủ quy định của công ty về chính sách là rất quan trọng để nâng cao hiệu quả công việc.

− Bài học về sự chủ động, giao tiếp và mở rộng mối quan hệ:

Học cách giao tiếp hiệu quả với đồng nghiệp và xây dựng mối quan hệ thân thiện Mở rộng kết nối với những người có kinh nghiệm, từ đó học hỏi tác phong chuyên nghiệp, tinh thần cầu tiến và hoài bão trong công việc.

Kiến thức từ trường lớp chỉ là nền tảng, vì vậy bạn cần chủ động tự học và tìm kiếm sự hướng dẫn từ mentor Hãy trao dồi kỹ năng mỗi ngày để tích lũy kinh nghiệm quý báu cho bản thân.

+ Cách để giải thích các thuật toán, code mình đã 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ỹ năng làm việc nhóm:

Để hòa hợp vào nhóm, bạn cần nhạy bén với các vấn đề của nhóm và phối hợp hiệu quả với mọi người Việc này giúp tạo ra sự gắn kết và đồng lòng, từ đó cả nhóm có thể làm việc cùng nhau để đạt được mục tiêu chung.

Giải quyết mâu thuẫn trong nhóm là cách hiệu quả để tăng cường sự gắn bó giữa các thành viên Đảm bảo phân công công việc rõ ràng và công bằng giúp mọi người cảm thấy được tôn trọng và có trách nhiệm Bên cạnh đó, lắng nghe ý kiến của các thành viên và hiểu rõ điểm mạnh, điểm yếu của nhau sẽ giúp phân công công việc một cách hợp lý, tối ưu hóa hiệu suất làm việc của nhóm.

Chúng em cam kết thực hiện trách nhiệm với nhiệm vụ được giao Khi gặp khó khăn trong công việc, chúng em sẽ tổ chức họp nhóm để thảo luận và tìm ra giải pháp cụ thể.

5.4 Quy trình công việc và các hoạt động trong tương lai

Hoạt động trong tương lai của em là tiếp tục ở lại công ty tham gia ở vị trí BackendDeveloper.

"Scrum," [Online] Available: https://hocvienagile.com/agipedia/tong-quan-ve- scrum/.

"CI overview," [Online] Available: https://luyenkimmau.com.vn/continuous- integration-la-gi/.

"GitLab CI," [Online] Available: https://topdev.vn/blog/trien-khai-ci-cd-voi- gitlab/.

"Docker overview," [Online] Available: https://docs.docker.com/get-started/overview/.

[Online] Available: https://delecweb.com/tin-tuc -su-kien/docker-la-gi-tong- quan-va-huong-dan-cach-dung-docker-n207.html.

Ngày đăng: 04/09/2023, 20:57

HÌNH ẢNH LIÊN QUAN

Hình 3: Quá trình tích hợp CI - Báo cáo thực tập doanh nghiệp backend developer
Hình 3 Quá trình tích hợp CI (Trang 16)
Hình 4: Pipeline CI - Báo cáo thực tập doanh nghiệp backend developer
Hình 4 Pipeline CI (Trang 18)
Hình 5: Đồ thị Pipeline - Báo cáo thực tập doanh nghiệp backend developer
Hình 5 Đồ thị Pipeline (Trang 19)
Hình 6: Quy trình, các bước hoạt động của Docker - Báo cáo thực tập doanh nghiệp backend developer
Hình 6 Quy trình, các bước hoạt động của Docker (Trang 20)
Hình 7: Giao task của mỗi Sprint qua ClickUp - Báo cáo thực tập doanh nghiệp backend developer
Hình 7 Giao task của mỗi Sprint qua ClickUp (Trang 23)
Hình 8: Ví dụ khi gọi tới endpoint Oauth. - Báo cáo thực tập doanh nghiệp backend developer
Hình 8 Ví dụ khi gọi tới endpoint Oauth (Trang 26)
Hình 9: Ví dụ khi gọi tới endpoint search. - Báo cáo thực tập doanh nghiệp backend developer
Hình 9 Ví dụ khi gọi tới endpoint search (Trang 27)

TỪ KHÓA LIÊN QUAN

w