Review môn Java Desktop PRJ311x_02 của sinh viên FUNiX

Review môn Java Desktop PRJ311x_02 của sinh viên FUNiX

Chia sẻ kiến thức 04/10/2021

Về các kiến thức tự trang bị: Ngoài 4 mảng trên, ta cũng cần tìm hiểu thêm về Java Generics và cách Try/Catch của Java. Bài khá dài, mình không viết hết ra, nhưng đều có trong khóa Udemy mà FUNiX cung cấp hết.

Cuối cùng sau gần 2 tháng mình cũng xong môn Java Desktop. Mình có một số cảm nhận cá nhân như sau:

  • Lúc đầu hơi nản vì quên Java khá nhiều, vì lần cuối dùng Java là ở môn Android, sau đó học game và Database bỏ hẳn Java. Do đó quay lại cũng hơi lọng cọng.
  • Khóa học trường chọn trên Udemy khá hay, tác giả Tim Buchalka chắc là một trong những giảng viên nổi tiếng nhất trên Udemy về Java rồi. Nhưng thông tin khá nhiều, dễ ngộp và buồn ngủ (mình phải mất 2 tháng cho môn này).

Nhìn chung mình thấy môn Java Desktop này dính tới Desktop ở phần làm UI cho desktop thôi, môn này giống như một môn mở rộng của môn Java mà ta học ở chứng chỉ 2 nhiều hơn.

Mình nghĩ những logic trong môn này cũng áp dụng cho nhiều ngôn ngữ khác ở mảng lập trình desktop chứ không riêng về Java. Chương trình học thì cũng nhiều, nhưng tổng kết lại có 4 mảng kiến thức chính sau đây:

1. Java FX 

Đây là một API chuyên để thiết kế UI cho ứng dụng Java Desktop (hình như cũng làm web và mobile được thì phải). Cái này từ Java 11 trở đi thì nó tách riêng ra, muốn xài phải cài riêng.

  • Thiết kế UI cũng thao tác trên 1 dạng XML file như Android, nhưng ở đây có tùy biến cho JAVA FX gọi là FXML.
  • UI này build là xài được cho cả Windows và Mac OS luôn nhé, cũng tiện.
  • Việc tạo Alert hay Dialog cũng dễ chứ không lằn nhằn như cách tạo Fragment, Activity như bên Android.

Mình thấy việc thiết kế UI và bind data vào controller của Java FX nhẹ nhàng hơn Android rất nhiều. Các lớp Collection (ArrayList này nọ) trên JavaFX có thiết kế riêng để giúp việc data binding thêm/ sửa/ xóa dữ liệu trở nên đơn giản hơn bao giờ hết, thật sự nó nhẹ nhàng hơn Android nhiều lắm. Các bạn đã qua môn Android thì phần này không làm khó được các bạn đâu.

2. Input và Output trong Java (Hay còn gọi là Java IO)  

Mảng kiến thức này liên quan tới việc đọc và ghi dữ liệu vào và ra. Gồm việc thao tác trên các data như int, String… hoặc file. Cái này khá là dễ rối vì nó có rất nhiều class, và các wrapper class lẫn nhau.
Phần này mình chia ra như vầy cho dễ học.
  • Đọc và ghi là 2 việc tách biệt song song, nhưng nó khá tương đồng nhau. Các class đọc thường có chữ Read, ghi thì Write (thường thôi chứ không phải hết nha).
  • Đọc/ ghi có thể làm trên các loại dữ liệu chính (1) text: tức là đọc/ghi từng ký tự một, (2) byte: đọc/ghi dựa trên số nhị phân, tức là rã cái data về dạng nhị phân, đọc từng bit một, xong ghi thì ráp nó lại.
  • Ta có thể bao (wrap) cáo class đọc/ghi bên trên bằng Buffer: tức là ta sẽ đọc/ghi tạm vào 1 buffer cho tới khi buffer đó đầy thì mới đẩy sang file, data… Tránh thao tác nhiều đến nguồn/đích dữ liệu gây mất hiệu năng.

Minh tham khảo trên trang này, viết khá hệ thống: http://tutorials.jenkov.com/java-io/index.html

3. Đa luồng trong Java

Phần này khá là hack não, cách tạo các luồng cho Java đê thực hiện nhiều việc cùng lúc.
Mình khá thích phần này, và nó chiếm nhiều thời gian nhất trong môn khi mình học. Mình coi lan man giáo trình nên lâu, giới thiệu các bạn bộ bí kiếp xịn xò từ chính Oracle: https://docs.oracle.com/…/concurrency/procthread.html

Lời khuyên cá nhân: nên đọc hết phần tutorial trên link trên, vì nó cover hết tất cả những gì cần biết về luồng trong môn này một cách ngắn gọn và dễ hiểu).

4. Network trong Java 

Java
Anh Hồ Nhật Minh chia sẻ về môn học sau 2 tháng chinh phục môn Java Desktop tại FUNiX.
 
Hack não tập 2: cách đẩy đưa data qua mạng giữa các thiết bị. Ở đây ta làm quen với các khải niệm về Server và Clients, về Socket. Vận dụng Java FX, Java IO, và luồng ta đánh con boss cuối là asm 4: làm ứng dụng Chat.
  • Nắm nằm lòng về Socket, Server Socket, URL, port.
  • Nắm và phân biệt hai giao thức truyền dữ liệu là TCP và UDP.
  • Minh thấy phần này thực ra nói nhiều về Socket và TCP, UDP hơn là toàn bộ Networking.
  • Link để đọc thì cũng là tutorials của Oracle luôn về Socket: https://docs.oracle.com/…/networking/sockets/index.html.

Về các kiến thức tự trang bị: Ngoài 4 mảng trên, ta cũng cần tìm hiểu thêm về Java Generics và cách Try/Catch của Java. Bài dài quá mình không viết chi tiết ra, nhưng đều có trong khóa Udemy mà FUNiX cung cấp hết.

Minh Hồ

 Anh Hồ Nhật Minh hiện làm Quản lý đơn hàng (Merchandiser) tại văn phòng đại diện của một công ty Nhật Bản về ngành may ở Tp.HCM. Anh chọn FUNiX vì giá trị chia sẻ kiến thức trong cộng đồng công nghệ, hình thức học trực tuyến linh động.

“Lập trình đang là một ngôn ngữ của thời đại, bản thân sống ở thời đại này mà không biết về lập trình có nghĩa mình đang bị thời đại mới bỏ lại phía sau”, anh Hồ Nhật Minh chia sẻ.

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!