Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607

Какое ограничение на число строк в программном модуле на вашей работе ?

14.08.2021, 10:28. Показов 4070. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Извините за немного флудерский вопрос. Хочу узнать у сообщества. Есть ли ограничение на количество строк кода в одном программном модуле на Вашей работе ? И если есть то какое ?

Добавлено через 30 минут
Какой типичный размер программного модуля на вашей работе ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2021, 10:28
Ответы с готовыми решениями:

submatrix в программном модуле
вообще нужно матрицу разделить пополам вертикально и поменять местами части пробовал сделать так... но че-т не работает)

Построение графика функции, определенной в программном модуле
Здравствуйте! Пытаюсь построить график функции, определенной в программном модуле, но выходит ошибка. Что я делаю не так? x - вектор,...

Radiogroup (Ограничение длины текста при программном заполнении Items)
Добрый день всем. Есть необходимость наполнить RadioGroup элементами. Если в свойствах Radiogroup графу Items заполнить вручную,...

38
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.08.2021, 16:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от squareroot Посмотреть сообщение
А на второй мой вопрос что скажите ?
Цитата Сообщение от squareroot Посмотреть сообщение
Какой типичный размер программного модуля на вашей работе ?
Да нет такого размера. Есть файлы на несколько тысяч строк, а есть на несколько десятков.
Не привязывайтесь к "количество строк в файле". Это почти бесполезный показатель.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
14.08.2021, 16:03  [ТС]
Croessmah, Есть какоето медианное значение.

Добавлено через 1 минуту
Croessmah, Если бы был бесполезный, то я бы не спрашивал.
Как Вы сами правильно отметили имеет значение скорость навигации по коду.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.08.2021, 16:03
Цитата Сообщение от squareroot Посмотреть сообщение
Есть какоето медианное значение.
Ну, если учесть
Цитата Сообщение от Croessmah Посмотреть сообщение
Есть файлы на несколько тысяч строк, а есть на несколько десятков.
то, наверное, получим от сотни до тысячи строк.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
14.08.2021, 16:11  [ТС]
Croessmah, т.е. Чаще всего Вы имеете с программными модулями в тысячу строк(примерно) ? Правильно ?

Добавлено через 6 минут
Croessmah, Еще вопрос. Может ли отразится на сроках решения задачи, если вести разработку в очень большом программном модуле ? Какой по Вашему примерный предел такого модуля, после которого навигация становится затруднительной и скорость разработки падает.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.08.2021, 16:28
Цитата Сообщение от squareroot Посмотреть сообщение
Croessmah, т.е. Чаще всего Вы имеете с программными модулями в тысячу строк(примерно) ? Правильно ?
Нет. Есть куча "модулей" в пару десятков строк, куча в пару сотен, а есть в несколько тысяч.
Тут же зависимость от нужного функционала и от удобства сопровождения.
Навигация по коду также зависит не только от количества строк, но и от самого кода.
Если там лапша, то и в пятистах строках заблудиться можно.
Есть у нас тут товарищ-лапшекодер - любитель goto.

Цитата Сообщение от squareroot Посмотреть сообщение
Может ли отразится на сроках решения задачи, если вести разработку в очень большом программном модуле ?
Очень большой - это какой? Если как выше написали 400000 строк, то, наверное, можно потеряться.
Не знаю, мне такие не попадались, так что спрашивать у hoggy надо.
А так, что сто строк, что тысяча - без разницы, если код нормальный.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
14.08.2021, 16:45  [ТС]
Croessmah, Я спрашиваю на форуме c++ не про программный модуль, где куча однородных программных конструкций, например 10 000 констант, а про самый обычный код(неоднородный по виду), привычного для Вас качества.
Вы говорите что до тысячи разницы нет. После скольких тысяч наступает разница ?

Добавлено через 13 минут
Разница в скорости разработки/доработки.
0
Неэпический
 Аватар для Croessmah
18150 / 10732 / 2067
Регистрация: 27.09.2012
Сообщений: 27,047
Записей в блоге: 1
14.08.2021, 16:50
Цитата Сообщение от squareroot Посмотреть сообщение
После скольких тысяч наступает разница ?
-->
Цитата Сообщение от Croessmah Посмотреть сообщение
без разницы, если код нормальный.
Если код нормально структурирован, то никаких затруднений не испытываю.
Современные IDE позволяют без проблем прыгать от функции к функции.
Если же не используется IDE, то текстовые редакторы могут искать по тексту.
Если код нормально структурирован, то можно примерно понять куда тебе надо смотреть, даже без всякого поиска.
А вот если код похож на лапшу, то можно и в пятистах строках завязнуть по самые уши.

Например, если у вас есть некое чудо, выполняющее команды, то со временем количество команд может вырасти на порядки.
В файле как бы добавилось 10К строк кода, но никакого влияния на навигацию, сопровождение и т.д. это не оказывает, но ежели добавится 10К строк каши...

По-работе приходится изучать исходники Qt.
К примеру: https://code.woboq.org/qt5/qtd... w.cpp.html
В файле более 5К строк. Ну вот столько нужно этому "модулю".
Никаких проблем с пониманием, разбором и навигацией нет.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
14.08.2021, 16:58  [ТС]
Croessmah, Спасибо. т.е. главное не городить мегафункции. Так ?
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
14.08.2021, 17:25
Цитата Сообщение от squareroot Посмотреть сообщение
главное не городить мегафункции
А кто запрещает?) Просто делай четкую и понятную структуру, делай отступы между блоками кода, оставляй комментарии. Если можешь решить элегантнее, то тебе в принципе не нужно эту мегафункцию городить.
Цитата Сообщение от squareroot Посмотреть сообщение
Какой типичный размер программного модуля на вашей работе ?
Зайди на гитхаб, да посмотри.
https://github.com/search?l=C%... positories
0
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
14.08.2021, 22:34
Цитата Сообщение от squareroot Посмотреть сообщение
Что значит сталкивались ? Вы вели доработку кода в таких файлах ?
Как долго Вам приходилось дорабатывать/исправлять код в таких файлах ?
Только этим и занимаемся? И что тут сложного? Особенно с Visual assist-ом...
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
14.08.2021, 23:12  [ТС]
jugu, Спасибо за Ваше мнение.

Добавлено через 12 минут
jugu, А assist позволяет сделать так что можно было пользоваться скроллбаром в пределах рабочего участка кода ?
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
15.08.2021, 11:00
Цитата Сообщение от squareroot Посмотреть сообщение
А assist позволяет сделать так что можно было пользоваться скроллбаром в пределах рабочего участка кода
Скроллбар и так есть почти в каждом редакторе или тебе какой-то особенный нужен?

Добавлено через 38 секунд
https://ru.wikipedia.org/wiki/Visual_Assist_X
0
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
15.08.2021, 11:12
Цитата Сообщение от squareroot Посмотреть сообщение
jugu, А assist позволяет сделать так что можно было пользоваться скроллбаром в пределах рабочего участка кода ?
Assist - это просто плагин, повышающий удобство работы в Visual Studio.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
15.08.2021, 12:05  [ТС]
assemberist, Зачем писать, если не поняли о чем речь ?
Я имел ввиду что сколлбар при коде на много много тысяч строк становится бесполезной.
А если нечайно его дернешь то можешь уехать далеко. Есть конечно способ вернуться, но психологически проще, когда скроллбар не является
"миной" в пользовательском интерфейсе Visual Studio или любого другого редактора кода/среды разработки.
jugu, Я знаю что такое Assist. Надеюсь и Вы поняли меня.

Добавлено через 25 минут

Не по теме:

Это тема тема создана не для того что бы студент недоучка спрашивал совет у корифеев, а для того чтобы в равноправной взаимоуважительной дискуссии среди тех кто много много лет пишет на c++(и знает его хорошо) обсудить некоторые аспекты, на которые обычно никто не обращает внимание.



Добавлено через 12 минут
Неплохо быть иметь среду разработки где можно деактивировать мины пользовательского интерфейса. Это касается не только скроллбара, но и полной компиляции. А пока такой среды нету, то неплохо бы определить какой максимальное число строк в программном модуле комфортно для работы.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
15.08.2021, 14:20
Цитата Сообщение от squareroot Посмотреть сообщение
Какой типичный размер программного модуля на вашей работе ?
0.6-4 Кбайт. Может быть чуть меньше или чуть больше в пределах корреляции. До 30кб в принципе приемлемый размер.
Не считая генеренных файлов. Там и мегабайты могут быть, но это, как всем понятно, другое.
Самое большое, что я видел - 100кб, но это уже считается очень много, и нужен рефакторинг.

На всякий случай, общая кодовая база 6,5 миллионов строк.

Кстати все вышесказанное - это не догма. Никаких строгих ограничений нет, но есть рекомендации и на ревью раздутость "модуля" (то бишь cpp-файлика) нужно обосновать. Как правило с этим нет проблем.

Цитата Сообщение от Verevkin Посмотреть сообщение
И компилятору абсолютно
Когда мы еще держали основную часть сборки на GCC 2.95, то компилятор уходил в segfault на слишком больших файлах и слишком больших функциях. Наши проектные рекомендации на снижение неоправданной раздутости модулей растут в первую очередь отсюда.

____________
Ну и в целом - это приятно, когда в одном файле только то, что относится к текущей подзадаче, декомпозиция - это, как я говорю, мать порядка.
0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
15.08.2021, 21:38
Цитата Сообщение от squareroot Посмотреть сообщение
Зачем писать, если не поняли о чем речь
Как понял, о том и пишу. Может просто кому-то стоит понятнее и конкретнее мысль выражать? Чтобы недопонимания не возникало
Цитата Сообщение от squareroot Посмотреть сообщение
Я имел ввиду что сколлбар при коде на много много тысяч строк становится бесполезной.
Как средство навигации он вообще так себе. Правда в vs code по умолчанию есть графический скроллбар. Там отображается код очень мелким шрифтом, но с подсветкой, так что искать определенный блок проще. Плюс он становится прозрачным если убрать курсор из фокуса.
Цитата Сообщение от squareroot Посмотреть сообщение
А если нечайно его дернешь то можешь уехать далеко. Есть конечно способ вернуться, но психологически проще, когда скроллбар не является "миной" в пользовательском интерфейсе Visual Studio или любого другого редактора кода/среды разработки.
Ну и как я говорил ранее, в vim его нет вообще (есть emacs еще, но с ним я "заочно знаком") и там приходится довольствоваться другими инструментами: автогенеренными тэгами, метками, разбиением экрана, или поиском по регуляркам.

А вот насчет
Цитата Сообщение от squareroot Посмотреть сообщение
пользоваться скроллбаром в пределах рабочего участка кода
Как по мне, спорная фича.
* Какой блок кода может считаться отдельной единицей: тело функции? пространство имен? любой логический блок у которого может быть тело из более чем одной инструкции (типа if, while, switch)? Или оставить прерогативу разбиения самому программисту? В принципе решается конфигой, но учитывая сомнительную полезность скроллбара...
* Скроллбар привязан к объекту (в данном случае файл с кодом): Когда файл большой - мы прыгаем на километры. Если ограничивать перемещение скроллбара в пределах какого-нибудь блока, то проблема не решена вообще. Масштабировать скроллбар до размеров выбранного блока? Звучит так себе. Особенно когда нужно будет переходить к другому блоку.
* Момент когда мы лочим скроллбар на блок кода: ручной лок (например по нажатию клавиш) требует времени на нажатие. Если лок будет автоматический, то моменты когда хочешь перейти например в начало файла, а тебя не пускает будут вымораживать еще сильнее.
0
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
16.08.2021, 01:18  [ТС]
assemberist, Предлогаю не не углубляться в дискуссию потому как тема создана не для того чтоб мне мозги канифолить, а лучше вернуться к изначальному вопросу:
Какой типичный размер программного модуля на вашей работе ?
0
16.08.2021, 07:23

Не по теме:

Цитата Сообщение от Verevkin Посмотреть сообщение
И компилятору абсолютно
в целом - это неправда.
и дело даже не в размере файла, а в размере того, какой код сгенерирует компилятор.
совсем недавно сталкивался с проблемой, когда GCC падал с ошибкой File Too Big, хотя файл сам был небольшой. падал где-то в ассемблере уже.
зато там был огромный шаблон, который разворачивался в огромную кучу гсегментов внутри бинарника при любом вызове его функции с новыми шаблонными параметрами.
чего ни GCC, ни Clang выдержать не смогли.

0
913 / 339 / 135
Регистрация: 18.07.2017
Сообщений: 1,485
16.08.2021, 10:15

Не по теме:

Цитата Сообщение от squareroot Посмотреть сообщение
тема создана не для того чтоб мне мозги канифолить
Да ну тебя, уж и понудеть нельзя :p


Цитата Сообщение от squareroot Посмотреть сообщение
лучше вернуться к изначальному вопросу
А тебе все еще мало ответов? Ну ок, от себя еще добавлю: пишу не на си, но тоже никаких ограничений нет.
Алексей1153,
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Да хоть лимон строк - нажал слева в редакторе плюсик, и функция сингулировала в одну строку
Verevkin,
Цитата Сообщение от Verevkin Посмотреть сообщение
Главное - результат и в сроки уложиться.
Croessmah,
Цитата Сообщение от Croessmah Посмотреть сообщение
Нет такого ограничения.
hoggy,
Цитата Сообщение от hoggy Посмотреть сообщение
очевидно жеж, что никаких ограничений быть не может,
DrOffset,
Цитата Сообщение от DrOffset Посмотреть сообщение
Никаких строгих ограничений нет, но есть рекомендации
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2021, 10:15

Что глючит на вашей работе?
Доброй ночи! Какие проблемы наблюдаются у системных администраторов и программистов с программами на вашей работе? Заранее благодарен.

Сколько строк может быть в таблице и как снять ограничение?
Загружаю файл "прайс" в таблицу w_prod, файл "прайс"- содержит 45000строк 2столбца. ЗАГРУЖАЕТСЯ ТОЛЬКО 25000 В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА???...

Ограничение по работе типа ТРИАЛ.
Здравствуйте. Подскажите пожалуйста как сделать чтоб файл екселя имел пробный период(триал) после которого запросит ключ активации и...

Написать программу, которая выводит на экран 50 строк с вашей фамилией и названием группы
1. Написать программу, которая выводит на экран 50 строк с вашей фамилией и названием группы. Строки пронумеровать.

Ну вот никак не могу понять, Как сделать ограничение количество созданных строк
Здравствуйте! Очень рад что вы уже сюда зашли. Возможно у вас будут мысли как это сделать. (Windows forms c#) Вопрос в том что, как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru