Оффтопка


[20:26:13] Doc dg-pic.tk/wonyl вот здесь я юзаю тейбл, здесь нужно обязательно все мемберы енума прописать, иначе компайл еррор
[20:25:21] Doc Массив не типобезопасен
[20:25:17] Doc Я использую в нескольких местах тейбл, но это редко удобно
[20:25:07] GeneralElConsul кстати, как фишенка на торте у автора оригинала статьи есть целый "фреймворк" для этого, которым он предлагает воспользоваться
[20:24:46] Doc попробуй поменять вещи и увидишь компайл ерроры
[20:24:36] Doc поиграйся там
[20:24:33] Doc vk.cc/9J2g4b вот тебе код
[20:21:22] ScorpioT1000 свич тоже оптимизируется по индексам офк, но так еще лаконичней было бы. Хотя тут можно локалайз динамически запилить
[20:20:49] ScorpioT1000 док, а что тебе мешает хештейбл или массив сделать?
[20:19:57] ScorpioT1000 вот там первый коммент рулит кстати
[20:17:56] GeneralElConsul тогда еще был неопытный очень, но даже тогда понял, что это какая-то херня
[20:17:40] Doc без какого-либо вмешательства в реальный код
[20:17:35] GeneralElConsul самое забавное что я видел - это вот habr.com/ru/post/281783
[20:17:30] Doc так вот если бы языки позволяли нормальные возможности метапрограммирования, то компилятор можно было бы настроить так, чтобы для тестов генерилось свое дерево кода, где нужные функции заменены на моковые
[20:16:46] Doc да
[20:16:37] Doc потому что ты по сути поллютишь свой реальный код кучей говна только чтобы его можно было замокать
[20:16:28] GeneralElConsul вот с твоем скрине Ability это ADT? dg-pic.tk/vidum
[20:16:23] ScorpioT1000 Геймдев - это же индустрия, направлений хватает
[20:16:18] Doc проблема с ТДД вообще в целом забавна
[20:16:07] Doc это термин в основном из функциональных языков, я приведу конкретный пример
[20:16:05] ScorpioT1000 На самом деле, в геймдеве в негеймплейных частях вполне себе работает и di, и solid
[20:15:47] GeneralElConsul Doc логически понятно, что такое ADT но в программировании не встречался
[20:13:06] Doc У меня есть теория что у программистов при поступлении на работу происходит диссонанс, когда оказывается что софт, который им нужно писать принципиально очень прост, а они думали, что это профессия для очень умных. После этого, чтобы самим себе доказать, что они очень умные они начинают придумывать себе хитрые препятствия и ловкие способы их обхода, а препятствия называют умными словами, чтобы когда разговаривали звучало круче.
[20:13:03] GeneralElConsul в любом случае приходим к тому, что тебе не понравиться знакомство с энтерпрайзом юнити
[20:12:25] GeneralElConsul претензия то все равно верна, потому что в конечном счете приводит к оверооп, которое тебе не нравиться, а другого способа ты не сделать di не видишь, значит мой аргумент просто сменяется от "di добавлена именно этим оверооп способом" на "они посмели добавлять di в игру ололо", ок
[20:10:16] GeneralElConsul значит моя посыл "прелесть" в том, что используют tdd и жирную конфигурируемость в играх, потому что как следствие оверооп, а ты говорил что в играх желательно не быть оверооп, но и тдд и связи без di оверооп не настроешь - таким образом выбирай стул
[20:08:34] Doc DI это просто конфигурация с помощью ссылок на функцию или группу функций. Почему для этого придумали отдельное название - непонятно. В 1980 можно было в С передавать в sort функцию и никому особо не требовалось называть это DI.
[20:07:30] Msey А что девион говорил по поводу di?
[20:05:32] ScorpioT1000 только свичами или ифами, но это без возможности расширения, а это не solid и вообще
[20:05:22] GeneralElConsul ScorpioT1000 пока не разбирался в DI особо - просто при первом взгляде у меня были определенные опасения и их подтвердил старший товарищ (Devion) которого спросил по этому поводу, поэтому решил что это так и есть; к разговору на тему DI не готов
[20:01:57] ScorpioT1000 предложи другой способ настроить связи в сторонних библиотеках
[20:01:41] Doc Я видос смотрел какого то юнити разраба, назывался switches are code smell. Я бы у него забрал лицензию на программирование
[20:01:19] ScorpioT1000 GeneralElConsul, нет, DI был сделан для жирной конфигурируемости и упрощения TDD и в целом юнит-тестирования
[20:01:14] Msey Если код достаточно громоздкий, то здесь выручает наш любимый полиморфизм с выносом "каждого кейза" в функцию или отдельный файл, как уже упоминалось ниже
[20:00:12] Msey Если нужна быстрая навигация по функционалу, то имеет место быть