Điều này thực sự phụ thuộc vào số lượng lồng bạn sử dụng. Rốt cuộc, bạn được phép sử dụng kết quả chức năng trực tiếp trong các biểu thức để cải thiện khả năng đọc. Cả hai, mã không sử dụng các biểu thức lồng nhau (như mã trình biên dịch mã) và mã sử dụng quá nhiều biểu thức lồng nhau rất khó đọc. Mã tốt cố gắng đạt được sự cân bằng ở giữa các thái cực.
Vì vậy, hãy nhìn vào một số ví dụ. Một trong những bạn đưa ra trong câu hỏi của bạn có vẻ khá hợp pháp với tôi, vì vậy không có gì phải lo lắng ở đây. Tuy nhiên, một dòng như
foo(bar(baz(moo, fab), bim(bam(ext, rel, woot, baz(moo, fab)), noob), bom, zak(bif)));
chắc chắn sẽ không thể chịu đựng được Tương tự như vậy, mã như
double xsquare = x*x;
double ysquare = y*y;
double zsquare = z*z;
double xysquare = xsquare + ysquare;
double xyzsquare = xysquare + zsquare;
double length = sqrt(xyzsquare);
sẽ không được đọc rất tốt là tốt. sqrt(x*x + y*y + z*z)
dễ hiểu hơn nhiều, mặc dù nó kết hợp tổng cộng sáu thao tác khác nhau trong một biểu thức.
Lời khuyên của tôi là hãy chú ý đến những biểu hiện mà bạn vẫn có thể phân tích trong đầu một cách dễ dàng. Thời điểm bạn cần có một cái nhìn thứ hai để nắm bắt một biểu thức duy nhất làm gì, đã đến lúc giới thiệu một biến bổ sung.