Sự tương đồng giữa nguyên tắc ghi sổ kép và TDD 

Cả nguyên tắc ghi sổ kép và TDD đều có những điểm giống nhau nhất định như sau:

  • Cả hai đều là những nguyên tắc được sử dụng bởi những chuyên gia khi thao tác thận trọng trên những tài liệu phức tạp với những ký hiệu khó hiểu. Những thao tác đó đòi hỏi phải chính xác hoàn toàn cả về thể loại và vị trí, và bên dưới nỗi đau của những hậu quả khủng khiếp.
  • Cả hai đều liên quan đến việc mô tả một chuỗi dài các hành động nhỏ theo hai hình thức khác nhau và trên hai tài liệu khác nhau.
  • Cả hai kỹ thuật đều cập nhật những tài liệu bằng một hành động nhỏ tại mỗi thời điểm và mỗi hành động cập nhật đó đều kết thúc bằng một hoạt động kiểm tra để đảm bảo hai tài liệu vẫn trong tình trạng cân đối.

 Top 7 trang web học lập trình online tốt nhất hiện nay

Hiểu về sự tương đồng giữa nguyên tắc ghi sổ kép và TDD chi tiết hơn

  • Kế toán nhập mỗi giao dịch vào hai tài khoản khác nhau. Một tài khoản là Liability (nợ phải trả). Một tài khoản là Asset (các tài sản) hoặc Equity (vốn chủ sở hữu). Những tài khoản này được tổng hợp trên bảng cân đối kế toán (balance sheet), và chúng quan hệ với nhau bởi công thức: Assets + Equities = Liabilities
  • Các kế toán được đào tạo để nhập vào một giao dịch mỗi lần, kiểm tra bảng cân đối kế toán sau khi nhập mỗi giao dịch đó.
  • Các lập trình viên thực hành TDD thêm một phần nhỏ của hành vi trong hai chương trình khác nhau. Một trong số đó là chương trình kiểm thử. Chương trình còn lại là sản phẩm mong muốn. Cả hai phải thực thi trong một môi trường để minh chứng rằng mã sản phẩm hoạt động giống với mô tả trong mã kiểm thử. 
  • Các lập trình viên được đào tạo để thêm một phần nhỏ mã nguồn cho mỗi chương trình tại mội thời điểm và sau đó thực thi các kiểm thử sau mỗi hành động bổ sung đó.

Như tôi đã trình bày, hai nguyên tắc này là hoàn toàn tương đương. Chúng là những cách tiếp cận gần như giống hệt nhau.

Và không có gì đáng ngạc nhiên. Cả hai nguyên tắc này cùng phục vụ một mục đích giống nhau. Chúng đều cho phép chúng ta bảo trì những tài liệu phức tạp với đầy dẫy những ký hiệu khó hiểu, hoạt động này phải tuyệt đối chính xác để chắc chắn rằng chúng ta sẽ không chịu đau đớn nếu gây ra những hậu quả nghiêm trọng. 

Các kế toán có các thời hạn không?

Những quản lý có gây áp lực để họ hoàn thành công việc kế toán vào một ngày cụ thể nào không? Dĩ nhiên! Không có sự khác biệt về áp lực. Các kế toán cảm thấy áp lực cũng giống như những lập trình viên.Những chương trình của lập trình viên có kém quan trọng hơn những tài khoản kế toán không? Tất nhiên là không! Những chương trình đó là những công cụ kiếm tiền hoặc tiết kiệm tiền cho công ty. Chúng rất quan trọng và quan trọng như những tài khoản kế toán vậy.

Vậy tại sao các kế toán có thể duy trì kỷ luật của mình một cách kiên trì và đầy đủ? Bạn có thể tưởng tượng một nhóm các kế toán nói chuyện với nhau rằng: “Này các ông, chúng ta thực sự đang nằm dưới họng súng đấy. Chúng ta phải hoàn tất các tài khoản này vào Thứ Sáu. Vì vậy, hãy hoàn thành các tài khoản Asset và Equity. Rồi quay lại thực hiện với tài khoản Liability sau.Nhưng không, bạn không thể tưởng tượng ra điều đó. Hoặc, ít nhất, bạn không nên tưởng tượng vậy. Các kế toán có thể đi tù vì làm như thế.

Vậy tại sao nhiều lập trình viên lại than vãn và rên rỉ khi đối mặt với những nguyên tắc của TDD? Tại sao họ trình bày khá nhiều lý do về việc TDD là không thực tế, hoặc không phù hợp, hoặc bạn có thể tưởng tượng một bà kế toán đưa ra những bào chữa như sau: (Tất cả được lấy từ các bài viết về TDD)

  • Tôi không bao giờ ghi sổ kép bởi vì việc theo dõi tất cả những tài khoản đó mất quá nhiều thời gian.
  • Các tài khoản không cần phải hoàn hảo, chúng chỉ cần đủ tốt. Ghi sổ kép là quá thừa.
  • Tất cả các kế toán thực hiện ghi sổ kép quá sùng bái nó. Họ đang tuân theo một tín điều không cần thiết.
  • Cân đối giữa các tài khoản Asset, Equity và Liability thực tế không chứng minh được các tài khoản đó là chính xác. Do đó ghi sổ kép là công việc tốn nhiều công sức mà hiệu quả lại thấp.
  • Ghi sổ kép là trò lừa đảo được quảng bá bởi những kế toán đang tìm cách kiếm tiền qua việc bán sách, khóa học và video.
  • Ghi sổ kép đã chết. Một tay tư vấn ở Andersen đã viết blog về điều này.
  • Tôi chống lại việc ghi sổ kép bởi vì kinh nghiệm cho thấy rằng điều này ngăn không cho thiết kế tài khoản chất lượng cao.
  • Tôi đã nghĩ rằng ghi sổ kép là một trò đùa thiết thực phức tạp khi lần đầu nghe về nó. Nó thật là ngớ ngẩn.
  • Không dùng được hình thức ghi sổ kép. Tôi không quan tâm những gì bạn đã nghe về nó. Tôi không quan tâm quản lý của bạn mong muốn dùng nó như thế nào.  Tôi không quan tâm ánh mắt căng thẳng của đồng nghiệp của bạn lóe lên niềm vui. Nó-Không-Hoạt động.
  • Những mục ghi kép dẫn tới thiệt hại trong thiết kế tài khoản.
  • Không phải mọi thứ đều có thể chịu trách nhiệm.
  • Những mục ghi kép kìm hãm thiết kế tài khoản.
  • Những mục ghi kép chỉ hay về phương diện lý thuyết. Trong thực tế, nó không cho thấy rõ giá trị tốt đẹp của mình.
  • Cuộc sống thì ngắn và một ngày chỉ có số giờ hữu hạn. Do đó chúng ta phải lựa chọn cách sử dụng thời gian của mình. Nếu chúng ta dùng nó để làm các mục ghi kép thì thời gian đó chúng ta chả làm được điều gì cả.
  • Sử dụng mục kép không đảm bảo việc bạn sẽ thiết kế ra những tài khoản tốt.
  • Tôi sẽ ra ngoài bằng một chân và tuyên bố một cách tàn nhẫn nhưng trung thực rằng theo nghĩa đen thì ghi sổ kép thực sự là một nghi thức lãng phí thời gian.
  • Another concern is the debated degree of perfection to which one must do double entry to do it successfully. Một số trong đó nhấn mạnh rằng nếu ghi sổ kép không được thực hiện liên tục bởi những người trong nhóm từ khi bắt đầu dự án, bạn sẽ bị ảnh hưởng.
  • Mục ghi kép chồng phụ thuộc vào tội lỗi. Nó khuyến khích sự hiểu biết. Nó có hàng tấn giáo điều và khẩu hiệu.
  • Đối với tôi, những kẻ cuồng tín ghi sổ kép là những đồng CAD tôn giáo gõ cánh cửa của tôi, họ cố gắng chứng minh rằng cách làm việc của tôi không thể sửa lại được và con đường duy nhất để cứu dỗi là những mục kép.
  • Thật sự những điều gây phiền nhiễu cho tôi về ghi sổ kép là có rất nhiều các quy tắc hoặc chỉ dẫn.
  • Trên dự án mục kép đầu tiên của bạn có hai thiệt hại lớn, thời gian và sự tự do cá nhân.

Tôi có thể tiếp tục thêm nữa. Bạn sẽ nhận thấy rằng không thiếu sự ngớ ngẩn, thông tin sai lệch, và những kẻ phá hoại.

Mấu chốt là sự đơn giản

TDD là nguyên tắc tốt để đảm bảo những tài liệu phức tạp, chứa đầy những ký hiệu khó hiểu, và được làm theo một cách như thế để tránh những hậu quả tiêu cực đáng kể. Tôi không biết nguyên tắc nào khác gần gũi hơn thế. Ghi sổ kép được phát minh bởi những người Hàn Quốc hàng nghìn năm trước. Phương pháp này được tạo ra độc lập bởi những người Ý cách đây hơn 600 năm. Ghi sổ kép phát triển và lan rộng cùng với chủ nghĩa tư bản và sự thịnh vượng kinh tế. Tuy nhiên sự tiếp nhận nó không phải là không có cản trở và trì hoãn. Những quốc gia cuối cùng đã chuẩn hóa ghi sổ kép trong thế kỷ 20. Hãy hy vọng sẽ không mất 500 năm để một nguyên tắc về kiểm thử trở thành tiêu chuẩn dành cho những nhà phát triển phần mềm.

Xem thêm: Lập trình viên và câu chuyện phát hành sản phẩm


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.