এটি এমন একটি বই যা আমি প্রায়শই লিঙ্ক করি তবে এখানে আমি আবার যাই: রবার্ট সি মার্টিনের ক্লিন কোড , অধ্যায় 3, "ফাংশনস"।
স্পষ্টতই, এটি মূল ফাংশনে কোডের কম লাইন তৈরি করবে, তবে অতিরিক্ত ফাংশন ঘোষণা থাকবে, সুতরাং আমার ক্লাসে অতিরিক্ত পদ্ধতি থাকবে, যা আমি বিশ্বাস করি ভাল নয়, কারণ এটি ক্লাসটিকে আরও জটিল করে তুলবে।
আপনি কি +150 লাইনের সাথে কোনও ফাংশন পড়া বা 3 +50 লাইন ফাংশন কলকারী কোনও ফাংশন পছন্দ করেন? আমি মনে করি আমি দ্বিতীয় বিকল্পটি পছন্দ করি।
হ্যাঁ , এটি আপনার কোডটিকে এই অর্থে আরও উন্নত করবে যে এটি আরও "পাঠযোগ্য" হবে। একটি এবং কেবল একটি জিনিস সম্পাদন করে এমন ফাংশন তৈরি করুন, এগুলি বজায় রাখা এবং এর জন্য একটি পরীক্ষার কেস উত্পাদন করা আরও সহজ হবে।
এছাড়াও, পূর্বোক্ত বইয়ের সাথে আমি শিখেছি এমন একটি খুব গুরুত্বপূর্ণ বিষয়: আপনার কার্যকারিতার জন্য ভাল এবং সুনির্দিষ্ট নাম চয়ন করুন। ফাংশনটি যত বেশি গুরুত্বপূর্ণ, নামটি সুনির্দিষ্টভাবে হওয়া উচিত। নামের দৈর্ঘ্য সম্পর্কে চিন্তা করবেন না, যদি এটি কল করতে হয় FunctionThatDoesThisOneParticularThingOnly
, তবে নামটি সেইভাবে দিন।
আপনার রিফ্যাক্টর সম্পাদন করার আগে, এক বা একাধিক পরীক্ষার কেস লিখুন। তারা কাজ করে তা নিশ্চিত করুন। আপনার রিফ্যাক্টরিংটি শেষ হয়ে গেলে, নতুন কোডটি সঠিকভাবে কাজ করে তা নিশ্চিত করতে আপনি এই পরীক্ষার কেসগুলি চালু করতে সক্ষম হবেন। আপনার নতুন ফাংশনগুলি পৃথকভাবে ভাল সম্পাদন করতে পারে তা নিশ্চিত করতে আপনি অতিরিক্ত "ছোট" পরীক্ষা লিখতে পারেন।
পরিশেষে, এবং এটি সবেমাত্র যা লিখেছি তার বিপরীতে নয়, নিজেকে জিজ্ঞাসা করুন যদি আপনাকে সত্যিকার অর্থে এই রিফ্যাক্টরিং করার দরকার হয়, " কখন রিফ্যাক্টর করবেন ?" এর উত্তরগুলি দেখুন ? (এছাড়াও, "রিফ্যাক্টরিং" তে এসও প্রশ্নগুলি অনুসন্ধান করুন, আরও রয়েছে এবং উত্তরগুলি পড়ার জন্য আকর্ষণীয়)
সমস্ত কোড লেখার আগে আমার কি তা করা উচিত বা সবকিছু শেষ না হওয়া পর্যন্ত এটি ছেড়ে দেওয়া উচিত এবং তারপরে ফাংশনগুলি বের করা উচিত?
যদি কোডটি ইতিমধ্যে সেখানে থাকে এবং কাজ করে এবং পরবর্তী প্রকাশের জন্য আপনি সময়মতো সংক্ষিপ্ত হন তবে এটি স্পর্শ করবেন না। অন্যথায়, আমি মনে করি যে কেউ যখনই সম্ভব সম্ভব ছোট ছোট ফাংশন করা উচিত এবং যেমন, রিফ্যাক্টর যখনই কিছু সময় পাওয়া যায় তা নিশ্চিত করার সময় যে সমস্ত কিছু আগের মতো (পরীক্ষার ক্ষেত্রে) কাজ করে।