পার্শ্ব প্রতিক্রিয়া হ্রাস করুন (আদর্শ কোনও নেই)
এমন একটি ফাংশন যা তার নিজস্ব ক্ষেত্রের বাইরে রাজ্যে 3 টি পরিবর্তনের কারণ হয়ে থাকে তার পক্ষে যুক্তি বজায় রাখা এবং রক্ষণাবেক্ষণ করা অনেক বেশি কঠিন যা কেবল কিছু আউটপুট করে এবং অন্য কিছুকে আউটপুট করে। ফাংশনটি কী করে তা আপনি কেবল জানতে পারবেন না, এটি কী করেছে এবং এটি কীভাবে অন্যান্য সমস্ত প্রাসঙ্গিক ফাংশনকে প্রভাবিত করে তা আপনার মনে রাখতে হবে।
ওএওপি-এর পার্শ্ব প্রতিক্রিয়া হ্রাস করার জন্য ক্লাসের রাষ্ট্রকে সংশোধন করতে পারে এমন সদস্যদের এবং বিশেষত কম সদস্যের সাথে ক্লাসগুলিও বোঝানো হয়েছে, কারণ সদস্য ফাংশনগুলি তাদের নিজস্ব রাজ্যের বাইরেও রাজ্যগুলিকে সংশোধন করতে পারে এবং এর পার্শ্ব প্রতিক্রিয়া থাকতে পারে (তারা শ্রেণীর অভ্যন্তরীণ অভ্যন্তরীণ কৌশলগুলি পরিচালনা করতে পারে) eg এর অর্থ এটি তাদের নিজস্ব ডেটা সদস্যদের সহ ক্লাসগুলি যাতে এই পদ্ধতিগুলির সাথে টেম্পার করার জন্য কম রাষ্ট্র থাকে এবং তারা ঘটাতে পারে এমন কম পার্শ্ব প্রতিক্রিয়াও।
একটি সাধারণ উদাহরণ হিসাবে, কল্পনা করুন কোনও অভিনব ডেটা কাঠামো ডিজাইন করার চেষ্টা করুন যা কোনও sorted
রাজ্য বজায় রাখতে পারে যা বাইনারি বা রৈখিক অনুসন্ধানগুলি সম্পাদন করে কিনা তা নির্ধারণ করার জন্য এটি ব্যবহার করে। এই জাতীয় ক্ষেত্রে, নকশাকে দুটি শ্রেণিতে বিভক্ত করা কার্যকর হতে পারে। sorted
অরসোর্টড ক্লাসে কল করার পরে অন্য শ্রেণীর একটি ডেটা স্ট্রাকচার ফিরে আসতে পারে যা এর সামগ্রীগুলি সর্বদা সাজানো রাখে orted এখন আপনার কম পার্শ্ব প্রতিক্রিয়া রয়েছে (অতএব কম ত্রুটি-প্রবণ এবং কোড বোঝা সহজ) পাশাপাশি আরও ব্যাপকভাবে প্রযোজ্য কোড (ছোট্ট অ্যারেগুলির জন্য প্রসেসিং এবং মানব বৌদ্ধিক দক্ষতা উভয়ই সাফল্যযুক্ত নয় যা পূর্বে বাছাই করার প্রয়োজন হয় না) waste
অতিরিক্ত অতিরিক্ত বহিরাগত নির্ভরতা এড়িয়ে চলুন
তুলনামূলক সহজ কাজটি সম্পাদন করতে আপনি 13 টি ভিন্ন গ্রন্থাগার ব্যবহার করে সর্বাধিক কোড পুনরায় ব্যবহারের সাথে কল্পনাযোগ্য সর্বাধিক সংক্ষিপ্ত কোডটি প্রয়োগ করতে সক্ষম হবেন। যাইহোক, এটি আপনার পাঠকদের কাছে বুদ্ধিদীপ্ত ওভারহেড স্থানান্তর করে তারপরে তাদের 13 টি পৃথক গ্রন্থাগারের কমপক্ষে অংশগুলি বোঝার জন্য। এই অন্তর্নিহিত জটিলতার তত্ক্ষণাত যে কেউ তৃতীয় পক্ষের লাইব্রেরিটি তৈরি করতে এবং বোঝার চেষ্টা করেছেন যার দ্বারা কাজ করার জন্য আরও কয়েক ডজন লাইব্রেরি টানতে এবং তৈরি করা দরকার তাদের প্রশংসা করা উচিত।
এটি সম্ভবত খুব বিতর্কিত দৃষ্টিভঙ্গি তবে শেষের ফলাফলটি ভালভাবে পরীক্ষা করা হয়েছে (পরীক্ষিত দোষযুক্ত কোডের চেয়ে অনেক বেশি খারাপ কিছু বহুবার ডুপ্লিকেটেড করা হয়নি) তবে বিপরীত চরমের থেকে কিছু পরিমিত কোড ডুপ্লিকেশনকে আমি পছন্দ করব। যদি কোনও ভেক্টর ক্রস প্রোডাক্ট গণনা করার জন্য ডুপ্লিকেট কোডের 3-লাইনের মধ্যে পছন্দ হয় বা কেবল 3 লাইন কোড শেভ করার জন্য একটি মহাকাব্য গণিতের লাইব্রেরিতে টানতে হয়, আমি যদি আপনার পুরো দলটি এই গণিত গ্রন্থাগারের সাথে না থাকে তবে আমি পূর্ববর্তীটিকে প্রস্তাব দেব suggest , যে বিন্দুতে আপনি এখনও 1 এর পরিবর্তে কেবলমাত্র 3 টি লাইন কোড লেখার বিষয়টি বিবেচনা করতে পারেন যদি এটি ক্ষয়কারী সুবিধার পরিবর্তে যথেষ্ট তুচ্ছ v
কোড পুনরায় ব্যবহার একটি ভারসাম্যমূলক কাজ। অত্যধিক পুনরায় ব্যবহার করুন এবং আপনি বৌদ্ধিক জটিলতা এক-একাধিক প্রকারে স্থানান্তরিত করুন, যেমন আপনি উপরে সংরক্ষণ করেছেন সহজ কোডের এই 3 টি লাইনের পাঠকের এবং রক্ষণাবেক্ষণকারীদের 3 টি লাইনের কোডের চেয়ে অনেক বেশি তথ্য বোঝার প্রয়োজন হয় । এটি আপনার কোডকেও কম স্থিতিশীল করে তোলে, যেহেতু যদি গণিতের গ্রন্থাগারটি পরিবর্তন হয় তবে আপনার কোডটিও সম্ভবত। খুব সামান্য পুনরায় ব্যবহার করুন এবং আপনি বৌদ্ধিক ওভারহেডকেও গুণিত করুন এবং আপনার কোডটি কেন্দ্রীয় উন্নতি থেকে উপকার পেতে বন্ধ করে দিয়েছে, সুতরাং এটি একটি ভারসাম্যপূর্ণ কাজ, তবে ধারণাটি যে এটি একটি ভারসাম্যপূর্ণ কাজ তা উল্লেখযোগ্য কারণ যেহেতু বিন্যাসের প্রতিটি ছোট আকারের স্ট্যাম্প বের করার চেষ্টা করতে পারে ফলস্বরূপ যে বিপরীত চরমের চেয়ে বেশি নয়, তা বজায় রাখা যেমন কঠিন।
এটি থেকে ক্র্যাপ আউট পরীক্ষা করুন
এটি একটি প্রদত্ত তবে আপনার কোডটি যদি সমস্ত ইনপুট কেসগুলি পরিচালনা করে না এবং কিছু প্রান্তের মামলাগুলি মিস করে, তবে আপনি কীভাবে অন্যদের কোড ধরে রাখার আশা করতে পারেন যে আপনি লিখেছেন যে এটি চোখ ও হাতে স্থানান্তরিত করার আগে আপনি ঠিক পাননি? এমন কোডে পরিবর্তন করা যথেষ্ট কঠিন যা পুরোপুরিভাবে কাজ করে এমন কোডটি একাকী যাক যা প্রথমে একদম সঠিক ছিল না।
তার উপরে, পুঙ্খানুপুঙ্খ পরীক্ষায় উত্তীর্ণ কোডটি সাধারণত পরিবর্তনের জন্য কম কারণ খুঁজে পেতে চলেছে। এটি স্থিতিশীলতার সাথে সম্পর্কিত যা রক্ষণাবেক্ষণের চেয়ে অর্জনের জন্য পবিত্র কচুর চেয়েও বেশি, যেহেতু স্থিতিশীল কোডটি কখনও পরিবর্তন করতে হয় না কোনও রক্ষণাবেক্ষণ ব্যয়ই হয় না।
ইন্টারফেস ডকুমেন্টেশন
আপনি উভয় ডকুমেন্টিংয়ের জন্য সমান সময় ব্যয় করতে না পারলে "কী জিনিসগুলি" তাদের "কীভাবে কাজ করে" ওগুলিকে প্রাধান্য দিন। সমস্ত স্পষ্টর ইনপুট ক্ষেত্রে এটি কী করবে (বা খুব কমপক্ষে, এটি করার কথা) এর উদ্দেশ্যগুলির মধ্যে স্পষ্ট একটি স্পষ্ট ইন্টারফেস তার নিজস্ব বাস্তবায়নের প্রেক্ষাপটের একটি স্পষ্টতা এনে দেবে যা কেবল কিভাবে তা বোঝার ক্ষেত্রে গাইড করবে না কোডটি ব্যবহার করতে, তবে এটি কীভাবে কাজ করে তাও।
এদিকে এই কোডগুলির মধ্যে এই গুণাবলীর অভাব রয়েছে যেখানে লোকেরা এমনকি এটি কী করণীয় তাও জানে না তার প্রয়োগকরণের বিশদটি যত ভাল ডকুমেন্টেড থাকুক না কেন এটি এসওএল। সোর্স কোড কীভাবে কার্যকর করা হয় তার একটি 20-পৃষ্ঠার ম্যানুয়াল এমন লোকদের পক্ষে মূল্যহীন যারা এটি প্রথম স্থানে কীভাবে ব্যবহার করা হবে এবং ঠিক কীভাবে সমস্ত সম্ভাব্য পরিস্থিতিতে এটি করার কথা তাও ঠিক বুঝতে পারে না।
বাস্তবায়ন পক্ষের জন্য, আপনি অন্য সবার থেকে আলাদাভাবে কী করেন তার নথিটিকে অগ্রাধিকার দিন। উদাহরণস্বরূপ, ইন্টেলের তাদের রাইক্র্যাকিং কার্নেলের জন্য একটি সীমাবদ্ধ ভলিউম স্তরক্রম রয়েছে। যেহেতু আমি এই ক্ষেত্রে কাজ করি, তাই ডকুমেন্টেশনের মাধ্যমে পরীক্ষা না করে তাদের কোড এক নজরে কী করছে তার বেশিরভাগ অংশকে আমি চিনতে পারি। যাইহোক, তারা অনন্য কিছু করে যা বিভিএইচকে অনুসরণ করে এবং র্য প্যাকেটগুলি সমান্তরালে ছেদগুলি সম্পাদন করার ধারণা । আমি এখানে তাদের ডকুমেন্টেশনকে অগ্রাধিকার দিতে চাই কারণ কোডের সেই অংশগুলি বেশিরভাগ historicalতিহাসিক বিভিএইচ বাস্তবায়নগুলি থেকে বহিরাগত এবং অস্বাভাবিক।
সুপাঠ্যতা
এই অংশটি খুব সাবজেক্টিভ। মানব চিন্তার প্রক্রিয়াগুলির নিকটে এমন ধরণের পাঠযোগ্যতার বিষয়ে আমি সত্যিই তেমন যত্ন করি না। লেখক যদি কোনও সমস্যা সমাধানের জন্য উদ্ভট এবং সংশ্লেষিত চিন্তার প্রক্রিয়া ব্যবহার করেন তবে সর্বোচ্চ স্তরে জিনিসগুলি বর্ণনা করার জন্য সর্বাধিক ডকুমেন্টেড কোডটি এখনও আমার পক্ষে অনুসরণ করা কঠিন। ইতিমধ্যে 2 বা 3 অক্ষরের নাম ব্যবহার করে টিয়ার কোডটি প্রায়শই বুঝতে আমার পক্ষে সহজ হতে পারে যদি যুক্তিটি খুব সোজা থাকে। আমার ধারণা আপনি পর্যালোচনাটি পিয়ার করে দেখতে পারেন এবং অন্যান্য লোকেরা কী পছন্দ করে তা দেখতে পারেন।
আমি বেশিরভাগই রক্ষণাবেক্ষণ এবং আরও বেশি গুরুত্বপূর্ণ স্থিতিশীলতায় আগ্রহী। কোড যা পরিবর্তনের কোনও কারণ খুঁজে পায় না তা হ'ল শূন্য রক্ষণাবেক্ষণ ব্যয়।