11 điểm bởi ashbyash 2025-11-26 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Trong kỹ thuật phần mềm, “gu tốt” không phải là sự thiên vị một tech stack cụ thể, mà là khả năng linh hoạt chọn ra những giá trị kỹ thuật phù hợp nhất với hoàn cảnh của dự án đang có.

Gu là một khái niệm khác với năng lực

  • Gu kỹ thuật là một cảm nhận độc lập với năng lực, giống như khẩu vị trong ẩm thực; ngay cả khi không trực tiếp viết code quá giỏi, người ta vẫn có thể phân biệt được “đoạn code này nhìn đẹp/xấu”, “quyết định thiết kế này làm mình thích/thấy lấn cấn”.
  • Những lựa chọn như for loop vs map/filter không phải là sự hơn kém tuyệt đối về kỹ thuật, mà chỉ là khác biệt về gu dựa trên các giá trị mỗi người coi trọng hơn (khả năng đọc, sự đơn giản, hiệu năng, v.v.); và kỹ sư cuối cùng sẽ phán đoán dựa trên bộ giá trị mà mình ưu tiên.

Gu kỹ thuật = thứ tự ưu tiên của các giá trị

  • Phần lớn các quyết định trong kỹ thuật phần mềm là bài toán trade-off giữa các giá trị như hiệu năng, khả năng đọc, tính chính xác, tính linh hoạt, khả năng mở rộng, khả năng phục hồi, tính di động, tốc độ phát triển, v.v.; hiếm khi nào luôn có một lựa chọn tuyệt đối đúng.
  • Gu của một kỹ sư được định nghĩa bởi việc họ ưu tiên giá trị nào đến mức nào; chẳng hạn, nếu coi trọng tốc độ và tính chính xác hơn tốc độ phát triển, họ sẽ dễ nghiêng về Rust hoặc một cloud cụ thể; còn nếu coi trọng khả năng phục hồi hơn tốc độ, họ sẽ tự nhiên chọn các phương án như phân tán multi-region.

Gu xấu: tôn thờ “best practice” một cách thiếu linh hoạt

  • Gu xấu xuất hiện khi những giá trị mà người đó ưa chuộng không phù hợp với dự án hiện tại, nhưng họ vẫn thúc ép áp dụng các phương pháp mà mình tin là đã hiệu quả trong quá khứ (formal verification, viết lại bằng một ngôn ngữ cụ thể, multi-region quá mức, metaprogramming phức tạp, v.v.) bất kể bối cảnh.
  • Họ biện minh cho lựa chọn bằng các chuẩn mực tuyệt đối kiểu như “đây là best practice”, và có thể ví điều đó như một chiếc la bàn hoạt động tốt trong hoàn cảnh đặc biệt nhưng khi bối cảnh thay đổi thì lại lệch hướng, kéo cả đội đi sai đường.

Gu tốt: chọn giá trị phù hợp với bối cảnh và có tính linh hoạt

  • Gu tốt là khả năng chọn đúng giá trị nào cần được đặt lên trước và giá trị nào có thể hy sinh trong phạm vi của một bài toán cụ thể cùng các ràng buộc về tổ chức và kinh doanh; vì vậy rất khó đo bằng các câu hỏi đáp đơn giản hay bài kiểm tra lý thuyết, mà chỉ bộc lộ trong thiết kế và kết quả của các dự án thực tế.
  • Chỉ khi lặp đi lặp lại việc quan sát qua nhiều dự án rằng những dự án có thiết kế mình đồng ý thì diễn ra tốt hơn, còn những dự án có các lựa chọn mình không đồng ý thì gặp nhiều khó khăn, ta mới có thể kiểm chứng rằng “gu của mình trong bối cảnh này là đúng/sai”.

Cách rèn luyện gu tốt

  • Lập luận ở đây là gu tốt không đến từ một đáp án duy nhất hay sách giáo khoa, mà được tích lũy dần qua việc trải nghiệm nhiều kiểu dự án khác nhau và liên tục chủ động nhìn lại xem “điều gì diễn ra suôn sẻ, điều gì khiến mình vất vả”, “những lựa chọn giá trị nào về sau trở thành lực cản”.
  • Điểm cốt lõi là tính linh hoạt: đừng xem một ngôn ngữ, pattern hay architecture cụ thể như luật tuyệt đối; thay vào đó, cần giữ thái độ cởi mở với các domain mới và gu của đồng đội, thử nhiều góc nhìn và ngôn ngữ khác nhau, đồng thời liên tục cập nhật gu nền tảng của chính mình.

Chưa có bình luận nào.

Chưa có bình luận nào.