আমার এলওসি / দিনের অনুপাত খুব বেশি হলে কি আমাকে বিরক্ত করা উচিত? [বন্ধ]


9

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

আমাকে বিরক্ত করা উচিত? এটি কি এই চিহ্ন যে আমার এই তারিখ অবধি লিখে রাখা সমস্ত কোডটি বন্ধ করে পর্যালোচনা করা এবং এটি পুনরুদ্ধার করা দরকার?


আপনি কিভাবে এলওসি পরিমাপ করছেন? এটি ভিজ্যুয়াল স্টুডিও উত্পন্ন কোড বাদ দেয় না?
জে কে।

আমার কোড ফোল্ডারে এই বাশ কমান্ডের সাহায্যে: (সন্ধান করুন। / -name '* .cs' -প্রিন্ট0 | xargs -0 বিড়াল) | wc -l
ম্যাক্স ইয়াঙ্কভ

ডান তাই যাতে কোনও উত্পন্ন কোড যেমন ডিজাইনার। কোড অন্তর্ভুক্ত থাকতে পারে - আপনি লিখছেন যে রেখার সংখ্যা
জে কে নিয়ে

সাধারণত, হ্যাঁ, তবে এই নির্দিষ্ট পরিবেশের সাথে (ityক্য গেম ইঞ্জিন) এটি হয় না।
ম্যাক্স ইয়াঙ্কভ

1
আমি আরও যুক্ত করার আগে যুক্তিসঙ্গতভাবে যতটা কোড লাইন করতে পারি সরিয়ে দেওয়ার চেষ্টা করি। ন্যূনতম সিস্টেমে কাজ করা বিকল্পের চেয়ে অনেক বেশি আনন্দদায়ক।
জন পুর্ডি

উত্তর:


18

এলওসি সম্ভবত সবচেয়ে আপত্তিজনক মেট্রিকগুলির মধ্যে একটি এবং এর ফলস্বরূপ সম্ভবত কোড মানের অন্যতম অপ্রয়োজনীয় ব্যবস্থা এবং প্রোগ্রামিং প্রচেষ্টার আরও একটি নিরর্থক পরিমাপ।

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

আপনাকে প্রথমে নিজেকে জিজ্ঞাসা করতে হবে যে এটি আপনি কী মাপতে বা প্রমাণ করার চেষ্টা করছেন এবং এই প্রমাণটি কেবল আগ্রহের বাইরে নয়, বা আরও ব্যাপক মানের উন্নতির পক্ষে সমর্থন করা উচিত এবং আপনার দল থেকে কেনা-বাছাই করার জন্য আপনাকে এই তথ্যটি কোথায় ব্যবহার করতে হবে? / পরিচালনা এটি সম্পর্কে কিছু করতে।

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

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

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

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


1
দিনে +1 400 লাইন একটি সমস্যার ইঙ্গিত হতে পারে, দুর্ভাগ্যবশত আমি মনে করি এটির একমাত্র উপায় কোড পর্যালোচনা, যা 1 ম্যান দলের পক্ষে শক্ত
জেকে।

এত উত্তরের উত্তরের জন্য ধন্যবাদ :) আমি মনে করি এটি সম্পূর্ণরূপে বিষয়টিকে কভার করে।
সর্বোচ্চ ইয়াঙ্কভ

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

+1 যদিও আপনি অধ্যয়নগুলিতে ইঙ্গিত করতে পারবেন না যা দেখায় যে এলওসি একটি খারাপ মেট্রিক, তবুও পড়াশোনাগুলি খুঁজে পাওয়া সহজ যেগুলি সমস্যায় পড়েছে কারণ তারা এলওসিকে মেট্রিক হিসাবে ব্যবহার করেছিল।
দারমারক

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

5

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

ডেইলি এলওসি আপনাকে 400 টি কোডের কোডের সাহায্যে এই দিনের কাজগুলি সম্পাদন করতে পারে except


2

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

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


1

আপনি প্রতিদিন যে পরিমাণ এলওসি উত্পাদন করেন সে সম্পর্কে আপনাকে বিরক্ত করা উচিত নয়।

তবে আপনাকে বিরক্ত করা উচিত:

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

0

এলওসি উত্পাদনশীলতার একটি 'অফিসিয়াল' পরিমাপ, তবে এর মানটির বিরুদ্ধে তর্কগুলি দীর্ঘতর হতে পারে (একটি ওআরএম 3 মিনিটের মধ্যে 50,000 লাইন কোড উত্পন্ন করতে পারে, তবে, যদি ডাটাবেসের নকশাটি ভুল হয় তবে সমস্ত কোড বিনটিতে যেতে পারে)।

আমি পরামর্শ দিচ্ছি যে আপনি% সম্পন্ন টু বনাম% বনাম% কার্য সম্পন্ন করার পরিকল্পনা করেছেন তা অনুসরণ করে আপনার অগ্রগতি পরিমাপ করুন। এটি গণনা করা হয়। গ্রাহকরা এমন কাজের কোডের জন্য অর্থ প্রদান করেন যা এলওসি-র জন্য নয় ব্যবসায়িক মান সরবরাহ করে।

এলওসি সম্পর্কে কিছু উল্লেখ


কিন্তু তিনি উত্পাদনশীলতার পরিমাপ হিসাবে LOC ব্যবহার করছেন না
জে কে।

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

0

আপনি কি কোড-নকলের সংখ্যা পরিমাপ করছেন ?

যদি উচ্চ আউটপুট হয় কারণ আপনার কোডটিতে প্রচুর অনুলিপি এবং পেস্ট রয়েছে তবে আপনার চিন্তা করা উচিত।

কারণ: আপনার অনুলিপি এবং পেস্ট-উত্সটিতে কোনও ত্রুটি ছিল এমন ক্ষেত্রে অনুলিপিটি হ'ল অনুলিপি এবং অনুলিপি এবং অনুলিপিের সমস্ত ব্যবহার ঠিক করে দেওয়া


-1

আপনি যদি সুন্দর ফাংশনাল কোডে বিশ্বাস করেন তবে তা আপনার একমাত্র পরিমাপ হওয়া উচিত

"এটি কি প্রবাহিত হয়? এটি কি সুন্দর দেখাচ্ছে?"


3
একমাত্র পরিমাপ? এটা কিভাবে কাজ করে? এটা কি যথেষ্ট দ্রুত?
জে কে।

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