উত্স কোডের জন্য দরকারী মেট্রিকগুলি কী কী? [বন্ধ]


33

উত্স কোডের জন্য ক্যাপচারের জন্য দরকারী মেট্রিকগুলি কী কী?

কীভাবে মেট্রিকগুলি উদাহরণস্বরূপ (এক্সিকিউটেবল?) কোডের লাইনগুলি বা সাইক্লোমেটিক কমপ্লেসিটি মানের নিশ্চয়তার সাথে সহায়তা করতে পারে বা সফ্টওয়্যার বিকাশ প্রক্রিয়াটির জন্য তারা সাধারণভাবে কীভাবে উপকারী?


37
একমাত্র বৈধ পরিমাপ ডাব্লুটিএফ / সেকেন্ড। :)
টার্মিনাস


উত্তর:


30

"কোডের লাইনে সফটওয়্যার উত্পাদনশীলতা পরিমাপ করা বিমানের ওজনকে কতটা ওজন করে তা অগ্রগতি পরিমাপ করার মতো" "বিল গেটস


3
অনুগ্রহ করে আপডেট করবেন না দয়া করে।
এরিক উইলসন

3
একটি মজাদার উপাখ্যানের সময়, এই উত্তরটি এই প্রশ্নের উত্তরে অবদান রাখে না little
ক্রিস নাইট

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

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

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

12

এই বিষয়ে জেফের পোস্টগুলি একবার দেখুন:

মেট্রিক্স পরিচারিকা থেকে একটি দর্শন

সফটওয়্যার ইঞ্জিনিয়ারিং: ডেড?

সফটওয়্যার মেট্রিকগুলির সাথে ঘনিষ্ঠভাবে জোলেরও একটি পুরাতন, তবে ভাল পোস্ট রয়েছে এবং আমি এটির পড়ার জন্য দৃ recommend ়ভাবে সুপারিশ করছি: দ্য এক্সন 101 ম্যানেজমেন্ট পদ্ধতি

আমার কাছে মূল বিষয়টি, জেফের বরাত দিয়ে এই: "মেট্রিকগুলির দায়িত্বশীল ব্যবহার প্রথম স্থানটিতে সংগ্রহ করার মতোই গুরুত্বপূর্ণ" "


জেফের ওয়ান-লাইনার উদ্ধৃত করার জন্য +1। খাঁটি, যুদ্ধ-কঠোর জ্ঞান ঠিক আছে।
luis.espinal

11

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

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

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

কোড সদৃশ: যতদূর আমি উদ্বিগ্ন এটি একটি খুব গুরুত্বপূর্ণ পরিমাপ। কোড ডুপ্লিকেশন খুব খারাপ চিহ্ন এবং এটি সিস্টেমের নকশা বা বিকাশকারীদের কপির আটকানো স্বল্প স্তরের গভীর সমস্যার দিকে ইঙ্গিত করতে পারে যা দীর্ঘমেয়াদী এবং অবিস্মরণীয় সিস্টেমগুলিতে বিশাল সমস্যা সৃষ্টি করে।

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

একটি ভাল পরিমাপ সর্বদা আপনাকে বলবে যে সিস্টেমের প্রতিটি বৈশিষ্ট্যের একটি ছোট পদচিহ্ন থাকে। কম নির্ভরতা, কম জটিলতা, কম সদৃশ। এটি আলগা সংযোগ এবং উচ্চ সংহতিকে নির্দেশ করে।


8

এই "উত্স কোড মেট্রিক্স" বোকা কখনও মারা যাবে না?

কোডের কাঁচা উত্স লাইনগুলি (এসএলওসি) হল প্রাচীনতম, সহজতম এবং সর্বাধিক প্রাথমিক মেট্রিক।

হ্যালস্টেড মূলত পুরো মেট্রিকের গোছা প্রস্তাব করেছিল। কিছু লোকের স্পোর্টসস্পোর্ট স্পষ্ট গবেষণা না করা পর্যন্ত প্রচুর লোকেরা মজাদার লেখার মজাদার প্রোগ্রামগুলি খুব উপভোগ করছিলেন এবং দেখিয়েছিলেন যে প্রত্যেকে হাল্স্টেড মেট্রিককে সরাসরি এসএলওসি-এর সাথে সরাসরি সম্পর্কযুক্ত।

এই মুহুর্তে, হালস্টেডের মেট্রিকগুলি পরিত্যক্ত হয়েছিল, কারণ এসএলওসি পরিমাপ করা সর্বদা সহজ।


1
অধ্যয়নের কোনও লিঙ্ক?
জন হপকিন্স

গুগল আপনার বন্ধু, তবে আপনাকে শুরু করার জন্য এখানে একটি। ecs.csun.edu/~rlingard/comp589/HoffmanArticle.pdf
জন আর স্ট্রোহম

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

আমি বলব যে বাস্তব জগতে এই সমস্ত গবেষণা কাদায় পরিণত হয়।
ওয়ারেন পি

এটা সত্য. কোডের লাইনগুলি যত বেশি ততই গুণমানের মানসম্পন্ন 1
পাবলো অ্যারিয়েল

8

গুণমান নিশ্চিতকরণের উদ্দেশ্যে উত্স কোড মেট্রিক্স দুটি উদ্দেশ্য:

  • ভিতরে কম বাগ সহ কোড লেখার
  • সহজ রক্ষণাবেক্ষণের জন্য লিখিত কোড

উভয়ই যথাসম্ভব সহজ লেখার কোডে নেতৃত্ব দেয়। এর অর্থ:

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

7

আমার জ্ঞানের সর্বোপরি, প্রাপ্ত বাগের সংখ্যা কোডের লাইনের (সম্ভবত মন্থন), মডুলো ভাষা, প্রোগ্রামার এবং ডোমেনের সাথে সরাসরি সম্পর্কিত।

আমি আর কোনও সোজা ও ব্যবহারিক মেট্রিকের সাথে বাগের সাথে সুসম্পর্কিত জানি না।

আমি যে জিনিসটি করতে চাই তা হ'ল আমি যে বিভিন্ন প্রকল্পে আছি তার জন্য নম্বরগুলি চালানো শুরু করুন - টেস্ট কভারেজ :: কেএলকিএইচ, এবং তারপরে কোনও সম্পর্ক আছে কিনা তা দেখার জন্য "অনুভূত গুণমান" নিয়ে আলোচনা করুন।


1
সুতরাং যত বেশি কোড রয়েছে তত বেশি বাগ রয়েছে?

3
@ থোর: এল হাঁ হাঁ ধাক্কা খাওয়া, হাহ?
পল নাথান

যতদূর আমার মনে আছে সাধারণ শিল্প সংখ্যার গড় প্রকল্পগুলির জন্য 1000 লাইনের কোডের প্রতি প্রায় 2-3 টি ত্রুটি, পারমাণবিক উদ্ভিদ নিয়ন্ত্রণ সফ্টওয়্যার বা নাসা প্রকল্পের জন্য 1000 লাইন কোডে 0.5 ত্রুটির মতো কিছু যেখানে তারা প্রচুর পরিমাণে প্রচেষ্টা চালিয়েছে put , নিয়ন্ত্রণ, পরীক্ষা, পর্যালোচনা ইত্যাদি কারণ ব্যর্থতার খুব মারাত্মক পরিণতি হতে পারে। এই সংখ্যা সমর্থন করে যে কেউ রেফারেন্স আছে?
hlovdal

2
@ হ্লোভডাল: কেএসএলপি প্রতি 2-3 টি ত্রুটি ইতিমধ্যে খুব কম চিত্র। মহাকাশ এবং সুরক্ষা ডোমেনগুলি থেকে আমি যে সর্বনিম্ন পরিসংখ্যানগুলি জানি তা হ'ল কেএসএলপি প্রতি 0.1 টি ত্রুটির ক্রম। সাধারণ পরিসংখ্যানগুলি কেএসএলকে 20 থেকে 50 ত্রুটি বলে মনে হচ্ছে। রেফারেন্সের জন্য, গুগল অ্যান্ডি জার্মানির কাগজটির জন্য "সফটওয়্যার স্ট্যাটিক কোড অ্যানালাইসিস - পাঠ শিখেছে" শিরোনাম।
সময়সূচি

1
আমি এই পরিসংখ্যানগুলিতে বিতর্ক করব - এটি সম্পূর্ণরূপে ভাষা, সংকলক এবং সম্পাদনযোগ্য পরিবেশের উপর নির্ভর করে। জাভাস্ক্রিপ্ট কোডের টাইপগুলি খুঁজতে কয়েক বছর সময় লাগতে পারে তবে প্রথম সংকলনে একটি সংকলিত ভাষায় একটি টাইপো পাওয়া যায়।
JBRWilkinson

7

আপনি যদি উত্তর পেয়ে থাকেন তবে কী করতে হবে তা যদি আপনি জানেন তবে মেট্রিকগুলি কেবলমাত্র কার্যকর। সংক্ষেপে একটি সফ্টওয়্যার মেট্রিক থার্মোমিটারের মতো। আপনি 98.6 ° F তাপমাত্রায় কিছু পরিমাপ করেন না এমন কিছুর অর্থ বোঝায় না যতক্ষণ না আপনি স্বাভাবিক তাপমাত্রা কী তা জানেন । উপরের তাপমাত্রা শরীরের তাপমাত্রার জন্য ভাল তবে আইসক্রিমের জন্য সত্যই খারাপ।

সাধারণ মেট্রিক যা দরকারী হতে পারে তা হ'ল :

  • বাগগুলি / সপ্তাহে আবিষ্কার হয়েছে
  • বাগগুলি / সপ্তাহে সমাধান হয়েছে
  • # প্রয়োজনীয়তা সংজ্ঞায়িত / প্রকাশ
  • # প্রয়োজনীয়তা কার্যকর করা / প্রকাশ করা

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

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

শেষের সারি

আপনার নেওয়া প্রতিটি পরিমাপের নিম্নলিখিত সংজ্ঞা দেওয়া দরকার বা এটি অকেজো:

  • "সাধারণ" কী তা বোঝার উপায়। এটি প্রকল্পের জীবনের সাথে সামঞ্জস্য করা যেতে পারে।
  • "সাধারণ" এর বাইরে একটি প্রান্তিক যেখানে আপনাকে কিছু প্রকারের পদক্ষেপ নেওয়া দরকার।
  • প্রান্তিক ছাড়িয়ে গেলে কোড নিয়ে কাজ করার পরিকল্পনা A

আপনার নেওয়া মেট্রিকগুলি প্রকল্প থেকে প্রজেক্টে বিস্তৃত হতে পারে। আপনার কাছে কয়েকটি মেট্রিক থাকতে পারে যা আপনি প্রকল্পগুলি ব্যবহার করেন তবে "সাধারণ" এর সংজ্ঞাটি আলাদা হবে। উদাহরণস্বরূপ, যদি কোনও প্রকল্পে গড়ে 5 টি বাগ / সপ্তাহ আবিষ্কার হয় এবং নতুন প্রকল্পটি 10 ​​বাগ / সপ্তাহে আবিষ্কার করে তবে এর অর্থ এই নয় যে কিছু ভুল হয়েছে। এটি কেবল পরীক্ষামূলক দল হতে পারে এবার আরও নিখুঁত। এছাড়াও, "স্বাভাবিক" এর সংজ্ঞা প্রকল্পের জীবনকালে পরিবর্তন হতে পারে।

মেট্রিকটি কেবলমাত্র একটি থার্মোমিটার, আপনি এটি দিয়ে যা করেন তা আপনার উপর নির্ভর করে।


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

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

6

উত্স কোড একটি দায়বদ্ধতা, সম্পদ নয়। এটি মনে রেখে, কোডের লাইনগুলি পরিমাপ করা একটি বাড়ি তৈরি করার সময় ব্যয় করা ডলার ট্র্যাক করার অনুরূপ। আপনি যদি বাজেটের অধীনে থাকতে চান তবে এটি করা দরকার, তবে আপনি অগত্যা ভাবেন না যে প্রতিদিন $ 1000 ব্যয় করা প্রতি দিন $ 50 ব্যয় করার চেয়ে ভাল; আপনি জানতে চাইবেন যে এই অর্থের জন্য বাড়িটি কতটা তৈরি হয়েছিল। এটি একটি সফ্টওয়্যার প্রকল্পের কোড লাইনের সাথে একই।

সংক্ষেপে, উত্স কোডের জন্য কোনও দরকারী মেট্রিক নেই কারণ উত্স কোডটি নিজেই পরিমাপ করা দরকারী নয়।


4

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


2
100% কভারেজটি কেবলমাত্র 100% হয় যদি এটি সমস্ত পাথকেই কেবল আবদ্ধ করে না তবে সমস্ত পাথকে coversেকে দেয়। সফ্টওয়্যারটির যেকোন বাস্তবের মধ্যে 100% পাথ কভারেজ সেট করা একটি খারাপ লক্ষ্য, কারণ এটি পৌঁছানো খুব ব্যয়বহুল হবে, এবং এখনও আপনাকে কেবল এটিই বলে দেবে যে আপনার কোডটি নকশা অনুযায়ী আচরণ করে, নকশাটি নিজেই সঠিক নয়। আপনার ফাঁকফোকর সুরক্ষা গর্ত থাকতে পারে এবং 100% পথ কভারেজ থাকতে পারে।
জোয়েরি সেব্রেচটস

+1 আরও সোর্স কোড অগত্যা আরও ভাল নয়।
ল্যারি কোলম্যান

কেবলমাত্র খুব সাধারণ অ্যাপ্লিকেশনগুলি 100% পরীক্ষার কভারেজের (কভারেজকে অনর্থক করে তোলার জন্য) উপযুক্ত। জটিল সফ্টওয়্যারটির জন্য 100% পরীক্ষার কভারেজ অর্জন করা গণনাগতভাবে ব্যয়বহুল (যদি তা অক্ষম না হয়) is আমরা এখন 6 দশকের মতো দৃ firm় ভিত্তিতে সেই বাস্তবটি জানি। দ্বিতীয়ত, পরীক্ষাগুলি কেবল আপনাকে বলে যে আপনি কোনও বাগ খুঁজে পান নি - এটি আপনাকে গ্যারান্টি দেয় না যে কাঠামোগত গুণমান, আকার বা জটিলতা সম্পর্কে কোনও বাগ নেই (বেশ কিছুদিন যা বেশ দীর্ঘ সময়ের জন্যও পরিচিত)) কাজ করার সময় এই ঘটনাগুলি না জেনে সফ্টওয়্যারটিতে প্রকৃতিগতভাবে থার্মোডিনামিক্সের আইনগুলি না জেনে একজন পদার্থবিজ্ঞানের সমান।
luis.espinal

@ luis.espinal সফ্টওয়্যারটি এত বড় যে পরীক্ষার পক্ষে খুব কম কম্পিউটারের জন্য ব্যয়বহুল এটি অবিশ্বাস্যভাবে দুর্বল লিখিত সফ্টওয়্যার। কীভাবে কার্যক্ষম সফটওয়্যার তৈরি করা যায় সে সম্পর্কে কোনও সূত্র না রাখার কাছাকাছি।
পাবলো অ্যারিয়েল

@ পাবলোআরিয়েল - "এত বড় সফটওয়্যার যা পরীক্ষার পক্ষে খুব কম গণ্যযোগ্য" "<< আমি যা বলেছিলাম তা নয় । আপনি যা পড়ছেন তা আপনি আসলেই পড়ছেন তা নিশ্চিত করতে মন্তব্যটি (সম্ভবত দুই বা তিনবার) পড়ুন।
luis.espinal

4

কেওএলসি গণনা সম্পাদনের জন্য কেন নিষ্ক্রিয় (এবং এমনকি ক্ষতিকারক) গণনা তা প্রদর্শন করার একটি উপাখ্যান।

কয়েক বছর আগে আমি একটি বড় প্রকল্পে কাজ করেছি (আমাদের সংস্থার 70+ জন লোক, আমাদের গ্রাহকের আরও 30+ জন) যা টিএল এবং ব্যক্তিদের পারফরম্যান্সের একমাত্র পরিমাপ হিসাবে কেএলকে গণনা করে।

আমাদের Y2K প্রচেষ্টার জন্য (এটি আপনাকে জানায় যে এটি কত আগে হয়েছিল :)) আমরা আমার টিমের জন্য দায়বদ্ধ কোডের বিভাগটির একটি বৃহত সাফাই করেছি। আমরা প্রায় 30.000 টি লাইনের কোড প্রকাশের জন্য প্রকাশ করেছি, 5 জনের পক্ষে 3 মাসের কাজ খারাপ নয়। আমরা আরও .০,০০০ লাইন কোডের স্ক্র্যাপিং শেষ করেছি, বিশেষত নতুন কোডের সাথে মিলিত 3 মাসের কাজের জন্য খুব ভাল কাজ।

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

কয়েক মাস পরে (এ জাতীয় জিনিসগুলি সময় নেয়) আমাদের জানানো হয়েছিল যে সংস্থাটি তাদের উত্পাদনশীলতার মানগুলি পর্যালোচনা করছে এবং ফাংশন পয়েন্ট বিশ্লেষণের ভিত্তিতে একটি নতুন সিস্টেম তৈরি করার জন্য বিশেষজ্ঞদের একটি দল নিয়োগ করেছে।


কেন আপনি কেবল ভিন্নতা দেখান নি ?!
পুনরায় পোস্টার

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

2
আপনার উত্তরটি দেখায় না যে কেএলকি অকেজো, এটি কীভাবে তাদের ব্যবহার করবেন না তা দেখায়।
নিল এন

2
এটি দেখায় যে উত্পাদনশীলতার একটি পরিমাপ হিসাবে তাদের উপর নির্ভর করা সংক্ষিপ্ত হয়, কেবলমাত্র পরিমাপকে মূর্খ বলে তাদের উপর নির্ভর করে। অন্যান্য প্রকল্পগুলিতে কে.এল.সি. কে উত্পাদনশীলতার পরিমাপ হিসাবে এবং এমনকী মানের ব্যবহারের জন্য আমরা কোডিং স্ট্যান্ডার্ড তৈরি করে সংখ্যাগুলি সহজেই স্ফীত করেছিলাম (সি ++ ব্র্যাকিং অনুশীলন, সর্বত্র একটি সংক্ষিপ্ত মন্তব্য দিয়ে অতিরিক্ত খালি লাইনগুলি, যদি একটি বিবৃতিতে শর্তকে বিভক্ত করে তোলে) 3 লাইন ইত্যাদি)।
6:30 এ জেভেন্টিং

1
এসএলওসিকে উত্পাদনশীলতা মেট্রিক হিসাবে ব্যবহার করা কেবল বোবা এবং সম্ভবত কখনও ভাল ফলাফল দেয় না। এই প্রশ্নটিতে ইতিমধ্যে আলোচিত সমস্ত সতর্কতা সহ এসএলওসি একটি রক্ষণাবেক্ষণযোগ্যতা এবং ত্রুটিগুলির সংখ্যা নির্দেশ করে এমন মানসম্পন্ন মেট্রিক হিসাবে ব্যবহার করা আরও বুদ্ধিমান।
redcalx

2

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

কোড কভারেজটি কার্যকর যাতে আপনি জানেন যে অ্যাপ্লিকেশনটির কত শতাংশ বিপর্যয়করভাবে ব্যর্থ হয় না; এর অন্যান্য প্রয়োজনীয়তার সাথে ইউনিট পরীক্ষার মান নির্ভর করে।


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

অবশ্যই, খারাপ ইউনিট পরীক্ষাগুলি বিভিন্নভাবে সহায়তা করার চেয়ে বেশি ক্ষতি করে hurt উদাহরণস্বরূপ, আপনি পরীক্ষাগুলির স্যুইটের জন্য 100% কোড কভারেজ পেতে পারেন যার একক দাবী নেই।
StuperUser

1

ছোট কমিট সাধারণত ভাল। এটি এসসিএম সরঞ্জামগুলি সম্পর্কে, প্রতি সেকেন্ড কোড নয়, তবে এটি একটি খুব পরিমাপযোগ্য মেট্রিক। প্রতিটি পরিবর্তনকে পারমাণবিক ইউনিট হিসাবে দেখা যত কম কমিট কমিট; জিনিসগুলি যখন ভেঙে যায় তখন নির্দিষ্ট পরিবর্তনগুলি এবং পিন-পয়েন্টটি ফিরিয়ে নেওয়া সহজ হয়।

যতক্ষণ না কোনও প্রতিশ্রুতি বিল্ডটি ভেঙে দেয় ...


1

এগুলি নিখুঁতভাবে কার্যকর নয় অগ্রগতির ক্ষেত্রে মেট্রিকগুলি তবে কোডের অবস্থা সম্পর্কে সাধারণ ধারণা দেওয়ার জন্য ব্যবহার করা যেতে পারে।

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


1

আমি প্রায়শই একটি বিশাল সি ++ প্যাকেজটিতে কাজ করি এবং যখন সাইক্লোমেটিক জটিলতা বা ভয়াবহ ফ্যানআইএন / ফ্যানআউট রিফ্যাক্টর করার মতো সমস্যাযুক্ত কোডের সন্ধান করা হয় তবে সন্ধানের জন্য সাধারণত বেশ ভাল লাল পতাকা থাকে। সমস্যা সমাধানের ফলে পুরো কোডবেজে সাধারণত উন্নতি হয়।

অবশ্যই এই সংখ্যাগুলি কেবল কী দেখার মতো হবে তার ইঙ্গিত হিসাবে কাজ করতে পারে। এটির পরে কোনও বিল্ড ব্যর্থ হওয়া বা কোন প্রতিশ্রুতি অস্বীকার করা এমন কিছু কঠিন প্রান্তিকতা তৈরি করা হাস্যকর।


1

আমার কাজে এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে আমি কোড মেট্রিক ব্যবহার করি:

কোড লেখার সময়

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

বিকাশকারীরা সমস্ত নিয়ম ভঙ্গ করতে সম্পূর্ণ স্বাধীন কারণ তারা কখনই সমস্ত পরিস্থিতিতে প্রযোজ্য না। "বিধিগুলি" সেখানে চিন্তাকে উত্সাহিত করে এবং বলে "আরে, এটি করার সর্বোত্তম উপায় কি?"

কিউএ / কোড পর্যালোচনা চলাকালীন

আমি একটি কোড পর্যালোচনা সম্পাদন করার সময় আমি প্রথমে যা করি তা হ'ল কোড কভারেজ সরঞ্জামের সাথে আমি কোডের কোড কভারেজ যাচাই করেছি যা কোডের রেখাগুলি কভার করা হয়েছে তা হাইলাইট করে check এটি আমাকে পরীক্ষার কোডটি কতটা পরিপূর্ণ তা সম্পর্কে একটি সাধারণ ধারণা দেয়। গুরুত্বপূর্ণ কোডটি ভালভাবে পরীক্ষিত হওয়ার পরে এতদিন কভারেজটি যদি 20% বা 100% হয় তবে আমি সত্যিই যত্নশীল নই। সুতরাং আচ্ছাদিত শতকরা কিছুটা অর্থহীন, তবে 0% নিশ্চিত যে আমি ঘৃণিতভাবে দেখতে চাই এমন একটি ঘা থাম্বের মতো দাঁড়িয়ে আছে।

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

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

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

মূল বিষয়গুলি হ'ল মেট্রিকগুলি ট্রেন্ডিং, আলোচনার জন্য বা এগিয়ে যাওয়ার উপায়গুলির সূচনা পয়েন্ট হিসাবে ব্যবহার করা এবং ধর্মীয়ভাবে সঠিক পরিসংখ্যানগুলিতে তাদের পরিচালনা না করা। তবে আমি দৃ strongly়ভাবে বিশ্বাস করি যে তারা সঠিকভাবে ব্যবহার করার সময় আপনাকে কোডটি উন্নত করতে সহায়তা করতে পারে।


0

প্রশ্ন: উত্স কোডের জন্য ক্যাপচারের জন্য দরকারী মেট্রিকগুলি কী কী?

ব্যাবসার জন্য:

উত্তর: মানব-ঘন্টা সংখ্যা

কোডারের সুপারভাইজারের জন্য:

উত্তর: কিছু যায় আসে না। আসুন আজ সব কিছু করা যাক

কোডারের আত্ম-সম্মানের জন্য:

উত্তর: এসএলওসি সংখ্যা (কোডের উত্স রেখা)

কোডারের মায়ের জন্য:

উত্তর: এই নরম ফ্রেঞ্চ রোলগুলি আরও খান এবং চা পান করুন

নীচে মন্তব্য অবিরত ...


-1

মনে রাখবেন: কমপক্ষে 1 টি নির্দেশ দ্বারা সমস্ত কোড হ্রাস করা যায়। সমস্ত কোডে কমপক্ষে 1 বাগ রয়েছে। অতএব, সমস্ত কোড একক নির্দেশে হ্রাস করা যেতে পারে যা কার্যকর হয় না। আশা করি এইটি কাজ করবে!


এবং কম পার্শ্ব প্রতিক্রিয়া সঙ্গে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.