- Năm 2007, 2000 dòng mã
(folklore.org)The Original Macintosh: 36 of 123 - 2000 Lines Of Code
-
Đầu năm 1982, nhóm phần mềm Lisa đang tập trung vào giai đoạn nước rút để phát hành phần mềm trong vòng 6 tháng tới.
-
Một số quản lý cho rằng việc theo dõi lượng mã mỗi kỹ sư viết ra hằng tuần là một ý tưởng hay, nên đã tạo một biểu mẫu phải nộp vào mỗi thứ Sáu, trong đó có một mục để điền số dòng mã đã viết trong tuần đó.
-
Bill Atkinson, tác giả của Quickdraw và là nhà thiết kế giao diện người dùng chủ chốt, cho rằng số dòng mã là một cách ngớ ngẩn để đo năng suất phần mềm, vì nó chỉ khuyến khích việc viết ra những đoạn mã lộn xộn, phình to và đầy lỗi.
-
Atkinson gần đây đang tối ưu hóa bộ máy tính toán vùng của Quickdraw, và đã viết lại hoàn toàn region engine bằng một thuật toán đơn giản hơn và tổng quát hơn, sau vài tinh chỉnh đã giúp các thao tác vùng nhanh hơn gần 6 lần.
-
Việc viết lại này đồng thời giúp tiết kiệm khoảng 2000 dòng mã.
-
Ở giai đoạn cuối của công việc tối ưu hóa, đến lúc lần đầu tiên phải điền biểu mẫu quản lý, khi tới mục số dòng mã, ông suy nghĩ một lúc rồi điền con số -2000.
-
Không rõ các quản lý đã phản ứng thế nào, nhưng vài tuần sau đó, họ ngừng yêu cầu Atkinson điền biểu mẫu, và ông sẵn lòng chấp nhận điều đó.
Ý kiến của GN⁺
- Bài viết này đưa ra một bài học quan trọng rằng số lượng mã trong phát triển phần mềm không phản ánh năng suất thực sự. Nó cho thấy việc đo thành quả dựa trên số dòng mã không chỉ kém hiệu quả mà đôi khi còn phản tác dụng.
- Ví dụ của Bill Atkinson nhấn mạnh tầm quan trọng của tối ưu hóa phần mềm. Đạt được hiệu năng nhanh hơn với ít mã hơn là một trong những nguyên tắc cốt lõi của kỹ nghệ phần mềm.
- Câu chuyện này giúp hiểu vì sao các thực hành phát triển hiện đại, đặc biệt là các phương pháp như Agile và tích hợp/triển khai liên tục (CI/CD), lại quan trọng. Những phương pháp này coi trọng chất lượng, khả năng bảo trì và trải nghiệm người dùng hơn là số lượng mã.
- Trong ngành, nhiều công cụ và chỉ số khác nhau được dùng để đo lường và cải thiện chất lượng mã. Ví dụ như công cụ phân tích mã tĩnh, quy trình review code và theo dõi độ bao phủ kiểm thử.
- Bài viết này nhắc nhở các lập trình viên rằng việc tập trung vào chất lượng thay vì số lượng mã, tránh độ phức tạp không cần thiết và tối ưu hóa hiệu năng là quan trọng đến mức nào.
1 bình luận
Ý kiến trên Hacker News
Xung đột về số dòng mã giữa Microsoft và IBM
Các liên kết đến những cuộc thảo luận trước đây
Lấy số dòng mã làm chỉ số năng suất là điều cực kỳ ngớ ngẩn
order by, rồi đặt câu hỏi làm sao có thể đo được tác động của chỉ một dòng mã. Họ cũng chia sẻ kinh nghiệm rằng lập trình viên kém thường viết ra nhiều mã hơn, đồng thời giới thiệu trường hợp một lập trình viên Microsoft đã viết lại 33.000 ký tự mã của IBM thành 220 ký tự. Vì vậy mà công việc của Microsoft lại bị đánh giá là "âm".Những câu hỏi đơn giản đôi khi tạo ra tác động lớn nhất
Chia sẻ trải nghiệm tối ưu hóa mã ở giai đoạn đầu sự nghiệp
Thiếu định hướng rõ ràng khi bắt đầu dự án
Một thí nghiệm tư duy về việc dùng số dòng mã bị xóa làm chỉ số
Atkinson Dither của Bill Atkinson
Nhận thức về số dòng mã
Vai trò của một nhân viên