Тут є багато відповідей, які стосуються технічних плюсів і мінусів відмови LOC від того, чи є це важливою метрикою програмного забезпечення якості. Це не таке питання. Йдеться про те, як поводитися з управлінням, яке наполягає на наївному догматичному дотриманні певного правила кодування.
На жаль, людям досить часто зациклюватися на речах, які є корисними порадами, коли вони використовуються у відповідному контексті та застосовуються прагматично, виймають їх із цього контексту та застосовують їх догматично, не розуміючи проблем, які існують поради, щоб пом'якшити в першу чергу. .
Метою порад щодо обмеження LOC є уникнути створення методів, які намагаються зробити занадто багато за один раз, і відштовхувати від створення "класів богів", які занадто багато знають про аспекти дизайну, які не є їхніми пряма відповідальність і від якої залежать усі інші класи в системі. Ще одна перевага коротшого коду полягає в тому, що він є більш читабельним, хоча, як ви вказали, ви можете перестаратися до того, що читабельність насправді починає страждати.
Очевидними є переваги низьких показників LOC (малі методи вкладаються у вашу голову легше, ніж великі; менше речей у коді означає, що менше помиляється тощо), але це також підпадає під дію закону зменшення прибутку. Перестроювання методу 150 ліній на декілька 20 лінійних методів - набагато більший виграш, ніж рефакторинг методу з 10 ліній на метод 7 рядків.
Коли такий рефакторинг відбувається за рахунок деяких інших аспектів гарного дизайну програмного забезпечення (наприклад, читабельності), то ви досягли точки, коли можете виправдати, що цього не робите. Видалення змінних, що надають контекст тому, що означає код, і заміна їх літералами, які не є, дуже погано. Хороший код майже не має в ньому літералів. Однак ці змінні (і названі константи) - це рядки коду, які безпосередньо не сприяють програмі, і тому, якщо LOC поклоняється як якомусь богу, то такі роз'яснювальні лінії піддаються великій небезпеці, якщо їх обрізають за швидку перемогу і деякі помилкові похвали керівництва.
Я вважаю, що ти достатньо розумний, щоб усвідомити це, адже це в значній мірі суть вашого початкового питання. Проблема полягає не у вашому розумінні того, коли скорочення коду добре, а коли його немає, проблема полягає в догматизмі у застосуванні того, що зазвичай є розумною практикою без розбору.
Я рекомендую витратити час на спілкування з керівництвом, пояснення своєї позиції та чому ви вважаєте, що те, що вас просять зробити, шкодить коду, а не допомагає. Намагайтеся уникати конфронтації, але намагайтеся залишатися раціональними та спокійними під час такої дискусії. Важливо, щоб ваше керівництво розуміло, що програмування - це прагматична діяльність, і поради з найкращої практики корисні лише в тому випадку, якщо воно застосовується в прагматичному вигляді. Найкраща практика написана в книзі, а не вирізана з каменю, і коли вона конфліктує (короткий код проти читаного коду), то програміст повинен застосувати їх судження щодо того, яку найкращу практику слід дотримуватися. Сподіваємось, вони розумні люди, які цінують такий внесок.
Ви також повинні бути трохи сміливими, тому що якщо на вас чинять тиск, щоб зменшити LOC там, де ви думаєте, що це непотрібне або недоречне, то цілком природно, що ви все-таки зробите зміни заради спокійного життя. Вам потрібно чинити опір цьому, і вам доведеться "володіти" цим рішенням. У ситуації, коли керівництво розумне, вам не слід було б точно дотримуватися їх керівних принципів, але ви повинні бути в змозі виправдати будь-які обставини, коли цього не зробите.
На жаль, люди можуть бути нераціональними, особливо якщо мова йде про людей, які нижчі за пекельний порядок, що ставить під сумнів свої рішення та правила, які вони вам нав'язали. Вони можуть вирішити не бути розумними. До цього теж потрібно бути готовим. Якщо ви можете продемонструвати випадки, коли найкраща практика LOC вступає в прямий конфлікт з іншими найкращими практиками, і чому це шкодить продукту, і якщо ви можете це робити в частині бази коду, для якої вони мали незначну участь або не мали жодної участі (так це не Це не здається особистою атакою на їх роботу або роботу, яку вони контролювали), то це може допомогти посилити ваш аргумент. Знову ж таки, ви повинні бути готові виправдовувати себе спокійно, раціонально і мати можливість «володіти» аргументами, які ви висуваєте.
Якщо ваше керівництво є розумними людьми, то вони повинні розуміти, що те, що ви говорите, має заслугу, якщо ви можете надати докази для підтвердження своїх вимог.
s/\n/ /g
), це не означає, що він буде навіть читабельний на віддалі