LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn các Thầy Cô khoa Công Nghệ Thông Tin Trường Đại Học Giao Thông Vận Tải đã nhiệt tình giảng dạy và truyền đạt cho em những kiến thức quan
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
****************
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Giảng viên hướng dẫn : ThS Nguyễn Lê Minh Sinh viên thực hiện : Đặng Quốc Tuấn
Hà Nội, 04/03/2024
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các Thầy Cô khoa Công Nghệ Thông Tin Trường Đại Học Giao Thông Vận Tải đã nhiệt tình giảng dạy và truyền đạt cho em những kiến thức quan trọng và mới mẻ trong 4 năm học tại trường
Đặc biệt, em xin cảm ơn thầy Nguyễn Lê Minh vì sự hướng dẫn tận tình và theo dõi sát sao, đầy tinh thần trách nhiệm trong suốt quá trình em thực hiện Báo cáo thực tập và Đồ án Tốt nghiệp
Em cũng xin chân thành cảm ơn các anh chị trong công ty FSoft Việt Nam đã tạo điều kiện cho em được học tập và hoàn thành kì thực tập, cũng như được trải
nghiệm một môi trường làm việc chuyên nghiệp và năng động
Trong quá trình thực hiện Báo cáo thực tập, em nhận thấy mình đã cố gắng hết sức nhưng vì kiến thức còn hạn hẹp nên còn nhiều thiếu sót Em rất mong nhận được những ý kiến đóng góp của quý Thầy Cô để kiến thức của em trong lĩnh vực này được hoàn thiện hơn Đồng thời có điều kiện bổ sung và nâng cao kiến thức của mình
Cuối cùng, em xin gửi đến quý Thầy Cô lời chúc sức khỏe và thành công trong
sự nghiệp giảng dạy
Trang 3MỤC LỤC
Contents
I Nội dung kĩ thuật đã tìm hiểu được 4
1 SQL 4
2 C# 5
3 NextJs 6
4 Lua 7
5 Prisma 8
II Nội dung thực tập và kết quả đạt được 9
1 SQL 9
2 C# 9
3 NextJs 11
4 Prisma 14
5 Lua 15
III Kết luận 17
Trang 4I Nội dung kĩ thuật đã tìm hiểu được
1 SQL
-Ngôn ngữ truy vấn có cấu trúc hoặc SQL có thể được sử dụng để truy cập và quản
lý cơ sở dữ liệu
-Năm 1986, Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) và Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) đều công nhận SQL là một tiêu chuẩn SQL có khả năng chạy các truy vấn đối với cơ sở dữ liệu Từ cơ sở dữ liệu, SQL có thể lấy thông tin Cơ sở dữ liệu có thể có các bản ghi được thêm bằng SQL Các bản ghi của cơ sở dữ liệu A có thể được cập nhật bằng SQL Cơ sở dữ liệu A có thể xóa các bản ghi bằng SQL Tạo cơ sở dữ liệu mới bằng SQL Trong cơ sở dữ liệu, SQL có thể tạo các bảng mới Trong cơ sở dữ liệu, SQL có thể tạo ra các thủ tục được lưu trữ Cơ sở dữ liệu
có thể có các dạng xem được tạo thông qua SQL Các bảng, thủ tục và dạng xem đều có thể có các quyền được định cấu hình qua SQL
Trang 52 C#
- C# là ngôn ngữ lập trình hướng đối tượng do Microsoft tạo ra chạy
trên NET Framework
- C# có nguồn gốc từ họ C và ngôn ngữ này gần với các ngôn ngữ phổ biến
khác như C++ và Java
* Lợi ích sử dụng C#
Đây là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới
C# rất dễ học và đơn giản để sử dụng
C# có sự hỗ trợ cộng đồng rất lớn
C# là ngôn ngữ hướng đối tượng mang lại cấu trúc rõ ràng cho chương trình và cho phép tái sử dụng mã, giảm chi phí phát triển
Vì C# gần với C, C++ và Java nên lập trình viên dễ dàng chuyển sang C# hoặc ngược lại
Trang 63. NextJs
- Next.js là một framework React để xây dựng các ứng dụng web full-stack
Người dùng sử dụng Thành phần React để xây dựng giao diện người dùng và Next.js để có các tính năng bổ sung và tối ưu hóa
- Về cơ bản, Next.js cũng tóm tắt và tự động định cấu hình công cụ cần thiết
cho React, như đóng gói, biên dịch, v.v Điều này cho phép lập trình viên tập trung vào việc xây dựng ứng dụng của mình thay vì dành thời gian cho việc cấu hình
- Next.js có thể giúp xây dựng các ứng dụng React tương tác, năng động và
nhanh chóng
* Các tính năng của Next Js
Routing Bộ định tuyến dựa trên hệ thống tệp được xây dựng dựa trên Thành phần máy chủ hỗ trợ bố cục, định tuyến lồng nhau, trạng thái tải, xử lý lỗi, v.v.
Rendering
Hiển thị phía máy khách và phía máy chủ với các thành phần máy khách và máy chủ Được tối ưu hóa hơn nữa với giao diện tĩnh và động trên máy chủ có Next.js Cung cấp dịch vụ trực tuyến trên thời gian thực và Node.js.
Trang 7Data Fetching Tìm nạp dữ liệu được đơn giản hóa bằng tính năng async/await trong Thành phần máy chủ và API tìm nạp mở rộng để ghi nhớ yêu cầu, lưu vào bộ nhớ đệm dữ liệu và xác thực lại. Styling Hỗ trợ các phương pháp tạo kiểu , bao gồm Mô-đun CSS, CSS Tailwind và CSS-in-JS
Optimizations Tối ưu hóa hình ảnh, phông chữ và tập lệnh để cải thiện Trải nghiệm người dùng và Các chỉsố quan trọng về trang web cốt lõi của ứng dụng TypeScript Cải thiện hỗ trợ cho TypeScript, với tính năng kiểm tra loại tốt hơn và biên dịch hiệu quả hơn, cũng như Trình kiểm tra loại và Plugin TypeScript tùy chỉnh.
4 Lua
- Lua là ngôn ngữ lập trình mạnh mẽ và nhanh chóng, dễ học, dễ sử dụng và
dễ nhúng vào ứng dụng
- Lua được thiết kế để trở thành một ngôn ngữ kịch bản có thể nhúng nhẹ Nó được sử dụng cho tất cả các loại ứng dụng, từ trò chơi đến ứng dụng web và xử
lý hình ảnh
* Lợi ích khi sử dụng
Lua thường được mô tả là ngôn ngữ "đa mô hình", cung cấp một tập hợp nhỏ các tính năng chung có thể được mở rộng để phù hợp với các loại vấn đề khác nhau
Lua là ngôn ngữ cơ sở rất nhẹ—trình thông dịch tham chiếu đầy đủ chỉ có dung lượng biên dịch khoảng 247 kB[4] và dễ dàng thích ứng với nhiều ứng dụng
Lua đủ nhỏ gọn để phù hợp với nhiều nền tảng máy chủ khác nhau Nó chỉ
hỗ trợ một số lượng nhỏ cấu trúc dữ liệu nguyên tử như giá trị Boolean, số (dấu phẩy động có độ chính xác kép và số nguyên 64 bit theo mặc định) và chuỗi Các cấu trúc dữ liệu điển hình như mảng, bộ, danh sách và bản ghi có
Trang 8thể được biểu diễn bằng cấu trúc dữ liệu gốc duy nhất của Lua, bảng, về cơ bản là một mảng kết hợp không đồng nhất
Lua triển khai một tập hợp nhỏ các tính năng nâng cao như hàm hạng nhất, thu thập rác, đóng, gọi đuôi thích hợp, ép buộc (chuyển đổi tự động giữa các giá trị chuỗi và số trong thời gian chạy), coroutine (đa nhiệm hợp tác) và tải mô-đun động
5 Prisma
- Prisma ORM là ORM thế hệ tiếp theo mã nguồn mở, bao gồm các phần sau:
+ Máy khách Prisma: Trình tạo truy vấn được tạo tự động và an toàn loại cho Node.js & TypeScript
+ Prisma Migrate: Hệ thống di chuyển
+ Prisma Studio: GUI để xem và chỉnh sửa dữ liệu trong cơ sở dữ liệu của lập trình viên
- Prisma Studio là phần duy nhất của Prisma ORM không phải là nguồn mở
Lập trình viên chỉ có thể chạy Prisma Studio cục bộ
- Prisma Client có thể được sử dụng trong mọi ứng dụng phụ trợ Node.js
(phiên bản được hỗ trợ) hoặc TypeScript (bao gồm cả ứng dụng không có
Trang 9máy chủ và vi dịch vụ) Đây có thể là API REST, API GraphQL, API gRPC hoặc bất kỳ thứ gì khác cần cơ sở dữ liệu
Trang 10II Nội dung thực tập và kết quả đạt được
1 SQL
- Yêu cầu: Tìm hiểu về SQL và cách thức hoạt động Nắm được các khái niệm
cơ bản về SQL và cách sử dụng:
Database concepts Entity Relationship Modelling Data Types and SQL Operations
DDL Statements Table Indexes_Sequences_View
DML Statements SELECT Options Built-in Functions
- Mô tả công việc: Tìm hiểu dựa trên các tài liệu hướng dẫn và tìm kiếm trên mạng Sau đó làm các bài tập để luyện tập
- Kết quả đạt được: Hoàn thành các bài được giao
-2 C#
- Yêu cầu: Tìm hiểu về C# và cách thức hoạt động Nắm được các khái niệm
cơ bản về C# và cách sử dụng:
.NET Introduction Declaration & Assignment
Operators
Operators Arithmetic Operators Assigment Operators Conditional Operators Comparation Logical Operators
Loop statement
for loop foreach loop while loop do-while loop Looping Comparison
Array, DateTime and String in C#
Trang 11Array DateTime in C#
DateTime Format TimeSpan in C#
String in C#
StringBuilder Regex
Basic OOP
Class Design Constructor Namespace Properties and Methods Ecapsulation Access Modifiers Inheritance Abstraction Polymorphism
Advance OOP
Overload Override Abstract Class Interface C# popular interfaces: IComparable, IDisposeable, IEnumerable , IDisposable,
ICollection Partial Class Optional Arguments, Named Arguments
params keyword Extension Method
Exception
Introduction Exception vs Error Try catch structure Multiple-catch Finally keyword Throw keyword Exception Hierarchy Custom Exception Exception Filter
Collections and Generic
Introduction Generic Class
Trang 12Generic Method Generic Interface Collection ArrayList SortedList Hashtable Dictionary
- Mô tả công việc: Tìm hiểu dựa trên các tài liệu hướng dẫn và tìm kiếm trên mạng Sau đó làm các bài tập để luyện tập
- Kết quả đạt được: Hoàn thành các bài được giao
3 NextJs
- Yêu cầu công việc: Tìm hiểu kiến thức Next cơ bản và nâng cao , tập trung vào việc lập trình giao diện với React
- Mô tả công việc: Tìm hiểu dựa trên các tài liệu được cung cấp và tìm kiếm trên mạng để làm giao diện và thực hiện tương tác với cơ sở dữ liệu
- Kết quả đạt được: Hoàn thành các bài tập được giao
Hình ảnh bài tập theo yêu cầu:
Trang 13- Giao diện tạo một server :
Trang 14- Giao diện Light Mode/System:
- Giao diện Dark Mode:
4 Prisma
postgres với giao diện chính
Trang 155 Lua
- Yêu cầu công việc: Tìm hiểu kiến thức Lua cơ bản và nâng cao , tập trung vào việc lập trình nhúng thông qua SuperBLT SuperBLT là công cụ kết nối script với ứng dụng cần ghi chèn
- Mô tả công việc: Tìm hiểu dựa trên các tài liệu được cung cấp và tìm kiếm trên mạng để làm bài tập
- Kết quả đạt được: Hoàn thành các bài tập được giao
Hình ảnh bài tập theo yêu cầu:
- Chỉnh sửa chỉ số vũ khí và người chơi
Trang 16- Aimbot
Trang 17- Hệ thống kiểm tra và kiểm soát state game
Trang 18III Kết luận
Kết quả thực tập đã giúp em có thêm những kiến thức rất cần thiết trong lập trình Frontend, những mô hình code chuyên nghiệp dễ sửa dễ phát triển và cách quản lý source code bằng Git giúp cho việc phân chia công việc dễ dàng hơn… Ngoài những kĩ năng chuyên môn, thực tập còn giúp em được trải nghiệm môi trường làm việc thực tế, chuyên nghiệp, được phát triển những kĩ năng mềm và cách giao tiếp với khách hàng Vì thời gian không cho phép nên em chưa tìm hiểu được rõ hơn các kĩ thuật, công nghệ này nên báo cáo vẫn còn thiếu sót, mong các thầy cô giúp đỡ em nhiều hơn