আমি বিভিন্ন কোডে আমার কোডটিতে এমন কিছু লক্ষ্য করেছি যা দেখে মনে হয় কোডের গন্ধ আমার কাছে লাগে এবং করণীয় খারাপ হয় তবে আমি এটি মোকাবেলা করতে পারি না।
"ক্লিন কোড" লেখার চেষ্টা করার সময় আমার কোডটি পড়া সহজ করার জন্য আমি ব্যক্তিগত পদ্ধতিগুলি অতিরিক্ত ব্যবহার করার প্রবণতা রাখি। সমস্যাটি হ'ল কোডটি প্রকৃতপক্ষে পরিষ্কার তবে এটি পরীক্ষা করা আরও বেশি কঠিন (হ্যাঁ আমি জানি আমি ব্যক্তিগত পদ্ধতিগুলি পরীক্ষা করতে পারি ...) এবং সাধারণভাবে এটি আমার কাছে খারাপ অভ্যাস বলে মনে হয়।
এখানে এমন একটি শ্রেণীর উদাহরণ রয়েছে যা একটি .csv ফাইল থেকে কিছু ডেটা পড়ে এবং গ্রাহকদের একটি গ্রুপ প্রদান করে (বিভিন্ন ক্ষেত্র এবং বৈশিষ্ট্য সহ অন্য একটি বস্তু)।
public class GroupOfCustomersImporter {
//... Call fields ....
public GroupOfCustomersImporter(String filePath) {
this.filePath = filePath;
customers = new HashSet<Customer>();
createCSVReader();
read();
constructTTRP_Instance();
}
private void createCSVReader() {
//....
}
private void read() {
//.... Reades the file and initializes the class attributes
}
private void readFirstLine(String[] inputLine) {
//.... Method used by the read() method
}
private void readSecondLine(String[] inputLine) {
//.... Method used by the read() method
}
private void readCustomerLine(String[] inputLine) {
//.... Method used by the read() method
}
private void constructGroupOfCustomers() {
//this.groupOfCustomers = new GroupOfCustomers(**attributes of the class**);
}
public GroupOfCustomers getConstructedGroupOfCustomers() {
return this.GroupOfCustomers;
}
}
আপনি দেখতে পাচ্ছেন যে ক্লাসে কেবল এমন একজন নির্মাতা রয়েছে যা কাজটি করার জন্য কিছু ব্যক্তিগত পদ্ধতি বলে, আমি জানি এটি সাধারণভাবে একটি ভাল অনুশীলন নয় তবে আমি পদ্ধতিগুলি জনসাধারণের পরিবর্তে ক্লাসের সমস্ত কার্যকারিতা সজ্জিত করতে পছন্দ করি একজন ক্লায়েন্টের এভাবে কাজ করা উচিত:
GroupOfCustomersImporter importer = new GroupOfCustomersImporter(filepath)
importer.createCSVReader();
read();
GroupOfCustomer group = constructGoupOfCustomerInstance();
আমি এটি পছন্দ করি কারণ আমি ক্লায়েন্টের পাশের কোডে কোডের অকেজো লাইনগুলি প্রয়োগের বিশদ দিয়ে ক্লায়েন্ট শ্রেণিকে বিরক্ত করতে চাই না।
সুতরাং, এটি কি আসলেই খারাপ অভ্যাস? যদি হ্যাঁ, আমি কীভাবে এড়াতে পারি? দয়া করে নোট করুন যে উপরেরটি কেবল একটি সাধারণ উদাহরণ। কিছুটা জটিল জটিল কিছুতে একই পরিস্থিতি ঘটেছিল তা কল্পনা করুন।