Có lẽ đó là một ý tưởng tuyệt vời!
Tôi có vấn đề với việc tách các chuỗi hành động tuyến tính dài thành các hàm riêng biệt hoàn toàn để giảm độ dài chức năng trung bình trong cơ sở mã của bạn:
function step1(){
// ...
step2(zarb, foo, biz);
}
function step2(zarb, foo, biz){
// ...
step3(zarb, foo, biz, gleep);
}
function step3(zarb, foo, biz, gleep){
// ...
}
Bây giờ bạn đã thực sự thêm các dòng nguồn và giảm tổng số khả năng đọc đáng kể. Đặc biệt là nếu bây giờ bạn chuyển nhiều tham số giữa mỗi chức năng để theo dõi trạng thái. Rất tiếc!
Tuy nhiên , nếu bạn đã quản lý để trích xuất một hoặc nhiều dòng thành một hàm thuần phục vụ một mục đích rõ ràng duy nhất ( ngay cả khi chỉ được gọi một lần ), thì bạn đã cải thiện khả năng đọc:
function foo(){
f = getFrambulation();
g = deglorbFramb(f);
r = reglorbulate(g);
}
Điều này có thể sẽ không dễ dàng trong các tình huống trong thế giới thực, nhưng các phần chức năng thuần túy thường có thể bị trêu chọc nếu bạn nghĩ về nó đủ lâu.
Bạn sẽ biết bạn đang đi đúng hướng khi bạn có các chức năng với tên động từ đẹp và khi chức năng cha mẹ của bạn gọi chúng và toàn bộ thực tế đọc giống như một đoạn văn xuôi.
Sau đó, khi bạn trở lại vài tuần sau để thêm nhiều chức năng hơn và bạn thấy rằng bạn thực sự có thể sử dụng lại một trong những chức năng đó, thì ôi, niềm vui sướng trào dâng! Thật tuyệt vời rạng rỡ thỏa thích!