আমি মার্টিন ফোলারের রিফ্যাক্টরিং পড়ছি । এটি সাধারণত দুর্দান্ত তবে ফাউলারের একটি প্রস্তাবনা কিছুটা সমস্যা সৃষ্টি করছে বলে মনে হয়।
ফওলার পরামর্শ দেয় আপনি অস্থায়ী ভেরিয়েবলগুলি কোনও ক্যোয়ারির সাথে প্রতিস্থাপন করুন, সুতরাং এর পরিবর্তে:
double getPrice() {
final int basePrice = _quantity * _itemPrice;
final double discountFactor;
if (basePrice > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice * discountFactor;
}
আপনি একটি সহায়ক পদ্ধতিতে টানুন:
double basePrice() {
return _quantity * _itemPrice;
}
double getPrice() {
final double discountFactor;
if (basePrice() > 1000) discountFactor = 0.95;
else discountFactor = 0.98;
return basePrice() * discountFactor;
}
সাধারণভাবে আমি একমত যে আমি অস্থায়ী ভেরিয়েবলগুলি ব্যবহার করি তা বাদ দিলে একটি লাইন খুব দীর্ঘ হয়। উদাহরণ স্বরূপ:
$host = 'https://api.twilio.com';
$uri = "$host/2010-04-01/Accounts/$accountSid/Usage/Records/AllTime";
$response = Api::makeRequest($uri);
যদি আমি এটি সন্ধানের চেষ্টা করি, তবে রেখাটি 80 টি অক্ষরের বেশি হবে।
পর্যায়ক্রমে আমি কোডের চেইনগুলি দিয়ে শেষ করি যা এগুলি এত সহজে পড়তে পারা যায় না:
$params = MustacheOptions::build(self::flattenParams($bagcheck->getParams()));
দুটি মিলনের জন্য কিছু কৌশল কী?
$host
এবং $uri
উদাহরণটি একধরণের সংশ্লেষিত, যদিও - হোস্টটি যদি কোনও সেটিং বা অন্য ইনপুট থেকে না পড়া হত তবে আমি তাদের একই লাইনে থাকতে পছন্দ করতাম, এমনকি এটি মোড়ানো বা প্রান্তটি বন্ধ হয়ে গেলেও।