М1сИае1 ОиЬакоу 1 Иг • © Знавал таких программистов. "Ты видел, как он код пишет? Если ему нужно / it-юмор :: твиттер :: шутки про ООП :: юмор (юмор в картинках) :: интернет :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

geek твиттер юмор шутки про ООП it-юмор 
М1сИае1 ОиЬакоу
1 Иг • ©
Знавал таких программистов.
"Ты видел, как он код пишет? Если ему нужно будет создать класс Пользователь, он начнёт с класса Человек, причём предусмотрит возможность существования как углеродной, так и кремнийорганической формы жизни.",geek,Прикольные гаджеты. Научный,
Подробнее
М1сИае1 ОиЬакоу 1 Иг • © Знавал таких программистов. "Ты видел, как он код пишет? Если ему нужно будет создать класс Пользователь, он начнёт с класса Человек, причём предусмотрит возможность существования как углеродной, так и кремнийорганической формы жизни."
geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,твиттер,интернет,юмор,юмор в картинках,шутки про ООП,it-юмор
Еще на тему
Развернуть

Отличный комментарий!

- Его код работает?
- Да, но...
- А твой "правильный" код работает?
- Ну, бывает...
- Назовёшь ещё раз переменную / класс "test1" и станешь безработной формой жизни.
crkll crkll 22.10.202117:05 ссылка
+51.2
- Его код работает?
- Да, но...
- А твой "правильный" код работает?
- Ну, бывает...
- Назовёшь ещё раз переменную / класс "test1" и станешь безработной формой жизни.
crkll crkll 22.10.202117:05 ответить ссылка 51.2
И тогда он сможет превратьтся в человека-бомжа!!!
Хорошо что в классе "человек" подобное предусмотрели
Paascal Paascal 22.10.202117:26 ответить ссылка 17.0
Один знакомый называл классы "а", "b", "c"...
математик наверн
villy villy 22.10.202123:40 ответить ссылка 1.0
так это плохо или хорошо?
Чтобы эффективно применять знания на практике, имеет смысл не делить на черное и белое, а задавать вопросы "зачем, с какой целью?".

Можно наваять один большой скрипт и монопроцедуру, которая вроде как решает задачу, работает, использует кучу разных непонятных переменных, но если ты это написал за одну ночь, запустил, выполнил задачу и теперь тебе этот код никогда больше не понадобится (например, тебе нужно было один раз быстро проанализировать/переупорядочить какие-то данные, с которыми больше ничего такого делать не придется). Цель - сделать быстро, а не красиво. Пожалуйста, воруй@убивай, если это тебе сэкономит время, ибо зачем тратить лишний день на красоту?

С другой стороны, есть энтерпрайз. Это:
* много кода,
* много этапов обработки данных,
* много разработчиков,
* требования к надежности,
* требования к возможности поддержки кода.
Все полезные практики перечислять долго, поэтому затрону те, которые имеют отношение к поднятому вопросу.
Добрая часть рекомендаций по хорошему стилю сводится к тому, чтобы
1. дробить большие куски кода (будь то классы, методы, процедуры и т.п.) на как можно более логически атомарные,
2. переиспользовать код, где это возможно,
3. позволять статическому анализатору находить ошибки еще до сборки.
Это позволяет легче понимать (объектное мышление интуитивно для человека) и дорабатывать код коллегам (или завтрашнему себе), делать меньше ошибок (будь то шибки копипаста, опечатки в аргументах), позволяет делать код более масштабируемым, т.е. при изменении логики отдельных частей не придется переписывать сразу много кода.

Таким образом, подробная декомпозиция - штука в большинстве случаев хорошая.

Как относиться к мему, я до конца не решил.
* Это либо быдлокодеры обсуждают работу нормального разработчика с опытом разработки, не понимая, зачем он закладывает в код масштабируемость, отчего проводимая им декомпозиция кажется им бессмысленной и чрезмерной.
* Либо действительно обсуждается разработчик, который не имеет опыта практического проектирования, что пытается компенсировать старательным абьюзом фишками объектно-ориентированного программирования. Что любопытно, если он не совсем шизофреник, то у него выше шансы вырасти в приличного разработчика, чем у джуна, который пишет монолитами.
И да, если я неправильно понял, и вопрос был не про мем в посте, а про test1 в комментарии, то здесь ситуация однозначная: все имена должны быть понятными, а то в отдельных случаях и достаточно подробными. Чем больше можно понять из самого кода, тем меньше комментариев придется писать.

Алсо, я бы всем начинающим разработчикам после прочтения учебников сразу рекомендовал бы познакомиться вживую с кодом какого-нибудь приличного проекта на практике: доработать, написать плагин, да хотя бы почитать его и подебажить. Дает хорошее представление, как делать надо. А в процессе написания своего кода изучать антипаттерны программирования (много где приведены, легко нагуглить) и бить себя за них по рукам.
Всегда интересовало, а насколько подробными они должны быть? Читал где-то, что в каком-то ЯПе названия функций пускай и полные, но состоят чуть ли не из десятка слов. Как не-программист не вижу в этом ничего плохого, но люди вроде как плюются
Звучит какая-то жесть. Ибо имена методов обычно представляют собой глаголы или глагольные словосочетания: postPayment, deletePage, save и т. д. Методы чтения/записи и предикаты образуются из значения и префикса get, set и is согласно стандарту javabean. Откуда взяться жести с названиями функций на десятки слов?
Mohave Mohave 23.10.202100:48 ответить ссылка 0.0
ну когда я пишу дополнения для сайтов, беру встроенные имена классов и дополняю их уже конкретикой функционала, 3-4 слова получается в имени
Oh baby, don't hurt me
Don't hurt me
No more
Стек? Я не знаю ни единого кейса, где это имеет смысл.
Mohave Mohave 23.10.202112:17 ответить ссылка 0.0
Только что погуглил, на стаке лежит вопрос на эту же тему с названием метода "getNumberOfSkinCareEligibleItemsWithinTransaction"
И ответы к таком вопросу вполне хорошие: https://stackoverflow.com/questions/2230871/when-is-a-java-method-name-too-long
Так что не вижу смысла их сюда писать.
Mohave Mohave 23.10.202112:15 ответить ссылка 0.0
ты про жабку что ли?
жабка няшная
плюются всякие любители перлообразного месива
villy villy 23.10.202100:50 ответить ссылка 1.2
villy villy 23.10.202100:51 ответить ссылка 2.8
По ситуации.
1. Есть стиль, принятый в конкретном проекте. О нем следует договориться, и его следует придерживаться. Опять же, в зависимости от языка также могут быть свои рекомендации.
2. Здравый смысл. Не надо пытаться уместить в наименование документацию, но поставь себя на место человека, который ищет в проекте нужный класс или метод, и ему нужно выбрать из нескольких похожих. Если пара лишних слов в названии переменной позволит избежать написания комментариев без ущерба понятности - вперёд. Но если таких переменных будет много, то глазам будет сложнее зацепиться, так что с часто используемыми классами, методами, переменными следует быть осторожным, чтобы не превратить код в стену текста.
3. Скептикам можно также напомнить, что любая IDE поддерживает автодополнение, так что удобство набора не является валидным аргументом против длинных наименований.
4. Умение правильно пользоваться жаргоном поспособствует лаконичности.
Немчинского слушаю иногда, говорит за test1 можно увольнять
ошибка выжившего и бомбардировщики
про декомпозицию согласен и рефакторинг туда же, но есть "Но" - вся эта красота разбивается об тупоголовых заказчиков-бизнесменов нижнего порядка, как например в моем случае.
Соболезную. Проще перечислить, что НЕ ломается о плохо выстроенные отношения заказчик-исполнитель. И ничего тут не сделаешь ни как разработчик, ни как РП, если политика компании – стелиться под каждый чих заказчика. Но есть и плюсы: можно провести себе стресс-тест (если переживешь, а не уволиться или получишь нервный срыв), научиться делать быстро минимальные вещи.

С другой стороны, зато в крупных ответственных компаниях все бюрократизировано от "а" до "я". Это, конечно, обеспечивает должный порядок, но местами и вставляет палки в колеса.

C'est la vie.
Наконец-то, блядь, нормальное ООП
Kon_Boi Kon_Boi 22.10.202117:17 ответить ссылка 35.5
"Если вам понадобится банан, то придётся сначала накодить джунгли с обезьянами" (c)
Как вам повезло, что вы где-то нашли библиотеку с джунглями.
1nsanie 1nsanie 22.10.202117:35 ответить ссылка 21.5
А по запросу "обезьяны" на so больше 9000 сообщений
Я не уверен, что все эти сообщения - строки кода.
Kavot Kavot 22.10.202118:24 ответить ссылка 6.7
Та это же вроде хорошо или я чёт не понял?
Это называется оверинжениринг, когда мы излишне усложняем систему без видимой на то причины даже в далёкой перспективе.
Причём, мой 20-летний опыт программирования говорит мне, что в 99% случаев все эти "заделы на будущее" остаются мертвым кодом и геморроем в жопе тех, кто в этой лапше бесполезной хуеты будет разбираться через 5 лет, после таких горе-проектировщиков.
Любят эту хуйню джуно-миды, которые находятся на пике эффекта Даннинга-Крюгера, когда им кажется, что они охуенны и всё понимают.
Но на самом деле, бизнесу чаше всего нужно бывает совсем не то, что они там себе нагородили в своих фантазиях.
Да, гибкость это хорошо, но нужно понимать, где она нужна, а где нахуй не всралась.
И да, в большинстве мест любого проекта гибкость именно что нахуй не всралась, и лучше убрать её, сделав максимально просто.
>>Но на самом деле, бизнесу чаше всего нужно бывает совсем не то, что они там себе нагородили в своих фантазиях.
ага, как говорил один заказчик "Мне нужны были жигули, а вы начали мерседес строить"
В том плане, что дохрена усложнили систему, в изначальных требованиях выглядевшей в стиле "нажал на кнопку - выстрелил в тыкву"
Maern Maern 23.10.202101:20 ответить ссылка 0.0
Веселее будет потом. Когда программисты, думая в мечтах, что позже заказчику потребуется скорость и комфорт, выкатят свой мерседес, а заказчик потребует возможность работать на дерьмовом бензине, совместимость с дешевыми запчастями бу с авторынка, и езду по говнам.
чаще всего заказчик оставляет остов мерседеса и на остаток денег находит жигульмейстеров, получая ровно то, что просил.
Maern Maern 23.10.202102:17 ответить ссылка 0.0
Смолвил как боженька. Чем меньше кода написано для решения задачи - тем лучше, Дийкстра еще об этом говорил. YAGNI и все такое. Но нет, в простом проекте прорастают эти абстракции абстракций и базовые классы моделей. Тесты ради тестов, каждый чих готовы пркрыть тестами. А через год - код идет на свалку, хотя писался как на 30 лет поддержки.
roddyb roddyb 23.10.202101:49 ответить ссылка 0.4
>>Тесты ради тестов, каждый чих готовы пркрыть тестами.

потому что манагеры/продаваны убедили, что тестеры на проекте нахер ненужны, автотесты всё зарешают. в итоге там, где нужен был бы час манки-джоба уходит неделька-другая на написание тестов
Maern Maern 23.10.202102:18 ответить ссылка 0.0
Что ещё хуже, любое совершенно мизерное изменение также требует переделки кучи тестов.
А так как в проекте чаще всего допиливаются существующие вещи, а не пишутся новые, львиная доля времени уходит не на реализацию логики, а на поддержку "ахуенной архитектуры" и тестов.
Баги при этом, естественно, никуда не деваются. Потому что тесты тестируют код, а не логику.
>Что ещё хуже, любое совершенно мизерное изменение также требует переделки кучи тестов.
>А так как в проекте чаще всего допиливаются существующие вещи, а не пишутся новые, львиная доля времени уходит не на реализацию логики, а на поддержку "ахуенной архитектуры" и тестов.
Так суть всей этой архитектуры и тестов именно в том, чтобы такого не происходило. Они НУЖНЫ для того, чтобы писались новые вещи, а не допиливались старые, чтобы на поддержку уходило меньше времени, а не больше. Для того, чтобы не тесты правились под изменения, а чтобы изменения проходили тесты.
Ну так при оверинжиниринге получается хуйня, когда изменения затрагивают очень дохуя кода. И связанных с ним тестов.
Тогда как при нормальном проектировании код содержит в основном бизнес-логику, и её тесты. И в этом случае всё проходит гладко.
А там, где логику размазали по миллиону классов, происходит хуета.
Вот сейчас грустно стало за профессию.
Тут прям наоборот я бы сказал. Надо смотреть на проект. Может и правда оверинжиниринг, хотя он не то что бы часто ухудшает код, побег за байтами давно кончился, а зато качество кода у таких людей обычно ан высоте и структур хоть и много но все понятно.
Как раз описанный в посте программист хорош, о он даже не по з.п. дорог, а по времени. И проебавшийся по всем пунктам ПМ у которого завтра презентация а потом сразу в продакшн предпочитает нанять долбоеба, который вообще не использует наследование, или у которого все наследуемое в композиции. Да, он быстро наколупает инвалида с двумя костылями и отправит его ковылять в продакшн, а потом проект захочется изменить и на уровне с Классом "Пользователь" добавить класс "Бухгалтерша - функционал не открывать", а окажется что для этого надо ломать вс е вплоть до класса "мультивселенная", а не подредактировать капсулированные "люди".
Чувак. YAGNI. Когда надо будет, тогда и создавай класс человек и углеродная форма жизни. А пока не усложняй систему лишними абстракциями.
Вопросы к архитектору. Спринтики и прыганье по задачам для пидоров, галер и веба. Нормальные продукты закладывают потенциал для расширения и кастомизации, а древовидная струкура с четкой вложенностью объектов приятна для масштабирования. Пусть продакшн будет на 5-10% позже а часть функций и правда ЮАГНИ, но продукт все равно лучше и полнее. Мое имхо и ниипет, я пм, что хочу то ворочу.
Пма как раз ебать это и не должно. It-ownerа ещё может быть, но не пма. Лишние абстракции не принесут никакой пользы и будут лишь лишним грузом, который надо поддерживать с вероятностью в 90%. Создание чего-то на опережение допустимо только при том, что в течении эпика эта хуйня будет использоваться. Спринтики - оптимальная хуйня для развивающегося ПО, водопадик оставь воякам, игроделам и пидорам, которые будут потом пиздеть что-то типа "а ещё нам надо это" когда паровоз уже ушел.
Melatori Melatori 22.10.202118:22 ответить ссылка -0.6
Что блядь значит "поддерживать" неиспользуемые модули. Висят себе как в релизной версии и пусть висят.
И как раз пидоры, которым "надо это", а паравозик не то что ушел - уже пришел на конечную - как раз спринтиками прыгают. Есть продукт, концепция и архитектура, в которую нужно заложить и "мультивселенная" и "формы жизни" и еще желательно что бы из утки можно было вытянуть клюв и приклеить к бобру без проблем создав утконоса, а не допиливая Австралию. А спринтики пусть будут в финале для кома0нд которые делают "пользователь 846" и им прилетает задача добавить ему третью руку.
И ПМа это еще как ебет, когда клиент очередной попросит утконоса, а архитектор думал что ЮАГНИ.

Вот недавно было, правда я там был не ПМом а заказчиком для системы в которую внедрялся мой продукт, что система состоит из трех БД - приняла состояние - отработала логику - отдала на ЮИ, которые вот вообще не связаны, а когда появилась задача знать состояние третьей БД которая к подвязана и не имеет логики ЮИ при отработке логики второй БД, что бы динамически менять статус события которое уже висит окошком, а не плодить десяток однотипных событий по сработке датчика, то их тимлид обосрался и дооолго со мной спорил с позиции "а может это вам не надо", так как это всей команде работы на три недели, а фича блядь очевиднейшая, вообще не ебу как они продукт продавали без нее.
Я так понял ты по водопадику работаешь?
Не собрал все требования разом - сам себе мудак и плати денюжки за то что долбаеб. Вместе с аналитиками.
Программисты делают как можно проще, быстрее и читабельней, попутно прикручивая возможность безболезненно расширять продукт. Если не могут прикрутить не плодя говносущностей - тут полнейшая параша либо с прогерами, либо со стеком.

Водопадик нужен только когда клиент точно знает чего он хочет, а он блять никогда этого не знает. Так что можешь его себе в задницу воткнуть, если требования не собрал.
Не "водопадик" а осмысленный подход а не тупое следование Аджайлу. Наверху с максимально гибкой но законченной идеологией и архитектурой системы, т.к. делаем продукт себе который будет изменятся но из машины не станет самолетом. И это не "собрал все требования" - их нет, требования это к галерам где пм это кукла с рукой клиента в жопе, в продуктовой ты придумываешь их сам и немудрено что-то упустить, в конце концов каждый клиент в любом случае захочет либо продукт из коробки, а раз он из коробки то и денег стоит не то что бы много, или перламутровые пуговицы и готов платить золотые горы. Но я не хочу что бы золотые горы ушли на месяц разработки пуговиц, я хочу что бы джун и за день их сделал в итоге.
Ты сам говоришь - "Водопадик нужен только когда клиент точно знает чего он хочет", а так как клиент и глава команды, овнер продукта, это одно лицо, то в общем так и есть. А аджайл уже на конкретных узлах системы применяется, т.к. там в процессе могут возникнуть идеи или изменения но локальные.
И я с тобой согласен, конечно "Если не могут прикрутить не плодя говносущностей " - то и команда и продукт говно. Но описанное в посте не выглядит говносущностью.
Видел команду в которой лид говорил не тратить время на читаемые названия переменных и комментирование кода, дескать из документации - не автоматом генерируемой - и так все будет понятно, так что var1 это норм. Нахуй таких "эффективных менеджеров".
>Видел команду в которой лид говорил не тратить время на читаемые названия переменных и комментирование кода, дескать из документации - не автоматом генерируемой - и так все будет понятно, так что var1 это норм. Нахуй таких "эффективных менеджеров".

Тут согласен на бесконечность процентов.

>Но описанное в посте не выглядит говносущностью.

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

>их нет, требования это к галерам где пм это кукла с рукой клиента в жопе, в продуктовой ты придумываешь их сам

Работал я в такой компании где приходил начальник и каждые 5 минут придумывал новые требования (хотя там даже водопадом не пахло, не говоря уже об аджайле). В пизду такие компании. Если пишите под себя и не можете всё чётко предусмотреть, то юзайте аджайл и не ебите себе мозги, мы так и делаем. В общем случае при каскадной/водопадной модели, то, как должен работать продукт пишет целый отдел со стороны заказчика. Нечего придумывать мутанта из аджайла и водопада.
Лол. Мне нравится как ты меня учить как правильно жить начинаешь, хотя у меня и так все по этой части хорошо.
Еще раз, у продукта нет клиента, он сперва разрабатывается а потом предлагется рынку, на котором находятся клиенты. Это не аутсорс (галера) где ищется исполнитель под конкретный продукт и разработка разделена на заказчика с т.з. и исполнителя с желанием один раз сделать за долго и дорого и забыть.
Мы пишем не под себя для своих уже возникших задач, как когда клиент заказывает на аутсорсе ПО, мы пишем продукт на рынок. Чем более он гибкий, тем больше клиентов устроит, расширит ЦА. Т.к. 80% купит "as is" но 20% наиболее обычно платежеспособных заплатит х10 за кастомизацию продукта. Винду ты можешь купить только готовую, ты не можешь позвонить мелкософтам, заплатить 20К бачей и попросить что бы "окна были круглыми". И даже стороннему разработчику ты это не можешь поручить сделать, это будет внешний модуль, а не часть ОСи.
И вот я тебе повторю, я в роли клиента сейчас наблюдаю ситуацию, когда мне нужна одна небольшая и вполне логичная функция покупаемого мной за много денег софта, а что бы ее допилить из-за изначально деревянной и дибильной по правде говоря архитектуре это очень трудно и требует менять с самых низов. Хотя видимая функция фичи вообще смешная - цвет окошка менять а не новое окошко создавать.
Ниже чел правильно все расписал. И модульность и рефакторинг и динамичные изменения по аджайлу во время разработки есть гуд. Собсно я про это и писал, узлы верхнего уровня системы как раз такие. Но фундамент системы должен быть по моему мнению другим, именно таким, с подстеленной везде соломкой. Это увеличивает на смешную цифру размер проекта, и делает его на 5% дороже и дольше. Это не ухудшает оптимизацию или не создает доп.нагрузку на конечного пользователя. Но это позволяет мне засыпать соломой все, что потенциально надо. Пока работает.
Когда в продуктовой кампании работаешь, то часто нет возможности собрать все требования, потому что их тупо нет. Никто не может предугадать как пойдет бизнес. Вдруг какая-то фича, которую считали второстепенной на начальных этапах, может стать киллерфичей, итп. Отсюда маниакальное желание подстелить себе соломку везде где только можно. Но я с тобой полностью солгашусь, что это нифига не повод вводить абстракции всего вполть до зарождения вселенной(а вдруг большой взрыв отменят?!). Потому что в 99% случаев все абстракции и вся заложеная гибкость кода потребуется в совершенно другом месте и все 100500 часов разраба(за которые ему платят) улетят в трубу. А это в свою очередь очень расстроит бизнес. Причем на столько, что горе-архитектор может отправиться на мороз. Так что вариант только один: пиши просто, пиши модульно, делай рефактор по необходимости.
каждый раз, когда человек потупил пяток минут, соображая, а нахуя оно тут у тебя в коде - это цена твоего оверинжиниринга. таких раз и таких людей будет дохуя
villy villy 22.10.202123:49 ответить ссылка 1.3
Я, как человек, специализирующийся на доработке всякого легаси говна, могу сказать, что самое худшее, что может случиться с проектом - это превращение его в мешанину говноклассов, которые нахуй не нужны, и ничего не делают. Которые были созданы "ради гибкости", так никогда и не пригодились, и превратили проект в кучу вонючего навоза, в котором нихуя невозможно понять из-за тонн бессмысленных сущностей и абстракций.
Я за 20 лет видел многое. И код, написанный математиками, с функциями на тысячи строк, и переменными типа a, ab, cc. И адскую многопоточную лапшу с кучей разделяемых объектов без намека на синхронизации. И ебанистическую мешанину из языков и технологий, перемешанных причудливым образом.
Но ничего нет хуже, чем оверинжинирнутый код, в котором фантазии говноархитектора воплощены в гору навоза под названием "гибкие заделы на будущее". Я, как человек, часто бывающий в этом самом будущем таких проектов, очень хорошо знаю, что эти фантазии, если они не основаны на реальных требованиях, так навсегда и остаются вонючим говном. Из-за которого приходится за немалые деньги нанимать людей типа меня.
Расширение и кастомизация это для монолитных систем с перспективой внедрения и поддержки в течении десяти лет и более. Нонешний тренд микросервисов как раз предполагает быстро говнять, выпихивать, все равно через год перепишут или бизнес функция изменится и сервис в утиль пойдет. Нет смысла городить абстракции.
roddyb roddyb 23.10.202101:55 ответить ссылка -1.2
Именно. Ты вот прям все точно описал, мне нечего добавить по сути.
Только блядь я ебу как вы все жопой комментарии читаете когда я говорю, что как раз монолитные внедряемые системы мы и пилим, причем учитывая промышленный уклон - 10 лет далеко не предел жизни продукта.
Но нет, пришло десять долбоебов умеющих только в веб и микросервисы и пихают свое очень важное мнение. Насмотрелся я на большие проекты прогорающие из-за аджайла, модных "ничего лишнего" и следование трендам, когда 3-5 команд сидит в переговорке с пустыми взглядами и четвертый час тасует разноцветные бумажки и придумывает активность, вроде голосования чашками, что бы не сдохнуть от тоски.
По моему половина вообще не понимает что такое архитектура системы, создание продукта и лепит на ходу. Ну да, тут скрам самое оно, начинаешь делать гоночный автомобиль, через год получаешь реактивный суперджет с гаражом вместо салона, после правок клиента кладешь в гараж ладу и сдаешь проект.
Как раз срам и аджайл как правило рождает монстров, о которых я писал выше. С кучей бесполезных классов, фабриками фабрик конфигураторов интернал компонентов, миллиардами тестов, тестирующих тривиальные методы, и собственно тысячи классов, в которых все методы только и исключительно вызывают другой такой же, но похожий, метод другого класса.
Бизнес-процессы размазаны по огромному количеству классов, раздроблены на мелкие и совсем неочевидные куски, и понять в этой хуете, что именно происходит, непросто. Зато вся аджайл команда при деле, ведь поддерживать эту поебень непросто. Любое тривиальное изменение коснётся сразу кучи классов по всему дереву вызовов. И правки трёх десятков тестов. И получасовая таска превращается в несколькодневную для нескольких человек. Удобно, для галер. ИБД цветет и воняет говном.
А потом проект при смерти, прихожу я, и щедрой рукой отправляю(после того, как разберусь, что в этом говне происходит) 50 классов и пару тысяч строк кода, не считая говнотестов, в канализацию, где им и место. Заменяя это всё на один компактный метод обработки, в котором сконцентрирован весь процесс целиком, который сразу виден на одном экране монитора, а не размазан тонким слоем по куче архитектурных излишеств.
Из крайности в крайность. Аджайл, практически любая его методология, при правильном применении не порождают ничего лишнего, а наоборот, убирают это. Один дибил топит за чистый итеративный метод без водопада, другой за водопад и хуесосит всемирно применяемый аджайл. И оба идут нахуй, я пожалуй закончу с этой веткой комментов ребят.
При правильном применении практически что угодно приносит пользу.
Но инициативные идиоты любят не думать головой, а следовать слепо текущим трендам из новых книжек и вкбинаров/конференций, где рассказывают, что нынче в моде ИТ. И именно это рождает монстров.
Модный аджайл рождает идиотов, которые тасуют бумажки вместо решения задачи.
Модные шаблоны проектирования и слова про гибкую архитектуру рождают идиотов, которые лепят эту архитектуру, гибкость, и шаблоны в код, просто потому, что они о них знают. А не потому, что это нужно для решения задач.
Модное TDD рождает идиотов, тестирующих тривиальные, не содержащие логики, методы.
И так далее.
>Пусть продакшн будет на 5-10% позже
Но это не 5-10%, это 500-1000%.
Да, но у меня был кейс когда была базовая модель, а у части наследников её филды переопределялись в nullable что б никогда не использовать. YAGNI это один из тех принципов без которых я не вижу смысла писать код, но фигня случается.
Mohave Mohave 22.10.202118:19 ответить ссылка 1.3
Эм. Звучит как лютейший говнокод, если честно. В таких случаях лучше убрать наследование и через интерфейс связывать сущности, имхо. А наследование использовать только там где оно действительно нужно.
Угу, и я его убрал, когда нашел. Это было очень очень старое легаси.
Mohave Mohave 22.10.202119:30 ответить ссылка 0.5
Нет. Вообще мимо. Тут охуенно ломаются принципы KISS и YAGNI. Этот программист - говно.
Васяны-прогеры дороже хороших программистов в разы, ибо не могут создать легкоподдерживаемую систему, а хуячат говнокод, из-за которого каждая маленькая задача превращается в пятидневный мозгоеб.
А КИСС это вообще не про то, блядь. "Проще" это не меньше кода и быстрые костыли. На счет васянов я согласен но и "быстрые хорошие прогеры" только для галер, где сдал проект и забыл.Клиент хочет поддержку и доп.фичи? Плоти много деняк и дай нам пол года перебрать треть проекта с нуля.
А как раз описанное в посте упростит, как я писал выше и масштабируемость, и возможности кастомизации, и передачу кода от команды к команде, и собственно работу командами. И не только для кода но и для железа. Пусть лишние выводы и структуры висят на плате и в прошивке соответственно. Есть не просят. А попросили тебя фичу прикрутить - не надо плату переразводить или АРХИТЕКТУРУ приложения менять. Не раз с этим сталкивался.
Чем тебе лишние абстракции не увеличение количества кода?
>Клиент хочет поддержку и доп.фичи? Плоти много деняк и дай нам пол года перебрать треть проекта с нуля.
Водопадопроблемы.

Лишний код - это просто лишний код. Понадобиться добавить абстракции, добавим, но задел на будущее оправдывает себя раз в 500 проектов.
Галероподходы а не водопадопроблемы. Им это выгоднее, чем когда фича делается за час после запроса младшим джуном.
Лишний код это байтик на ПЗУ, не более, это вот вообще не узкое горлышко что десктопов, что серверов. Да даже сраные микрики обмазываются флешью.
Хорошая архитектура не предусматривает лишний, неиспользуемый код, при этом неплохо расширяется. Хуевые у вас там программисты наверное.
Melatori Melatori 22.10.202118:48 ответить ссылка -1.0
Неверное. Пока продукты продаются а деньги идут, а сами прогеры получают выше рынка, пусть будут такими, чем "хорошими и эффективными" только вот не работает нихуя и для изменения простого надо лопатить всю систему, как я выше написал.
Микросервисы в вебе не просто так придумали. Юзайте модули и делите программы на них. Значительно увеличит масштабируемость и уменьшат время написания очередной фичи. Если надо лопатить всю систему - значит архитектура соснула хуйца глубоко заранее и дело не в лишних слоях абстракции.
Melatori Melatori 22.10.202119:19 ответить ссылка -0.9
С долгоживущей системой программисты чаще читатели, чем писатели. И если лишние слои кода превращают Хоббита во Властелин_Колец, выполняя только ту же фичу "сходить туда и обратно", при этом будучи никогда не используемыми и расширяемыми - это плохой код, как бы идеально он не был написан.
О, заебись пример, давай по нему объясню позицию, благодарю.
И там и там карлики ходили к горе.
Только в одном случае клиенту нужна была сказка, а в другом суровое фэнтези. Если бы архитектура проекта не была очень гибкой, маштабируемой и с "кучей лишнего" для сказки, то мы бы не увидели Властелина Колец. Ну или увидели бы но он бы не был связан с Хоббитом.

Профессор еще на этапе написания хоббита придумывал основы языка эльфов, пантеон богов, устройство мира, страны, мордор, саурона с морготом, барлогов, голума, кольцо вписал и т.д. Это как в посте - лишние телодвижения и усложнение на первый взгляд.
Сказка могла быть сама в себе, ну полурослики, ну путешествие, ну дракон и озерный город. Ну гномы и их королевство. Ну клинки нашли в пещере троллей. А при чем тут сцена в пещере, Смеагол, кольцо и загадки хз. Упрощайте епта.
твой пример сасат
это 2 отдельных произведения. следуя метафоре, 2 отдельных проекта - прототип и боевой проект. не было постепенного перепиливания одного в другое. был сбор кейсов и анализ, что понадобится в боевом проекте. когда поняли - тогда запилили с нуля. минимально необходимым для этого количеством кода.
villy villy 23.10.202100:00 ответить ссылка 0.1
Притянул пример за уши - придумал того, чего не было, чтобы получить нужный вывод.
Во-первых, профессор не продумывал на этапе Хоббита почти ничего из того, что ты написал. Поясню далее.
Во-вторых, он как профессор филологии и лингвист, построил проекты на куче опенсурсных либ: народном фольклоре и легендах. И "запас хода", в первую очередь, обеспечивался богатством этого окружения, а не архитектурой.
В-третьих, эльфийский язык - это его пет-проект с детства, основанный опять же на предыдущем пункте. Встроил пет-проект в свои новые проекты, потому что любимая фишка, а не какая-то спец.архитектура.
На моменте Хоббита не было не пантеона богов, ни мордора с сауроном, ни барлогов. Был просто зверек Голум с волшебным кольцом невидимкой. И обычные эльфийские клинки - как и обычная гномья мефриловая броня, без всякой предыстории, обычные спец.предметы от разных народов.
Все это, по сути, было заново перепилено и подано под новым соусом во Властелинах. Для читавших книги это очевидно.
elkolako elkolako 23.10.202101:43 ответить ссылка -0.4
Даа, конечно, просто зверек Голум который вообще нахуй в Хоббите не вперся и ничего не менял по сюжету. Артефактов невидимок можно великое множество придумать и без раздела с ним. Да и в итоге кольцо не то что бы в принципе поменяло сюжет.
>Для читавших книги это очевидно.
Читал все, от Хоббита, до описания географии и народов Арды и позднее изданных Кристофером черновиков, т.к. это один из моих любимых авторов и моя любимая вселенная. Для меня очевидно то, что я написал. Ну да ладно.
вообще всё зависит от ТЗ (которое обычно ужасного качества, потому что заказчик нихуя не может сформулировать свои хотелки)
А что сразу Человек и кремнийорганика? Чисто кремниевому АИ уже и в Пользователи нельзя? Сингулярность не за горами, припомнят ему эту неосмотрительность наши великолепные АИ лорды будущего
hippon hippon 22.10.202117:21 ответить ссылка -0.5
О, а вот и цитаты с баша в обертке твитов.
жизнь на основе кремния это теория
Нет,
это ф
сынок
антастика
Axil Axil 22.10.202117:36 ответить ссылка 7.4
А некоторых "пользователей" вообще нельзя отнести к классу "человек".
Mol-chan Mol-chan 22.10.202117:38 ответить ссылка 1.0
Баян 10-летней давности. https://bash.im/quote/412145
SpBerkut SpBerkut 22.10.202117:45 ответить ссылка 9.4
ну, всё, пиздец, удаляю пост...
DK64 DK64 22.10.202117:48 ответить ссылка -0.7
Я бы начинал с класса "вселеная".
Одно из правил программирования KISS - keep it simple, stupid.
Shuran Shuran 22.10.202122:22 ответить ссылка -1.2
а потом все оставшееся время будет искать объект который унаследовал сетевые терминальные гены.
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
I’m CTO, bitch	^
К нам сегодня вышел новый разработчик. Он два часа задумчиво смотрел в монитор. Потом просто встал и ушёл. Больше не берёт трубку и забанил меня в телеге.
Вы реально ему в первый рабочий день показали наш модуль для прайсинга? Там же всё на хранимых процедурах написано, а ещё кус
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор картинка с текстом разработка программист телеграм I'm CTO bitch код говнокод начальство увольнение

I’m CTO, bitch ^ К нам сегодня вышел новый разработчик. Он два часа задумчиво смотрел в монитор. Потом просто встал и ушёл. Больше не берёт трубку и забанил меня в телеге. Вы реально ему в первый рабочий день показали наш модуль для прайсинга? Там же всё на хранимых процедурах написано, а ещё кус
даныд
(а^с^пПка
Помните в Парке Юрского Периода одному программисту мало платили, тогда он решил подзаработать на стороне и случайно выпустил всех динозавров на волю?
Вот почему в 1Т большие зарплаты. На всякий случай...
00:19 • 27.07.2021 • Т\лШег 1Ъг ¡РИопе
подробнее»

it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор программисты twitter интернет

даныд (а^с^пПка Помните в Парке Юрского Периода одному программисту мало платили, тогда он решил подзаработать на стороне и случайно выпустил всех динозавров на волю? Вот почему в 1Т большие зарплаты. На всякий случай... 00:19 • 27.07.2021 • Т\лШег 1Ъг ¡РИопе
Болконский
@1_аз1:_о1с1_тап
Жена отправляет мужа-программиста в магазин: — Купи батон хлеба, если будут яйца — возьми десяток.
А муж так и не вернулся, ведь этого в запросе не было указано.
подробнее»

твиттер интернет приколы для даунов it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор вроде не боян жена отправляет мужа-программиста в магазин

Болконский @1_аз1:_о1с1_тап Жена отправляет мужа-программиста в магазин: — Купи батон хлеба, если будут яйца — возьми десяток. А муж так и не вернулся, ведь этого в запросе не было указано.
«Антон С++
@0хГе0с1
Программисты, вот вам секрет: если правильно написать, то всё работает.
Не благодарите.
подробнее»

твитер интернет программист совет it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор код программирование

«Антон С++ @0хГе0с1 Программисты, вот вам секрет: если правильно написать, то всё работает. Не благодарите.
Nikitoz9595 17 часов назад
У меня у одного от интро мурашки по коде бегут ?
Ответить . 11
Скрыть ответы л
Werner Warhater 16 часов назад +Nikitoz9595 Мурашки в коде это уже 'баги"
Ответить -19
•*Ä'* TehAwesome 15 часов назад
+Werner Warhater сделал мой вечер.
Ответить .
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор программирование ООП баги код program песочница удалённое

Nikitoz9595 17 часов назад У меня у одного от интро мурашки по коде бегут ? Ответить . 11 Скрыть ответы л Werner Warhater 16 часов назад +Nikitoz9595 Мурашки в коде это уже 'баги" Ответить -19 •*Ä'* TehAwesome 15 часов назад +Werner Warhater сделал мой вечер. Ответить .