Хочу входить в айти и по этому поводу взялся полистать какие нибудь говнокурсы по жабе. Ну чтобы с ебанутыми на одном языке разговаривать. И вот нашел такой кадр.
https://www.youtube.com/watch?v=6JxGYicUuzg Вместо кейса засунул куски кода в мапу - ну ебанутый. Особенно я расплескал всю подливу с главного аргумента о том что иначе метод получается длинноват и его сложно поддерживать. Страшные-ужасные методы в тысячи строк, но если ту же тысячу строк размазать тонюсеньким притонюсеньким слоем по сотне классов (каждый конечно же в своем файле) вот тогда да - заебись, хорошо зделали. Тем более что смысл то всех паттернов как правило чтобы динамическую дрисню ("положим в мапу и будем дергать через строчечки") реифицировать т.е. выписать явно какие у нас классы-методы, чтобы компилятор нам бы помогал.
Вот тут момент с мапой мне показался довольно любопытным. Не буду утверждать что это в принципе не верно, но - автар же говорит о том что специально использует LinkedHashMap потому что он сохраняет порядок добавленных элементов. Но при этом присваивает его переменной с типом Map который по видимому таких гарантий не дает. Т.е. теперь нам нужно знать динамический тип объекта чтобы получить неоходимые инварианты. Ну и нахуя спрашивается? Тут конечно же ебанутые скажут ну как же инкапсуляция. Швятой дух инкапсуляции, я молюсь ему три раза в день и ты то же молись. Но короче у меня есть сомнения.
Вроде в джава добавили же человеческие методы вроде File.ReadAllLines в шарпе, чтоб как белые люди работать с файлами. Все бы ничего, но просто особенно лально что он тут же говорит что призывает работать с новыми фишками языка и пишет такую вот хуйню. Правда я пытался нагуглить как там по человечески прочитать файл в жабе но выдается одна отборная индусня с ехал буфер через ридер.
Что блядь тестируют эти "тесты" что системные команды могут прочитать файл? что встроенные коллекции то оказывается работают не ебланят можно элемент добавить и даже удалить? Пиздарики короче.
https://www.youtube.com/watch?v=0xYo3AKpCvw Что это за over-engenered хуета? Неужели в хибернейте нет роллбека транзакции из коробки. Ладно тут могу допустить что не уловил мысль автара, но прям чую что какая то хуита полная.
>>1484671 Заранее я предвижу возможные возражения что мол это же учебный проект, а вот в боевом там вот огого, там все нормально. Но только это нихуя так не работает.
Как теперь входить в айти то епта. Когда я представлю как двадцатилетний синиор будет мне рассказывать о том что SOLID это вообще самое лучше что только может быть в мире Ну я конечно же буду ему поддакивать - Да да Арсентий Петрович конечно SOLID самый лучший - конечно же я напишу еще один "тест" assert 1+1==2 а то ведь вдруг завтра ткань мироздания разверзнется и 1+1 уже не будет равно 2 а будет равно 3 ну как говориться береженого бог бережет
Но есть же предел человеческому терпению и однажды ведь я не выдержу и заржу ему прямо в лицо.
Ну охуеть один только одинокий петух отписался. >>1484717 По делу то есть хоть что вскукарекнуть или как обычно?
Так что получается от того что у меня меньше лычек я должен молча обмазываться поносом вместе со всеми?
Пока диды молятся на швятую троицу из наследования-инкапсуляции-полиморфизма приходит новичок и изобретает React например. Вроде и все понимают что удобный инструмент а у дидов все разрывает пукан - как же так мы кладем разметку, код и стили вместе, как же единственная ответственность? Нет поду как лучше помолюсь швитым принципам ООП на всякий случай.
Вообще всегда потешно видеть как разрывают устои дидов. Вот еще пример - методы в интерфейсах. НО КАК ЖЕ вскрикивают диды НАСЛЕДОВАНИЕ ИНКАПСУЛЯЦИЯ ПОЛИМОРФИЗМ! НАСЛЕДОВАНИЕ ИНКАПСУЛЯЦИЯ ПОЛИМОРФИЗМ! НАСЛЕДОВАНИЕ ИНКАПСУЛЯЦИЯ ПОЛИМОРФИЗМ! ОТСТУПНИКИ! НАСЛЕДОВАНИЕ ИНКАПСУЛЯЦИЯ ПОЛИМОРФИЗМ! Особенно потешно что подавляющее число таких "дидов" это двадцатилетние синьеры осилившие то самое ооп и еще какой нибудь говно-солид не давнее чем с полгода назад.
>>1484897 > Ну охуеть один только одинокий петух отписался. Ну так ты высрал огромную и непонятную простыню, что аж лень вникать всем.
Что тебе не нравится: Что существуют говнокурсы? Да, существуют, прими этот факт и иди дальше. И не похож ты на вкатывальщика, так что непонятно, почему ты не можешь решить свои вопросы сам.
>>1484920 >Что тебе не нравится: Что существуют говнокурсы? Да, существуют, прими этот факт и иди дальше. >>Заранее я предвижу возможные возражения что мол это же учебный проект, а вот в боевом там вот огого, там все нормально. Но только это нихуя так не работает. Все эти курсы кмк выжимка из индустрии, самый ее сок. Соответственно мне хотелось бы либо чтобы меня ткнули в чем я конкретно не прав, ну или наоборот.
>И не похож ты на вкатывальщика, так что непонятно, почему ты не можешь решить свои вопросы сам. Ну заебись теперь.
>>1484930 Все так, борщехлебы – вечные вкатывальщики, которые никогда не работали, в том числе с другими людьми. Поэтому они не понимают очевидных вещей, например, зачем писать тесты или разбивать метод в тысячу строк.
>>1484897 чушь какая-то в реакте есть и полиморфизм (особенно с ридаксом) и инкапсуляция по компонентам и наследование (самое необязательное, оно есть классическом реакте с классами, там все компоненты унаследованы от класса компонент) просто джаваскрипт не джава и там все это выглядит немного по другому и с большим привкусом функциональщины
то что разметка код и стили вместе - это не уникально для реакта, так раньше сплошь и рядом писали, вон даже калькуяторошизик который ненавидит фреймворки так писал свой эмулятор мк-61, к ооп вообще не имеет отношения, это чисто браузерные фишки. вначале предпочитали использовать стайл и скрипт теги в штмл, потом начали активно манипулировать дом деревом и чистым штмл из джаваскрипта, потом сделали фреймворки для обоих подходов
>>1484897 >Ну охуеть один только одинокий петух отписался. Да хули тебе писать, все так. Не понятно, хули ты столько сил потратил на сраные видео-курсы. Пора бы начать книжки читать, раз такой умный у мамы.
Жаба это вообще беда, корпоративные дебилы имитируют бурную деятельность.
>>1484897 >как же так мы кладем разметку, код и стили вместе 20 лет назад уже все так делали и заебались. Сейчас новое поколение подросло, со временем и оно заебется.
>>1484950 >Поэтому они не понимают очевидных вещей, например, зачем писать тесты или разбивать метод в тысячу строк. Кажется даже до терминальных дебичей начала доходить золотое правило - лучше никакой абстракции чем хуевая абстракция может еще пяток-десяток лет и дойдет что то же применимо и к тестам >>1485048 Ну если ты дибилки кусок то конечно тебе и видится одна только чушь, а если бы ты попытался хотя бы пару извилин напрячь то может даже понял что то о чем я пишу никак не противоречит тому что ты написал. Для самых тупых - потому что "чушь" как раз описывается с позиции дидов, не моей. Ну вот один такой например >>1485070 Конечно же почему заебались проанализировать для тебя слишком сложновато и понять почему эти факторы уже не применимы. Такое то программирование на заученных рефлексах. То что все это уже двадцать лет как не применимо - это конечно похуй. >>1485052 В чем конкретно то не прав? А впрочем наверняка еще одно ебобо не вдупляющее вообще кто о чем. >>1485054 >Пора бы начать книжки читать В смысле Святые Писания? Это еще одна презабавная картина мира дидов. Предвижу фееричное разрывание пуканов но по большому счету чтение толмудов ни имеет уже давно никакого смысла и держится как явление исключительно на костности мышления дидов. Из книги как правило можно получить только треть информации потратив в три раза больше времени, да еще она и будет наверняка устаревшей.
>>1485304 >Предвижу фееричное разрывание пуканов но по большому счету чтение толмудов ни имеет уже давно никакого смысла и держится как явление исключительно на костности мышления дидов. Из книги как правило можно получить только треть информации потратив в три раза больше времени, да еще она и будет наверняка устаревшей. Я читаю примерно в 3 раза быстрее, чем проговаривается информация при 2x скорости на ютубе. А особенно скорость выше, когда ты уже в теме и можешь пропускать целые параграфы. То есть чем больший ты профессионал, тем бесполезнее для тебя видео, потому что там 80% инфы будет нескипаемым говном. Ну и профессионал скорее напишет статью, потому что это банально быстрее, чем писать сценарий и наговаривать его.
Двачую, особенно горит с ОБЯЗАННОСТИ писать геттеры и сеттеры на каждый пук, ведь ВДРУГ СЛУЧИТЬСЯ ЧТО. И ладно бы было как в шарпе, два слова, так ты блядь пишешь лишние два метода. В результате, как кто-то подметил выше, код превращается в имитацию бурной деятельности для офисных крыс.
>>1485318 >статью Но не книгу. >Я читаю примерно в 3 раза быстрее, чем проговаривается информация при 2x скорости на ютубе. Ну рад за тебя. Есть только подозрение что пиздишь ты еще быстрее или читаешь какую нибудь нелепую хуиту вроде высеров Боба про солид. >А особенно скорость выше, когда ты уже в теме и можешь пропускать целые параграфы. Мне всегда казалась странной такая посылка что > - ну да конечно же в любой книге овер 9000 хуиты вы просто проскипайте ее глазками и все заебок Ну как то не получается у меня так. Смириться с тем что вот тут десять страниц автор страдал графоманией и писал хуиту так что их можно смело скипать. С таким подходом мне вообще не хочется браться за чтение. Внимание вопрос - что мешает тот же подход применить к видео, там как бы тоже прокрутка есть? По моим наблюдениям скорее в видео дадут краткую выжимку все необходимой информации за пару минут, которая будет в толмуде на 500 страниц разбавлена водицей как следует. (В картине мира дидов похоже все наоборот, на да ладненько)
Алсо очень любопытный на мой взгляд аспект, можно сказать - книга - это рассказ о том что ты делаешь, а видео - демонстрация. Потому обычное явление когда в описание половина критических шагов куда то проебалась нахуй, а с видео такое не пройдет (ну или нужно как минимум для этого постараться).
>>1485389 >Но не книгу. И книгу тоже. >Ну рад за тебя. Есть только подозрение что пиздишь ты еще быстрее или читаешь какую нибудь нелепую хуиту вроде высеров Боба про солид. Верный путь стать шизиком на анонимных бордах - верить в собственную охуенность и никчемность собеседника. >Ну как то не получается у меня так. Ну так учись, а не пизди про дидов. Чтение - это навык. Он прокачивается. Если ты не читаешь, ты его не прокачаешь. Все просто. >Смириться с тем что вот тут десять страниц автор страдал графоманией и писал хуиту так что их можно смело скипать. При чем тут графомания. Когда ты знаешь много (например, потратил на программирование больше 15000 часов), большая часть инфы, полезной ньюфагам, тебе будет давно известна. >Внимание вопрос - что мешает тот же подход применить к видео, там как бы тоже прокрутка есть? При чтении ты видешь поле текста, поиск идет быстрее, кратковременная память не тратится на то, чтобы хранить в голове структуру, поэтому проще видеть, например, пункты и силлогизмы. >По моим наблюдениям скорее в видео дадут краткую выжимку все необходимой информации за пару минут Кто даст? Тупой Васян, который прочитал книгу, написанную профессионалом, и пересказал тебе. Это испорченный телефон, и качество этой выжимки ты не знаешь. Профессионал же не будет тебе записывать ебучий скринкаст, не потому что он ДЕД, а потому что написать статью тупо быстрее, чем писать сценарий для скринкаста. Скринкасты без сценариев же полное бесцельное говно. > Потому обычное явление когда в описание половина критических шагов куда то проебалась нахуй, а с видео такое не пройдет (ну или нужно как минимум для этого постараться). Ты, похоже, говоришь о туториалах, а это в принципе гадость, разжижающая мозг, в любом формате, что в тексте, что в видео. На туториалах образованным человеком не станешь.
>>1485377 >ты блядь пишешь лишние два метода ТЫ БЛЯДЬ ПИШЕШЬ? ТЫ? ты в ноутпаде, что ли, пишешь свой говнокод? геттеры и сеттеры любая иде хуярит уже сто лет за ТЕБЯ БЛЯДЬ а для особо ленивых умственно отсталых есть всякие ломбоки и прочая хуета
>>1484667 > при этом присваивает его переменной с типом Map который по видимому таких гарантий не дает. Т.е. теперь нам нужно знать динамический тип объекта чтобы получить неоходимые инварианты.
>>1485412 О вот это прямое попадание прямо в солид-дебича, видно как сраку то подразворотило.
Ну типикл аргумент дидов, я их тыкаю в конкретную проблему - диды мне отвечают - ну надо просто учиться. Я объясняю что в 21 веке вся инфа в туториалах и статьях, а в книгах одна только графомания и водичка - диды мне объясняют что надо учиться читать. Я показываю говнотесты assert 1+1==2 и говорю об их полной бессмысленности, отрицательной ценности - диды мне отвечают учись писать тесты. Ну ладно, тогда будем учиться. Смотрим как писать тесты, тааакк.. давайте напишем assert 1+1==2 Финиш нахуй
Вопрос к "профессионалам" - какие охуительные способности мне нужно развить чтобы среди нескольких страниц водички найти одно предложение в котором упоминается критически важное поведение? Вопрос скорее риторический.
>При чтении ты видешь поле текста, поиск идет быстрее, кратковременная память не тратится на то, чтобы хранить в голове структуру, поэтому проще видеть, например, пункты и силлогизмы. О умных слов то понакидал думаешь никто не увидит что ты обосрался. Как ты логическую структуру то установишь между чем либо не сохраняя это в кратковременную память. Хуйни то не неси.
>написать статью тупо быстрее >На туториалах образованным человеком не станешь. Тааак обожжи ебана... Так что тогда остается - толмуды по 1000 страниц никак не подходят - ведь их не напишешь быстро (твоя же логика братишка). Туториалы идут мимо. Хм.. Ну может только научные статьи еще, но это отдельная тема.
Тем временем в сегодняшних новостях даже отбитые тестобляди начинают понемногу прозревать что их кормили дерьмом https://henrikwarne.com/2019/09/29/when-tdd-is-not-a-good-fit/ Смешно что тестобляди даже термин специальные придумали - spike - значит можно закрыться в комнате и пока никто не видит отложить нелепую tdd поеботину мешающую разработке. А когда дело сделано можно как ни в чем не бывало обмазываться assert 1+1==2.
>>1485377 Поставил я как то говнокурсы для "новичков" фоном, там был такой прикол вопрос из зала - а нахуя вообще эти сеттеры нужны ебобо объясняет - ну как же (наследование, инкапсуляция, полиморфизм) ну вот например я могу проверить чтобы значение было не меньше нуля, или залогировать, или вообще достать значение из базы тот же ебобо через 20 минут - ну только никогда не обращайтесь из геттера к базе, воот был у меня случай ... бился головой, выл как животное, все волосы вырвал нахуй .. короче никогда так не делайте.
>ведь ВДРУГ СЛУЧИТЬСЯ ЧТО Ведь тогда же вообще ебать пиздец нужно будет ПЕРЕКОМПИЛИРОВАТЬ да. И если попробовать копать паттерны то во многом они в это как раз упираются. У дидов старой закалки случилась анальная травма небывалых масштабов с проектов компилирующихся часами и они на этом фоне напридумывали неведомых трюкачеств. Например буду я хранить конфигурацию в разухабистом xml'е и похуй что разобраться в нем вообще невозможно и в коде все это было бы в сто раз проще - главное же можно все гибко настраивать и даже без - тут будет страшно - пере-ком-пи-ля-ции. Тут я должен отдать дидам должное - проекты компилирующиеся часами это не что то из разряда неведомых страшилок, а вполне с таким можно столкнуться (если работать с криворукими ебобо). Но плясать от этого всю архитектуру, ну хуй знает. Я бы время компиляции все таки в конец списка скорее внес; а если что решал бы его какой нибудь многопоточной еба билд фермой.
>>1485471 >О вот это прямое попадание прямо в солид-дебича, видно как сраку то подразворотило. Хочешь оказаться мгновенным шизиком в глазах собеседника - сделай какое-то необоснованное предположение о его личности с видом О БЛЯДЬ ПОПАЛСЯ. Какой нахуй солид, что ты несешь вообще, поехавший. Я хуесосил ООП в кодаче 10 лет назад, и я даже боюсь предположить, что ты делал в это время. >Ну типикл аргумент дидов, я их тыкаю в конкретную проблему - диды мне отвечают - ну надо просто учиться. С хуя ли - просто? Если у тебя дислексия и трудности с чтением, тебе это будет сложно. Но и программистом ты хорошим не станешь. >Я показываю говнотесты assert 1+1==2 и говорю об их полной бессмысленности, отрицательной ценности - диды мне отвечают учись писать тесты. Например, у тебя большие проблемы с контекстом. Мой первый пост тебе итт - >>1485054 (что понятно из поста), и дальше я НИ РАЗУ не написал о полезности таких ассертов. Но ты, будучи дислексичной манькой, не понимаешь этого и общаешься со мной, как с каким-то абстрактным анонимусом. >Вопрос к "профессионалам" - какие охуительные способности мне нужно развить чтобы среди нескольких страниц водички найти одно предложение в котором упоминается критически важное поведение? Ты ньюфаг и у тебя водички в книжках не будет. То, что ты считаешь водичкой, является просто неумением вычленить мыслительный процесс человека, которого ты читаешь. >О умных слов то понакидал думаешь никто не увидит что ты обосрался. Как ты логическую структуру то установишь между чем либо не сохраняя это в кратковременную память. Хуйни то не неси. Визуально. >Тааак обожжи ебана... Так что тогда остается - толмуды по 1000 страниц никак не подходят - ведь их не напишешь быстро (твоя же логика братишка) И вот она твоя проблема: ты не можешь в логику других людей. Даже не знаю, стоит ли подобному агрессивному дауну что-то разжевывать. Ты моей экспертизы точно не заслужил, живи со своим Даннингом-Крюгером дальше.
>>1484660 (OP) Оба кода — говно. И выглядят как попытки фронтендера перенести архитектуру Redux на Java. Причем не зная ни Redux, ни Java. Что характерно примеры нормального типизированного кода на TypeScript + Redux давно существуют.
Глиномесы-архитекторы заебали. Без предметной области всё это крудошлепство нихуя не стоит. Вот это вот всё: удобный дизайн, ой а вот это я не понял значит говнокод, плохая архитектура. В конечном итоге всё сводится к вкуриванию доков потому что очередной дизайнер подумал, что именно он знает как лучше.
> пришел ныть о говнокурсах, ничего не понятно ряяя > начал защищать их, когда предложили книг навернуть Лол, это ваше поколение ютуба - отборные дегенераты!
>>1485523 >Хочешь оказаться мгновенным шизиком в глазах собеседника Ты это уже писал ебанашка, ты реально что ли дед со старческим слабоумием который все время бубнит пару фраз по кругу - всем похуй на твои глаза.
>С хуя ли - просто? Посыл там в другом был, но видимо для тебя сложновато, поэтому ты увидел одно знакомое слово и за него зацепился чтобы высраться еще каким то бредом
>общаешься со мной, как с каким-то абстрактным анонимусом. Потому что могу, что теперь будешь с этим делать?
>Ты ньюфаг и у тебя Просто иди нахуй чмо
>Как ты логическую структуру то установишь между чем либо не сохраняя это в кратковременную память. Хуйни то не неси. >Визуально. Ой бляя..
>ты не можешь в логику других людей Только у ебобо у которых ее нет.
>Ты моей экспертизы точно не заслужил, живи со своим Даннингом-Крюгером дальше. Да все правильно, можешь съебать ко всем хуям. Можешь не отписываться.
>>1485583 Архитектура это неявная (или явная) типизация. Алтимативная динамическая дрисня в которой бесформенные блобы хуярят друг другу мессаджи структура которых не известна даже Аллаху = отсутствие архитектуры. Пруф ми ронг.
>>1484660 (OP) Властолюбивые идеалисты придумывают все это говно ради пеара и денег. Если они не будут высерать по новой архитектуре и принципу раз в год, они утратят свое влияние на неокрепшие умы ньюфагов, будут забыты и начнут покрываться плесенью в какой-нибудь шаражке "Рога и копыта", где пишут на джаве.
Абстрактный синглтон базы данных. Синглтон mysql Фабрика баз данных Регистри, хранящая фабрику баз данных Абстрактный строитель вывода Строитель вывода из SQL Абстрактный наблюдатель базы Наблюдатель за mysql Посредник, принимающий сообщения от наблюдателя Абстрактная стратегия выбора баз данных Стратегия выбора Mysql Абстрактный декоратор стратегии выбора базы данных Фабрика стратегий выбора баз данных Посетитель, запускаемый посредником при получении сообщения от наблюдателя Заместитель, принимающий посетителя и решающий, делегировать ли команду вывода виду Абстрактный вид Вид CLI Абстрактная фабрика видов Фабрика видов, возвращающая инстансы видов CLI Прототип CLI-вида, используемый CLI-фабрикой Абстрактная модель Абстрактный ORM ORM для Mysql Модель, работающая с MySql-ORM сущностями Абстрактная активная запись Активная запись для mysql-ORM моделей Абстрактный синглтон хранения моделей Синглтон, хранящий активные записи Абстрактный синглтон хранения видов Синглтон, хранящий CLI-виды Абстрактное мементо Мементо активной записи Mysql-ORM модели Абстрактная команда SQL-команда Таким образом довольно просто мы получаем быстрое и гибкое приложение, пригодное для дальнейшего расширения функционала и рефакторинга.
>>1485437 Визуальный шум у тебя в штанах. Вроде, там что-то должно бы было быть, но там только визуальный шум. Хотя бы не выглядит уродливо, как у других инвалидов, и за то спасибо скажи.
>>1485476 >Ведь тогда же вообще ебать пиздец нужно будет ПЕРЕКОМПИЛИРОВАТЬ да. За километр видно хуеплета, который не писал ничего сложнее laba4. И ему в голову не приходит, что не ему самому придется перекомпилить (хотя, на самом деле, не перекомпилить, а перекодить сперва) свой говнокод, а другим людям, имеющим несчастье работать с его говнокодом, придется страдать из-за того, что тупому уебку было сложно нажать две кнопки, чтобы геттеры и сеттеры сгенерить. Ну, оооок, расскажи еще про свое видение настоящего программирования. Про билд-фермы, которые тебе снятся во влажных снах, и т. д.
>>1484660 (OP) Второй код, очевидно, лучше. За счет очевидной же расширяемости без необходимости корежить именно этот код.
Ты охуенно выглядишь, начав с >Хочу входить в айти и тут же рассказав, что все кругом мудаки, один ты умный. Ну, как охуенно ты выглядишь, как Грета Тунберг примерно.
>>1485814 >За счет очевидной же расширяемости без необходимости корежить именно этот код. То что его надо будет изменять в другом месте - это уже неподъемная концепция для дибилки. >>1485814>>1484925 >Ну, как охуенно ты выглядишь, как Грета Тунберг примерно. Лол дебичи на одной волне
>>1485812 >придется страдать Ебать какой ужас вообще. Лучше конечно когда такой вот обмудок захуячет в геттер обращение в базу и внезапненько все ляжет без всякой видимой причины вообще в другом месте. Вот это заебись.
Нам нужны строгие типы, строгие операторы, строгие библиотеки, строгие конпиляторы, строгий национальный лидер и строгие ректальные досмотры по субботам, иначе бардак будет. Нет конпиляторов — нет программирования. Должна быть одна главная функция. Деды конпиляли и нам завещали. Всего один тип для числа — это и есть ваша хвалёная свобода? Сегодня от синглтонов отказываешься, а завтра корпоративную тайну продашь. Деды конпиляли, бабки типы указали. Если не строгий конпилятор, то кто? Раньше никаких интерпретаторов не было и люди нормально жили. Сегодня от битовых флагов отказываешься, а завтра сам память вычищать не будешь? Абстрактные фабрики синглтонов стоят, а тебе лишь бы ретёрн впихнуть куда-угодно. Хочешь в динамической среде выполнять, а ведь наша платформа дала тебе всё. Свойства объекта отовсюду доступны, стыдоба, надо бы такое запретить конечно. Не конпилял — не программист. Каждый программист должен отконпилять, иначе памятью управлять не сможет и джуна после себя не оставит. Ваша динамика медленно работает, а если бы распределил правильный человек — всё бы быстро было. Ну и что, что память течёт, у всех течёт. Абстракция, самоинкапсуляция, народность — так победим. Нечего тут и думать, умные люди всё понимают. Когда докомпиляем, тогда и посмотрим. Объект с объектом складываете, это от того, что в вас крепкого стержня нет. Массив с числом складывать, в жопу выебал бы за такое. Говно какое-то пишут, пидарасы. Всех пидарасов прям в жопу выебал бы, прям по говну
>>1485583 Типы созданы в первую очередь для вменяемого описания структур данных приложения. Напоминаю, что структуры данных приложения — это основа его архитектуры. Они служат для возможности легко вносить в приложение изменения, не боясь неожиданных проблем в рантайме. Типизированные структуры данных служат для создания надежных и легко поддерживаемых контрактов в приложении. Они помогают понять возможные состояния приложения сразу глядя на их определение.
Показатель хорошей архитектуры — когда глядя только на имя модуля и его классов/интерфейсов/перечислений (и их аналогов для функциональных языков, вроде классов типов, алгебраических сумм типов) я могу в четко сказать для чего используется модуль и примерно как он устроен. И когда глядя только на имя класса и его методов (или заголовков функций и полей структур) я могу точно сказать, как этот класс работает.
Если для понимания работы программы нужно смотреть тело методов/функций — архитектура говно. Внутрь метода нужно лезть ровно с одной целью — внесение в него изменений. Внутрь класса — с целью внесения в него изменений.
>>1485625 Весеннее обострение у даунов. Наблюдаем, как истеричный ОП трещит по швам, когда его высеры разбирают по частями и разбивают по фактам. Тяжело тебе, наверное, быть такой эмоциональной истеричкой, способной только на краткофременный бурный аффект на анонимной борде и тотально не способной в логику.
>>1486053 >Весеннее обострение у даунов >Весеннее обострение >01/10/19 Лалка >обострение у даунов >обострение >у даунов Каким нужно быть отбитым ебобо чтобы в трех словах два раза на ноль поделить. Нахуй ты взялся отвечать и дальше погружаться в говно, все и так уже поняли что ты недееспособное животное.
>>1486038 А еще это проблема структурирования. А еще проблема правильного переиспользования. А еще проблема поддержания документации в актуальном состоянии. А еще на программах длиннее laba2 встает вопрос рефакторига и гарантий того, что при обновлении устаревшей библиотеки у тебя не упадет программа с undefined is not an object в редко используемом модуле.
>>1486038 >>1486186 Да есть такая тема - флагман ебанашек дядюшка Боб заронил в неокрепшие умы что главное мы просто подберем для всего правильные названия и наш код будет понятным и читаться легко как книга. Только никакие изъебства в наименовании не дадут гарантии есть ли хотя бы сайд-эффекты внутри метода. НИКОГДА из одного только названия нельзя вывести всю инфу о том что внутри. Это чистейшая утопия. Но ебанашки все продолжают срать под себя.
>>1486315 >НИКОГДА из одного только названия нельзя вывести всю инфу о том что внутри. Это чистейшая утопия Если ты дебил с методыми по тысячу строк, то так и есть лол
>>1486322 >рефакторинга, который без тестов как раз невозможен Ну это пиздеж конечно. Так то любому ясно что твои assert 1+1==2 вообще ничего не помогут, только будешь эту нелепую поебень переписывать потому что она все время падает. >>1486342 >Если ты дебил с методыми по тысячу строк, то так и есть лол Когда ж до вас дибилок дойдет что рассирая код по сотням однострочных методов и десяткам файлов в делаете его только хуже.
>>1486394 >только будешь эту нелепую поебень переписывать потому что она все время падает. Это самое первое, о чем говорит любой человек, учащий тестированию. Если твои тесты падают от изменений в структуре кода, то это хуевые тесты. Ты даже азы не осилил, а уже мнение имеешь. >что рассирая код по сотням однострочных методов и десяткам файлов А, ясно, ты дурачок.
>>1486186 >А еще на программах длиннее laba2 Этим уебкам такая перспектива не грозит, поэтому они не боятся ПЕРЕКОМПИЛИРОВАТЬ. Они осилили эксепшены зато. Скоро, глядишь, курсач по ним сдадут.
>>1486494 Чукча не читатель, чукча писатель, он ясно дал понять, что не дед, чтобы читать что-то. Вот если найдется кто-нибудь, кто зачитает его высеры в формате видео на ютубе, а лучше выжимку из высеров, самую суть.
>>1486433 Лучше ты сохрани через пяток лет может прозреешь и когда тебе будут очередную порцию говна в рот двадцатилетние синьеры заливать вспоминать какую годноту на двачах видел
>>1486439 Настоящий Шотландец подтянулся, ясненько. Если все говнотесты беспросветная хуета это не значит что методология хуевая, это конечно же значит что ты просто не постиг еще дзена. Знаем, плавали.
Рассмотрим такой мысленный эксперимент. Ты как настоящее ебобо написал однострочных методов и конечно же по юнит "тесту" на каждый как минимум. Твой код увидел кто то не на столько ебнутый и надавал тебе по ебалу. Ты начал осозновать что что то пошло не так и решил объединить половину методов чтобы они стали двухстрочными. Половина твоих тестов теперь сразу идет нахуй потому что тупо не можешь вызвать метод которого блядь больше нет. Вот так "тесты" "необходимы" для рефакторинга (т.е. только для ебанутых)
Я каэш извиняюсь, но ОП этого треда выглядит так, будто реально сидит на колёсах и вдруг про них забыл. Ох, Адольф Алоизыч, что ж ты своё правое дело не закончил-то...
>>1486659 >Ты как настоящее ебобо написал однострочных методов Однострочные методы почти всегда приватные, потому что это просто куски логики, вынесенные из основного(публичного) API-метода для лучшей читабельности внутри этого основного метода. Хороший тест симулирует консьюмера данного API и поэтому очевидно дергает только публичные методы, так что все остальное я могу менять как хочу. И эти однострочники не возникают просто так, на начальном этапе вся реализация делается как можно проще, одним куском, а выносится/рефакторится уже потом, если читабельность хромает(а она начинает хромать очень быстро) и/или требуется реюзабельность. И TDD-тесты этому отлично помогают. Какую еще базовую вещь тебе объяснить? Спрашивай, не стесняйся, может через полгода пойдешь джуниором такими темпами.
>>1486735 Приятно видеть что есть хоть кто способный не только бзднуть под себя. Ну что ж >Спрашивай, не стесняйся
1 Покажи реальные премеры не-говнотестов, а еще лучше примеры такого рефакторинга (с сорцами), а еще лучше кулстори когда говнотесты оказались хоть чем либо полезны.
2 Что ты подразумеваешь под читаемостью (примеры) и как твоя однострочная параша петушащая стейт ее улучшает. Ты ведь не тот особый сорт дебича похлебавший понос дяди Боба и выносящий кусок кода только чтобы дать ему название?
>>1486804 >Покажи реальные премеры Но ведь тебе не нужны примеры, да еще и с сорцами, потому что ты даже не обозначил языки, на которых работал и которые можешь комфортно читать. >а еще лучше кулстори https://www.youtube.com/watch?v=EZ05e7EMOLM
>>1486992 >Это может сделать рантайм. Мой код чистый как твоя мама до встречи со мной Ок, то есть чтение из сетевого сокета то же чистый код, потому что данные возвращает рантайм и вообще ОС, а сам-то код чистый?
>>1486946 Звиняй но в этом треде я бы хотел сосредоточиться на хуесосинге ущербных архитектур солид-ебанашек и тесто-дурачков, так что объяснять мимо-дурачку что такой сайд-эффекты мне не по пути.
>>1486969 >>Покажи реальные премеры >Но ведь тебе не нужны примеры Пиздос. Полный. Нахуй. Просто маневры топового уровня. >потому что ты даже не обозначил языки охуееееть... нда. Да давай хоть на любом, маневренный ты мой.
>TDD, Where Did It All Go Wrong >It went wrong at the same point as everything else, when the professionals got ahold of it and wrote books on the subject, without ever actually doing it. Ух бля жиза, а еще когда дебичи радостно наворачивают это говно и кидаются на нормальных людей со свеже заученными мантрами которых даже не понимают
Похоже тесто-дурачки высрали себе новую догму Тестировать нужно только публичное API Хотя казалось бы если задуматься хоть на секунду из каких хуев это может взяться
Но хорошо дополняет ряд всякой обоссаного говна вроде -стопроцентное покрытие -тесты вперед -red-green-refactor -однострочные методы
Особенно потешно что раньше дибилки горели с длинных методов и разбивали их на однострочники чтобы их "тестировать", а теперь вон оно оказывается как. Это уже шиза какая то.
Может тут немного моей вины но мне казалось что под "кулстори про тесты" очевидно подразумевается пример по схеме - внесли изменение - тест упал - если бы не было теста то был бы баг который невозможно отловить а не дед бздящий на сцене целый час вообще ни о чем (Мне правда упорно кажется что это малолетний долбоеб с накладной бородой)
Смешно что целых двадцать минут он расписывает про "говнотесты", но Стокгольмский синдром берет свое. Нахуй это чмо тратит мое время? 33:30 Ой бля цитатки из святых писаний. Где реальные блядь примеры кода? свои швятые писание пусть себе в сраку засунет 43:20 ПИШИТЕ ГОВНОКОД Смачный высер.
>>1487239 >Тогда лучшая программа - так, которая не написана. Лучшая парадигма - не писать код. Это давно известно. Если ты смог вместо написания огромной программы решить все 3 командами в шелле, ты молодец.
>>1487586 >Может тут немного моей вины но мне казалось что под "кулстори про тесты" очевидно подразумевается пример по схеме >- внесли изменение >- тест упал >- если бы не было теста то был бы баг который невозможно отловить Да постоянно такое, когда они есть. Вася пофиксил баг, написал тест, проверяющий, что его нет, Петя криво смержил ветки и воспроизвел баг, но тест упал, Петя понял, что смержил криво - и все довольны. Аналогично с фичей. Вася написал фичу, Петя ее сломал. Нет теста - бида-бида. А в большом проекте 99% тасков это либо баг, либо фича (1% - это когда один человек долго пишет большой модуль с кучей взаимозависимых фич один).
В динамикодристне так вообще тесты тупо заменяют гарантии системы типов, у тебя программа может упасть в продакшене из-за банальной опечатки в имени метода, а тесты со 100% покрытием защищают хотя бы от этого.
>>1487586 >Похоже тесто-дурачки высрали себе новую догму Основные идеи ТДД и тестирования в целом не менялись уже лет 30, не знаю, кто там у тебя что высрал, пока высираешь тут только ты какую-то бессвязную хуйню из своего воспаленного мозга и споришь со своей же хуйней. Но что с шизика взять.
>>1487602 Еще и гиту тут приплел. Конкретные-Примеры-Кода давай. Алсо как часто это у вас происходит >криво смержил >Вася написал фичу, Петя ее сломал. Нет не могу себе представить, давай конкретный пример. Пока что аргументы уровня - вот я попрыгаю жопой по клавиатуре и все тесты у меня сломаются. Полный бред.
>>1487607 >коко Дед с видео с тобой не согласен. Затейники постоянно высерают что нибудь новенькое.
>>1485476 https://martinfowler.com/bliki/UniformAccessPrinciple.html Несмотря на то, что это фундаментальная особенность объектно-ориентированного программирования (UniformAccessPrinciple), на удивление мало языков OO действительно следовать за ним. Большинство языков имитации условно, поэтому привычка использовать аксессор, такие как getAge() в Java и C ++ программ.
>>1490147 >я вот всегда говорил и буду говорить, что конкуренции в АйТи нету!!! К чему это блядь вообще?
>>1490589 Глянул статью, тем более она совсем маленькая (и выбран самый нерелевантный ее кусок, почему то (видимо потому что процитировавший ее чудик вообще не вдупляет что происходит)). Конечно на малолетнего ебобо для которого Фаулер святой спустившийся с небес чтобы рассказать простым смертным какой должна быть архитектура приложений она может произвести какое то впечатление. Если же воспринимать Фаулера как хуеплета на подсосе у ебанашки Боба, распиарившего себя своей неуемной графоманией то она уже не так впечатляет и легко видеть что аргументы его уже были разобраны и обоссаны в этом же треде. >This gives the person object the flexibility to change between the two easily Что это вообще значит если подумать? Смотри мою историю про пере-ком-пиля-цию. Выгоды никакой. Взамен же получаем >One argument against uniform access is that data access is fast while computation can be slow но на самом деле дело тут совсем не в скорости (кроме случаев когда оно действительно в скорости) а в том что мы заменяем прозрачную value семантику на возможность получить в безобидном сеттере вызовы к базе и прочие жонглирования хуями.
По поводу цитаты так же добавлю что более менее хорошо зделали в шарпе и руби со свойствами и хотя бы не приходится срать вверх ногами. Но основной претензии это не отменяет.
>>1491387 Над Фаулером стебутся только в том плане, что он пишет совсем простые и тривиальные вещи. Но это не твой случай. Ты всерьез с ним споришь, лол, оказывается, инкапсуляция не нужна, давайте торчать стейтом наружу.
Дело не в перекомпиляции. Дело в локальности и тривиальности патчей. Когда у тебя патч меняет 1000 файлов методом поиска-замены - это плохо. Тяжело делать ревью, возрастающие риски ручного разруливания мердж-конфликта, git blame выдает мусор. Если внешний API не меняется, а функциональность можно поменять локальным патчем в нескольких местах - это хорошо.
У тебя совсем нет опыта разработки, а когда тебе про этот опыт пишут - "Нет не могу себе представить, давай конкретный пример". Хуй соси, ньюфажек. Подрастешь - поймешь.
>>1491434 Ебаный гита-дибил, подвид инструменто-дибила, опять ты свою ебаную гиту притащил. Ты может еще из тех ебнутых что требуют каждую нетривиальную инструкцию писать в отдельной строчке потому что иначе брейкпоинт не поставить. Рассказывай с каких хуев ты там менял 1000 файлов и я объясню тебе почему ты ебанутый. Только ведь наверняка же такого на самом деле не было, правда? Поэтому я и спрашиваю конкретные примеры, потому что на них сразу видно когда человек знает о чем говорит или как в данном случае брызжет непрожеванным говном высосанным из известного ануса. Люди же с реальным опытом (отказа от get/set параши) рассказывают что такие случаи за многолетнюю историю разработки проекта единичные и ни о каких 1000 файлов само собой речи не идет.
>>1492126 >Ебаный гита-дибил, подвид инструменто-дибила, опять ты свою ебаную гиту притащил Это твои проблемы, что у тебя нет опыта командной разработки >Ты может еще из тех ебнутых что требуют каждую нетривиальную инструкцию писать в отдельной строчке потому что иначе брейкпоинт не поставить. Я не пользуюсь отладчиком, но отдельные строчки удобны еще и тем, что так диффы смотреть удобнее. Вообще удобнее газетных колонок никто еще ничего не придумал, поэтому любители строк-колбас являются туповатыми аутистами. >Рассказывай с каких хуев ты там менял 1000 файлов и я объясню тебе почему ты ебанутый. Когда ты меняешь api, ты меняешь весь код, который пользуется твоим api. Может api вызываться в 1000 мест? Может. Хотя, конечно, это скорее гипербола. Но даже 20 мест - много, когда альтернатива - 0. > Поэтому я и спрашиваю конкретные примеры, потому что на них сразу видно когда человек знает о чем говорит или как в данном случае брызжет непрожеванным говном высосанным из известного ануса. Так мне уже видно, что ты разбираешься в двачепуканье про анусы больше, чем в программировании. Зачем метать бисер перед ньюфагом? >Люди же с реальным опытом (отказа от get/set параши) рассказывают что такие случаи за многолетнюю историю разработки проекта единичные и ни о каких 1000 файлов само собой речи не идет. Отказываться от свойств можно, например, в пользу иммутабельности, но не в данном случае, когда ты решил, что стабильность api/abi нужна, потому что деды боятся перекомпиляции. Это просто не имеет отношения к реальности, на что я и указал.
Is TDD dead
Аноним19/10/19 Суб 20:53:55№1500212112
Риторика тестобляди для впечатлительных дурачков: Любой кто не занимается ТДД-ебанистикой непрофессионален (характерно что ебанашка Боб навалял в штаны и решил воздержаться от дебатов)
Риторика тестобляди которую выволокли на свет и прижали к стене: Ну не прост лично мне так удобно с тестами поймите я вообще парень в себе неуверенный аутист войдите в положение
Так же внезапные откровения тестоблядей: Некоторые задачи вообще не возможно разрабатывать через ТДД
Риторика тестобляди для впечатлительных дурачков: ТДД нужно хотя бы для того что оно в порядок архитектуру приводит
Риторика тестоябляди которую выволокли на свет и прижали к стене: Ну ТДД отдельно архитектура отдельно какую уж архитектуру ты сделаешь зависит только от тебя братиш
ДЧЧ говорит про циркулярность понятия "хорошей архитектуры" ТДД дурачков
ДЧЧ показывает конкретный типичный ТДД-говнокод с бессмысленными слоями абстракций под моки Пидорва отвечает каким то охуительным выпуком что автомобиль не нужно менять если он тебя не довез куда нужно
>tdd creates evolutionary pressure = ТДД говно в десять раз сложнее менять чем нормальный код
Ололо в итоге дружно порешили что ТДД наркоманы ебаные - пидорва видит зелененькие огоньки и получает впрыск допамина и пидорве похуй что написала очередной assert 1+1==2
ТДД - вера нужно просто уверовать
(можно провести любопытные параллели с тем как консолебляди считают себя эффективнее гуиплебса - когда объективные числа измерений показывают обратное - просто из-за того что больше заебываются набирая поэмы команд когда нормальные люди делают то же в несколько кликов)
Наткнулся на https://stackoverflow.com/questions/2712076/how-to-use-an-iterator/2712125 Всегда потешался с того что вроде бы неймеспейсы в плюсы завезли но пользоваться ими плюсовики не умеют. Так и пишут бедненькие std:: через std:: и упорно делают вид что и так норм. Ау нахуя тогда это все вообще если нет разницы с тем чтобы писать std__method_name. Но вроде и грешно потешаться над убогими ведь это не их вина, просто язык так сломан. Но оказывается что есть такая неведомая хуита как ADL и даже когда плюсовики пытаются решить проблему их "решение" оказывается "нерешением". Просто шляпа.
Тут можно провести прямую параллель с жабоскрипто-дебилами. Когда они пытаются решить надуманную "проблему" автоматической вставки семиколонов. И "решают" ее тем что закрывают ими каждую строчку, хотя язык этого совсем не требует. И конечно же это еще одно "нерешение" потому что даже с точки зрения банальное эрудиции просто блядь очевидно что если проблема в том что система автоматически вставляет знаки там где их "не должно быть" то вставка даже тысячи семиколонов подряд там где они "должны быть" ничем не поможет.
Бля ну нахуя в говнокодинге все так сломано и через жопу, да еще полно ебанутых которые считают что все так и должно быть?
Есть у меня одна смела фантазия - в нормальном языке будущего не должно быть и не будет никаких неймспейсов/модулей/импортов/юзингов етц. Естественно то что в современном языке не может быть никаких семиколонов в каждой строке тут надеюсь спорить будет только в конец ебнутый, поэтому об этом и говорить нечего. Импорты это просто нелепо и охуенно неудобно - вот я беру пример и пытаюсь его запустить, но что это... ах да ебаные импорты которые конечно же неявно подразумеваются. Ну и нахуй так жить? Это что то уровня инклудов в сишке. С ними то хоть управились и современные языки такой поебенью не страдают. И вот от них остался такой атавизм. Надеюсь когда нибудь он будет исправлен. Тем более современные языки уже умеют подтягивать нужные и удалять ненужные инклуды - осталось сделать всего один маленький шажок в неизведанное.
>>1512439 Я бы поставил брейкпойнт в то место, где вызывается distance(), и тогда сразу бы понял, что вызывается не та функция. Нахуя было катать целый пост на stack overflow, если проще один раз запустить дебаггер, это для меня загадка.
>>1512456 В принципе поддвачну. По мне так и страшный-ужасный null pointer reference exception / undefined is not a function и прочие ошибки на миллиард долларов - хуета которую можно отловить за пару мину в дебаггере и все это и выеденного яйца не стоит. Однако это не мешает больным ублюдкам вставлять по проверке на null в каждую функцию. А еще сейчас активно внедряют новую дикую поебень ?! ?. ?= ?? ?!@#$ Так что жить станет еще веселее.
>>1512572 >можно отловить за пару мину в дебаггере Можно, но в дебагере ловят уже известные баги, то есть сначала ты проебешь миллион долларов, а потом полезешь в дебаггер. И если ты хочешь писать на языке, где нет анальных нулл-чеков на каждый пук, и при этом не бояться подобных ошибок, то единственный оставшийся стул - это тесты, которые местный шизик так сильно не любит. Вот незадача.
>>1539515 Обычно страшно-ужасный null упоминается в контексте что его не возможно поймать в дебаггере и можно только волосы на жопе рвать если ты за раннее не проставил в каждой второй строчке if(hui==null)throw.. По мне так это бред полный, но пруфов у меня нет. А тесты да - абсолютно бесполезная поебень. Ну кроме пары приемочных на всякий случай. А отловить все null'ы тестами это такая то пушка. Тесто-маньки снова кукарекают из не проходящего делирия.
>>1539624 Тесты не ловят нуллы сами по себе, тесты просто верифицируют, что для ожидаемого сета инпутов, программа дает ожидаемый аутпут. И нулл-чеки, как и любые в принципе проверки типов тут отходят на второй план и становятся неважной деталью, потому что уже подразумевается, что если аутпут верный, то и внутри все сработало без ошибок.
>>1540091 >Даже объяснять лень. Конечно, ведь если попытаешься что-либо по факту возразить только обдрищешься с головы до ног со своими полиморфизмами и инкапсуляциями, я это гарантирую.
Щас бы токсичному серуну с вечно горящей сракой что-то доказывать. Вы , господа, совсем ебанутые - на этого убогого внимание обращать? Ничего кроме говна в свой адрес вы от него не получите.
>>1539515 >И если ты хочешь писать на языке, где нет анальных нулл-чеков на каждый пук, и при этом не бояться подобных ошибок, то единственный оставшийся стул - это тесты > 2к20 > Не юзать Maybe монаду
>>1546181 Maybe и есть анальный нуллчек. Если что-то мейби, ты не можешь забить хуй и работать с ним как со значением, прийдется распаковывать и хендлить. Из плюсов только то, что nullable явно отделено от non-nullable.
>>1546181 >checked exceptions >-плоха не хотим так >мондены >-вот теперь заебца хорошо зделали Кодерки никогда не устают скакать по одним и тем же граблям.
>>1486315 Шизик, никто не стремится к полному описанию содержания - это по определению невозможно. Название должно НАМЕКАТЬ на то, что происходит внутри.
Вообще конечно кекаю с посредственностей, которые не могут в чтение кода.
>>1546257 Долбаеб, а как ты можешь работать как с обычным значением, с тем, что мождет в ряде случаев отсутвовать? Если значение пристутвует всегда - тебе не нужны проверки вовсе. Иначе - или чек, или эксепшен.
>Вместо кейса засунул куски кода в мапу - ну ебанутый. Особенно я расплескал всю подливу с главного аргумента о том что иначе метод получается длинноват и его сложно поддерживать. Страшные-ужасные методы в тысячи строк, но если ту же тысячу строк размазать тонюсеньким притонюсеньким слоем по сотне классов (каждый конечно же в своем файле) вот тогда да - заебись, хорошо зделали. ЛОЛ, ты вкатываться собрался или других учить? Нельзя научить того, кто считает что сам все знает. Ты должен быть пуст, как пустой сосуд. Пока ты таким не будешь, программировать ты никогда не научишься.
>>1548191 Какая часть >НИКОГДА из одного только названия нельзя вывести всю инфу о том что внутри. тебе непонятна, пидараска тупорылая? >>1548187 Какая часть >Смешно что тестобляди даже термин специальные придумали - spike - значит можно закрыться в комнате и пока никто не видит отложить нелепую tdd поеботину мешающую разработке. тебе непонятна, пидараска тупорылая? >>1550151 Ну это уже просто самая тупая пидараска треда, кекнул с него. >>1550908 Хуй соси, губой тряси
солид говно, тут я согласен с опом. входить сложно, 23 летние сеньиоры не дремлют. устройся на галеру, заработай за год подушку, потом пили свою приложуху, по моему это стандартный подход
>>1484660 (OP) Маня, пока у тебя нулевой опыт, тебе надо покорно завалить ебало и молча слушать что старшие говорят.
>>1568988 Солид + XP это единственный способ писать на ооп параше так, чтоб в конце концов не насосаться хуев. Но твоя «приложуха» конечно же будет не такая, у тебя все будет заебись и так (нет).
>>1569226 Монады -- это просто. Тебе всего лишь нужно знать теорию множеств, лямбда-исчисление, теорию типов, теорию категорий, топологию, теорию групп, пучки, кольца и функциональный анализ. Ладно, шучу, все, что идет после теории категорий, знать не обязательно. Да и теорию категорий на самом деле тоже. А если серьезно, то не вижу противоречия. Может Хотц байтоеб и ему монады с функторами особо и не нужны, а вот в каких-нибудь Скалах и Котлинах они уже есть, и не факт, что они не появятся в каком-нибудь жс в ближайшее время. Но тут надо понимать, что монады появились как решение проблемы невозможности ввода-вывода в чистом языке, в более традиционных языках вроде лиспа на чистоту забили хуй и побочные эффекты просто пытаются ограничить, а не устранить полностью.
>>1569226 >Кекнул с Хотца не могущего в мондены. "Ахахаха, вот лошара тупой, даже не знает, что монада - это моноид в категории эндофункторов" подумал Витя-хаскелист, но тут подъехал злобно рычащий автобус и прервал его злорадное торжество. Витя торопливо засунул свой бюджетный смартфон в карман видавшей виды куртки и неуклюжей рысью побежал штурмовать автобус, который почему-то остановился за тридцать шагов до остановки. Сегодня народа было немного и Вите повезло - всю дорогу до своего подмосковного города-спальника он провёл сидя и вскоре скатился в сладкий полусон, в котором он чётким и уверенным голосом доказывал неизвестному собеседнику, что профанам, не знакомым даже с леммой Йонеды, в их благородном ремесле места совершенно очевидно нет.
>>1569359 В Котлинах и нет монад, как и в F#, потому что там нет даже функторов. Монады не нужны толко ради чистого IO, его можно добиться и другими средствами, например линейными/афинными типами. Монада - это в первую очередь удобный обобщенный концепт, позволяющий делать разные вещи, вроде упомянутого чистого IO, Null-safe обработки данных, предоставления ad-hoc полиморфизма на типах, когда в результате у тебя получаются лаконичные простые функции, работающие с простыми типами, а вся логика распаковки/упаковки контейнерных типов вынесена отдельно. В итоге, имея такие простые функции, ты можешь легко использовать их композицию и прогонять через нее любые, сколько угодно сложные типы данных и все это с гарантированной типобезопасностью. А для понимания монад в хаскеле вообще никаких специальных знаний не нужно, достаточно школьной алгебры и чтения документации. Обычно это сложно для тех, кто либо вообще ничего не знает про системы типов, либо сильно одеревенел, задрочив онли ООП. В обоих случаях осиливания TaPL’a будет более чем достаточно.
>>1484897 >приходит новичок и изобретает React например >React был создан Джорданом Валке, разработчиком программного обеспечения из Facebook. На него оказал влияние XHP — компонентный HTML фреймворк для PHP Ты даже тут обосрался.
>>1570832 Каким образом у тебя понимание монад связанно с мамкиным борщем? Изучение систем типов это не только интересно, но и делает тебя лучшим программистом, даже если ты будешь писать на каком-нибудь дебильном алголоподобном языке.
>>1570892 >Изучение систем типов это не только интересно, но и делает тебя лучшим программистом Программистом-олимпиадником если только. Для практикующего программиста лучше не системы типов задрачивать, а рабочие кейсы и библиотеки.
>>1570793 Есть в качестве библиотеки, хотя сам я не пробовал. https://arrow-kt.io/docs/core/ >>1570832 >А зачем их понимать? А зачем программировать? Чтобы бабки получать? Так ради бабок есть более прибыльные занятия.
>>1571032 Олимпиады как раз никакого отношения к системам типов не имеют. А рабочие кейсы для опытного разработчика со временем становятся похожи как две капли воды и он ищет удобные инструменты, позволяющие их красиво решать в обобщённом виде, да и вообще позволяющие удобно выражать абстрактные построения. Для этого и нужны такие вещи, как например, системы типов. В принципе, знание систем типов, - это одна из вещей, отличающая программиста (именно программиста, а не компьютер-саентиста), от специально обученной обезьяны, которая программирование не любит, не понимает и оказалась в нем случайно, потому что плотють.
Фундаментальная ошибка местной студентоты и джуниоров, рассуждающих о ненужности лямбд и т.п., в том, что они пытаются рассуждать о языках программирования практически не имея никакого опыта разработки. Написавшим свой первый тетрис, калькулятор и теперь вооон тот отчет для Клавдии Ильиничны за 35 тысяч рублей в месяц, им всё кажется новым и интересным, даже какашки в песочнице, а синдром утёнка заставляет их думать, что первый язык, за программирование на котором им дали первые деньги на карманные расходы, и есть самый лучший, самый мощный и самый правильный, а все, кто не с нами - те глупее нас.
Психология опытного разработчика устроена иначе. После нескольких лет работы он знает свой инструмент от и до, не находит в нём ничего нового, и все свои задачи он знает от и до. Причем задачи для него становятся похожими друг на друга как две капли воды, ведь процесс познания заключается в изучении множества частных случаев с последующим абстрагированием и выведением общих закономерностей. В конце концов какая разница, нужно ли мне зипануть два списка, собрать результаты работы двух парсеров или посчитать сумму двух сигналов: для опытного разработчика всё это - map apply на аппликативных функторах.
Вот тут и начинается самое интересное: с одной стороны язык для опытного разработчика больше не является предметом фапа и изучения, единственное требование к нему - возможность записать программу в категориях, максимально близким к тем, которыми он мыслит. С другой - мышление опытного разработчика гораздо более абстрактно и высокоуровнево, чем мышление джуниора, следовательно, язык должен иметь средства выражения этих абстракций. В этот момент многие разработчики перерастают свой инструмент. Более удачливые переходят на другой, более развитый. Менее удачливые, у которых нет такой возможности, вообще перестают программировать, аргументируя это тем, что программирование - тупое, однообразное занятие, и становятся аналитиками или архитекторами (т.е. фактически тоже меняют инструмент - убогий негибкий язык программирования на гибкий и удобный документ microsoft word). Восторга джуниоров ни те ни другие как правило не разделяют, просто первые говорят, что LANG_A - убогое говно, а LANG_B - крутой инструмент для опытных программистов, а вторые говорят, что LANG_A - это нормальный инструмент для подчинённых им обезьянок, а применения для LANG_B они не видят, поскольку ни они сами, ни их обезьянки этим инструментом не владеют.
И последний вопрос - что же происходит, если LANG_B попадает в руки джуниора? А ничего не происходит, потому что он просто еще не понимает назначение всех этих абстракций и в лучшем случае программирует на LANG_B как на LANG_A (обычно более мощные языки позволяют писать на них как на менее мощных, обратное неверно). Я сам неоднократно встречал студентов, изучавших lisp и prolog в университете (да, сейчас это норма, в моё время никаких лиспов в росийских университетов не было) и совершенно не понимающих, к чему все эти знания. Какого же было их удивление, когда я показывал им как то, чему их пытались учить, применяется на практике, как это позволяет делать более грамотную декомпозицию программы, писать более сопровождаемый код, где лежат пределы выразительности используемого нами языка и как программу можно было бы записать если бы язык был более выразителен.
>>1540091 но он прав. Полиморфизм нарушает контракт. Map может быть HashMap, может быть LinkedMap, а у них разное поведение. И тебе надо каждый раз искать место создания этой коллекции, чтобы узнать её настоящий тип. Ещё веселее с коллекциями и вилдкартами, когда в коллекции могут быть объекты с одним интерфейсом, но разной реализацией
>>1571543 Поведение будет то же, потому что поведение определяется публичным интерфейсом. Отличаться могут детали реализации, но на это сугубо похуй, потому что компоненты системы стыкуются на основе интерфейсов друг друга, а про детали реализации знать ничего не должны. Мне похуй что там за конкретная коллекция вернулась, главное чтобы с ней можно было делать то, что мне нужно, что должно быть ясно просто из ее сигнатуры (публичного интерфейса).
>>1571602 >Поведение будет то же, потому что поведение определяется публичным интерфейсом. нет. List getList() например может выдать отсортированные или не отсортированные данные. Это может быть критично важно
Скажите, а как вы получаете удовольствие от программирования? Допустим, все программисты делятся на байтоёбов пишут низкоуровневые фичислесари, делающие винтики, энтерпрайзо-макак пишут фабрики абстрактных фабрикточно такие же слесари, собирающие винтики в кучу и функциональщиков занимаются непонятной хуйнёй. Конечно, есть ещё гейдевки, но речь тут не о них.
Итак, байтоёбы. Я примерно представляю, от чего они получают удовольствие. Написать работающий сокет, получить прямой доступ к железу - это очень увлекательно. Да, изобретатели велосипедов никому не нужны, но они по-своему счастливы, когда они с красными глазами после бессонной ночи смогли-таки вручную написать программу, передающую запрос серверу на скорости 8 кб/c.
Энтерпрайзо-макаки. Пишут то, что им сказали, работают 8 часов в сутки. Вроде бы и деньги есть, и делают что-то полезное, но писать код по одинаковым шаблонам, используя всё готовое - ужасно скучное занятие. Получать удовольствие, если ты пишешь шаблонный код, невозможно.
Функциональщики. А от чего они получают удовольствие? Что приносит интерес? Поясните.
>>1571664 ты ожидаешь на выходе отсортированный массив и ищешь там бинарным поиском. А тебе приходит неотсортированный, и бинарный поиск не работает. Формально по твоим интерфейсам всё корректно, а оно не работает
>>1571646 >Скажите, а как вы получаете удовольствие от программирования? От программирования - да. >Допустим Не допустим. Любые практические задачи (как написание низкоуровневого кода, так и энтерпрайз и гейдев) могут решаться как и императивном говне, так и на функциональных языках. Когда ты пишешь какой-нибудь загрузчик спредшитов для энтерпрайза на джаве - это жопаболь, такое чувство, что в языке всё сделано против тебя, чтобы заставить тебя заниматься хуйнёй, запутывать и размазывать задачу тонким слоем говна по рассыпухе классов. На Хаскеле наоборот всё направлено на удобство. Т.е. решая одну и ту же задачу в одном случае ты страдаешь и проклинаешь жавамакак, в другом случае наоборот думаешь, какие молодцы, охуенно сделали.
>>1571675 Ты ожидаешь получить что-то, элементы чего-то могут быть отсортированы и сортируешь если надо. Потому что сортировать нужно там, где это непосредственно нужно. В теории, на завтипах и на шаблонах (тут могу ошибаться) можно это тайпчекать и, собственно этот код и являлся бы частью публичного интерфейса. Типа получаю что-то, что отсортировано через X, где X - ... Но вообще выходит что ты изначально ожидаешь получить какие-то детали. Это как если бы пользователь сервиса ожидал, что при успешной регистрации его аккаунт был бы не просто создан, а конкретно сохранен в csv файл в на сервере.
>>1571683 >Но вообще выходит что ты изначально ожидаешь получить какие-то детали именно. В любом случае от объекта я жду определённое поведение. А благодаря полиморфизму поведение может быть совершенно другое. И тут мне говорят что это хорошо и так и должно быть
>>1572110 В тех частях кода, где тебе нужно ты и можешь уточнить до конкретного типа. Полиморфизм этому никак не мешает. Полиморфизм дает возможность не уточнять, но не вынуждает это делать. Хотя уточнение до конкретного тира ничего тебе не даст для того примера что ты привел.
>>1572240 ты к нам с форума? Страдаешь от отсутствия кармочки и даты регистрации?
>>1572216 "называй правильно", пиздец. Нахуй нужны все эти проверки компиляции и валидации, если нужно только "называть всё правильно" и "не делать хуйни". Как всё просто оказывается
>>1572349 >Как всё просто оказывается Именно. Если ты пишешь ёбань, которая непонянто что возвращает, то это только твои проблемы - у других их нет. Вообще твои проблемы надуманы и ты похож на шизика-борщехлеба.
Вот покушать вам принес. Даже не знаю двойственные чувства тут, может вы рассудите. Хека беспросветное уебище несущее полнейшую бессвязную хуиту и это видео не исключение. Ору с тех времен как он высрался своим simple is not easy и его безмозглые подсосы теперь по всему интернету повторяют эту нелепую хуиту, правда обычно сходу не могут определиться что лучше (hint: потому что на самом деле это одно и тоже). Но с другой стороны он посикал на мондены (и немножко на типы) что хорошо. Вот как то так.
еще покушать
Аноним06/03/20 Птн 01:29:33№1624733188
У тянучка, все прям возбудились, а еще rust и в видео сикают на ООП - прямо можно пере-возбудиться. Я так скажу если даже тянучки уже начали сикать на ООП - это значит уже серьезные тектонические сдвиги пошли. Но на мой вкус выступления хуита какая то. Чем этот паттерн хорош я так и не понял, какое то переусложненное говно на ровном месте. (Ну кроме производительности из за текущего положения дел с железом.) Был поставлен вопрос если монстр нападает на игрока куда должен идти соответствующий код (- в монстра, в игрока, в менеджер-здоровья?). Но отвечен он не был. > So... how do I implement the "monster damages player" functionality under this architecture? Where does the code live? Is it a method on one of the component traits? What arguments does it get? Does it need a mutable reference to the entire ECS?
И то что код плохой потому что "многовата" - детский сад. > alright alright, can someone explain to me what's so bad about that C++ player class with all those accessors? yes, it's a lot of accessors...
Вообще ни о чем, просто дед бздит в воздух целый час. Но быдлу норм как обычно.
> Nothing here is new or anything more than simple age-old common sense, "measure twice, cut once", be disciplined. "Don't overuse exceptions" wow incredible insight, 40 year's of wisdom..... "hard to know if the course is working" LOL, what a joke, 1000 lemmings thumbs up.
Кекнул с его - тесты очень важны - но у нас в курсе мы их не используем. Типикал тестоблядь - кто громче всех про тесты кукарекает - тот и больше всех их вертел на одном месте.
Бегло полистал, вроде там что то про свободные мондены. Есть у меня подозрение что эти свободные мондены в хачкеле это уже лепка "внутренней системы", занятие довольно бессмысленное. Но как бы там ни было не представляю чтобы какой либо человек в здравом уме / рядовой кодер Вася или Сабраманьян в ходе решения своих повседневных задач решил что таааак давайте-ка распишем свободную алгебру, тут у нас функтор... свободные мондены хуе-мое. Никогда такого не будет.
>>1729263 Проигрываю с того что у этого дебила "плохой" код "до" лучше чем "хороший" "после". Попробую угадать - в новой книжке ебанашка Боб наконец решил поменьше срать под себя при публике и кода там нет совсем?
>>1729280 Любой пример большого рефакторинга из его книги где он берет более менее удобоваримый (но немножко непонятный) метод и раздристывает его абсолютно без всякой причины на мелкие кусочки связывая их через дополнительно созданные поля класса (т.е. мутабельный стейт без всякой причины - двойной удар тупости) Вот мультиплатиновый ролик по сабжу (и не без ебанашки) https://www.youtube.com/watch?v=IRTfhkiAqPw