Tải bản đầy đủ (.pdf) (19 trang)

Báo Cáo Thực Tập Intern Back End Software Engineering.pdf

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 (627.14 KB, 19 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b> TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN </b>

<b>KHOA CÔNG NGHỆ PHẦN MỀM </b>

<b>BÁO CÁO THỰC TẬP </b>

<b>INTERN BACK END SOFTWARE ENGINEERING </b>

<b>Công ty thực tập : STYL Solutions Pte. Ltd. Người phụ trách : Nguyễn Trung Thái Thực tập sinh : Phạm Thị Nhật Khánh </b>

TP. Hồ Chí Minh, tháng 12 năm 2023

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI MỞ ĐẦU </b>

Trong cuộc cách mạng cơng nghiệp 4.0, cơng nghệ thơng tin nói chung và ngành Cơng nghệ phần mềm nói riêng ln là nhân tố đóng vai trị quan trọng trong q trình phát triển của xã hội.

Công nghệ Web, hay công nghệ sản xuất các trang web đã phục vụ hầu hết các nhu cầu của con người từ bán hàng, cung cấp kiến thức đến thông tin liên lạc, ... Hiện nay đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫn chưa có dấu hiệu giảm.

Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng được yế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 ở hai yế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 web, em đã lựa chọn Back end web developer là định hướng cho việc học cũng như nghề nghiệp trong tương lai.

Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong mơi trường thực tế, em đã quyết định tham gia vào STYL Solutions – 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 3</span><div class="page_container" data-page="3">

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 15 tháng 12 năm 2023

Khánh

Phạm Thị Nhật Khánh

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ... 6

1.1. Giới thiệu STYL Solutions ... 6

1.2. Sản phẩm công ty ... 6

1.3. Lịch làm việc khi thực tập tại công ty ... 7

CHƯƠNG 2: NỘI DUNG THỰC TẬP ... 8

2.1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty ... 8

2.2. Nghiên cứu kỹ thuật ... 8

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP </b>

<b>1.1. Giới thiệu STYL Solutions </b>

<i>Hình 1.1. Logo </i>

STYL Solutions Pte. Ltd. (STYL) được thành lập vào năm 2008 bởi một nhóm doanh nhân cơng nghệ giàu kinh nghiệm với nền tảng kiến thức đa dạng từ các cơng ty điện tử đa quốc gia. Nhóm bao gồm những người có kỹ năng khác nhau về R&D, tiếp thị và sản xuất, đã cùng nhau phát triển STYL thành như ngày nay.

Mục đích của cơng ty là đưa FINTECH IoT vào các ứng dụng hàng ngày, tạo ra môi trường thông minh và hiệu quả nhằm nâng cao chất lượng cuộc sống cho tất cả mọi người.

<b>1.2. Sản phẩm công ty </b>

Là một công ty FINTECH IoT, STYL Solutions kết hợp các hoạt động thanh toán với các yếu tố của IoT, cung cấp nền tảng trên các phân khúc thị trường như Bán hàng tự động, Tự phục vụ, Vận chuyển, Bán lẻ, F&B cũng như Quản lý Dữ liệu IoT. Một số dự án nổi bật của cơng ty gồm có:

- Transit Solutions: là một giải pháp vận chuyển, một đầu đọc không tiếp xúc được thiết kế linh hoạt, nhỏ gọn với màn hình tích hợp phù hợp cho việc thu phí vận chuyển cũng như thanh tốn tự phục vụ bán lẻ mà không cần sự giám sát như cổng thu tiền vé, máy bán hàng tự động, máy trò chơi,…

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

- Intelligent school: đây là dự án thanh tốn khơng tiếp xúc được xây dựng cho các trường học, tạo điều kiện thuận lợi cho việc dạy học sinh nhỏ tuổi cách tiết kiệm và chi tiêu khôn ngoan bằng cách giúp các em theo dõi thói quen chi tiêu và tiết kiệm của mình. Thiết bị thanh tốn gồm có một đồng hồ thơng minh. Học sinh có thể thực hiện thanh tốn khơng tiếp xúc tại thiết bị đầu cuối Smart Buddy được lắp đặt trong các trường học và hơn 100.000 điểm thanh tốn trên khắp Singapore. Bên cạnh đó thì cha mẹ có thể quản lý và giám sát việc chi tiêu của con mình trên ứng dụng.

- FarmBox: là một giải pháp canh tác trong nhà thơng minh, tích hợp cơng nghệ canh tác trong nhà và IoT có khả năng trồng trọt thủy canh. Người dùng có thể điều khiển và giám sát tồn bộ q trình canh tác từ xa thơng qua trang web hoặc thiết bị di động có kết nối wifi. Đèn, quạt, nước có thể được lên lịch hoạt động; máy ảnh có thể được lên lịch để chụp ảnh vào nhiều thời điểm khác nhau; dữ liệu thời gian thực liên tục được gửi tới nền tảng đám mây để phân tích dữ liệu,….

<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 18/09/2023 tới 17/12/2023, các ngày làm việc trong tuần là thứ hai, thứ tư, thứ năm và thứ sáu. Công việc hằng ngày bắt đầu từ lúc 8h30 đến 5h30. Thời gian nghỉ trưa khoảng 1 tiếng. 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ừ người hướng dẫn. Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 2, mọi người sẽ cùng họp và bàn bạ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ếp theo.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 2: NỘI DUNG THỰC TẬP </b>

<b>2.1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty </b>

<i><b>Thời gian: 1 ngày Nội dung: </b></i>

- Nghe bộ phận HR giới thiệu về công ty, cách tổ chức của công ty, quá trình thành lập và phát triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng ty, các phịng ban về IT, HR, …

- Gặp IT Helpdesk để nhận thiết bị, cài đặt các phần mềm liên quan và được thêm vào phịng chat của cơng ty

- 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 đi làm, các quy định, cách sử dụng email trong công việc, …

<i><b>Kết quả: Em đã hiểu thêm về quy trình, phong cách và văn hóa làm việc của STYL </b></i>

Solutions,. Có thêm các kỹ năng về việc sử dụng email, báo cáo tiến độ, 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ật </b>

2.2.1. Tuần 1

<i><b>Nội dung: Cài đặt các cơng cụ lập trình và nghiên cứu về ngơn ngữ lập trình Java </b></i>

- Em được tìm hiểu và cài đặt các cơng cụ lập trình như Eclipse, MySQL workbench,…

- Gặp gỡ người hướng dẫn để thảo luận về các kiến thức cần học và nhiệm vụ trong q trình thực tập.

- Ơn tập các kiến thức cơ bản về java như OOP, Packages, Data Types, Conditional, Loop, Exception Handling, Memory Management & Garbage Collection,…

- Ôn tập các kiến thức nâng cao về java như Generics, Threading, Race condition, Collection, Antonation và Reflection,…

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<i><b>Kết quả: Sau tuần đầu tiên thực tập tại cơng ty, em có thể nắm được những mốc thời </b></i>

gian và nhiệm vụ cần hoàn thành. Bên cạnh đó, việc ơn tập lại ngơn ngữ java giúp em bổ sung những kiến thức chưa biết về java.

2.2.2. Tuần 2

<i><b>Nội dung: Nghiên cứu về Java EE </b></i>

- Gặp gỡ người hướng dẫn để báo cáo những kiến thức đã học được trong tuần trước và đặt mục tiêu cho tuần này.

- Tạo ứng dụng JSP Servlet cơ bản, sử dụng JDBC để kết nối cơ sở dữ liệu trong MySQL workbench.

- Nghiên cứu cách xây dựng và hoạt động của ứng dụng Spring MVC

- Tạo ứng dụng Spring MVC cơ bản giống với ứng dụng JSP Servlet trước đó

<i><b>Kết quả: Sau tuần thứ hai, em đã học được cách lên kế hoạch, mục tiêu hằng tuần. Bằng </b></i>

việc tạo những ứng dụng đơn giản, em có thể có cái nhìn tổng quan về các ứng dụng java web, so sánh được sự giống và khác nhau giữa chúng, đồng thời làm quen với IDE lập trình mới.

<b>2.2.3. Tuần 3 </b>

<i><b>Nội dung: Nghiên cứu về unit test cơ bản và unit test trong Spring framework </b></i>

- Gặp người hướng dẫn để báo cáo những kiến thức đã học được trong tuần trước và đặt mục tiêu cho tuần này.

- Tìm hiểu các khái niệm, vịng đời và vai trị của unit test. - Tìm hiểu về unit test trong java và Spring framework.

- Viết unit-test cơ bản cho ứng dụng web đơn giản được tạo từ hai tuần trước.

<i><b>Kết quả: Sau tuần thứ ba, em đã có thêm nhiều kiến thức hơn về unit test, hiểu được </b></i>

vai trò của unit test trong phát triển và bảo trì phần mềm.

<b>2.2.4. Tuần 4 </b>

<i><b>Nội dung: Nghiên cứu unit test trong Spring framework và thuyết trình những kết quả </b></i>

đã tìm hiểu được với người hướng dẫn và team thực tập.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

- Đọc tài liệu và tìm hiểu về Spring test context framework. - Tìm hiểu cơ sở dữ liệu H2 dùng trong kiểm thử.

- Tìm hiểu các bước để viết unit test cho dự án Spring MVC. - Chuẩn bị những nội dung cho bài thuyết trình.

- Thuyết trình cho người hướng dẫn và team thực tập

<i><b>Kết quả: Sau tuần thứ tư, em hiểu sâu hơn về unit test trong Spring framework. Qua </b></i>

việc thuyết trình, em có thể củng cố kiến thức thêm một lần nữa cũng như nhận được những góp ý chân thực của người hướng dẫn.

<b>2.3. Tham gia dự án thực tế 2.3.1. Giới thiệu dự án </b>

Caribbean ( là dự án trong lĩnh vực giáo dục đã được phát triển từ nhiều năm về trước của STYL Solutions. Hiện tại, công ty đang tham gia vào giai đoạn bảo trì. Là thực tập sinh, em được giao nhiệm vụ viết unit test cho dự án này, mục tiêu là duy trì các tiêu chuẩn và chất lượng khi bảo trì và cập nhật trong tương lai.

Dự án Caribbean CMS là một ứng dụng Java Spring Framework, MySQL workbench cho cơ sở dữ liệu. Dự án giúp các điểm bán trong các trường học có thể quản lý việc bán đồ ăn, học sinh thể mua đồ ăn, thanh toán bằng thẻ và mã QR thơng qua tích hợp thiết bị đầu cuối thanh tốn. Ngồi ra thì ứng dụng hỗ trợ ba mẹ có thể nạp tiền vào ví điện tử gia đình và đặt hàng trước cho con của mình. Caribbean cũng theo dõi tình trạng dị ứng của người dùng, ngăn chặn việc bán các thực phẩm có khả năng gây nguy hiểm cho các cá nhân.

<i><b>Một số hình ảnh của Caribbean: </b></i>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>Hình 2.3.1.1. Màn hình quản lý các đồ ăn vặt </i>

<i>Hình 2.3.1.2. Màn hình quản lý hệ thống các máy POS đã được sử dụng </i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i>Hình 2.3.1.3. Màn hình quản lý hệ thống các máy order </i>

<i>Hình 2.3.1.4. Màn hình quản phiên bản của hệ thống </i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Hình 2.3.1.5. Màn hình thống kê </i>

<b>2.3.2. Quá trình tham gia dự án thực tế 2.3.2.1. Tìm hiểu về dự án </b>

<i><b>Thời gian: 1 tuần </b></i>

<i><b>Nội dung: Sau khi thuyết trình về unit test ở tuần trước thì tuần này em nhận được </b></i>

nhiệm vụ là tìm hiểu và viết unit test cho dự án Caribbean. Em được thêm vào dự án Caribbean trên GitLab và thực hiện clone code về máy và chạy chương trình.

- Trong thời gian một tuần, em đọc những tài liệu hiện có liên quan đến dự án, tìm hiểu cấu trúc dự án, user flow, danh sách các màn hình, coding

conventions,…

- Gặp người hướng dẫn để báo cáo và hỏi về những gì chưa hiểu rõ trong dự án

<i><b>Kết quả: Em hiểu rõ hơn về mục đích của dự án, cấu trúc của dự án và cách hoạt động </b></i>

một ứng dụng Spring trong môi trường thực tế.

<b>2.3.2.1. Thực hiện nhiệm vụ viết unit test </b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i><b>Thời gian: 6 tuần </b></i>

<i><b>Nội dung: Sau khi tìm hiểu về dự án Caribbean, em gặp người hướng dẫn để báo cáo </b></i>

và hỏi về những nội dung chưa nắm rõ. Những tuần tiếp theo, em thực hiện viết unit test cho các module trong dự án từ các lớp Dao, các lớp Service đến các lớp

<i><b>Kết quả: Sau 6 tuần thực hiện viết unit test cho dự án, em đã hoàn thành unit test cho </b></i>

những module được giao với độ bao phủ ở mức tốt. Qua thời gian đó, em có thể viết unit test thành thạo và chuyên nghiệp hơn.

<b>2.3.4. Thuận lợi </b>

Trong thời gian tham gia viết unit test cho dự án Caribbean, em học hỏi được rất nhiều kiến thức từ cách xây dựng ứng dụng web trong thực tế, đến cách làm để đảm bảo chất lượng cho những dòng code.

Trước đây, khi học tại trường, em đã từng làm ứng dụng web bằng Java Spring Boot, cho đến khi được tiếp cận với dự án Spring MVC trong thực tế giúp em hiểu rõ hơn về cấu trúc, cách xây dựng của ứng dụng web.

Trong vịng ba tháng thực tập tại cơng ty, em nhận được sự giúp đỡ nhiệt tình của người hướng dẫn, giúp em được giải đáp những vướng mắc trong dự án. Bên cạnh người hướng dẫn, em cũng học hỏi được rất nhiều từ những bạn thực tập sinh, các bạn là người cùng làm việc và cùng thảo luận về những vấn đề em chưa hiểu rõ.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>2.3.5. Khó khăn </b>

Khi tìm hiểu về dự án thực tế, do dự án đã phát triển từ nhiều năm trước nên tài liệu về dự án cịn rất ít khiến em gặp khó khăn khi đọc hiểu về dự án. Em mất nhiều thời gian hơn để hiểu dự án làm gì, tự tìm hiểu cấu trúc của dự án và hỏi người hướng dẫn về dự án.

Dự án trong thực tế khá phức tạp, và có quy mơ lớn hơn rất nhiều so với những ứng dụng web em từng làm ở trường, do vậy, việc viết unit test đảm bảo độ bao phủ đòi hỏi sự tỉ mỉ, cẩn thận và hiểu biết sâu về Spring test context và lĩnh vực khác trong quá trình phát triển phần mềm.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>CHƯƠNG 3: TỔNG KẾT </b>

Quãng thời gian thực tập tại STYL Solutions đã giúp em 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 một kỹ sư phần mềm. Đây là một trải nghiệm tuyệt vời, đầy ý nghĩa, giúp em học hỏi được rất nhiều kiến thức về nghề nghiệp trong tương lai.

Về kiến thức, kỳ thực tập là một hành trình giúp em có tầm nhìn rộng mở hơn về kiến thức. Trong q trình thực tập tại cơng ty, em được tìm hiểu sâu hơn về Java Spring framework giúp em có cái nhìn tồn diện hơn kiến trúc, nguyên tắc của ứng dụng Spring. Bên cạnh đó, việc đọc hiểu tài liệu về dự án Caribbean của cơng ty, em có được sự hiểu biết về dự án thực tế, cách xây dựng ứng dụng web có khả năng mở rộng, bảo trì. Trong q trình thực tập tại cơng ty, nhiệm vụ chính của em là viết unit test cho ứng dụng Caribbean. Qua đó, em có thể hiểu được những kiến thức và vai trò của unit test trong phát triển ứng dụng web với Spring framework, các bước viết unit test, làm sao để đảm bảo độ bao phủ code của unit test.

Về kỹ năng, kỳ thực tập mang lại cho em những kỹ năng thiết yếu về làm việc trong môi trường thực tế. Việc thực hiện các nhiệm vụ tại công ty không chỉ giúp nâng cao trình độ về Java Spring framework mà cịn củng cố hơn kỹ năng giải quyết vấn đề cũng như quản lý thời gian của em. Qua quá trình thực tập tại công ty, em nhận thấy để trở thành một kỹ sư phần mềm địi hỏi sự kiên trì, tính tỉ mỉ và sự cẩn thận rất lớn, điều này giúp em hình thành tác phong trong cơng việc. Khơng chỉ là kỹ năng lập trình, em cịn học hỏi được thêm những kỹ năng khác trong công việc như sử dụng email trong môi trường doanh nghiệp, làm việc nhóm, đặt vấn đề, giao tiếp với đồng nghiệp và học hỏi từ những anh chị đi trước.

Như vậy, trong thời gian hạn chế, em đã hoàn thành các kiến thức training của công ty và cùng bạn trong team thực tập đã hoàn thành unit test cho dự án Caribbean.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của anh Nguyễn Trung Thái và tồn thể cơng ty STYL Solutions trong quá trình thực tập. Nhờ sự giúp đỡ của mọi người mà em có khoảng thời gian thực tập đầy ý nghĩa và đáng nhớ. Hành trình này góp phần to lớn vào việc thúc đẩy sự phát triển cá nhân, là hành trang để em có thể phát triển và theo đuổi nghề nghiệp trong tương lai.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>3.1. Điểm mạnh </b>

● Đã có kinh nghiệm về lập trình ứng dụng web từ trước ● Có kỹ năng về ngơn ngữ java và spring framework ● Chấp hành tốt các nội quy của công ty

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>TÀI LIỆU THAM KHẢO </b>

1. Spring framework document. Link: 2. Stack Overflow. Link:

</div>

×