JavaRush /Blog Java /Random-VI /Review sách “Các mẫu thiết kế đầu tiên”
Alex
Mức độ

Review sách “Các mẫu thiết kế đầu tiên”

Xuất bản trong nhóm
Trong số những người ít nhất đã quen thuộc với bộ truyện Head First, có nhiều người coi những tác phẩm như vậy là cách đọc khá hời hợt đối với người mới bắt đầu. Tôi có thể nói gì đây, khó có thể nghiên cứu sâu một chủ đề phức tạp trong lĩnh vực lập trình trong 48 giờ. Tuy nhiên, thật khó để khẳng định rằng Design Patterns là một cuốn sách sẽ là hướng dẫn lập trình hữu ích cho người mới bắt đầu. Cuốn sách này là một trong mười cuốn sách phổ biến nhất trên Stackoverflow và vì lý do chính đáng. Sự dễ trình bày, chủ đề cơ bản và ví dụ chất lượng cao khiến cuốn sách trở nên phổ biến hiện nay và theo tôi, trong nhiều năm tới. Review sách “Các mẫu thiết kế Head First” - 1

Đặc điểm của cuốn sách

Các mẫu thiết kế đầu tiên cho chúng ta biết các mẫu là gì, cách sử dụng chúng và cách suy nghĩ về chúng. Mẫu là một khuôn mẫu, một giải pháp phổ quát cho một loạt vấn đề cụ thể. Ngược lại, các mẫu thiết kế là các giải pháp kiến ​​trúc được sử dụng phổ biến có thể được sử dụng để viết các ứng dụng linh hoạt và thân thiện với người dùng. Các nhà phát triển trên toàn thế giới giải quyết những vấn đề giống nhau bằng những cách tiếp cận giống nhau. Như chú thích đã nói, nếu bạn không muốn phát minh lại cái bánh xe, hãy sử dụng các mẫu (mẫu) thiết kế làm sẵn mà cuốn sách này dành riêng để làm việc với các tệp . Riêng biệt, điều đáng chú ý là cách trình bày tài liệu: các cuốn sách trong bộ Head First nổi tiếng vì tính đơn giản và được đọc một lần. “Mẫu thiết kế” cũng không ngoại lệ. Nó cũng tuân thủ các nguyên tắc chính sau:
  1. Hiển thị
  2. Phong cách trình bày hội thoại
  3. Một số lượng lớn các hình ảnh minh họa
  4. Sự tham gia tích cực của độc giả
  5. Kêu gọi cảm xúc
  6. Thu hút sự chú ý của người đọc
Các tác giả của cuốn sách đã sử dụng thành thạo lý thuyết siêu nhận thức để trình bày tài liệu: đối với tôi, 100 trang đầu tiên trôi qua mà không được chú ý. Cái hay của phương pháp này là bộ não thực sự ghi nhớ những gì nó đọc. Sự kết hợp của một số phong cách kể chuyện, câu hỏi thú vị, sự dư thừa và tính sáng tạo - tất cả những điều này giúp người đọc không mất hứng thú với chủ đề chính. Trước khi mua cuốn sách, tôi đã do dự sau khi đọc nhiều ý kiến ​​trái chiều. Tuy nhiên, sau khi lướt nhanh qua một số nguồn khác về chủ đề này, tôi quyết định: đi sâu vào các mẫu, cuốn sách này chính là thứ bạn cần.

Chủ đề chính và ý tưởng chính

“Chắc chắn ai đó đã giải quyết được vấn đề của bạn” - đây là cách chương đầu tiên của cuốn sách bắt đầu, truyền tải toàn bộ ý nghĩa của các mẫu thiết kế trong lập trình. Mục tiêu chính là truyền tải chính xác ý nghĩa của chúng đến người đọc, bởi vì trước hết, người lập trình phải biết các mẫu dùng để làm gì và chúng cần được áp dụng vào thời điểm nào. Về cơ bản, trước tiên bạn cần sắp xếp các mẫu thành từng phần nhỏ trong đầu và chỉ sau đó mới triển khai chúng vào các chương trình. Nếu người mới bắt đầu lập trình có hiểu biết tốt về các mẫu thì việc sử dụng chúng có thể làm cho mã trở nên phức tạp hơn rất nhiều (nhưng nên đơn giản hóa nó!). Đối với câu hỏi “Tại sao nên sử dụng mẫu thiết kế?” Cuốn sách đưa ra câu trả lời rõ ràng: “Biết các khái niệm như trừu tượng, kế thừa và đa hình không giúp bạn trở thành nhà thiết kế OO giỏi. Các mẫu chứa đựng kinh nghiệm thiết kế OO đã được chứng minh.”

"Bản tóm tắt"

Cuốn sách được chia thành 14 chương cộng với phần giới thiệu. Lúc đầu, các tác giả của cuốn sách cố gắng chuẩn bị cho người đọc, điều chỉnh bộ não của họ để nhận thức chính xác thông tin về thiết kế mẫu. Chương đầu tiên giải thích nguyên tắc cơ bản của các mẫu và mục đích của chúng. Một trong những mẫu được sử dụng nhiều nhất - chiến lược - có thể được kiểm tra một cách dễ dàng và kín đáo. Các chương từ hai đến mười một được dành để phân tích chi tiết các mẫu riêng lẻ :
  1. Người quan sát. Phân phối các sự kiện trên các đối tượng quan tâm đến sự xuất hiện của chúng.
  2. Người trang trí. Một cái nhìn khác về tính kế thừa trong Java và cung cấp cho các lớp Java những khả năng mới mà không cần sửa đổi mã.
  3. Nhà máy. Mẫu lưu mã khỏi các phần phụ thuộc không mong muốn.
  4. Đơn. Còn được gọi là Singleton, nó cho phép bạn tạo một đối tượng lớp duy nhất cho toàn bộ chương trình.
  5. Đội. Mẫu này cho phép bạn gói gọn một cuộc gọi phương thức một cách thuận tiện, mở rộng khả năng của nó.
  6. Bộ chuyển đổi và mặt tiền. Giải quyết vấn đề không tương thích về giao diện, cũng như đóng gói các đối tượng để đơn giản hóa giao diện của chúng.
  7. Phương pháp mẫu. Đóng gói các khối thuật toán, cho phép các lớp con liên kết với thuật toán xử lý mong muốn bất cứ lúc nào.
  8. Trình lặp và Trình liên kết. Mẫu này cung cấp một công cụ thuận tiện để lặp qua các bộ sưu tập, bất kể loại của chúng là gì. Ngoài ra, chương này còn cung cấp một số thông tin về siêu bộ sưu tập.
  9. Tình trạng. Các đối tượng được ban cho khả năng kiểm soát hành vi của chúng thông qua những thay đổi về trạng thái bên trong của chúng.
  10. Phó. Một mẫu rất thuận tiện để kiểm soát quyền truy cập vào một đối tượng.
Chương 12 xem xét các mẫu tổng hợp, hay đúng hơn là sự kết hợp của một số mẫu đã thảo luận, có thể được sử dụng để xây dựng các kiến ​​trúc phần mềm mạnh mẽ. Chương 13 dành cho việc sử dụng các mẫu trong các bài toán thực tế, trình bày việc phân loại các mẫu, sự đa dạng và hướng dẫn sử dụng của chúng. Cuốn sách này đóng vai trò là phụ lục của Chương 14, bao gồm nhiều mô hình hơn. Mỗi người trong số họ đều hữu ích theo cách riêng của mình, vì vậy biết về chúng là điều đáng mong đợi hơn cả. Tất nhiên, chúng không phổ biến như các mẫu trong chương 2-11, nhưng điều này không làm chúng kém hữu ích hơn chút nào. Cuốn sách này không có vẻ là một bản trình bày chính xác về mặt học thuật về lý thuyết mẫu. Nhưng nếu những cuốn sách Head First quá tỉ mỉ, các nhà phát triển đầy tham vọng sẽ không có cơ hội tìm ra cái gì và làm rõ những điều cơ bản cho bản thân. Đây là một cách đơn giản và thuận tiện để tìm hiểu các mẫu thiết kế dành cho những người chưa quen với chúng. Theo các tác giả, Design Patterns là cuốn sách phù hợp với những người đã làm quen với Java (hoặc C#), muốn tìm hiểu các nguyên tắc thiết kế hướng đối tượng và thích những cuộc trò chuyện sôi nổi hơn là những bài giảng nhàm chán. Cuốn sách này không phải là một cuốn sách tham khảo! Nếu bạn là một nhà phát triển chuyên nghiệp có kinh nghiệm và làm việc với ít nhất một phần của các mẫu này thì cuốn sách này có thể sẽ không được bạn quan tâm. Một phần quan trọng của cuốn sách là các bài tập: bạn không nên bỏ qua chúng. Nếu bạn đọc kỹ cuốn sách và trong những trường hợp nghiêm trọng, hãy thực hiện tìm kiếm tối thiểu trên Internet, việc giải quyết chúng sẽ không khiến bạn phải đau đầu. Nhưng chắc chắn sẽ có lợi ích. Ít nhất bạn sẽ hiểu sâu hơn lý thuyết được trình bày trong sách.

Ưu điểm và nhược điểm

Tôi cũng như nhiều người học tại JavaRush, có thái độ lạnh lùng trước những bài giảng nhàm chán, nhồi nhét tài liệu và các hành vi bạo lực khác đối với tâm lý của một học sinh khao khát kiến ​​thức. Theo tôi, năng lượng dành cho việc ghi nhớ những văn bản khó hiểu, tốt nhất nên dành cho việc tìm kiếm các nguồn học tập thay thế. Cuốn sách này xứng đáng với thời gian và công sức của bạn. Phong cách trình bày xuất sắc, khả năng thu hút sự chú ý của người đọc một cách thành thạo và việc lặp lại các điểm chính là ưu điểm chính của cuốn sách này - sự dễ dàng tiếp thu tài liệu . Số lượng lớn hình ảnh minh họa là một điểm cộng nữa. Theo tôi, mọi bức tranh trong cuốn sách đều có vị trí của nó: tất cả đều cho phép bạn củng cố lời nói của tác giả và hiểu sâu hơn về bản chất của tài liệu. Như tôi đã viết ở trên, cuốn sách này không phải là một cuốn sách tham khảo: các tác giả của nó không có ý định liệt kê tất cả các khuôn mẫu. Nhiệm vụ chính của nó là cung cấp sự hiểu biết và nói về các mẫu cơ bản để những mẫu khác, phức tạp hơn, dễ hiểu hơn. Và cô ấy đối phó với điều này 100%. Một trong những nhược điểm là các mẫu thiết kế Head first bằng tiếng Nga không dễ đọc như tiếng Anh. Tất nhiên, mọi nhà phát triển đều phải nói tiếng Anh, nhưng những lập trình viên mới làm quen không phải lúc nào cũng phát triển kỹ năng này đến mức họ có thể đọc sách nguyên bản. Tuy nhiên, đây có thể coi là một điểm trừ bắt buộc vì tài liệu được trình bày khá chính xác và ý nghĩa vẫn được giữ nguyên.

Sách bổ sung về mẫu thiết kế

Tôi là người ủng hộ niềm tin rằng tốt hơn là nên nghiên cứu các chủ đề cơ bản từ nhiều nguồn và tìm kiếm phong cách trình bày phù hợp trong đó. Khi bạn muốn đi sâu vào các mô hình và đọc lý thuyết bổ sung, tin tôi đi, bạn sẽ có thứ gì đó để chiếm trọn buổi tối của mình.
  1. Các kỹ thuật thiết kế hướng đối tượng. Các mẫu thiết kế (Gamma E., Helm R., Johnson R., Vlissides J.).

    Review sách “Design Patterns” (Head First Design Patterns) - 2

    Đây là một ấn phẩm nghiêm túc hơn, một cuốn sách tham khảo về các khuôn mẫu, một cuốn sách rất được kính trọng của “Bè lũ bốn tên”. Nhiều người gọi nó là kinh thánh của thiết kế OO.

    Trên Internet, ý kiến ​​​​của các nhà phát triển được chia thành 3 phe:

    • một số người cho rằng cuốn sách đã lỗi thời và phong cách trình bày khiến người đọc không thể đọc được
    • những người khác khuyên bạn chỉ nên sử dụng cuốn sách này như một cuốn sách tham khảo về các mẫu, không có gì hơn
    • vẫn còn những người khác nói rằng cuốn sách này là chén thánh của các mẫu thiết kế và nên đọc bởi bất kỳ ai muốn một ngày nào đó trở thành Nhà phát triển Java cấp cao
    Tôi là người theo nhóm thứ hai: Tôi nghĩ rằng cuốn sách thực sự đáng giá, nhưng đọc nó để phát triển chứ không phải nhằm mục đích tìm kiếm thông tin thì rất khó.

    Quan trọng:Các ví dụ trong cuốn sách được viết bằng C++.

  2. Java EE. Mẫu thiết kế dành cho chuyên gia (Murat Yener, Alex Fidom).

    Review sách “Design Patterns” (Head First Design Patterns) - 3

    Cuốn sách này dành riêng cho việc thiết kế các ứng dụng Doanh nghiệp: nó bao gồm nhiều ví dụ về các vấn đề ứng dụng trong đời thực.

  3. Các mẫu thiết kế bằng Java (Grand M.).

    Review sách “Design Patterns” (Head First Design Patterns) - 4

    Cuốn sách trình bày một cách sinh động cách sử dụng các mẫu giúp tiết kiệm thời gian của nhà phát triển, cung cấp cái nhìn tổng quan về ngôn ngữ UML và mô tả 47 mẫu thiết kế.

Các mẫu thiết kế trong JavaRush

Trong khóa học JavaRush, các mẫu thiết kế được học ở cấp 7 của nhiệm vụ Bộ sưu tập Java. Bài giảng 12 được dành cho các mẫu phổ biến nhất và trong Bài giảng 4 , bạn có thể giải các bài toán về chủ đề này. Dưới đây là một số bài viết thú vị để “tăng cường sức mạnh cho bản thân”:
  1. Một bài viết tổng hợp về chủ đề mẫu với các danh mục, ví dụ, mọi thứ chúng tôi thích.

  2. Hai bài viết về mẫu: phần 1 tổng quan và phần 2 chi tiết hơn .

  3. Các mẫu thiết kế sử dụng mẫu Singleton làm ví dụ .

  4. Các bài viết về mô hình “ Chiến lược ” và “ Bộ điều hợp ”.

  5. Khái niệm mẫu thiết kế có liên quan đến sơ đồ UML, bài viết này sẽ giúp bạn hiểu chúng là gì.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION