আমি একটি সাধারণ এনক্রিপশন অনুশীলনের জন্য রুবি কোড লিখছি এবং প্রায়শই এই দ্বিধা অতিক্রম করে চলেছি (অনুশীলনটি সলিটায়ার সাইফার যদি আপনার অবশ্যই জানা থাকে তবে)। এটি আমার নিজের যুক্তি বর্ণনামূলক পরিবর্তনশীল এবং একক পদক্ষেপের বিবৃতি দিয়ে ফাংশনটি সংক্ষিপ্তের পরিবর্তে পাঠযোগ্য, এমনকি ঘন বিবৃতি যা পুনরাবৃত্তিকে দূরীভূত করে এবং / বা ত্রুটিগুলির সুযোগকে হ্রাস করে তোলে সেগুলি দিয়ে প্রশ্ন করা উচিত।
আমার সাম্প্রতিক উদাহরণ: আমার প্রোগ্রামটি ইনপুট নেয় এবং অনমনীয় ফর্ম্যাট নির্দেশিকাগুলির কারণে এটি সহজেই নির্ধারণ করতে পারে যে ইনপুট এনক্রিপ্ট করা উচিত বা ডিক্রিপ্ট করা উচিত। সরলকরণের জন্য, একবার এনক্রিপশন কী এবং বার্তাটি সামঞ্জস্যপূর্ণ / রূপান্তরিত হয়ে উপযুক্ত হয়ে উঠলে এনক্রিপ্ট করা বার্তা থেকে কীটি বিয়োগ করা বা একটি এনক্রিপ্ট করা বার্তায় কী যুক্ত করা, পছন্দসই আউটপুট পাওয়ার জন্য (কীটিকে এনক্রিপশন হিসাবে ভাবুন, বার্তা + এনক্রিপশন = কোড; কোড - এনক্রিপশন = বার্তা)। ডিআরওয়াই অবস্থানটি আমাকে বলেছে যে আমার এনক্রিপ্ট করা বার্তাটি আমার এনক্রিপ্ট করা বার্তা থেকে আলাদাভাবে রূপান্তর করা উচিত যাতে ফাংশনটি যা এনক্রিপশন কী গ্রহণ করে এবং বার্তায় এটি প্রয়োগ করে তা কখনই আলাদা করার প্রয়োজন নেই। আমি খুঁজে পেয়েছি যে এর অর্থ এই যে আমাকে ফাংশনে স্টেটমেন্টগুলি দেওয়া হলেও যুক্তিটি দৃ be় বলে মনে হচ্ছে কিছু নেস্টেড দরকার। এই কোডটি তবে সহজেই পঠনযোগ্য নয়।
আমি, অন্যদিকে, দুটি পৃথক ফাংশন লিখতে পারি যা অ্যাপ্লিকেশনটি এনক্রিপশন বা ডিক্রিপশন নির্ধারণ করার পরে সেট করা একটি পতাকা ভিত্তিক ডাকা হয় called এটি পড়া সহজ হবে তবে কোনও বার্তায় এনক্রিপশন কী প্রয়োগ করার উচ্চ স্তরের ফাংশনটির নকল করা হবে (এটি এনক্রিপ্ট করা বা ডিক্রিপ্ট করা হওয়ার কারণে)।
আমার কি পাঠযোগ্য কোড বা সংক্ষিপ্ত কোডের দিকে ঝুঁকানো উচিত? বা এই কার্যকারিতাটি পেতে এবং উভয় নীতিই সন্তুষ্ট করার জন্য আমি অন্য কোনও উপায় মিস করেছি? এটি কি কোনও স্কেল বরাবর এমন একটি অবস্থান যেখানে প্রকল্পের উদ্দেশ্য বিবেচনা করা এবং সেই উদ্দেশ্যটি সম্পাদনের জন্য সেরা সিদ্ধান্ত নেওয়া উচিত?
এখনও অবধি, আমি পঠনযোগ্য কোডের উপর সংক্ষিপ্ত, DRY কোডের উপর জোর দেওয়ার প্রবণতা রাখছি।