ResourceRepositoryManager rrm = new ResourceRepositoryManagerImpl(resourceRe
После чего ужасно страдает по поводу непонятности, мутности и некрасивости, воспевая хвалу функциональщине. Хотя и ребёнку понятно, что серебряные пули не лучше свинцовых, просто одна сложность заменяется другой.
Да, так учат писать Гугл и Микрософт (у них дофига бабла), так учат писать авторы умных книжек, код которых можно использовать, если к нему прикреплено две введения и три страницы разбора, так пишут гуру новейших языков, чтобы удивить и поразить начинающих адептов, так повторяют за ними миллионы леммингов, которым главное скормить код компилятору, чтоб потом ухватиться за очередную «сложную задачу»
Дюжину лет назад я начал писать «The Dragon of The Source Code». Кое-кто даже видел черновик. Потом я забросил, потому как это оказалось никому не нужно. Людям нужна магия. И, желательно, с очень дорогим тулом.
Я не буду сейчас долго расписывать, просто промышленный код должен быть живым. То есть, стоящее в исходнике - это не результат работы программиста, а промежуточное состояние. Код будут читать, смотреть в дебаггере, проверять, добавлять, исправлять и портить. При этом, код должен не учить (как препарат патологоанатома) и не поражать (как памятник), а сообщать, указывать, сопротивляться ошибкам, и выживать вмешательство идиотов.
Та же строчка в промышленной разработке выглядит вот так
ResourceRepositoryManager rrm = new ResourceRepositoryManagerImpl( // resource_repository // , database_management_fucking_shit //FIXME: does not work 4 test // if customerId == 0 //== Remote , remote_access_remote_control // , remote_access_local_control // //== Local , local_access_remote_control // , local_access_local_control // 4 test or 4 production //== IDs , user_ID // , customer_ID // ! may be 0 // WTF? , item_ID_Container_Impl // !? optional ) ;
Я не буду тут объяснять, почему. Что-то просто для красоты, вроде //== У чего-то есть важные причины. Та же запятая в начале не просто маркирует колонку, продолжает блок и останавливает взгляд, но и позволяет с наименьшей болезненностью произвести манипуляции вроде
//TEST , item_ID_Container_Impl // !? optional
Какие процессы, какие lean и kanaban, какая инженерия и конвейер, если хитромудрейшие из программистов не в состоянии писать живой код.
Ладно, в последнее время чего-то слишком много про программизм. Сейчас будут картинки.