Здравствуйте, MozgC, Вы писали: MC>Почему ты думаешь, что другим разработчикам будет удобнее прыгать по куче маленьких функций при отладке или чтении кода? Меня, например, это напрягает. То, что советует Мартин (функции там у него по 2-5 строк) — это крайность. Такая же крайность, как и функции на сотни строк.
меня тоже это поначалу раздражжало, когда для того, чтобы узнать по какому критерию вызывается сортировка, нужно перепрыгнуть к ф-ии, когда было бы удобно на месте ее указать. ну это еще до лямбд было. мне не нравилось, что много мелких ф-ий, которые так везде разбросаны-разбросаны и ты прыгаешь по ним. и называются еще как-нить типа sort1, sort2 или less.
но потом понял, что это скорее проблема бедности именования и хреновой структурированности, когда ты не можешь понять, что делает ф-ия по ее названию и тебе надо обязательно лезть внутрь посмотреть и когда вместо композиции из простых и понятных вещей, типа loader или там parser, единственное, на что тебя хватает это на имена в стиле process_part1(), part2() или do_extra_init()
MC>Понятный код — это совсем необязательно маленький размер функций. Функция в 50 строк может быть понятнее, чем функция в 10 строк. It depends, как обычно. Про передачу параметров, тут уже тоже упомянули.
у меня нет никаикх проблем разобраться в коде, только если это не буст. просто это занимает мое время. если я открываю код, а там спагетти без тестов ( а спагетти очень сложно тестировать — откуда там тестам взяться), то ценность этого кода практически отрицательная. его саппорт слишком дорог для реального использования.
MC>И ты, на основании своего субъективного мнения, так мощно заявляешь, что программистов, пишущих функции длинее 30 строк надо не подпускать к коду? Имхо — это очень сильное, наглое и самоуверенное заявление.
не думаю, что вы найдете хоть одну рекоменацию от авторитетного человека, который скажет обратное.
от опытного — да, конечно. я много людей знаю опытных, которые застряли где-то в начале 2000ых в своем подходе к написанию софта. в основном они заняты каким-то саппортом того, что кроме них уже саппортить никто не может. этот проект не будут развивать, его просто закроют на самом деле со временем. когда у нас в одной конторе такой человек ушел на пенсию и передал свои дела и обязанности, то вдруг выяснилось, что все, что он делал можно просто удалить и на самом деле никакого саппорта не нужно, и все уже было замещено новыми сервисами. примерно как с историей поддержки bcd чисел в процессорах.