Do vậy, không tránh khỏi những thiếu sót khi xuống thực tập ở doanh nghiệp, em rất mong nhận được những ý kiến đóng góp quý báu của quý thầy và các bạn để kiến thức của em trong lĩnh vực
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
Tel (+84.0236) 3736949, Fax (+84.0236) 3842771 Website: itf.dut.udn.vn, E-mail: cntt@dut.udn.vn
BÁO CÁO THỰC TẬP TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN
Đà Nẵng, 06/2019
Trang 2LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ
trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời
gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều
sự quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè
Trong đợt thực tập vừa qua, em đã nhận được sự huớng dẫn, giúp đỡ từ nhiều
phía Tất cả những điều đó đã trở góp phần rất lớn giúp em có thể hoàn thành tốt đợt
thực tập tốt nghiệp này Em xin được gửi lời cảm ơn đến tất cả mọi người Đặc biệt
là anh Nguyễn Tấn Huy, là người đã hướng dẫn em trong suốt thời gian thực tập vừa
qua
Em xin được gửi lời cảm ơn đến Ban lãnh đạo Công ty cổ phần FPT Đà Nẵng
đã tạo điều kiện cho chúng em được tham gia thực tập tại công ty cũng như tạo điều
kiện tốt nhất có thể để chúng em hoàn thành đợt thực tập trong thời gian qua
Bài báo cáo được thực hiện trong thời gian 1 tháng Bước đầu đi vào thực tế,
tìm hiểu về chuyên ngành, kiến thức của chúng em còn hạn chế và còn nhiều bỡ ngỡ
Do vậy, không tránh khỏi những thiếu sót khi xuống thực tập ở doanh nghiệp, em rất
mong nhận được những ý kiến đóng góp quý báu của quý thầy và các bạn để
kiến thức của em trong lĩnh vực này được hoàn thiện hơn
Em cũng xin được gửi lời cảm ơn đến lãnh đạo trường Đại học Bách Khoa - Đại
học Đà Nẵng, lãnh đạo khoa Công nghệ thông tin cùng quý thầy cô trong khoa đã tổ
chức các buổi giao lưu giữa các doanh nghiệp và sinh viên thật sự bổ ích Qua đó giúp
chúng em có cơ hội tìm được một đơn vị thực tập tốt cũng như định hướng được công
việc trong tương lai
Trân trọng
Đà Nẵng, ngày 19 tháng 06 năm 2019
Sinh viên thực hiện
Nguyễn Văn Anh
Trang 3
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Trang 4
MỤC LỤC
DANH SÁCH HÌNH 1
CHƯƠNG I: GIỚI THIỆU VỀ CÔNG TY FPT 2
1.1 Tổng quan 2
1.2 Lịch sử hình thành & phát triển 2
1.3 Tổ chức và nhân lực 5
1.4 Kết chương 6
CHƯƠNG II: QUY TRÌNH THỰC TẬP 7
2.1 Dự án được phát triền 7
2.1.1 Tên ứng dụng 7
2.1.2 Các chức năng 7
2.1.3 Yêu cầu phi chức năng 7
2.2 Kết chương 7
CHƯƠNG III: CƠ SỞ LÝ THUYẾT 8
3.1 Spring Framework là gì 8
3.2 Các kiến trúc lập trình 8
3.2.1 Kiến trúc truyền thống (Còn gọi là mô hình 1 - Model 8
3.2.2 Kiến trúc MVC (Còn gọi là mô hình 2 - Model 2) 8
3.2.3 Tìm hiểu các thành phần của MVC (Model-View-Controller) 9
3.2.4 Framework cơ sở 10
3.2.5 Thư viện thẻ JSP 11
3.2.6 Tiles plugin 11
3.2.7 Validator plugin 11
3.3 Kết quả triển khai 12
CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18
1 KẾT QUẢ ĐẠT ĐƯỢC 18
2 KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN 18
Trang 5TÀI LIỆU THAM KHẢO 20
Trang 6
1
DANH SÁCH HÌNH
Hình 1 : Hình ảnh DB 12
Hình 2: Giao diện trang chủ 12
Hình 3: Giao diện danh mục 13
Hình 4: Giao diện danh mục 13
Hình 5: Giao diện danh mục 14
Hình 6: Giao diện trang chi tiết 14
Hình 7: Giao diện trang admin 15
Hình 8: Giao diện trang quản lí danh mục 15
Hình 9: Giao diện trang quản lí tin tức 16
Hình 10 : Giao diện trang quản lí bình luận 16
Hình 11: Giao diện trang quản lí bình luận 17
Trang 7
• Tên công ty: Công ty cổ phần FPT
• Trang web: https://fpt.com.vn/
• Địa chỉ: Chi nhánh Đà Nẵng - Nam kỳ khởi nghĩa, p Hòa Hải, q Ngũ hành sơn,TP.Đà Nẵng
1.2 Lịch sử hình thành & phát triển
Năm 1999: Tháng 6, khai trương Trung tâm Phần mềm Chiến lược số 1 (FSU1)
từ 13 cán bộ của FSS Giám đốc Trung tâm là Nguyễn Thành Nam, các Phó giám đốc
là Nguyễn Khắc Thành và Nguyễn Lâm Phương Trụ sở tại 23 Láng Hạ (toà nhà City Flower) FSU1 sau này được đổi tên thành FPT Software
Năm 2000: Tháng 3, FPT Software ký hợp đồng OSDC (Trung tâm phát triển phần mềm cho khách hàng) đầu tiên với khách hàng Harvey Nash, tiền thân của G1
Trang 8đã có hợp đồng đầu tiên với NTT-IT
Năm 2002: Tháng 3, chiến dịch CMM-4 thành công sau gần một năm triển khai, FPT Software trở thành công ty đầu tiên tại Đông Nam Á đạt CMM-4, lọt vào danh sách danh 100 công ty hàng đầu thế giới về Quản lý chất lượng, đồng nghĩa với việc FPT giành tấm giấy thông hành hạng nhất để lọt vào thị trường lớn phần mềm thế giới
Năm 2003: Tháng 9, FPT Software giành giải toàn đoàn cả trong Hội thao và Hội diễn Văn nghệ 13/9 Lần đầu tiên Hội thao FPT có môn Diễu hành và FPT Software trở thành đội đầu tiên đoạt Huy chương Vàng ở môn thi này
Năm 2004: Tháng 4, FPT Software tổ chức lễ khai trương chi nhánh tại TP HCM
Năm 2005: Tháng 8, FPT Software tổ chức lễ khai trương chi nhánh tại TP Đà Nẵng
Năm 2006: Tháng 5, FPT Software đạt tiêu chuẩn CMMi mức 5, đưa FPT vào danh sách 150 công ty và tổ chức trên toàn thế giới được Viện Công nghệ phần mềm
Mỹ (SEI) công nhận hệ thống quy trình sản xuất phần mềm đạt mức cao nhất trong
mô hình trưởng thành về năng lực sản xuất phần mềm
Năm 2007: Ngày 13/3, chi nhánh thứ 2 của FPT Software tại nước ngoài được thành lập - Công ty TNHH Phần mềm FPT châu Á - Thái Bình Dương (FAP) do FPT Software sở hữu 100% vốn Sự kiện thu hút gần 100 quan chức chính phủ hai nước
và khách hàng của hai công ty
Năm 2008: FPT Software hoàn thành một bước của toàn cầu hoá, có mặt tại tất
cả các thị trường dự kiến: Nhật, Singapore, châu Âu, Mỹ, Australia, Malaysia
Trang 94
Năm 2009: Kỷ niệm sinh nhật FPT Software 10 năm, một loạt hoạt động thể thao, văn hóa, từ thiện diễn ra trên cả ba miền FPT Software: Giải bóng đá FPT Software World Cup với sự tham gia của 3 miền trong nước và các chi nhánh nước ngoài tại Đà Nẵng; Lễ Vinh danh 108 Anh hùng FPT Software tại Hà Nội; Phát động chương trình Xổ số Lucky Draw quyên tiền xây nhà từ thiện cho 2 hộ nghèo ở miền Trung…
Năm 2010: Tháng 1, khánh thành tòa nhà FPT Đà Nẵng - tòa nhà đầu tiên do FPT Software sở hữu và là tòa nhà thứ hai của Tập đoàn FPT (sau FPT Cầu Giấy, Hà Nội)
Năm 2011: Tháng 8, FPT Software tổ chức sự kiện STCo Night Đây là hoạt động văn nghệ lớn nhất lần đầu tiên có sự tham gia của tất cả công ty thành viên ở cả
ba miền
Năm 2012: Ra mắt Ban lãnh đạo mới của FPT Software Công ty tái cấu trúc
mô hình quản lý theo các FSU FPT Software trở lại tốc độ tăng trưởng hơn 30%
Tháng 9/2013, FPT Software đã lọt Top 500 Công ty Cung cấp Dịch vụ Phần mềm lớn nhất Thế giới do Tạp chí Phần mềm với 31 năm kinh nghiệm của Mỹ đánh giá Trong hai năm liên tiếp 2014 -2015, FPT Software liên tục lọt vào danh sách 100 nhà cung cấp dịch vụ ủy thác toàn cầu
Năm 2015 tiếp tục đánh dấu sự phát triển mạnh của đơn vị với mức tăng trưởng doanh thu 34%, nhân sự tăng 28% Nhật Bản tiếp tục đóng vai trò chủ đạo với gần 50% thị phần Sau 1 năm chính thức hoạt động từ thương vụ M&A lịch sử, FPT Slovakia đã bắt nhịp được với các chi nhánh khác của FPT Software
Phần mềm FPT đang tiến đến mục tiêu cán mốc 1 tỷ USD doanh thu và có đội ngũ nhân sự gồm 30.000 người vào năm 2020 Đơn vị sẽ cần tuyển mới từ 4.500 đến 10.000 nhân viên mỗi năm Ngày 1/1 vừa qua, FPT Software đã ra mắt mô hình tổ chức mới
Trang 103 năm trước cộng lại
Tháng 7/2018 FPT Software đã công bố hoàn tất thương vụ M&A lịch sử với Intellinet, một trong những công ty tư vấn công nghệ có tốc độ tăng trưởng nhanh nhất tại Mỹ.Theo đó, FSOFT mua 90% cổ phần trở thành nhà đầu tư chiến lược của công
ty Intellinet Đây là lần đầu tiên một công ty CNTT của Việt Nam mua một công ty
tư vấn của Mỹ Việc này là một trong những bước đi chiến lược của FSOFT để thực hiện tham vọng 1 tỷ USD doanh thu vào năm 2020
Trang 12Website nói về tin tức về công nghệ
Mục đích: giúp mọi người có thể nắm bắt nhanh về các công nghệ mới hiện nay một cách nhanh chóng,nắm bắt kịp xu hướng thời đại mới
2.1.2 Các chức năng
Các đối tường mà web ứng dụng phục vụ được chia thành 2 đối tượng: Admin và mod
• Quản lý người dùng ,vô hiệu hóa người dùng
• Quản lý việc đăng tin tức
• Cập nhật , sửa, xóa tin tức
2.1.3 Yêu cầu phi chức năng
• Viết bằng ngôn ngữ Java, framework là Spring
• Hệ quản trị cơ sở dữ liệu: SQL Server
• Hệ thống phải có giao diện đơn giản, dễ sử dụng, thân thiện với nguời dùng
• Đảm bảo tính bảo mật thông tin cho hệ thống
2.2 Kết chương
Chương này trình bày về đề tài dự án cùng các đặc tả yêu cầu chức năng hệ thống
Trang 138
CHƯƠNG III: CƠ SỞ LÝ THUYẾT
3.1 Spring Framework là gì
triệu lập trình viên Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại code… Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB; trong suốt: hoạt động một cách trong suốt với lập trình viên) Spring là một
mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lớn Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java Desktop, ứng dụng mobile, Java Web Mục tiêu chính của Spring là giúp phát triển các ứng dụng J2EE một cách dễ dàng hơn dựa trên mô hình sử dụng POJO (Plain Old Java Object)
3.2 Các kiến trúc lập trình
3.2.1 Kiến trúc truyền thống (Còn gọi là mô hình 1 - Model
Kiến trúc Model 1 hết sức đơn giản Tóm lại là tất cả mọi thứ đều được gói gọn trong Servlet hoặc JSP từ việc xử lý request, xác nhận tính hợp lệ của dữ liệu, điều quản business logic và generate response Mặc dù về khái niệm hết sức đơn giản, kiến trúc này không phù hợp cho việc phát triển các ứng dụng quy mô lớn vì chắc chắn một số lượng lớn các tính năng sẽ bị lặp lại trong các trang JSP (lặp lại code) Cũng vậy, kiến trúc Model 1 tạo nên sự ràng buộc không cần thiết giữa business logic
và presentation logic của ứng dụng Ví dụ, ngoài giao diện HTML, bạn có thể muốn thêm một giao diện WML cho truy nhập wireless Trong trường hợp này, việc sử dụng Model 1 yêu cầu sự lặp lại không cần thiết của business logic trong các trang sử
3.2.2 Kiến trúc MVC (Còn gọi là mô hình 2 - Model 2)
Model 2, hay cách gọi thông dụng ngày nay, Model-View-Controller (MVC), giải quyết nhiều vấn đề của Model 1 với việc cung cấp một sự phân tách rõ ràng trong ứng dụng Trong kiến trúc MVC, một Servlet trung tâm, được gọi là Controller, tiếp nhận tất cả các request cho ứng dụng Sau đó Controller sẽ xử lý request và làm việc với Model để chuẩn bị những dữ liệu cần thiết cho View (thường là JSP) và forward
Trang 149
dữ liệu tới trang JSP Sau đó JSP sử dụng các dữ liệu đã được chuẩn bị bởi Controller
để generate một response về cho browser Trong kiến trúc này, business logic và presentation logic được phân tách nhau Việc tách business code và presentation code giúp ta có thể sử dụng nhiều giao diện cho ứng dụng, chúng có thể là Web, wireless hay GUI Thêm vào đó, việc phân tách này còn cung cấp việc tái sử dụng lại code một cách hòan hảo
Có một điều khá lý thú ở đây là tôi đã từng cho rằng việc trong một ứng dụng Web có thể có nhiều Controller thì ứng dụng đó cũng sử dụng MVC Có nghĩa là cứ một view component ta sẽ có một Controller cho nó Tuy nhiên điều này là hòan tòan sai với mẫu thiết kế MVC
3.2.3 Tìm hiểu các thành phần của MVC (Model-View-Controller)
1) Model component
Trong kiến trúc MVC, các model component cung cấp một giao diện với dữ liệu và/hoặc các dịch vụ được sử dụng bởi ứng dụng Theo cách này, các controller component không cần phải chứa code để thao tác với dữ liệu của ứng dụng Thay vào
đó, chúng giao tiếp với các model component để thực hiện truy cập và thao tác dữ liệu Như vậy, các model component cung cấp business logic Các model component
có thể ở nhiều dạng từ các Java bean đến các EJB hay các Web service
2) View component
Các view component được sử dụng trong kiến trúc MVC để generate response
về browser Như vậy một view component cung cấp những gì mà user nhìn thấy Thường thì các view component là các trang JSP hay HTML đơn giản Tuy nhiên, các view component cũng có thể sử dụng WML hay các công nghệ khác Đây là một
ưu điểm thiết kế chính của MVC Bạn có thể sử dụng bất kỳ công nghệ hiển thị nào
mà không sợ tác động đến lớp Model của ứng dụng
Trang 1510
3) Controller component
Ở trung tâm của kiến trúc MVC là các controller component Controller thường
là một Servlet tiếp nhận các request cho ứng dụng và quản lý luồng dữ liệu giữa lớp Model và lớp View Như vậy, nó điều khiển cách mà các lớp Model và View tương tác Controller thường sử dụng các helper class để chuyển điều khiển qua các request hay tiến trình xác định
Mặc dù kiến trúc MVC cung cấp một khả năng mạnh mẽ trong việc tổ chức code, việc phát triển vẫn gặp phải một số vấn đề “đau khổ” Đó là nơi Struts nhảy vô Struts là một Web application framework hướng tới việc phát triển các ứng dụng Web dựa trên Java Vậy thực sự nó là cái gì? Có phải Struts là một phần bổ xung (add on) hay mở rộng của một ứng dụng Web MVC? Hay Struts chỉ là vài thư viện? Thực
sự thì Struts là mỗi thứ một chút Struts cung cấp nền tảng, hay framework, để xây dựng một ứng dụng hướng MVC cùng với các thư viện và tiện ích để làm cho việc phát triển MVC được nhanh hơn và dễ dàng hơn
Bạn có thể tạo mới một Controller mỗi lần bạn muốn sử dụng mẫu thiết kế MVC trong ứng dụng Web của mình Thêm vào đó, bạn cần tạo management/flow logic để chuyển và lấy dữ liệu từ Model và sau đó định hướng tới View Bạn cũng cần định nghĩa giao diện để tương tác với các Model object và tất cả các utility code
đi kèm để sử dụng mẫu thiết kế MVC Tuy nhiên, thay vì lặp lại tiến trình này mỗi khi bạn tạo một ứng dụng mới, bạn có thể sử dụng Struts Struts cung cấp cấu trúc và outline cơ bản để xây dựng ứng dụng, cho phép bạn tập trung vào xây dựng bussiness logic mà không phải lo nhiều đến các thứ “linh tinh” khác
Trang 163.2.6 Tiles plugin
Tiles là một JSP template framework giúp thuận tiện cho việc tái sử dụng mã HTML
3.2.7 Validator plugin
Validator là một framework với khả năng thực hiện xác nhận tính hợp lệ của
dữ liệu ở cả phía server và client
Trang 1813
Hình 3: Giao diện trang chủ
Hình 4: Giao diện trang chủ
Trang 1914
Hình 5: Giao diện danh mục
Hình 6: Giao diện trang chi tiết
Trang 2015
Hình 7: Giao diện trang admin
Hình 8: Giao diện trang quản lí danh mục
Trang 2318
CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1 KẾT QUẢ ĐẠT ĐƯỢC
Về mặt lý thuyết, trong thời gian thực tập đã đạt được:
• Ứng dụng được những nội dung học ở trường:
o Tìm hiểu thêm được một số frame work mới
o o Có sự hiểu biết thêm về ngành công nghiệp Web
o Nắm bắt được quy trình làm web và phát triển web
• Những điểm mạnh và hạn chế của vấn đề thực tập tại công ty:
o Môi trường thực tập thoải mái
o Nhận được sự hỗ trợ nhiệt tình từ bên phía công ty
o Địa điểm làm việc cách xa trường
o Thời gian thực tập quá ngắn nên một số chức năng của web chưa được hoàn thiện
2 KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN
Sau khi thực tập tại công ty và hoàn thành báo cáo thực tập tốt nghiệp Bản thân em đã học hỏi được được nhiều điều, được sự giúp đỡ tận tình của các anh chị