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