Dễ dàng lý luận là một thuật ngữ cụ thể về văn hóa, đó là lý do tại sao rất khó để đưa ra các ví dụ cụ thể. Đó là một thuật ngữ được neo vào những người sẽ làm lý luận.
"Dễ lý luận về" thực sự là một cụm từ rất tự mô tả. Nếu một người đang xem mã và muốn lý giải nó làm gì thì thật dễ dàng =)
Được rồi, phá vỡ nó. Nếu bạn đang xem mã, bạn thường muốn nó làm một cái gì đó. Bạn muốn chắc chắn rằng nó làm những gì bạn nghĩ nó nên làm. Vì vậy, bạn phát triển lý thuyết về những gì mã nên làm, và sau đó bạn lý do về nó để cố gắng tranh luận tại sao mã thực sự hoạt động. Bạn cố gắng nghĩ về mã như một con người (chứ không phải như một máy tính) và cố gắng hợp lý hóa các đối số về những gì mã có thể làm.
Trường hợp xấu nhất cho "dễ lý luận" là khi cách duy nhất để hiểu bất kỳ điều gì về mã là đi từng dòng thông qua mã như một máy Turing cho tất cả các đầu vào. Trong trường hợp này, cách duy nhất để suy luận bất cứ điều gì về mã là biến mình thành một máy tính và thực thi nó trong đầu. Những ví dụ tồi tệ nhất có thể dễ dàng nhìn thấy trong các cuộc thi lập trình bị lỗi thời, chẳng hạn như 3 dòng PERL này giải mã RSA:
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
Để dễ dàng lý luận, một lần nữa, thuật ngữ này có tính văn hóa cao. Bạn phải xem xét:
- Người lý luận có những kỹ năng gì? Bao nhiêu kinh nghiệm?
- Những loại câu hỏi mà lý do có thể có về mã?
- làm thế nào chắc chắn các lý do cần phải được?
Mỗi trong số này ảnh hưởng đến "dễ lý luận về" khác nhau. Lấy các kỹ năng của lý luận làm ví dụ. Khi tôi bắt đầu tại công ty của mình, tôi khuyên bạn nên phát triển các tập lệnh của mình trong MATLAB vì nó "dễ lý do." Tại sao? Chà, mọi người trong công ty đều biết MATLAB. Nếu tôi chọn một ngôn ngữ khác, mọi người sẽ khó hiểu tôi hơn. Đừng bận tâm rằng khả năng đọc của MATLAB là tồi tệ đối với một số nhiệm vụ, đơn giản vì nó không được thiết kế cho chúng. Sau này, khi sự nghiệp của tôi phát triển, Python ngày càng trở nên phổ biến. Đột nhiên mã MATLAB trở nên "khó lý luận" và Python là ngôn ngữ ưu tiên để viết mã dễ lý do.
Cũng xem xét những gì idoms người đọc có thể có. Nếu bạn có thể dựa vào người đọc của mình để nhận ra một FFT theo một cú pháp cụ thể, thì "lý do dễ hiểu hơn" về mã nếu bạn tuân theo cú pháp đó. Nó cho phép họ xem tệp văn bản dưới dạng khung vẽ mà bạn đã vẽ FFT, thay vì phải đi vào các chi tiết ghê rợn. Nếu bạn đang sử dụng C ++, hãy tìm hiểu xem độc giả của bạn cảm thấy thoải mái với std
thư viện bao nhiêu. Họ thích lập trình chức năng bao nhiêu? Một số thành ngữ xuất phát từ các thư viện container phụ thuộc rất nhiều vào phong cách idomatic mà bạn thích.
Nó cũng quan trọng để hiểu những loại câu hỏi mà người đọc có thể quan tâm để trả lời. Có phải độc giả của bạn chủ yếu quan tâm đến sự hiểu biết hời hợt về mã, hoặc họ đang tìm kiếm các lỗi sâu trong ruột?
Làm thế nào chắc chắn người đọc phải thực sự là một trong những thú vị. Trong nhiều trường hợp, lý luận mơ hồ thực sự đủ để đưa sản phẩm ra khỏi cửa. Trong các trường hợp khác, chẳng hạn như phần mềm chuyến bay FAA, người đọc sẽ muốn có lý luận bằng sắt. Tôi gặp phải trường hợp tôi tranh luận về việc sử dụng RAII cho một nhiệm vụ cụ thể, bởi vì "Bạn có thể chỉ cần thiết lập và quên nó đi ... nó sẽ làm điều đúng đắn." Tôi đã nói rằng tôi đã sai về điều đó. Những người sẽ lý luận về mã này không phải là loại người "chỉ muốn quên đi các chi tiết." Đối với họ, RAII giống như một trò chơi treo cổ, buộc họ phải suy nghĩ về tất cả những điều có thể xảy ra khi bạn rời khỏi phạm vi.