DESIGN PATTERN vs SOLID: Sự khác nhau là gì? Nên học gì trước? Tôi là anti của S trong SOLID.

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 26

  • @sweetjohn5968
    @sweetjohn5968 6 месяцев назад +8

    cơ bản ví dụ của anh không liên quan đến SRP, nó chỉ là business rule thay đổi làm cho ý nghĩa của model giải quyết vấn đề thay đổi.
    - ban đầu chỉ có một phương thức thanh toán bằng vàng, chưa tồn tại khái niệm về các phương thức thanh toán khác, lúc đó trách nhiệm của Asset là "thanh toán"
    - sau khi business rule mới được thêm vào, trách nhiệm của Asset trở thành "thanh toán bằng vàng" nếu xem xét như cách mà anh gọi là "áp dụng SRP".
    nguyên lý SRP cho ta 2 công cụ tuyệt vời nhất ở hai cấp độ strategic và tactical tương ứng là Bounded Context và Always-Valid Domain Model. nếu SRP mà vô nghĩa thì sẽ không có tiêu chuẩn một Microservice mỗi Bounded Context như hiện nay.

    • @anonystick
      @anonystick  6 месяцев назад

      Tks em với một góc nhìn...

    • @linhnd.2526
      @linhnd.2526 6 месяцев назад +2

      Mình đang hình dung nếu trong java thì tạo 1 Interface Asset sau đó sử dụng 2 class AssetCash/ AssetGold để impliment interface Asset.

    • @NGOCNGUYENANHTUAN
      @NGOCNGUYENANHTUAN 5 месяцев назад

      @@linhnd.2526 Dùng thêm factory pattern để handle việc đó nữa là đẹp

  • @tonydeveloperdndndn
    @tonydeveloperdndndn 6 месяцев назад +5

    Sau khi xem video của anh, em có một vài ý cần thảo luận:
    Ở ví dụ của anh, em thấy anh có gộp lại để sử dụng điều kiện để check asset để print ra là mua bằng vàng hay tiền mặt hoặc bất cứ gì khác.
    Nhưng, chỗ đó em thấy lạ, nếu vd đợt tới khách hàng yêu cầu thêm điều kiện là một list các items này sẽ mua bằng vàng, list này mua bằng tiền mặt, list kia mua bằng coin chẳng hạn. Thì khi đó, mình lại phải viết thêm cầu điều kiện để check.
    => Thay vì đó, thì mình đã tách ra 3 class tương ứng cho 3 loại vàng, tiền mặt và coin, trong đó mình sẽ có những item tương ứng.
    => Ở câu điều kiện, thay vì check trực tiếp valua của từng item, mình sẽ check điều kiện instanceof thuộc về vàng, tiền mặt hay coin => Như vậy, mặc dù S ở đây, mình sẽ viết code dài, nhưng nó sẽ giúp quản lý code dễ hơn.

    • @anonystick
      @anonystick  6 месяцев назад

      Không bàn về ví dụ đó, ở đây anh là anti của SOLID. Anh nói rõ mà..

    • @quangtrungang523
      @quangtrungang523 6 месяцев назад +5

      @@anonystickqua câu trả lời này mình thấy bạn chủ kênh hơi cố tình hoặc là quá bảo thủ :v
      Bạn chia sẻ kiến thức thì cũng tốt thôi. NHƯNG chia sẻ mà chưa hiểu rõ hết tầm vĩ mô của S thì ko nên phổ biến như thế này.
      Nhiều bạn đang mông lung có thể sẽ đi vào lối cụt.
      Ps: khuyên các bạn học mấy cái principle này nên hoặc phải tự mua sách gối đầu giường mà đọc. Rồi ngẫm nghĩ mới ra được chứ xem mấy video trên social này thì chỉ như xoá mù chữ thôi tốn thời gian mà hàm lượng thông tin quá ít và nhiều khi không chính xác (mang tính chủ quan của người trình bày) so với tự học nghiên cứu lên các diễn đàn có tính sư phạm . Thân!

    • @sweetjohn5968
      @sweetjohn5968 6 месяцев назад

      @@quangtrungang523 trên mạng xã hội, những người chưa hiểu về SRP sẽ nói những người đã có cảm giác một phần về SRP là "làm theo khuôn mẫu, giáo điều". những người không hiểu mới cần những bài như thế này, và khi mà một người nói rằng "tôi không thích SRP" thì nó sẽ tạo ra một hiệu ứng đám đông ủng hộ quan điểm trên (đó cũng là cách mà kênh ThePrimeTime hoạt động và giữ được lượng người xem khi luôn xem những người không thích Rust đơn thuần là "vấn đề kỹ năng"). nói cho cùng thì đây cũng chỉ là mạng xã hội thôi bạn.

  • @duythanh1602
    @duythanh1602 6 месяцев назад +4

    chuẩn luôn anh ơi, :))) 6 tháng mà giỏi hết như mấy khóa học quản cáo thì chỉ có lùa gà, em học liên tục gần 3 năm rồi mà thấy còn rất nhiều cái để phải học về web backend.

    • @anonystick
      @anonystick  6 месяцев назад

      Uhm em. Mình còn học nhiều đúng không?

    • @duythanh1602
      @duythanh1602 6 месяцев назад

      @@anonystick đúng rồi anh ơi, càng học càng thấy hay lắm anh, mỗi ngày học 1 tí cái mới

  • @vuminhduy933
    @vuminhduy933 5 месяцев назад +1

    Thầy cho enm hỏi là dùng Design Pattern với dùng architectural pattern, cái nào sẽ ưu tiên hơn ạ

  • @huynguyenvvnhanoi9963
    @huynguyenvvnhanoi9963 6 месяцев назад +1

    em nghĩ là solid là cái người ta hướng đến có nhiều cách để hướng đến solid 1 trong những cách nhanh nhất là dùng design partern. nhưng khi vào thực tế thì thấy nó không quá quan trọng nữa chaỵ đc là được :v đối với phần lớn dự án outsource.

    • @PhuongNguyen-qy4dy
      @PhuongNguyen-qy4dy 5 месяцев назад

      Design pattern framework nó áp dụng hết rồi, dự án thật chỉ xài thì k thấy quan trọng là đúng rồi 😂😂 như rxjs cài xong thì xài luôn chứ có ai coi nó xài pattern gì trước đâu

    • @huynguyenvvnhanoi9963
      @huynguyenvvnhanoi9963 5 месяцев назад

      @@PhuongNguyen-qy4dy 1 phần do business nữa b ơi thường web bình thường thì khó mà có đc logic đủ phức tạp mà dùng đc các tính chất của oop. Nếu sang làm game sẽ thấy là oop nó cần thiết đến mức nào

    • @PhuongNguyen-qy4dy
      @PhuongNguyen-qy4dy 5 месяцев назад

      @@huynguyenvvnhanoi9963 web bình thường mà bạn đề cập là gì? Landing page hay đồ án sinh viên? Nếu cần thì mình cho bạn 1 example để làm chức năng upload file. Thử extend nó mà k xài oop

  • @usaava
    @usaava 6 месяцев назад +1

    Hay quá anh ơi

  • @khanhsono7657
    @khanhsono7657 6 месяцев назад +1

    Có nguyên nhân gì để viết class trong node js không hay mình viết only func cũng đc ạ?

    • @anonystick
      @anonystick  6 месяцев назад

      Ko em, viết func là ok...

  • @tiendung2071
    @tiendung2071 6 месяцев назад

    Kênh này hay mà ít view quá

  • @laneu7354
    @laneu7354 6 месяцев назад +1

    hay quá ạ

  • @hainamdao28
    @hainamdao28 6 месяцев назад +1

    ❤❤❤