আমি কোডটিতে সরলতার সংজ্ঞা এবং পরিমাপ করতে পারি?


13

পাঠযোগ্যতার সাথে সম্পর্কিত সরলতা সম্পর্কে আমার পূর্ববর্তী প্রশ্নের অনেকগুলি উত্তর রয়েছে যা আমাকে আমার সংজ্ঞা এবং কোডটিতে সরলতার বোঝাপড়া দেখতে সহায়তা করেছিল, সম্ভবত সম্ভবত ভুল ছিল।

আমি কোডে সরলতা কীভাবে সংজ্ঞায়িত করতে পারি? কোডের সরলতা পরিমাপ করতে কোন সফ্টওয়্যার পরিমাপ এবং মেট্রিকগুলি উপলব্ধ?


2
@ মার্কট্র্যাপ ইমপেরিকাল সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বিষয়গুলি ছাড়াই কোড সরলতার বিষয়ে আলোচনা করার অন্যান্য উপায় রয়েছে, যে বিষয়গুলির সাথে আমি অনেক কম পরিচিত। উদাহরণস্বরূপ, স্বয়ংক্রিয় পরীক্ষাগুলি লেখার ক্ষমতার দিক থেকে সরলতা নিয়ে আলোচনা করা। আমার দক্ষতা এবং জ্ঞান আমাকে এম্প্রিকাল সফ্টওয়্যার ইঞ্জিনিয়ারের দৃষ্টিকোণ থেকে এই প্রশ্নের উত্তর দেওয়ার অনুমতি দেয়, অন্যরা বিকল্প দৃষ্টিকোণ থেকে উত্তর দিতে পারে। প্রশ্নে উক্তিটি যুক্ত করা কার্যকর উত্তরগুলির সংখ্যা উল্লেখযোগ্যভাবে সীমাবদ্ধ করে এটি (আইএমও) খুব স্থানীয় করে তোলে। আপনি যদি এটি যুক্ত করতে চান তবে আপনি পারেন তবে এটি যেমন হয় তবে এটি একটি ভাল প্রশ্ন।
টমাসের মালিক

2
@ থমাস ওভেনস রিয়েল প্রশ্নগুলির উত্তর রয়েছে , ধারণা বা মতামত নয়। সুযোগকে সঙ্কুচিত করে তোলা যাতে প্রত্যেকে একইভাবে প্রশ্নের উত্তর কীভাবে দেওয়া যায় তা স্ট্যাক এক্সচেঞ্জের ঠিক কী হিসাবে হয়। সমস্যা সমাধানের জন্য একাধিক পদ্ধতি থাকতে পারে, তবে কেবলমাত্র একটি স্পষ্টতই বর্ণিত সমস্যা রয়েছে।

বর্তমান অবস্থায়, এই প্রশ্নের খুব কম উত্তর রয়েছে (আমার উত্তরটি সাধারণ মেট্রিকগুলির সাথে - এম্পিরিকাল সফ্টওয়্যার ইঞ্জিনিয়ারিং অবস্থানকে সম্বোধন করে - সম্ভবত অন্যরাও রয়েছে)। অন্যান্য দৃষ্টিকোণ থেকে বৈধ বিকল্প সরবরাহ করে উত্তরগুলি বাদ দেওয়া কোনও অর্থবোধ করে না, যা এই প্রশ্নের শব্দটিই করে। আমি এই সম্পাদনাগুলির সাথে সম্পূর্ণরূপে একমত নই এবং প্রশ্নটি তার মূল ফর্মটিতে ফিরে আসা উচিত।
টমাস ওয়েন্স

@ মার্কট্র্যাপ সমস্যাটি দ্ব্যর্থহীন: আমি কোডের সরলতা কীভাবে নির্ধারণ করব? বেশ কয়েকটি ভাল উত্তর আছে। খনি জটিলতা পরিমাপ করতে অভিজ্ঞতা অভিজ্ঞতা সফটওয়্যার ইঞ্জিনিয়ারিং কৌশল ব্যবহার করা হয়। অন্যটি হতে পারে স্বয়ংক্রিয় পরীক্ষাগুলি লিখতে এবং যদি ভাল পরীক্ষা লিখতে অসুবিধা হয় তবে কোডটি জটিল - একটি পুরোপুরি বৈধ উত্তর। অন্যরাও থাকতে পারে যা সম্পর্কে আমি অবগত নই। আপনার যদি কোনও কোড বেইসের জটিলতা / সরলতা পরিমাপ করার প্রয়োজন হয়, তবে প্রশ্নটি এমনভাবে বলা উচিত যাতে সমস্ত বিকল্প উপস্থাপনের অনুমতি দেওয়া যায় যাতে প্রশ্নকারী তার নির্দিষ্ট মামলার জন্য সর্বোত্তম সমাধানটি বেছে নিতে পারে।
টমাস ওয়েন্স

উত্তর:


16

জটিলতাটি পরিমাপ করার জন্য সর্বাধিক সাধারণ মেট্রিকগুলি (বা সরলতা, যদি আপনি জটিলতার বিপরীতে হিসাবে সরলতা নেন তবে) হলেন ম্যাককেবের সাইক্লোমেটিক জটিলতা এবং হালস্টেড জটিলতা মেট্রিক্স

সাইক্লোমেটিক জটিলতা প্রদত্ত ইউনিটের মাধ্যমে সাধারণত একটি পদ্ধতি বা ফাংশন দ্বারা পৃথক পাথের সংখ্যা পরিমাপ করে, যদিও এটি কোনও শ্রেণিতেও গণনা করা যায়। পাথের সংখ্যা বাড়ার সাথে সাথে প্রদত্ত মডিউলের মাধ্যমে ডেটা প্রবাহকে স্মরণ করা আরও কঠিন হয়ে ওঠে, যা কার্যকরী স্মৃতির ধারণার সাথে সম্পর্কিত । হাই সাইক্লোমেটিক জটিলতা মডিউল পরীক্ষা করার ক্ষমতাতে অসুবিধা নির্দেশ করতে পারে - সিস্টেমের মাধ্যমে বিভিন্ন পাথের জন্য আরও পরীক্ষার ক্ষেত্রে আবশ্যক। এমন অধ্যয়নও হয়েছে যেগুলি উচ্চ চক্রবৃত্তীয় জটিলতাকে উচ্চ ত্রুটি হারের সাথে যুক্ত করেছে। সাধারণত, 10 এর একটি চক্রবৃত্তীয় জটিলতা ইঙ্গিত দেয় যে একটি ইউনিট পর্যালোচনা করা উচিত এবং সম্ভবত রিফ্যাক্টর করা উচিত।

হালডস্ট জটিলতা ব্যবস্থাগুলি কোডের একটি অংশের ভলিউম, অসুবিধা এবং প্রচেষ্টা গণনা করতে মোট এবং স্বতন্ত্র অপারেটর এবং অপারেটরগুলির ইনপুটগুলি ব্যবহার করে। অসুবিধা, যা (অনন্য অপারেটরের সংখ্যা / ২) * (অপারেটরের মোট সংখ্যা / অনন্য অপারেটরের সংখ্যা), সিস্টেমটি শেখার বা কোনও কোড পর্যালোচনা সম্পাদনের মতো কাজের জন্য কোডটি পড়ার এবং বুঝতে সক্ষমতার সাথে জড়িত। আবার, আপনি এটি একটি সিস্টেম স্তর, একটি শ্রেণি স্তর, বা একটি পদ্ধতি / ফাংশন স্তরে গণনা করতে পারেন। এই পরিমাপগুলি এখানে এবং এখানে কম্পিউটিং সম্পর্কে কয়েকটি পোস্টিং রয়েছে ।

কেবল কোডের লাইন গণনাও আপনাকে জটিলতার ধারণা দিতে পারে। কোডের আরও লাইনগুলির অর্থ মডিউলটিতে আরও পড়ার এবং বোঝার আছে। আমি এটিকে একা একা পরিমাপ হিসাবে ব্যবহার করতে দ্বিধা বোধ করব। পরিবর্তে, আমি অন্যান্য পরিমাপের সাথে এটি ব্যবহার করতাম যেমন ত্রুটি ঘনত্ব অর্জনের জন্য প্রদত্ত মডিউলটিতে ত্রুটির সংখ্যা। একটি উচ্চ ত্রুটিযুক্ত ঘনত্ব পরীক্ষার লিখন এবং কোড পর্যালোচনা সম্পাদন করতে সমস্যাগুলি নির্দেশ করতে পারে, যা জটিল কোডের কারণে হতে পারে বা নাও পারে।

ফ্যান-ইন এবং ফ্যান-আউট ডেটা প্রবাহের সাথে সম্পর্কিত আরও দুটি মেট্রিক। এখানে সংজ্ঞায়িত হিসাবে , ফ্যান ইন হ'ল প্রক্রিয়াগুলির সমষ্টি, প্যারামিটারগুলি পড়া এবং গ্লোবাল ভেরিয়েবলগুলি পড়া এবং ফ্যান আউট এমন পদ্ধতিগুলির সমষ্টি যা প্রদত্ত পদ্ধতিটিকে কল করে, প্যারামিটারগুলিতে লিখিত হয় (বাইরের ব্যবহারকারীদের কাছে প্রকাশিত হয়, রেফারেন্স দ্বারা পাস করা হয়), এবং গ্লোবাল ভেরিয়েবলগুলিতে লিখিত। আবার, উচ্চ ফ্যান-ইন এবং ফ্যান-আউট এমন একটি মডিউল নির্দেশক হতে পারে যা বুঝতে অসুবিধা হতে পারে।

নির্দিষ্ট দৃষ্টান্তে, অন্যান্য পদক্ষেপ বা মেট্রিকগুলিও দরকারী। উদাহরণস্বরূপ, অবজেক্ট-ওরিয়েন্টেড বিশ্বে, কোনও সিস্টেম কতটা জটিল বা জটিল তা নির্ধারণের জন্য মনিটরিং কাপলিং (ইচ্ছা কম), সংহতি (উচ্চ আকাঙ্ক্ষা) এবং উত্তরাধিকারের গভীরতা (ইচ্ছা কম) ব্যবহার করা যেতে পারে।

অবশ্যই, এটি উপলব্ধি করা গুরুত্বপূর্ণ যে প্রচুর পরিমাপ এবং মেট্রিকগুলি কেবল সূচক। সরলতা বাড়াতে রিফ্যাক্টর করা দরকার কিনা বা তা করার চেষ্টা করার মতো মূল্য নেই কিনা তা নির্ধারণ করতে আপনাকে আপনার রায় ব্যবহার করতে হবে। আপনি পরিমাপ তৈরি করতে পারেন, মেট্রিকগুলি গণনা করতে পারেন এবং আপনার কোড সম্পর্কে শিখতে পারেন, তবে আপনি সংখ্যার দ্বারা আপনার সিস্টেমটি ডিজাইন করতে চান না। শেষ পর্যন্ত, যা বোঝায় তা করুন।


5
আমি জানি আপনি এটি উল্লেখ করেছেন তবে এটি জোর দেওয়া গুরুত্বপূর্ণ যে সাইক্লোমেটিক জটিলতা কেবলমাত্র ফাংশন / পদ্ধতি স্তরে কার্যকর এবং উচ্চ স্তরে উল্লেখযোগ্যভাবে আরও সাবজেক্টিভ / অকেজো হয়ে পড়ে।
রাইথাল

সমস্যাটি হ'ল যদিও এই ব্যবস্থাগুলি ভাল একটি সাধারণ গাইড। এমন অনেকগুলি ক্ষেত্রে রয়েছে যেখানে "খারাপ" প্রোগ্রামগুলি ভাল স্কোর করে, উদাহরণস্বরূপ, এক ডজন ফাংশন রয়েছে, যেখানে আরও দুটি পরামিতি সহ একটি ফাংশন যথেষ্ট হবে, এবং বিপরীতভাবে একটি জটিল সমস্যার ভাল লিখিত সমাধান রয়েছে এমন অনেকগুলি "ভাল" প্রোগ্রাম স্কোর করতে পারে score খারাপভাবে।
জেমস অ্যান্ডারসন

@ জামেস আমি স্পষ্টভাবে এটি নির্দেশ করেছিলাম। কোনও পরিমাপ বা মেট্রিককে সূচক হিসাবে প্রসঙ্গে বিবেচনা করা দরকার যে কোনও কিছুতে নজর দেওয়া উচিত। সংশোধনমূলক পদক্ষেপ প্রয়োজন এবং সেই ক্রিয়াটি কী তা নির্ধারণ করতে ইঞ্জিনিয়ারের রায় লাগে takes তবে, আপনি সক্রিয়ভাবে ডেটা সংগ্রহ না করা পর্যন্ত, সম্ভাব্য সমস্যাগুলি সম্পর্কে জানার কোনও অভিজ্ঞতামূলক উপায় নেই।
টমাসের মালিক

7

সরলতার সংজ্ঞা দেওয়ার আনুষ্ঠানিক মোডটি দেখার পরিবর্তে, আমি কোড লেখার মানের গুণ হিসাবে একটি সরলতা সংজ্ঞায়িত করতে চাই।

আমি সরলতার কিছু পরিমাপ করছি না তবে আপনি কখন সাধারণ কিছু বলছেন বা না বলছেন।

1. কোড ট্র্যাভারসাল:
কোডের মাধ্যমে নেভিগেট করা কত সহজ? যেখানে API ফাংশন লেখা আছে তা স্পট করা কি সহজ? কল প্রবাহগুলি বোঝা কি সহজ, উদাহরণস্বরূপ কোন পদ্ধতিগুলি অন্যকে কল করে (এবং কেন) - সেখানে কি ভাল রাষ্ট্রীয় মেশিনগুলি প্রয়োগ করা হয়েছে বা পরিষ্কারভাবে চিহ্নিত অ্যালগরিদমগুলিকে চিহ্নিত করা হয়েছে?

কোড ট্র্যাভারসাল সহজ হলে কোডটি অনুসরণ করা সহজ

২. নামকরণ
যখন অন্যান্য কোডিং স্ট্যান্ডার্ডগুলি কোডকে আরও পরিষ্কার দেখায় - তবে সবচেয়ে গুরুত্বপূর্ণ বিষয় হল ক্লাস / অবজেক্ট-দৃষ্টান্ত / ভেরিয়েবল / পদ্ধতিগুলির নামকরণ। ব্যবহারের স্পষ্ট এবং দ্ব্যর্থহীন নাম স্পষ্ট হয় উপর একটি মহান প্রভাব রয়েছে সরলতা কোডের। যখন কোনও সাধারণ নাম সনাক্ত করা কঠিন, এটি এমন একটি চিহ্ন যা আপনি সেই পরিবর্তনশীল / পদ্ধতি হিসাবে ধারণাটি পুনরায় চিন্তা করতে চাইতে পারেন।

৩. ব্যাখ্যা এবং তথ্যসূত্রগুলি
কি আপনার প্রতিটি পদ্ধতিরই স্পষ্ট ভূমিকা পালন করতে হবে? প্রতিটি ভেরিয়েবল / বৈশিষ্ট্যগুলি কী তারা যে ভূমিকা পালন করছে তা নির্ধারণ করা কি সহজ? কোনও কোডের টুকরা যখন এমন কিছু করে যা অনুমানগুলি বোঝায় বা ভেরিয়েবলগুলির সম্পর্কিত সম্পর্কহীন সেটকে প্রভাবিত করে, এটি একটি রক্ষণাবেক্ষণ দুঃস্বপ্নে পরিণত হতে পারে।

4. নির্ভরতা বা সংযুক্তি
কেবল কোডটি দেখে বিচার করা কঠিন, তবে যদি কেউ আপনার বাগগুলি ঠিক করার চেষ্টা করে তবে খুব স্পষ্ট হয়। যখন অন্য কিছু বস্তুতে অন্য কিছু পরিবর্তন হয়, তখন কি এখানে অপারেশন পরিবর্তন হয়? এই পরিবর্তনগুলি কি সুস্পষ্ট? আপনার প্রয়োজনীয় জিনিসগুলিকে সামঞ্জস্য করার জন্য এপিআই পরিবর্তন করতে হবে change এগুলি সুপারিশ করে যে আন্তঃআবিধিকারের সম্পর্কগুলি সহজ নয়

৫. ইনপুট ব্যবহারকারী বা অ্যাপ্লিকেশনগুলি
পরিশেষে এপিআই / ইউআইতে ব্যবহারকারীর ইনপুট বা অ্যাপ্লিকেশনটি কত সহজ? যখন একাধিক সম্ভাব্য ব্যবহারকারী / অ্যাপ্লিকেশনগুলি (বিভিন্ন উদ্দেশ্যে) আপনাকে দেওয়ার প্রয়োজন হয় - তারা কি সুস্পষ্ট? এমন কোনও রাজ্য / বিবরণ রয়েছে যা উচ্চ বিমূর্ততার সাথে সম্পর্কিত নয় তবে ইন্টারফেসটি পিছনে পিছনে যায়?

একটি সাধারণ প্রশ্ন যা আমি সাধারণত জিজ্ঞাসা করি তা হ'ল নিম্নলিখিত: হ'ল যদি কোনও প্রোগ্রামের পরিবর্তে, যদি আমি একই ক্রিয়াটি কোনও মানুষের দ্বারা সম্পাদন করতে বলে থাকি, তবে আমি কি এই তথ্য কোনও কাগজের ফর্মটিতে পূরণ করতাম ? যদি না হয়, আমি এখানে যথেষ্ট সহজ না।

আমি এই তালিকাটি সম্পূর্ণরূপে বলব না, তবে আমি তবে আমার ধারণা, সফ্টওয়্যারটি ব্যবহার এবং সংশোধন করা কতটা সহজ বা কঠিন criteria এটা সহজ।


1
তিনি পরিমাপ এবং মেট্রিক জন্য জিজ্ঞাসা। এগুলি সাবজেক্টিভ, সুতরাং আমি মনে করি না যে তারা খুব পয়েন্টে আছে।
PSr

@ পিএসআর আমি আপনার সাথে একমত টমাসের উত্তর থেকে উত্তরটিও খুব স্পষ্ট ছিল। তবে তিনি পাঠযোগ্যতার সাথে সরলতার কথা উল্লেখ করেছিলেন । থমাস উত্তর Cyclomatic জটিলতা সঙ্গে পুলিশ - এই বলে কিভাবে জটিল এটা হয় পরীক্ষা কোড এবং কত জটিল কোড পদ হয় পাঠযোগ্যতা এবং প্রসারিত করতে পারে maintainability । এগুলি দুটি খুব ভিন্ন ধারণা। কোনটি ঠিক এই কারণেই আমি এই উত্তরটি পুরোপুরি বৈপরীত্যের জন্য লিখেছিলাম। দুর্ভাগ্যক্রমে আমার জ্ঞানের সাথে এমন কোনও মেট্রিক নেই যা পাঠের যোগ্যতার ক্ষেত্রে কোডের সরলতাকে বোঝায় ।
দিপান মেহতা

"এমন নাম ব্যবহার করুন যা ভুল বোঝাবুঝি করা অসম্ভব" - আইএমএইচও এটি একটি অবাস্তব এবং অসম্ভব লক্ষ্যের দিকে লক্ষ্য করে খুব বেশি। আমি বরং এত সুনির্দিষ্ট হওয়ার চেষ্টা করব না এবং কেবল "পরিষ্কার এবং দ্ব্যর্থহীন নাম ব্যবহার করুন" বলি।
পিয়েটার টার্ক

@ পেটারটিউরক আমি সম্মত। আমি সাধারণত মনে করি, অনেক সংস্থায় নামকরণের নিয়মগুলির খুব স্পষ্টভাবে সংজ্ঞায়িত নিয়ম এবং নির্দিষ্ট পরিবর্তনশীলের নিবিড়তা সম্পর্কে এখনও কিছু বিভ্রান্তি বজায় থাকে। তাই জোর দিয়ে বলা হয়েছিল যে উদ্দেশ্যটির স্পষ্টতা একটি আনুষ্ঠানিক নিয়মের বিপরীতে সরলতার পরিমাণ। আমি কীভাবে বর্ণনা করেছি তার উপরে যেতে পারি। ধন্যবাদ।
দিপান মেহতা

@ দিপান সাইক্লোমেটিক জটিলতা কোডটির পঠনযোগ্যতার সাথে ওয়ার্কিং মেমোরির মাধ্যমে সম্পর্কিত। উচ্চ সাইক্লোমেটিক জটিলতা সহ কোড (বা এমনকি কেবলমাত্র উচ্চ ব্লকের গভীরতা) কাজের স্মৃতিশক্তি বজায় রাখা শক্ত, সুতরাং সরাসরি পড়া সহজতর।
টমাসের মালিক

0

কোড সরলতার জন্য আমি কোনও ভাল বিদ্যমান মেট্রিক সম্পর্কে সচেতন নই (এর অর্থ এই নয় যে তাদের উপস্থিতি নেই - কেবলমাত্র আমি তাদের সম্পর্কে জানি না)। আমি কিছু প্রস্তাব দিতে পারে, সম্ভবত কিছু সাহায্য করবে:

  • ব্যবহৃত ভাষা বৈশিষ্ট্যের সরলতা: ভাষার যদি এমন বৈশিষ্ট্য থাকে যা "অ্যাডভান্সড" এবং "সরল" হিসাবে বিবেচিত হতে পারে তবে আপনি উন্নত বৈশিষ্ট্যগুলির সংখ্যার সংখ্যা গণনা করতে পারেন। আপনি "অ্যাডভান্সড" কীভাবে সংজ্ঞায়িত করেন তা কিছুটা বিষয়ভিত্তিক হতে পারে। আমি মনে করি কেউ কেউ বলতে পারে এটি কোনও প্রোগ্রামের "চতুরতা" পরিমাপ করার মতো। একটি সাধারণ উদাহরণ: কেউ কেউ বলতে পারে যে ?:অপারেটরটি "অ্যাডভান্সড" বৈশিষ্ট্যযুক্ত হওয়া উচিত, অন্যরা হয়ত তাতে দ্বিমত পোষণ করতে পারেন। আমি জানি না যে এটির জন্য পরীক্ষা করতে পারে এমন কোনও সরঞ্জাম লিখতে কত সহজ হয়।

  • প্রোগ্রামের মধ্যে নির্মানের সরলতা: আপনি কোনও ফাংশন গ্রহণ করবে এমন পরামিতিগুলির সংখ্যা পরিমাপ করতে পারবেন। আপনার যদি > মিটার প্যারামিটারগুলির সাথে সমস্ত ফাংশনের > n % থাকে , আপনি এন এবং এম (সম্ভবত এন = 3 এবং এম = 6?) কীভাবে সংজ্ঞা দেন তার উপর নির্ভর করে আপনি এটিকে সাধারণ হিসাবে গণ্য করতে পারবেন না । আমি মনে করি এমন কিছু স্থিতিশীল বিশ্লেষণ সরঞ্জাম রয়েছে যা এটি পরিমাপ করতে পারে - আমি মনে করি জেস্টেস্ট কেবল> মি প্যারামিটার সহ ফাংশনগুলি পরিমাপ করে ।

  • আপনি নেস্টেড লুপ বা নিয়ন্ত্রণের কাঠামোর সংখ্যা গণনাতে চেষ্টা করতে পারেন। এটি আমি মনে করি এটি আসলে কোনও খারাপ মেট্রিক নয় এবং আমি মনে করি এটির একটি নাম আছে (আমার মাথার উপরের অংশটি স্মরণ করতে পারে না)। আবার, আমি মনে করি এমন ডিভাইস রয়েছে (আবার, জেস্টেস্টের মতো) যা এটি একটি ডিগ্রি পর্যন্ত পরিমাপ করতে পারে।

  • আপনি "refactorability" পরিমাপ করার চেষ্টা করতে পারেন। যদি আপনার কোডটিতে প্রচুর কোডের টুকরোগুলি থাকে যা রিফ্যাক্টর হতে পারে তবে তা না হয় তবে এটি সম্ভবত সহজ নাও হতে পারে। আমি জেস্টেস্টের সাথে কাজ করার সময় থেকে এটিও স্মরণ করি যে এটি এটিও পরিমাপ করার চেষ্টা করেছিল, তবে আমি মনে করি আমি প্রায়শই এই ক্ষেত্রে এর সাথে একমত হইনি, তাই ওয়াইএমএমভি।

  • আপনি আপনার সিস্টেমের বিভিন্ন অংশের মধ্যে স্তরগুলির সংখ্যা পরিমাপ করার চেষ্টা করতে পারেন। উদাহরণস্বরূপ: কোডের কতগুলি আলাদা টুকরা ডেটাবেজে সঞ্চিত হওয়ার আগে একটি ওয়েব ফর্ম থেকে আগত ডেটা স্পর্শ করবে? সঠিকভাবে পরিমাপ করা এটি একটি জটিল হতে পারে ...


2
আমি বিশ্বাস করি # 3 ব্লক গভীরতা বলা হয়। যদি জড়িত সিদ্ধান্তমূলক কাঠামো জড়িত থাকে তবে এটি সাইক্লোমাটিক জটিলতার সাথেও সম্পর্কিত।
টমাসের মালিক

ডাউনভোটের কোন ব্যাখ্যা নেই?
হতাশিত

"ভাষার বৈশিষ্ট্যগুলির সরলতার সাথে" একমত হতে পারে না। কোডটি সহজ করার জন্য উন্নত বৈশিষ্ট্যগুলি রয়েছে । কেবলমাত্র সাধারণ, মৌলিক বৈশিষ্ট্যগুলি ব্যবহার করে কোডটি আসলে কী করছে তা অস্পষ্ট করে দেবে, এটি অপ্রয়োজনীয়ভাবে বিমূর্ত স্তরগুলি ফাঁস করে দেয়। উন্নত ভাষা বৈশিষ্ট্যগুলি আপনার কোডটিকে আরও ঘন এবং পঠনযোগ্য রেখে উচ্চমানের বিমূর্ততা প্রকাশ করতে দেয়। আপনি আরও উন্নত বৈশিষ্ট্যগুলি (বুদ্ধিমানের সাথে অবশ্যই) ব্যবহার করছেন, সরলতার জন্য আরও ভাল। কেবলমাত্র একটি মৌলিক বৈশিষ্ট্যগুলি দিয়ে তৈরি অনুরূপ ফোর্টরান কোডের সাথে একটি কোডের তুলনা করুন, বলুন, মতলব (যা সত্যই "উন্নত")।
এসকে-যুক্তি 10

এবং আমি বেশ কয়েকটি স্তর মেট্রিকের সাথেও একমত হব না। আপনি যদি কয়েক ডজন তুচ্ছ এবং পরিষ্কার পদক্ষেপে বা একটি বাঁকানো রূপান্তরিত কিছু করতে পারেন তবে আরও কয়েকটি পদক্ষেপে এটি আরও ভাল করুন। অনেকগুলি সহজ এবং স্পষ্টত পৃথক স্তরগুলি একটি একক বাঁকানো স্তরের চেয়ে অনেক ভাল (এবং সহজ)।
এসকে-যুক্তি

@ এসকে-যুক্তি: আমার ধারণা আমি এটিকে "চতুরতা" বলা উচিত ছিল, এটি আমার অর্থের কাছাকাছি ছিল closer আমি কেবল বলি যে ?:5 টি গভীরভাবে বাসা বেঁধে ফেলার মতো জিনিসগুলি সমস্যা। স্তরগুলির হিসাবে, পরিষ্কার বিচ্ছিন্ন স্তরগুলি এক বিভক্ত স্তরের চেয়ে ভাল। তবে mostly টি সাধারণত অপ্রয়োজনীয় স্তরগুলি যখন কেবল 2 বা 3 প্রয়োজনীয় ছিল তা খারাপ জিনিস।
হতাশিত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.