0

Effective Java - Hành trình khám phá những nguyên tắc giúp viết Java tốt

Chia sẻ
  • 9 0
 Bất kỳ ai có liên kết - Chỉnh sửa lần cuối thg 6 8, 10:05 SA 9 0 0 9
  • 9 0

Lời mở đầu

Khi mới học Java, chúng ta thường tập trung vào việc làm sao để chương trình chạy được:

  • Viết class như thế nào?
  • Sử dụng interface ra sao?
  • Khi nào dùng inheritance?
  • Generic hoạt động như thế nào?

Nhưng sau một thời gian làm việc với Java, tôi nhận ra rằng việc code chạy được mới chỉ là điểm khởi đầu. Điều khó hơn nhiều là viết ra những đoạn code:

  • Dễ đọc
  • Dễ bảo trì
  • Dễ mở rộng
  • Ít lỗi
  • Phù hợp với các tiêu chuẩn và thực tiễn của cộng đồng Java

Đó cũng là lý do tôi tìm đến cuốn Effective Java của Joshua Bloch.

Effective Java là gì?

Effective Java là một trong những cuốn sách có ảnh hưởng lớn nhất đối với cộng đồng Java.

Thay vì dạy cú pháp ngôn ngữ, cuốn sách tập trung vào những kinh nghiệm thực chiến được đúc kết từ quá trình thiết kế Java Platform và các thư viện cốt lõi của JDK.

Mỗi chương trong sách được chia thành nhiều "Item". Mỗi Item giải quyết một vấn đề cụ thể như:

  • Khi nào nên sử dụng Static Factory Method thay vì Constructor?
  • Làm thế nào để thiết kế Immutable Object?
  • Khi nào nên sử dụng Inheritance và khi nào nên sử dụng Composition?
  • Cách sử dụng Generics hiệu quả.
  • Những nguyên tắc quan trọng khi thiết kế API.
  • Best practices liên quan đến Concurrency, Serialization và nhiều chủ đề khác.

Điều khiến cuốn sách trở nên đặc biệt là hầu hết các lời khuyên trong đó đều xuất phát từ những vấn đề mà lập trình viên Java gặp phải hằng ngày.

Mục tiêu của series

Mục tiêu của series này không phải là dịch lại toàn bộ cuốn sách.

Thay vào đó, tôi muốn:

  1. Đọc và nghiên cứu từng Item trong Effective Java.
  2. Diễn giải lại bằng ngôn ngữ dễ tiếp cận hơn.
  3. Bổ sung ví dụ thực tế từ quá trình phát triển phần mềm hiện đại.
  4. Phân tích sâu các đoạn code mẫu trong sách.
  5. Kết nối các nguyên tắc trong Effective Java với các framework phổ biến như Spring Boot.

Tôi sẽ cố gắng trình bày mọi thứ theo góc nhìn của một lập trình viên đang học và áp dụng Java trong công việc thực tế, thay vì chỉ đơn thuần liệt kê lý thuyết.

Series này dành cho ai?

Series sẽ phù hợp nếu bạn:

  • Đã nắm được cú pháp Java cơ bản.
  • Đang học Java Core.
  • Đang làm việc với Spring Boot.
  • Muốn nâng cao tư duy thiết kế phần mềm.
  • Muốn hiểu vì sao các thư viện và framework Java được thiết kế theo cách hiện tại.

Nếu bạn hoàn toàn mới với Java, có thể một số nội dung sẽ hơi khó tiếp cận ở những phần đầu. Tuy nhiên tôi sẽ cố gắng giải thích các khái niệm liên quan khi cần thiết.

Nội dung dự kiến

Series sẽ đi qua lần lượt các chương quan trọng của Effective Java:

Chương 1 - Creating and Destroying Objects

  • Static Factory Methods
  • Builder Pattern
  • Singleton
  • Dependency Injection
  • Resource Management

Chương 2 - Methods Common to All Objects

  • equals
  • hashCode
  • toString
  • clone
  • Comparable

Chương 3 - Classes and Interfaces

  • Minimizing Mutability
  • Composition over Inheritance
  • Interface Design
  • Nested Classes

Chương 4 - Generics

  • Generic Types
  • Generic Methods
  • Wildcards
  • Type Safety

Chương 5 - Enums and Annotations

  • Enum Best Practices
  • Annotation Design

Chương 6 - Lambdas and Streams

  • Functional Interfaces
  • Stream API
  • Lambda Expressions

Và nhiều chủ đề khác trong các chương tiếp theo.

Một vài lưu ý

Các bài viết trong series sẽ không cố gắng thay thế cuốn sách gốc.

Tôi vẫn khuyến khích mọi người đọc trực tiếp Effective Java để có được góc nhìn đầy đủ nhất từ tác giả. Series này đóng vai trò như một người bạn đồng hành, giúp diễn giải và kết nối những kiến thức trong sách với trải nghiệm thực tế của một lập trình viên Java hiện đại.

Bắt đầu thôi

Trong bài viết tiếp theo, chúng ta sẽ đến với Item đầu tiên của Effective Java:

"Consider static factory methods instead of constructors"

Một Item ngắn nhưng lại là nền tảng cho rất nhiều API nổi tiếng trong Java như List.of(), Map.of(), LocalDate.now() hay Boolean.valueOf().

Hẹn gặp lại trong bài tiếp theo.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí