Неолиберальный тоталитаризм
Неолиберальный тоталитаризм личный блог
10 мая 2019, 17:26

Вопрос программистам.

Начинаю плавать в классе  если он больше 100 строк кода.
Это я такой тупой или это нормально?

13 Комментариев
  • dnmsk ☮
    10 мая 2019, 17:33
    Чем меньше (проще) класс — тем лучше программист.
    При грамотном подходе к архитектуре можно делать классы по 50-60 строк, 2-3 метода.

    Основное ограничение у человека в голове — способность видеть одновременно до 7 (чаще даже меньше) объектов с их зависимостями. В большом классе видишь только зависимости внутри класса и упускаешь из вида внешние.

    Но как писать код — искусство требующее практики, нарабатываемой годами.
      • dnmsk ☮
        10 мая 2019, 17:53
        Невербальный паровоз, класс в классе уже зашквар))
  • 100 строк для класса это немного. 1000 — это уже можно сказать много.
  • Ray Badman
    10 мая 2019, 17:47
    Пишите веськласс на одной строке, все будет понятно
  • _sg_
    10 мая 2019, 19:21
    Кол-во строк ни о чем не говорит.
    Хорошая программа — это программа, которую легко поддерживать и расширять в течение долгого времени.

    Почитайте принципы SOLID
    Потом займитесь Гаммой , Dependency injection и Inversion of control
    И тогда, наверняка, вдруг запляшут облака Вы будете писать лучшие в мире программы.

    Желаю успехов.
  • bwc
    10 мая 2019, 19:33
    100 строк нормального кода должны восприниматься легко
    если покажете проблемный код, то можно будет порекомендовать что-то конкретное
  • Replikant_mih
    10 мая 2019, 19:46

    Основная «читаемость» идет от архитектуры, думаю — т.е. про то, какие сущности, как они разбиты по классам, как классы взаимодействуют.

     

    Если на время инкапсулироваться в одном классе и взять его содержимое как данное — можно использовать всякие приемчики чтобы уменьшить время на «эээ, где тут чё?» и «чёт я потерялся тут». Я например использую такие:

     

    — система следования элементов внутри класса — сначала поля, потом конструкторы, потом открытые методы, потом приватные. Например.

    — юзаю регионы ("#region"(C#)) чтобы сгруппировать опять-таки отдельно поля и свойства, отдельно конструкторы, отдельно открытые методы, отдельно приватные и т.д.

    — на горячих клавишах у меня навешены операции свернуть/развернуть все и свернуть в определения.

    — комментарии к элементам, т.е. когда сворачиваю к определениям выден список элементов и комментарии по этим элементам, в таком виде довольно удобно быстро подгрузить к себе в оперативку понимание, что есть данный класс.

  • Тарас Громницкий
    10 мая 2019, 20:45

    Как и писали выше, 100 строк — это не так много.

    Если оно не засунуто в один метод.

    Профессиональный разработчик воспринимает класс, как набор методов.

    Он смотрит на всё как бы сверху.

    Не вдаваясь без необходимости в детали.

    Подобный подход позволяет схематически видеть существенную часть программы.

    Пишите небольшие комментарии к методам.

    На первых этапах этого достаточно, чтобы каждый раз не тратить время и не путаться, перечитывая код.

    Архитектура, выделение сущностей, декомпозиция, связанность, сцепленность и пр. конечно важны, но всё это несколько дальше.

    Пока не парьтесь по этому поводу.

    Учитесь смотреть на вещи абстрактно.

    С высоты птичьего полёта.

  • Константин
    11 мая 2019, 04:30
    автор, в классе главное его функциональность и для каких целей он создан
    если это самостоятельный класс и весь функционал под него вы пишите сами, то класс реально может быть и 10.000 строк, но весь вопрос в том, а не очередной ли это велосипед )))
    если вы видите класс размером 50 строк, то это не значит, что он не использует другие классы, думаю вы поняли...
    отсюда вывод — короткий класс конечно воспринимается удобнее, к удобству нужно стремиться, но знать библиотеки на все случаи жизни не возможно

    ps. пример с boost, там алгоритмов на все случаи жизни написали, но мне удобнее использовать stl, alglib, qt и немного своего, хотя иногда и boost цепляю
    сейчас вот стандарт с++17 осваиваю и постепенно отказываюсь от boost
  • Андрей К
    11 мая 2019, 15:43
    Поставь нормальный редактор кода, аля Sublime Text или Notepad++ и юзай горячие клавиши сворачивания кода. И все проходит на ура
  • П М
    13 мая 2019, 09:47
    знаете зачем нужны классы? чтобы как в том смешном ролике — пропихнуть в форточку, и закрыть. т.е. забыть.

    не зря придуманы библиотеки/проекты/пекиджи/классы/методы/переменные.

    чтобы не плавать — давайте говорящие имена методам и переменным.
    используйте шаблон фасад, например.

    вообще же, если в классе >200 строк, обычно это значит что он уже разросся.
    но это всё зависит. бывает у класса много интерфейсов, которые надо реализовывать. 

    у меня классы 50-200 строк обычно.
    большие 250-350, и совсем немного тех что больше 500.

    кмк чем больше строк в самом приложении, тем меньше будет в отдельном классе.
    довольно непросто связывать вместе большие классы.

    ещё наверное помогает план. когда вы заранее расписываете какой класс за что отвечает на бумаге. и заполняете шапку комментария.

    ну и рефакторинг никто не отменял.

    итого: план, осмысленные имена методов и классов, фасад, рефакторинг, 250 строк — много.
    ну и про 7 объектов уже сказали. 
    ну плюс нормальный редактор, с окном outline view и тп.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн