Độ rõ ràng sẽ vượt qua ngắn gọn mỗi ngày theo ý kiến của tôi. Đôi khi tôi cảm thấy rằng mã viết như:
if(!(x = func(y)) && ++z == x)
... tương đương với các sọc đi nhanh hơn trên xe hơi. Nó có thể cảm thấy nhanh chóng, nhưng nó không phải là. Tôi cũng không nghĩ rằng việc sử dụng các tên biến không thể hiểu được (chẳng hạn như trong ví dụ trên) để tiết kiệm khi gõ là một ý tưởng hay.
là gì tốt hơn ở đây:
for(int x(0) x < managers.size(); ++x)
managers[x]->initialise();
hay:
for(int mgr(0); mgr < managers.size(); ++mgr)
managers[mgr]->initialise();
Cả hai đều thực hiện được điều tương tự và người ta có thể tranh luận rằng không có điểm làm mgr
rõ ràng hơn (thậm chí còn có lý lẽ khác để nói mgr
phải là rõ ràng hơn :)).Nhưng nếu từng phần này của thói quen trở nên phức tạp hơn, nó có thể là rất quan trọng:
for(int mgr(0); mgr < managers.size(); ++mgr)
{
for(int dependentMgr(0); dependentMgr < managers[mgr].dependents().size(); ++dependentMgr)
{
// init these first
}
}
Rõ ràng, đây không phải là một cuộc thảo luận về việc có nên sử dụng vòng lặp hay không, chỉ đơn thuần là cho dù chúng ta nên sử dụng tên rõ ràng hay không.
Khi tôi nhìn vào một đoạn mã mà tôi chưa từng thấy trước đây, tên biến là tất cả. Tôi co rúm khi tôi thấy tmp
và tempt2
và vec2
. Họ có nghĩa là không có gì.
Nghiêm túc người, nếu bạn đang lo lắng về số tiền bạn đang gõ, có một IDE với autocomplete hoặc đi nuôi gà ở Fiji :)
Nguồn
2010-11-21 18:51:41
Tuyệt đối, chỉ cần cẩn thận bạn có được quyền logic, vì ví dụ đầu tiên của bạn không tương đương với ví dụ thứ hai của bạn. –
yeah, hãy chú ý theo thứ tự hoạt động. –
Nó làm cho không có sự khác biệt cho trình biên dịch và mã được tạo ra sẽ hoàn toàn giống hệt nhau. Vì vậy, bạn nên viết nguồn của bạn để rõ ràng với con người nhất có thể. –