Tôi đã đọc Tái cấu trúc của Martin Fowler . Nó nói chung là tuyệt vời nhưng một trong những khuyến nghị của Fowler dường như gây ra một chút rắc rối.
Fowler khuyên bạn nên thay thế các biến tạm thời bằng một truy vấn, vì vậy thay vì điều này:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
bạn kéo ra một phương thức trợ giúp:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
Nói chung, tôi đồng ý ngoại trừ một lý do tôi sử dụng các biến tạm thời là khi một dòng quá dài. Ví dụ:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
Nếu tôi cố gắng nội tuyến, dòng sẽ dài hơn 80 ký tự.
Thay phiên, tôi kết thúc với chuỗi mã, bản thân chúng không dễ đọc hơn nhiều:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
Một số chiến lược để hòa giải hai là gì?
$host
và $uri
ví dụ là loại giả tạo, mặc dù - trừ khi chủ nhà đã được đọc từ một khung cảnh hoặc đầu vào khác, tôi muốn họ là trên cùng một dòng, ngay cả khi nó quấn hoặc đi ra khỏi mép.