Báo cáo thực tập lập trình java web

24 4 0
Báo cáo thực tập lập trình java web

Đ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

2 TRƯỜ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 LẬP TRÌNH JAVA WEB Công ty thực tập Công ty TNHH PALTech Người phụ trách Nguyễn Minh Khôi Thực tập sinh Phạm Võ Di Thiên T[.]

TRƯỜ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 LẬP TRÌNH JAVA WEB Công ty thực tập: Công ty TNHH PALTech Người phụ trách: Nguyễn Minh Khôi Thực tập sinh: Phạm Võ Di Thiên TP Hồ Chí Minh, tháng 12 năm 2022 LỜI MỞ ĐẦU Công nghệ thông tin giai đoạn phát triển ngành kinh tế mũi nhọn hàng đầu giới Điều xảy vòng vài năm qua Việt Nam đầu tư ô ạt vào công nghệ Công nghệ thông tin yếu tố thể thiếu công ty Đặc biệt công nghệ thơng tin ngày giữ vai trị quan trọng vấn đề quản lý tổ chức lĩnh vực thu thập thông tin Tuy ngành công nghệ thông tin nước ta phát triển vài năm trở lại bước phát triển bước phát triển cho thấy tiềm lớn lao lĩnh vực cơng nghệ thơng tin nước ta, phát triển hệ thống thông tin mạnh đất nước Nhờ vào lí mà ngày nay, hầu hết doanh nghiệp trang bị cho website nhằm tiếp loại bỏ cách thức quản lý thông tin truyền thống sức người thay vào sử dụng cơng nghệ máy tính Lập trình Web cơng việc xây dựng nên website dành cho doanh nghiệp, giúp doanh nghiệp quản lý hiệu quả, đồng thời giúp gia tăng số lượng khách hàng tiếp cận với sản phẩm dịch vụ cơng ty Theo em tìm hiểu lập trình web yêu cầu yếu tố: Kiến thức ngơn ngữ, thuật tốn Kỹ thiết kế Website (Font-end, Back-end) Trong vô vàng đường để đạt Em bị hút ngơn ngữ Java mong muốn có hội để trờ thành lập trình viên Java Từ định hướng lựa chọn đó, sau ba năm học tập vất vả, ba năm nghiên cứu, tìm hiểu, học hỏi rèn luyện trường, khát khao có thêm kinh nghiệm kĩ làm việc thực tế, muốn tham gia phát triển web môi trường chuyên nghiệp, động, mang đầy tính học hỏi, em có dự định chọn cuối năm đại học thời điểm chín mùi để thực khóa thực tập đời Vì vậy, PALTECH cơng ty em lựa chọn để bắt đầu bước đường mơ ước trở thành lập trình viên chun nghiệp Hành trình khó khăn có nhiều thứ để học hỏi, với tận tình vui vẻ anh chị đồng nghiệp giúp em cảm thấy định sáng suốt đắn 2 LỜI CẢM ƠN Xin trân trọng gửi lời cảm ơn chân thành sâu sắc đến Công ty TNHH PALTech cân nhắc định mang lại cho em hội quý báu để học tập, rèn luyện, học hỏi phụng quý công ty Thực tập thời gian không q dài khơng q ngắn, đủ để em nhận bù đắp thiếu sót thân kĩ lập trình hay chí kĩ mềm Trong suốt q trình thực tập ln tồn khó khăn thử thách tranh cãi, anh chị đồng nghiệp thoải mái đưa cho em nhiều thấu đáo vấn đề Cảm ơn đặc biệt đến anh Lê Minh Đức, anh Hoàng Minh Nghĩa đặc biệt anh Nguyễn Minh Khôi hướng dẫn, giúp đỡ cho em tận tình khó khăn cơng việc, đến khó khăn việc làm quen với môi trường mới; cảm ơn chị Lê Nguyệt Ánh Thùy Linh chị Tôn Thị Thanh Thảo team QC, training cung cấp kiến thức nghiệp vụ project lớn công ty, hỗ trợ chúng em hiểu project Trân trọng chân thành cảm ơn anh Nguyễn Duy Khánh, dẫn chúng em cách làm báo cáo, lên kế hoạch, kỹ khơng thể thiếu lập trình web nói chung cơng việc vị trí Java Web Developer quý công ty; sâu sắc cảm ơn anh Ngơ Văn Tự dẫn đầu team developer nói chung cho nhóm thực tập sinh chúng em nói riêng task công việc phát triển project; cảm ơn anh Hồ Duy Khánh anh Lê Tấn Đạt training cho em kiến thức quan trọng MySql, Angular HTML để em có kiến thức làm task thời gian qua Và bạn thực tập sinh chung khóa với em Vịng Minh Huỳnh bạn Nguyễn Khánh Linh giúp đỡ em nhiều vấn đề gặp phải công ty Cuối xin cảm ơn quý thầy cô khoa Công nghệ phần mềm tạo điều kiện cho em làm báo cáo cách tường tận với tinh thần chia sẻ Phạm Võ Di thiên TpHCM, ngày 20 tháng 12 năm 2022 NHẬN XÉT CỦA KHOA MỤC LỤC Chương 1: Giới thiệu công ty thực tập Giới thiệu công ty PALTech Sản phẩm công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty .8 Nghiên cứu kỹ thuật .9 2.1.1 Các công cụ làm việc 2.1.2 Tìm hiểu kết hợp Công nghệ số kinh nghiệm lập trình 2.1.3 Lập trình IntelliJ 10 2.1.4 Tìm hiểu MySQL 11 2.1.5 Tìm hiểu Angular2, JS 12 2.1.6 Tìm hiểu SpringBoot 14 2.1.7 Tìm hiểu Bootstrap 15 Thực project .16 Lịch làm việc .16 Chương 3: Chi tiết project cách làm việc 18 Giới thiệu AQS 18 1.1 Các môi trường project 18 1.2 Một số hình ảnh project .19 Thực 20 Kế hoạch 20 TỔNG KẾT 22 TÀI LIỆU THAM KHẢO 23 Chương 1: Giới thiệu công ty thực tập Giới thiệu công ty PALTech  Tên công ty: Công ty TNHH PAL TECH (PAL TECH Company Limited)  Địa chỉ: 20 Sông Thao, Phường 2, Tân Bình, Thành phố Hồ Chí Minh  Website: https://pal.net.vn/  Điện thoại: 028 3848 7077 PAL TECH thành lập vào năm 2015 Thành phố Hồ Chí Minh, công ty CNTT cung cấp phát triển tảng phần mềm có khả mở rộng, chất lượng tuyệt vời tiết kiệm cho nhu cầu hoạt động kinh doanh khác PAL TECH công ty công nghệ thông tin cung cấp phát triển tảng phần mềm mở rộng, chất lượng kinh tế cho nhu cầu hoạt động kinh doanh khác Công ty cung cấp dịch vụ kỹ thuật chất lượng cho tất loại tổ chức từ doanh nghiệp vừa nhỏ (SME) nước; cung cấp giải pháp chiến lược sáng tạo để thêm giá trị kinh doanh cho khách hàng PALTech dành riêng để xác định lại doanh nghiệp hách hàng mạng toàn cầu để tăng trưởng sản xuất cao thông qua lợi cạnh tranh tốc độ, chi phí khả thích ứng Đây chủ yếu cơng ty phát triển phần mềm có chun mơn giao dịch an tồn với tần suất cao, khối lượng lớn web 6 Sản phẩm công ty PALTech thiết kế, tạo trì Website chạy đa tảng – thứ mà doanh nghiệp khách hàng sử dụng để quản lí, thống kê tài sản họ tạo bảng báo cáo chúng 7 Chương 2: Nội dung thực tập Đợt thực tập “Lập trình Java Web” nhằm mục đích giúp sinh viên thực tập đào tạo tồn diện lập trình Web Angular Springboot, đồng thời rèn luyện kỹ mềm làm việc nhóm, giao tiếp Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển web chuyên nghiệp, trẻ động Tìm hiểu công ty kỹ công ty Thời gian: ngày Nội dung: Giới thiệu công ty, cách tổ chức công ty Được nghe người phụ trách giới thiệu công ty, trình thành lập phát triên (như nhắc đến trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức cơng ty Ngồi ra, thực tập sinh giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Training nguyên tắc quy định Quản lí an tồn hệ thống thông tin – Information Security Management System (ISMS) cho nhân viên Bộ nguyên tắc có liên quan đến tính chất sẵn sàng, bảo mật, tính tồn vẹn thơng tin Ngồi việc an tồn thơng tin cịn bao gồm có tính chất khác trách nhiệm, xác thực, tính tin cậy xác nhận Kết quả: Hiểu thêm công ty, biết quy trình làm việc, biết sử dụng kết hợp Email Slack cơng việc Làm việc có kế hoạch có trách nhiệm Ngồi cịn biết thêm số quy tắc làm việc chung môi trường công ty Nghiên cứu kỹ thuật 2.1.1 Các công cụ làm việc Thời gian: ngày Nội dung: Tìm hiểu số công cụ, phần mềm sử dụng trình làm việc Trong thời gian ngày đầu, phận Infra giúp em cài đặt tồn thứ vị trí làm vệc, máy móc cài phần mềm whitelist (danh sách phần mềm phép cài đặt sử dụng máy tính làm việc cá nhân cơng ty) Bên cạnh đó, phận Infra hỗ trợ cung cấp update tài khoản cần thiết để em truy cập sử dụng trang web hay phần mềm hỗ trợ cho trình làm việc công ty Jira, Aws, Jenkin, Gitlab, Log web, Slack, IntelliJ, Tortoise SVN TortoiseGit, Notepad++… Sau ngày, anh Nguyễn Minh Khôi – buddy em hỗ trợ dẫn em flow làm việc sử dụng phần mềm trang web Anh giải thích cơng dụng số trang web Log, Jenkin, AWS-Jenkin Anh dẫn kết nối database với workbench tài khoản đặc biệt cho dev dẫn tường tận mẹo tổ chức folder công việc Đặc biệt khoản merge code, phải tuân thủ theo số quy tắc kết hợp với Jira để tạo flow chuẩn để dễ dàng quản lý, bảo trì hỗ trợ QC test dễ dàng Thực hiện: Thực hành sử dụng phần mềm nêu Kết quả:  Biết sử dụng kết hợp cơng cụ để hỗ trợ q trình xây dựng website  Biết flow làm việc công ty để dễ dàng quản lý, bảo trì code 2.1.2 Tìm hiểu kết hợp Công nghệ số kinh nghiệm lập trình Thời gian: xuyên suốt trình làm việc từ đầu tới cuối Nội dung: Được training kỹ thuật Java nâng cao Học cách sử dụng công nghệ Angular Spring xuyên suốt trình làm việc Hơn nữa, trình thực task, trước code merge lên môi trường phải review qua, giai đoạn em học hỏi nhiều thứ từ anh Lê Minh Đức, anh Huỳnh Minh Trí hướng tiếp cận giải toán tối ưu Nâng cao khả nâng lập trình Back-end Cơng ty tạo cho em điều kiện tốt đề học tập làm việc môi trường không áp lực Thực hiện: - Tham gia đầy đủ buổi training công ty - Ghi nhớ kiến thức vừa thân tìm hiểu áp dụng vào task Kết quả: - Nâng cao kỹ lập trình với ngơn ngữ Java - Nâng cao thành thạo với Angular kết hợp Spring - Có kiến thức quan trọng cho việc lập trình web - Biết số quy tắc lập trình, thuật toán tối ưu cho vấn đề khác - Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu làm quen extension bắt code xấu sonar 2.1.3 Lập trình IntelliJ Nội dung: Các kỹ thuật dùng intelliJ, kết hợp extension hay phần mềm để thực kết nối backend, sử dụng glassfish IntelliJ IDEA IDE Java để phát triển phần mềm máy tính Nó phát triển JetBrains, cấp phép Apache cho phiên cộng đồng, phiên thương mại độc quyền Cả hai sử dụng cho phát triển thương mại Thực hiện: - Tham gia đầy đủ buổi training - Kết hợp với Glassfish việc fix bug hay task 10 Kết quả: - Đã sử dụng thành thạo công cụ IDE IntelliJ để phục vụ cơng xây dựng website 2.1.4 Tìm hiểu MySQL Thời gian: ngày Nội dung: Training hệ quản trị CSDL MySQL ngôn ngữ SQL MySQL hệ thống quản trị sở liệu với mã nguồn mở (được gọi tắt RDBMS) hoạt động theo mơ hình dạng client-server MySQL tạo bảng để lưu trữ liệu định nghĩa liên quan bảng Client trực tiếp gửi yêu cầu SQL lệnh đặc biệt có MySQL Ứng dụng server tiến hành phản hồi thông tin trả kết máy client SQL viết tắt Structured Query Language, nghĩa ngôn ngữ truy vấn sở liệu Ngôn ngữ định nghĩa liệu (Data Definition Language - DDL): cho phép khai báo cấu trúc bảng, mối quan hệ ràng buộc: lệnh tạo bảng (CREATE), lệnh sửa cấu trúc bảng (ALTER), lệnh xố bảng (DROP) Ngơn ngữ thao tác liệu (Data Manipulation Language - DML): cho phép thêm (INSERT), xóa (DELETE), sửa dữ liệu (UPDATE) Ngôn ngữ truy vấn liệu (Structured Query Language – SQL): cho phép truy vấn liệu: truy vấn tổng quát, dùng phép kết, truy vấn con, hàm tính tốn, gom nhóm… Trigger: Trigger thường sử dụng để kiểm tra ràng buộc (check constraints) nhiều quan hệ (nhiều bảng/table) nhiều dòng (nhiều record) bảng 11 Stored Procedured: Là đoạn chương trình kịch (programming scripts) với câu lệnh SQL nhúng (embedded SQL) lưu dạng biên dịch thi hành thực tiếp MySQL SP cho phép lưu trữ logic ứng dụng CSDL Khi gọi SP lần đầu tiên, MySQL tạo lịch thực thi lưu trữ nhớ đệm Ở lần gọi hàm tiếp theo, MySQL sử dụng sử dựng lại lịch thực thi lưu nhanh với hiệu xuất đáng tin cậy Thực hiện: - Tham gia đầy đủ buổi training - Viết SP truy vấn liệu - Tìm đọc thêm tài liệu liên quan Kết quả: Biết cách sử dụng MySQL Workbench, biết cách truy vấn, tìm kiếm liệu ngơn ngữ SQL 2.1.5 Tìm hiểu Angular2, JS Thời gian: ngày Nội dung: Training kiến thức front-end Các nội dung HTML, SCSS Các kiến thức ngơn ngữ lập trình Javascript Framework Angular: Phiên bản Angular đời nhằm thay Angular Js với khái niệm nhằm đơn giản hóa tối ưu cho q trình phát triển sử dụng framework Angular thay đổi hoàn toàn so với AngularJS việc thay Controllers $scope (AngularJS) components directives Components = directives + template, tạo nên view ứng dụng xử lí logic view Angular hoàn toàn viết Typescript Angular nhanh AngularJS, hỗ trợ đa tảng đa trình duyệt, cấu trúc cdoe tổ chức đơn giản dễ sử dụng 12 Ngôn ngữ sử dụng: JavaScript Cách tổ chức file: component cấu thành từ file Typescript, HTML SCSS Các khái niệm bản: Components khối code app Angular Nó kết hợp template html nhúng kèm code TypeScript (hoặc Javascript) Một số thuộc tính Component: selector, template, styles, … Binding cách kết nối HTML liệu theo kiểu chiều, nghĩa HTML input thay đổi biến Javascript nhận giá trị trả ngược lại, giá trị Javascript thay đổi hình HTML thay đổi theo Xử lí kiện: gắn kiện control HTML với hàm Javascript Một số lifeCycleHook: ngOnInit, ngOnChanges, ngAfterViewInit, ngOnDestroy ,… Cách truyền data component Angular: Từ parent component xuống child component ngược lại, từ sibling component, … Thực hiện: - Tham gia buổi training công ty - Đọc tài liệu - Đọc phân tích code từ dự án Kết quả: Biết cách triển khai front-end với Angular Hiểu kiến thức front-end 13 2.1.6 Tìm hiểu SpringBoot Thời gian: ngày Nội dung: Tìm hiểu chung Spring Framework, đặc biệt kiến thức SpringBoot Spring framework mã nguồn mở phát triển dựa tảng Java, giúp đơn giản hóa việc xây dựng phát triển ứng dụng Java doanh nghiệp Nó cung cấp mơ hình lập trình cấu hình tồn diện cho ứng dụng doanh nghiệp dựa Java đại - loại tảng triển khai Spring Boot module nằm Spring Framework, cung cấp giao diện khả phát triển ứng dụng độc lập với bước cấu hình rườm rà gần không Spring Boot đóng gói với nhiều thư viện phụ thuộc module tảng Spring Framework giảm thiểu mã nguồn dài dòng, phức tạp nhằm cung cấp thuận tiện phù hợp với mục đích phát triển ứng dụng Các thành phần quan trọng: Controller: trả View (có chứa data sẵn, dạng trang HTML), Model thể dạng API cho View Service: chứa code tính tốn, xử lý Khi Controller yêu cầu, Service tương ứng tiếp nhận cho liệu trả cho Controller (trả Model) Controller gửi View Repository: Service cịn tương tác với service khác, dùng Repository để gọi DB Repository thằng trực tiếp tương tác, đọc ghi liệu DB trả cho service Thực hiện: - Tham gia buổi training 14 - Đọc code số package - Tự tìm hiểu document Kết quả: Biết flow hoạt động code project 2.1.7 Tìm hiểu Bootstrap Thời gian: ngày Nội dung: Tìm hiểu Bootstrap Bootstrap sưu tập miễn phí mã nguồn mở công cụ dùng để tạo mẫu webiste hồn chỉnh Với thuộc tính giao diện quy định sẵn kích thước, màu sắc, độ cao, độ rộng…, designer sáng tạo nhiều sản phẩm mẻ tiết kiệm thời gian làm việc với framework trình thiết kế giao diện website Rất dễ để sử dụng: Nó đơn giản base HTML, CSS Javascript cẩn có kiến thức sử dụng bootstrap tốt Tương thích với trình duyệt: Nó tương thích với tất trình duyệt (Chrome, Firefox, Internet Explorer, Safari, and Opera) Tuy nhiên, với IE browser, Bootstrap hỗ trợ từ IE9 trở lên Điều vô dễ hiểu IE8 khơng support HTML5 CSS3 Thực hiện: - Tham gia buổi training công ty - Đọc tài liệu - Đọc phân tích code từ dự án - Làm thực hành Kết quả: Biết cách kết hợp Angular với Bootstrap để xây dựng UI 15 Thực project Sau tháng training thực hành, thực tập sinh nắm kiến thức bản, team QC/BA hướng dẫn thực tập sinh nghệp vụ ý nghĩa project công ty Chi tiết đồ án nói phần sau Lịch làm việc Tuần Cơng việc Người hướng dẫn - Tìm hiểu công ty, cách tổ chức công ty Anh Nguyễn Minh Khôi - Làm quen với công cụ làm việc công anh Nguyễn Duy ty Khánh, Hoàng Huỳnh - Học cách trao đổi, làm việc qua email Slack Nghĩa - Tìm hiểu ngơn ngữ lập trình Java nâng cao Anh Nguyễn Minh Khơi, - Thực hành Java anh Lê Minh Đức, anh Hồ Duy Khánh, anh Hồng Minh Trí - Tìm hiểu Spring boot Anh Nguyễn Minh Khơi - Tìm hiểu Angular anh Hồ Duy Khánh - Tham gia training nghiệp vụ hay business Chị project 4+5+6 Lệ Nguyệt Ánh Thùy Linh chị Tôn Thị Thanh Thảo team QC Giai đoạn thử sức: - Được giao feature mới, nhỏ để hoàn thành và anh Nguyễn Duy làm quen Anh Nguyễn Minh Khôi Giai đoạn thử sức(tiếp): Khánh Anh Nguyễn Duy 16 - Tham gia làm quen flow giải bug Khánh nào? Flow làm việc team Giai đoạn quen tham gia làm việc: Tuần – hết tập - Anh Lê Tấn Đạt, anh Hồ Tham gia làm việc nhân viên Duy Khánh, anh Huỳnh thức để lấy kinh nghiệm Minh Trí, anh Nguyễn Minh Khơi Nguyễn Duy Khánh anh 17 Chương 3: Chi tiết project cách làm việc Giới thiệu AQS Project phục vụ doanh nghiệp, người dùng nước cho việc thống kê, theo dõi, quản lí xuất báo cáo kinh doanh, tài sản người dùng Hệ thống giúp tổng hợp, báo cáo liệu thu thập từ nhiều nguồn khác Hệ thống chuẩn hóa liệu, tính tốn giá trị tổng hợp xuất báo cáo cho người dùng Đây project điển hình cơng ty PAL TECH số private project công ty Hệ thống chạy mơ hình Micro-service, K8s; hỗ trợ CI/CD; áp dụng: 1.1 • Backend: Spring Boot • Frontend: Angular • Hệ quản trị sở liệu: MySQL Các môi trường project AQS phát triển môi trường song song gọi là: QAT, STG PROD: - QAT: gồm domain có qat Là môi trường phát triển thấp mà developer làm việc task công việc hay bug Mơi trường có sở liệu riêng để thuận tiện cho việc testing thử nghiệm feature từ nghiệp vụ Chính có sở liệu tách biệt sở liệu có cơng ty (đội ngũ phát triển) - STG: Gồm tất đồ main có stg Là mơi trường phát triển có database riêng, mơi trường cao qat - PROD: môi trường khách hàng dùng Là môi trường bậc cao quan trọng 18 Bất feature hay bug sinh phải thứ tự từ thấp đến cao theo kế hoạch định trước 1.2 Một số hình ảnh project Hình Màn hình Role AQS Hình Màn hình User management AQS 19 ... bảng báo cáo chúng 7 Chương 2: Nội dung thực tập Đợt thực tập ? ?Lập trình Java Web? ?? nhằm mục đích giúp sinh viên thực tập đào tạo toàn diện lập trình Web Angular Springboot, đồng thời rèn luyện... làm báo cáo, lên kế hoạch, kỹ khơng thể thiếu lập trình web nói chung cơng việc vị trí Java Web Developer quý công ty; sâu sắc cảm ơn anh Ngô Văn Tự dẫn đầu team developer nói chung cho nhóm thực. .. báu để học tập, rèn luyện, học hỏi phụng quý công ty Thực tập thời gian khơng q dài khơng q ngắn, đủ để em nhận bù đắp thiếu sót thân kĩ lập trình hay chí kĩ mềm Trong suốt q trình thực tập ln tồn

Ngày đăng: 01/02/2023, 21:20

Tài liệu cùng người dùng

Tài liệu liên quan