Em xin trân trọng gửi lời cảm ơn và tri ân sâu sắc đến các Thầy, Cô giáo thuộckhoa Kỹ thuật phần mềm đã mang lại những kiến thức vô cùng giá trị này để xây nênnền tảng vững chắc cho em
Trang 1TRƯỜ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
JAVA BACK-END DEVELOPER
Công ty thực tập: Spiraledge Người phụ trách: Đặng Quang Vinh/
Nguyễn Đức Hoài Thực tập sinh: Lê Hoàng Phúc
Trang 2TP Hồ Chí Minh, tháng 12 năm 2023
LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, công nghệ thông tin nóichung và ngành Công nghệ phần mềm nói riêng luôn là nhân tốđóng vai trò quan trọng trong quá 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ệugiả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 luôn làm bất kì một đội ngũ pháttriển website nào cũng cần phải suy nghĩ đau đầu Để thử thách bảnthân trong ngành công nghiệp web, em đã lựa chọn Backend webdeveloper là định hướng cho việc học cũng như nghề nghiệp trongtương lai
Sau những năm tháng trong môi trường đại học, với mong muốn ápdụng những kiến thức đã học và có được trải nghiệm trong môitrường thực tế, em đã quyết định tham gia vào Công ty Spiraledge –một môi trường lý tưởng và chuyên nghiệp để thực hiện dự định
Trang 3LỜI CẢM ƠN
Trong suốt thời gian học tập và rèn luyện tại trường đại học Công Nghệ ThôngTin, bản thân em đã được tiếp nhận sự truyền đạt rất nhiệt tình và tiếp nhận nhiều kiếnthức bổ ích trong lĩnh vực công nghệ thông tin nói chung và hệ thống thông tin nóiriêng Em xin trân trọng gửi lời cảm ơn và tri ân sâu sắc đến các Thầy, Cô giáo thuộckhoa Kỹ thuật phần mềm đã mang lại những kiến thức vô cùng giá trị này để xây nênnền tảng vững chắc cho em cũng như các bạn sinh viên khác trong quá trình thực tập.Qua đây em cũng xin trân trọng gửi lời cảm ơn về phía công ty TNHH Cạnh Xoắn ỐcViệt Nam (Spiraledge VietNam) đã tạo điều kiện cho em có cơ hội được tham giathực tập tại công ty, đồng thời em cũng xin cảm thầy Trần Anh Dũng đã theo sát vàhướng dẫn em hoàn thành tốt báo cáo thực tập này
Qua ba tháng thực tập tại công ty, em được trang bị những kỹ năng mềm, nâng cao
và hoàn thiện kiến thức chuyên môn thông qua các dự án thực tế mà công ty đã thựchiện Em xin chân thành cảm ơn anh Trần Tấn Phước – Giám đốc Việt Nam, anhĐặng Quang Vinh–Senior Java Developer, cùng các anh chị trong công ty đã giúp đỡ
và chỉ dẫn tận tình cho em trong suốt quá trình thực tập Những kiến thức và kinhnghiệm trong suốt thời gian qua đã giúp em dần hoàn thiện hơn, có thêm kinh nghiệm
về ngôn ngữ lập trình Java, tạo ra một API Server, cùng với đó đặc biệt là việc đượccông tác trong môi trường quốc tế đa dạng ngôn ngữ
Tuy nhiên, do kiến thức cũng như kinh nghiệm còn hạn chế, bài báo cáo không thểtránh khỏi những sai sót Chính vì vậy, em mong nhận được những ý kiến đóng góp
của quý Thầy Cô để bản thân hoàn thiện hơn Ngoài ra, do lý do bảo mật dữ liệu của
các dự án trong rằng buộc với công ty nên một số thông tin liên quan đến dữ liệu và
Trang 4kết quả của các bản báo cáo Phân tích, source code trong bài báo cáo của em có thể thiếu sót.
Cuối cùng, em xin kính chúc quý Thầy, Cô lời chúc sức khỏe, hạnh phúc, thành công trong công việc
TP HCM, ngày … tháng …
năm …
Lê Hoàng Phúc
NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
NHẬN XÉT CỦA KHOA 4
MỤC LỤC 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 7
1.1 Giới thiệu Công Ty Spiraledge 7
1.2 Sản phẩm công ty 8
1.3 Lịch làm việc khi thực tập tại công ty 13
CHƯƠNG 2: NỘI DUNG THỰC TẬP 14
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 14
2.2 Tham gia dự án thực tế 14
2.2.1 Tuần 1 14
Trang 62.2.2 Tuần 2 14
2.2.3 Tuần 3 15
2.2.4 Tuần 4 15
2.2.5 Tuần 5 15
2.2.6 Tuần 6 16
2.2.7 Tuần 7 16
2.2.8 Tuần 8 16
2.2.9 Tuần 9 17
2.2.10 Tuần 10 17
2.2.11 Tuần 11 17
2.2.12 Tuần 12 17
2.4 Tham gia dự án thực tế 18
CHƯƠNG 3: TỔNG KẾT 19
3.1 Điểm mạnh 19
3.2 Điểm yếu 19
3.3 Chuẩn đạt được 20
TÀI LIỆU THAM KHẢO 21
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 1.1 Giới thiệu Công Ty Spiraledge
Hình 1.1 Logo Spiraledge
Trang 7- Tên công ty: Công ty TNHH Cạnh Xoắn Ốc Việt Nam.
- Địa chỉ: Số 112/18, Đường Nguyễn Văn Hưởng, Phường Thảo Điền, Thànhphố Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam
- Văn hóa công ty: công ty luôn đề cao sự sáng tạo, tư duy phản biện Vớicâu châm ngôn “Think out of box”, công ty luôn cố gắng tạo điều kiện chonhân viên sáng tạo với những aha moment
Trang 81.2 Sản phẩm công ty
Swimoutlet
- Website bán lẻ quần áo bơi và các thiết bị dành cho môn thể thao dưới nướcnhư là đồng hồ, máy cảm biến đo nhịp tim đến từ chính công ty và cácthương hiệu khác như Nike, Adidas, TYR,…
- Website: https://www.swimoutlet.com/
Hình 1.2 SwimOutlet Website
Trang 9- Swim là một nền tảng miễn phí dành cho những người yêu thích bơi lội chođến vận động viên chuyên nghiệp Swim hỗ trợ ở 3 nền tảng: IOS, Android
và Web app
- Nó là một công cụ đơn giản để đặt mục tiêu, theo dõi quá trình tập luyện và
so sánh số liệu thống kê với đồng đội và bạn bè Ngoài ra người dùng có thểsử dụng swim để tìm các bể bơi, câu lạc bộ bơi một cách dễ dàng Hiện naytrên swim còn có các bài viết, video hướng dẫn cho người dùng thực hành
- Website: https://www.swim.com/
Hình 1.3 Swim website
Trang 10- Website thương mại điện tử bán áo quần, thảm tập Yoga và các dụng cụ hỗtrợ thiền định Ngoài ra yogaoutlet còn chia sẻ các bài blog về thiền, tậpluyện
- Website: https://www.everydayyoga.com/
Hình 1.4 EverydayYoga Website
Trang 11- Nền tảng dạy yoga trực tuyến, với đa dạng nhiều loại yoga khác nhau như:Vinyasa, Kundalini, Tai chi, Yoga Fusion,… Practyce cung cấp nhiều loạilớp học cùng với những giáo viên chất lượng có kinh nghiệm trong lĩnhvực, với mong muốn mang lại những điều tốt nhất cho khách hàng
- Người dùng có thể đăng ký sử dụng phiên bản trải nghiệm trong vòng 15ngày, sau khi kết thúc có thể lựa chọn đăng ký lên thành viên với nhiều lựachọn khác nhau Người dùng có thể chuyển đổi giữa trang web Practyce vàtrang web EverydayYoga
- Website: https://practyce.com/teachers
Hình 1.5 Practyce Website
Trang 12- Nền tảng hỗ trợ canh tác công nghệ cao Giúp nông dân lập kế hoạch trồngtrọt, tính toán diện tích và vị trí trồng trên nông trại của họ, quản lý nguồnnhân công, thời gian và kế hoạch thu hoạch, bán sản phẩm cho khách hàng.Sau khi nông dân thu hoạch, Tend sẽ cung cấp cửa hàng để nông dân có thểbán sản phẩm của chính mình
- Khách hàng có thể mua tài khoản theo tháng với giá $39, theo năm với giá
Trang 131.3 Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ ngày 05/07 tới05/10, các ngày làm việc trong tuần là thứ 2 – thứ 6 Công việc hằngngày bắt đầu từ lúc 8h30 đến 17h Thời gian nghỉ trưa khoảng 1tiếng Vào mỗi buổi sáng mọi người sẽ báo cáo việc mình đã làmđược hôm qua và các việc sẽ làm hôm nay vào kênh Google Chatcủa team Và sau mỗi ngày làm việc em sẽ báo cáo tiến độ côngviệc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướngdẫn, đặt mục tiêu cho ngày làm việc tiếp theo Mỗi 2 tuần sẽ họp đểreview customer feedbacks tuần vào chiều thứ 6, mọi người sẽ cùnghọp và bàn bạc về các vấn đề được khách hàng phản hồi, trong cảcuộc họp thì mọi người sẽ đều giao tiếp bằng tiếng Anh
Trang 14CHƯƠNG 2: NỘI DUNG THỰC TẬP 2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
_ 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, quá trìnhthà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, …Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việctrong công ty như thời gian đi làm, các quy định, cách sử dụngemail trong công việc, …
_ Kết quả: hiểu thêm về Spiraledge, quá trình thà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ôngviệc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
Kết quả: Làm quen được với mọi người trong công ty, biết được vănhóa cũng như là giờ giấc làm việc tại công ty Hiểu được một phầnsource code của project mình tham gia
2.2.2 Tuần 2
Nội dung: Bắt đầu dược giao những task cơ bản như là fix bug tồnđọng ở một số feature và implement một chức năng tự tạo ra têncủa một “Task” trên product
Trang 15Kết quả: Có khả năng đọc hiểu code tốt khi fix bug ta phải đọc hiểuđược cấu trúc cảu project và hiểu được flow khi tạo “Task” từ “TaskTemplate” để có thể chỉnh sửa code để tự tạo tên cho “Task”
Màn hình Task Template2.2.3 Tuần 3
Nội dung: Tiếp tục làm quen với project bằng các task có độ khókhông cao như phân trang kết quả trả về ở cả trên 2 phiên bản V1
và V2 của project Đọc hiểu source code phiên bản V1 của project để
có thể hoàn thành việc được giao Đồng thời fix một số bug kháctrong project
Kết quả: Học được kỹ thuật phân trang kết quả trả về giúp tăng hiệunăng của project khi chỉ lấy đủ những kết quả cần thiết tránh dưthừa Tăng cường giao tiếp với các anh chị trong team để tăng hiệusuất làm việc
Trang 162.2.4 Tuần 4
Nội dung: Đã dần quen với project nên được giao cái task có độ khócao hơn như là việc xóa các “Crop” và các “Variety” tương ứng Vàcác thao tác Add và Edit task
Kết quả: Bắt đầu bắt tay và các công việc có độ khó cao hơn nên đòihỏi cần cố gắng hơn và và ký năng giao tiếp cũng phải trao dồi
2.2.5 Tuần 5
Nội dung: Tiếp tục 2 task lớn từ tuần trước và xử lý các bug ở cácchức năng khác cần người hỗ trợ Lần đầu tham gia buổi “CustomerFeedback” đây là nơi mà mọi người trong team sẽ ngồi lại với nhau
và đọc những feedback từ các khách hàng hiện tại đồng thời đưa racách xử lý các bug hay là những thao tác trên product hiện tại
Kết quả: Được thử thách bản thân khi làm các task có độ khó caohơn và được trau dồi thêm khả năng tiếng Anh khi trong mọi cuộchọp thì tất cả người trong team sẽ giao tiếp bằng tiếng Anh
2.2.6 Tuần 6
Nội dung: Bắt đầu được giao những task có độ khó cao và sử dụngnhiều kỹ năng hơn trong quá trình hoàn thành công việc Bắt đầulàm việc với bộ phận DBA (Database Adminstator) để xử lý các tác
vụ ở phía database cũng như tìm hiểu về cơ sở dữ liệu của project.Đồng thời vẫn sẽ hỗ trợ các task đang cần được hỗ trợ
Trang 17Kết quả: Hiểu thêm về cơ sở dữ liệu của project và bắt đầu xử lý cácthao tác có độ phức tạp cao giúp nâng cao khả năng giải quyết vấnđề.
2.2.7 Tuần 7
Nội dung: Lần đầu xử lý một bug có độ ưu tiên cao và yêu cầu khảnăng đọc hiểu code và giao tiếp với bộ phận QC (Quality Control) đểhiểu rõ hơn về chỗ không đúng để có thể hoàn thành công việc
Kết quả: Tăng khả năng đọc hiểu code của project và kỹ năng giaotiếp với các bộ phận khác Đồng thời hiểu hơn về lập trình đa luồngtrong project
2.2.8 Tuần 8
Nội dung: Cùng với một anh trong team BE đảm nhận một chứcnăng hoàn toàn mới trong project được gọi là “Timesheet” nhưng vớitrò hỗ trợ
Kết quả: Biết được quy trình khi bắt đầu tạo ra một chức năng mới từviệc lên ý tưởng và đọc hiểu spec từ phía BA cho đến khi bắt đầu vàoviệc implement chức năng trên code
2.2.9 Tuần 9
Nội dung: Kết hợp với DBA để implement thao tác lấy danh sáchTimesheet
Trang 18Kết quả: Tăng cường khả năng quản lý thời gian làm việc để có thểhoàn thành được công việc được giao một cách tốt nhất đúng hạn.
Màn hình Timesheet List2.2.10 Tuần 10
Nội dung: Thực hiện các task còn lại trong feature “Timesheet” và
hỗ trợ các bug trong các chức năng khác cần được hỗ trợ
Kết quả: Tăng cường khả năng quản lý thời gian làm việc để có thểhoàn thành được công việc được giao một cách tốt nhất đúng hạn
Trang 19Nội dung: Hoàn thiện các việc được giao và bắt đầu chuyển giao lạicông việc chưa hoàn thành kịp.
Kết quả: Trau dồi thêm kỹ năng giải quyết vấn đề và kỹ năng làmviệc nhóm khi cập nhật các thao tác cũ trong project
Trang 20Kết quả: Do được tiếp cận với product của công ty từ sớm nên em học được rất nhiềuthứ như cấu trúc dự án thực tế và quy trình làm việc trong một công ty phần mềm.Thuận lợi: Các anh chị trong team rất dễ gần và chỉ bảo tận tình những chỗ em khôngbiết nên khi gặp các công việc khó thì em cũng nhận được sự chỉ bảo bởi các anh chịrất nhiều
Khó khăn: Do tham gia vào product từ rất sớm tuy độ khó công việc được giao banđầu không cao nhưng vẫn cần nhiều thời gian mới quen được cấu trúc cũng như cácchức năng có trong đồ án
Trang 21Chỉ trong thời gian hạn chế, em đã hoàn thành dự án cá nhân trongquá trình training với các tính năng, yêu cầu đặt ra ban đầu
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụđúng hạn và đạt chất lượng tốt
3.1 Điểm mạnh
Trong quá trình làm việc thì em đã học được rất nhiều thứ từ lập trình Java trong framework Spring Và nâng cao kỹ năng của một lập trình viên Java
Được làm việc như là một Java Developer trong product chính của công ty Giúp em
có được cảm giác có trách nhiệm và học được các kỹ năng như làm việc nhóm, kỹ năng giải quyết vấn đề cũng như là tiếng Anh trong các buổi họp hay giao tiếp qua tin nhắn trên Google Chat
3.2 Điểm yếu
Vẫn cần được trau dồi thêm ở các kỹ năng của một lập trình viên như kỹ năng giải quyết vấn đề
Trang 223.3 Chuẩn đạt được
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
trong dự án
G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần
mềm tại doanh nghiệp
G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn
đề
G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày
G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh
Trang 23TÀI LIỆU THAM KHẢO
[1] “Tài liệu Spring Framework”: Spring Framework Documentation :: Spring
Framework
[2] “Tài liệu SQL Server”: SQL Server technical documentation - SQL Server |
Microsoft Learn