Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 24 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Trong cuộc cách mạng công nghiệp 4.0, cơng nghệ thơng tin nói chung và ngànhCơng nghệ phần mềm nói riêng ln là nhân tố đóng vai trị quan trọng trong q trìnhphát triển của xã hội.
Do đó, một trang ứng dụng muốn được nhiều người sử dụng phải đáp ứng đượcyếu tố hình thức và nội dung. Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở haiyếu tố trên ln làm bất kì một đội ngũ phát triển website nào cũng cần phải suy nghĩđau đầu. Để thử thách bản thân trong ngành công nghiệp này, em đã lựa chọn JavaBack-end developer là định hướng cho việc học cũng như nghề nghiệp trong tươnglai.
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng nhữngkiến thức đã học và có được trải nghiệm trong mơi trường thực tế, em đã quyết địnhtham gia vào Công ty Resource Software Solution – một môi trường lý tưởng vàchuyên nghiệp để thực hiện dự định.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Em xin trân trọng gửi lời cảm ơn Resource Sofware Solution đã tạo điều kiện choem cơ hội được thực tập tại công ty. Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫnnhiệt tình của anh Tuân, em đã tiếp thu những kiến thức quan trọng để có thể tham giamột dự án thực tế.
Chân thành cảm ơn anh Mentor Tuân và các anh trong team đã bỏ ra nhiều thờigian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen mơitrường mới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tưduy sản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gianqua.
Em cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗtrợ, tạo điều kiện em làm báo cáo này.
TP. HCM, ngày 28 tháng 12 năm2023
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP...6
<b>1.1. Giới thiệu Resource Software Solution...6</b>
<b>1.2. Sản phẩm nổi bật của công ty...6</b>
<b>1.3. Lịch làm việc khi thực tập tại cơng ty...6</b>
CHƯƠNG 2: NỘI DUNG THỰC TẬP...8
<b>2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty...8</b>
<b>2.2. Nghiên cứu kỹ thuật...8</b>
<b>2.2.1. Các cơng cụ làm việc...8</b>
<b>2.2.2. Ơn tập Java...9</b>
<b>2.2.3. Ơn tập, học thêm về Spring Boot...9</b>
<b>2.2.4. Tìm hiểu các công cụ để phát triển hệ thống phân tán với Spring...10</b>
<b>2.2.5. Tìm hiểu Oauth2 và Spring Authorization Server...10</b>
<b>2.2.6. Tìm hiểu thư viện JDBI...10</b>
<b>2.2.7. Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs...11</b>
<b>2.2.8. Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate...11</b>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">R2S ra đời vào ngày một tháng tám năm 2019 với nhiệm vụ đào tạo nhân sựCNTT cho doanh nghiệp, phát triển phần mềm và tư vấn giải pháp CNTT.
Đội ngũ sáng lập có anh Lê Hồng Kỳ và hiện tại anh là Giám đốc R2S
<b>1.2. Sản phẩm nổi bật của công ty</b>
Đào tạo nhân sự làm được việc ngay cho doanh nghiệp (Resource) Phát triển phần mềm (Software)
Tư vấn giải pháp CNTT cho các doanh nghiệp thực hiện chuyển đổi số (Solution)
<b>1.3. Lịch làm việc khi thực tập tại công ty</b>
Em tham gia làm việc tại công ty bắt đầu từ ngày 3/7/2023 tới 25/9/2023, từ thứ 2đến thứ 6.
Công việc hằng ngày bắt đầu từ lúc sáng 9h30 đến 12h và chiều 1h30 đến 18h.Thời gian nghỉ trưa khoảng 1 tiếng rưỡi. Sau mỗi ngày làm việc em sẽ báo cáo tiến độcông việc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mụctiêu cho ngày làm việc tiếp theo.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Mỗi tuần sẽ họp tiến độ tuần 1 lần vào chiều thứ 6, mọi người sẽ cùng họp và bànbạc về các vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần tiếptheo.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Thời gian: 1 ngày
Nội dung: giới thiệu về công ty, cách tổ chức của công ty, được nghe người phụtrách giới thiệu về cơng ty, q trình thành lập và phát triển, quy trình làm việc từ caoxuống thấp, cách thức tổ chức của cơng ty, các phịng ban về IT, HR, … Ngồi ra,thực tập sinh cịn được giới thiệu về văn hóa làm việc trong cơng ty như thời gian đilàm, các quy định, cách sử dụng email trong công việc, …
Kết quả: hiểu thêm về công ty cổ phần Resource Software Solution, quá trìnhthành lập và phát triển. Có thêm các kỹ năng về việc sử dụng email trong cơng việc,làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn.
<b>2.2. Nghiên cứu kỹ thuật2.2.1. Các cơng cụ làm việc</b>
Thời gian 2 ngày.
Nội dung: Tìm hiểu các cơng cụ sẽ sử dụng trong q trình làm việc. Email công ty.
Trello để quản lý dự án và ghi chú. IntelliJ Idea để lập trình Java. Git để quản lý mã nguồn. OpenVPN.
PostgreSQL Postman….
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Hiểu được về quy trình làm việc và các cơng cụ dùng trong q trình làmviệc
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>2.2.2. Ơn tập Java</b>
Thời gian: 3 ngày.
Nội dung: Được ơn tập lại ngơn ngữ lập trình Java, OOP, một số design pattern từtài liệu được anh mentor cung cấp.
Thực hiện:
Tham gia đầy đủ các buổi training của công ty. Làm các bài thực hành, kiểm tra về kiến thức đã học.Kết quả:
Nâng cao kỹ năng lập trình Java.
Có được những kiến thức nền tảng cho việc lập trình Backend Java saunày.2.3. Thực hiện dự án cá nhân
<b>2.2.3. Ôn tập, học thêm về Spring Boot</b>
Thời gian: 5 ngày
Nội dung: Ôn tập các khái niệm cơ bản trong Spring Framework từ tàiliệu được anh mentor cung cấp.
Thực hiện:
Đọc hiểu tài liệu Modern API Development with Spring and SpringBoot: Design highly scalable and maintainable APIs with REST, gRPC,GraphQL, and the reactive paradigm - Sourabh Sharma.
Kết quả:
Ôn tập lại các khái niệm nền tảng của Spring Framework. Thực hiện dự án API CRUD cơ bản với Spring Boot.
<b>2.2.4. Tìm hiểu các công cụ để phát triển hệ thống phân tán với Spring</b>
Thời gian: 5 ngày.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Nội dung: Tìm hiểu thư viện Spring Cloud, cách cài đặt và cấu hình các thư việnliên quan.
<b>2.2.5. Tìm hiểu Oauth2 và Spring Authorization Server</b>
Thời gian: 5 ngày
Nội dung: Tìm hiểu Oauth2 và thư viện Spring Authorization Server để bảo mậtcho hệ thống
Thực hiện:
Tìm đọc cái tài liệu liên quan. Demo trên project cá nhân.Kết quả:
Sử dụng thành công Spring Authorization server để làm auth server chohệ thống.
<b>2.2.6. Tìm hiểu thư viện JDBI</b>
Thời gian: 5 ngày.
Nội dung: Tìm hiểu thư viện JDBI.
Thực hiện:
Tìm đọc cái tài liệu liên quan.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"> Demo trên project cá nhân.Kết quả:
Hiểu được cách sử dụng JDBI để áp dụng vào trong dự án.
<b>2.2.7. Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs</b>
Thời gian: 5 ngày.
Nội dung: Tìm hiểu chuẩn RFC 7870 – Problem Details for HTTP APIs và áp dụng vào trong
Exception Handling của Spring.Thực hiện:
Đọc tài liệu Internet Engineering Task Force (IETF). Thử nghiệm tích hợp vào một module của công ty.Kết quả:
Hiểu được chuẩn RFC 7870 – Problem Details for HTTP APIs.
<b>2.2.8. Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate</b>
Thời gian: 5 ngày.
Nội dung: Tìm hiểu SnowFlakeId của Twitter, ưu nhược điểm so với các Identifier thường
dùng vào tạo Annotation để sử dụng cho Hibernate.Thực hiện:
Tìm đọc cái tài liệu liên quan. Demo trên project cá nhân.Kết quả:
Sử dụng thành công SnowFlakeId.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>2.4. Tham gia dự án thực tế</b>
Sau gần 2 tháng được training và thực hiện các demo project, em đã nắm được cáckiến thức cần thiết về Java, Spring, sử dụng tốt các công cụ cần thiết cho dự án.
<b>2.5. Giới thiệu về dự ánDe Heus Mobile App</b>
Dự án De Heus Mobile App là một dự án out-sourcing được thực hiện theo yêucầu của một công ty chuyên cung cấp thức ăn gia súc, gia cầm.
Mục tiêu của ứng dụng này để giúp cho khách hàng của cơng ty có thể thực hiệnviệc đặt hàng cũng như biết cách thức thanh toán, xem tin tức khuyến mãi, chiết khấucủa cơng ty,…. một cách nhanh chóng, tiện lợi.
Đối tượng sử dụng của ứng dụng này là các khách hàng ở vị trí đại lý cấp 1. Cáctệp khách hàng này là những khách hàng lấy hàng số lượng lớn để phân phối cho cácđại lý nhỏ hơn bên dưới (đại lý cấp 2, cấp 3, người dùng cuối,…). Với số lượng lấyhàng lớn, phía cơng ty cung cấp thức ăn gia súc, gia càm cần tạo sự tiện lợi cho kháchhàng cần đặt hàng, xem mức chiết khấu, khuyến mãi, mặt hàng mới, tổng lượng hàngđã đặt, sản lượng tổng đã lấy hàng của từng năm,……
Nhóm của em gồm 6 người bao gồm: Trần Anh Tuân (Leader) Nguyễn Ngọc Công Bùi Ngọc Dũng Nguyễn Hạo Nhiên
Phạm Nguyễn Minh Quang Lê Đức Vinh
Nhóm em có nhiệm vụ phát triển, bảo trì cho ứng dụng này.Một số hình ảnh về ứng dụng:
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Giao diện đăng nhập
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Giao diện đặt hàng
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">Giao diện thông tin sản phẩm
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Giao diện tin tức
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><b>2.6. Q trình thực hiện</b>
n <sup>Cơng việc</sup>
Người hướng dẫn
Mức độ hồn thành
Nhận xét của người hướng dẫn
2 <sup>Tìm hiểu các công cụ làm việc</sup> <sup>anh Trần Anh </sup><sub>Tuân</sub> <sup>100%</sup>
anh Trần Anh Tuân
5 Tìm hiểu Oauth2 và Spring Authorization Server
anh Trần Anh Tuân
anh Trần Anh Tuân
Tìm hiểu SnowFlakeId và tạo Custom Identifier trong Hibernate
anh Trần Anh Tuân
9 Tìm hiểu, cấu hình Spring Security, viết tài liệu báo cáo
anh Trần Anh Tuân
Thử nghiệm các API, fix một số lỗi nhỏ theo yêu cầu của mentor Tuân
anh Trần Anh Tuân
100%
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"> Cấu hình Spring Security
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"> Sử dụng Postman để test API:
<b>2.8. Kết quả</b>
Thực hiện tốt các task được mentor giao.
Hiểu được cách thức hoạt động của Spring Authorization ServerBiết được cách sử dụng Postman để thử nghiệm một số API.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">Quãng thời gian thực tập tại công ty cổ phần Resource Software Solution đã giúpem cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của ngườikỹ sư phần mềm. Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụngmail, quản lý cơng việc, làm việc nhóm, giao tiếp với cấp trên...
Chỉ trong thời gian hạn chế, em đã hồn thành dự án cá nhân trong q trìnhtraining với các tính năng, yêu cầu đặt ra ban đầu. Ở giai đoạn ban đầu khi mới thamgia dự án, em thường có những sai sót về báo cáo cũng như quy trình làm việc. Cácthiếu sót ấy cũng đã được anh chị tận tình hướng dẫn từng chút để em có thể hồnthành tốt cơng việc.
Khi tham gia vào dự án thực tế, em cũng hồn thành tốt các cơng việc đúng hạnvà đạt chất lượng tốt. Được thực tập tại công ty là một cơ hội may mắn đối với em.Đây là một mơi trường năng động, có cơ hội thăng tiến rõ ràng, thời gian làm việc linhhoạt. Công ty quan tâm về mảng đào tạo nguồn nhân lực mới, sức khỏe tinh thần chonhân viên với các hoạt động thể thao như đá bóng, cầu lơng được tổ chức hàng tuần.
<b>3.1. Điểm mạnh</b>
Nâng cao khả năng làm việc nhóm, quản lý dự án, tư duy phản biện, kỹ năng quảnlý thời gian.
Học được cách làm việc trong môi trường doanh nghiệp.
Học được cách một dự án thực tế được triển khai và hoạt động như thế nào và biết được cách làm sao để áp dụng các kiến thức đã học để đưa ra các giải pháp với các vấn đề ở thực tế.
Học được cách nghiên cứu và làm việc độc lập. Nâng cao khả năng đọc hiểu tài liệu tiếng anh.
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><b>3.2. Điểm yếu</b>
Quy trình merge code ban đầu cịn nhiều sai sót.
Giai đoạn đầu dự án vẫn cần anh mentor trợ giúp khá nhiều. Còn hay mắc lỗi code convention, các lỗi conflict
Kiến thức về hệ thống phân tán còn khá mới đối với em địi hỏi phải tự tìm đọc,nghiên cứu tài liệu nhiều.
Cần rèn luyện thêm về kỹ năng viết tài liệu.
<b>3.3. Chuẩn đạt được</b>
Goal Mục tiêu môn học
G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệpG2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống
Spring Framework Documentation.
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Spring Boot Documentation.
Java Documentation. Carnell, J. (2021). Spring Microservices in Action (2nd ed.). Manning Publications.
[2] Richardson, C. (2018). Microservices Patterns: With examples in Java. Manning Publications.
Sharma, A. (2018). Mastering Spring Boot 2.0: Build modern, cloud-native, and distributed systems using Spring Boot. Packt Publishing.
</div>