LOC - це, мабуть, одна з найбільш зловживаних показників, і, як результат, це один із більш марних заходів якості коду та ще більш марне вимірювання зусиль програмування.
Так, для мене це сміливе твердження, і ні, я не можу вказати вам на дослідження, що підтверджують мою думку. Однак, я можу констатувати важко зароблений досвід, що коли ви починаєте турбуватися про те, скільки написаного коду, ви, мабуть, переживаєте про неправильні проблеми.
Спочатку потрібно запитати себе, що саме ви намагаєтеся виміряти чи довести, і чи це доказ просто зацікавлений, чи підтримка більш широкого поліпшення якості та де вам потрібно використовувати цю інформацію для отримання викупу у вашої команди / управління, щоб щось з цим зробити.
Одна з речей, для якої я, як правило, використовую LOC, - це трохи перевірка здоровості. Якщо мені здається, що я пишу багато коду, мене більше цікавить LOC за методом або LOC за клас, а не LOC для всіх. Ці вимірювання можуть бути індикаторами, які вам доведеться робити в подальшому рефакторингу, якщо ви відчуваєте невеликий OCD про те, наскільки добре має бути ваш код. Дуже великі класи, можливо, потребують перестановки на кілька менших класів, і довгі багаторядкові методи можуть бути розбиті на кілька методів, інші класи або навіть можуть вказувати на деяке повторення, яке можна було б видалити. Зауважте, я кілька разів використовував там слово "може".
Реальність полягає в тому, що LOC надає лише можливий показник, і ніякої реальної гарантії того, що ваш код може знадобитися змінити. Справжнє запитання - чи поводиться код так, як потрібно і як очікувалося. Якщо так, то ваше наступне питання полягає в тому, чи зможете ви легко підтримувати код і чи матимете ви час або в майбутньому змінити робочий код, щоб зменшити накладні витрати на обслуговування в майбутньому.
Часто багато коду означає, що вам доведеться більше підтримувати пізніше, але іноді навіть добре розроблений код може розтягнутися на сотні рядків коду, і так, іноді ви можете описуватись, коли ви пишете сотні рядків коду за день. Однак досвід показує мені, що якщо я підтримую випуск сотень рядків нового коду щодня, часто виникає ризик того, що значна частина коду була неправильно вирізана та вставлена з іншого місця, і сама по собі може вказувати на проблеми з дублювання та обслуговування, але знову ж таки це не є гарантією, тому я схильний покладатися на те, що розповідає мій досвід та інстинкти, виходячи з того, як були виконані завдання.
Найкращий спосіб уникнути дилеми, поставленої у вашому запитанні IMHO, - це забути про LOC та рефактор ВСІХ часів. Спершу напишіть свій тест коду, застосуйте його до відмови, пройдіть рефактор, потім подивіться, що там може бути відновлено, а потім вдосконалити код. Ви залишите завдання, знаючи, що ви вже двічі перевірили свою роботу, і не будете так перейматися тим, що вдруге здогадаєтесь про себе в майбутньому. Реально кажучи, якщо ви використовуєте тестовий перший підхід, як я описав, будь-яке вимірювання LOC / день на вашому завершеному коді дійсно означатиме, що ви написали 3-5 разів відміряну суму, при цьому ці зусилля успішно приховані вашим поточним рефакторингом зусилля.