Index #7421 1 октября 2019 Писать интеграционные тесты без юниттестинга, рофлы, которые вышли из под контроля. Нормальная практика, если тестов вообще нет и нужно глобально рефакторить. Пишешь тесты на неизменяемый фасад (эндпоинты и тд) рефакторишь, проверяешь по тесту что всё работает как раньше. Поделиться сообщением Ссылка на сообщение
aftermth #7422 1 октября 2019 (изменено) Если у тебя отношения между классами реализованы не через интерфейсы, то тебе в любом случае рефакторить "по-крупному", а без тестов ты бибу соснешь и "по-мелкому", и "по-крупному".Вообще, не совсем. Если нужна максимальная эффективность, то некоторые "классы" останутся суть структурами. Не буду же я внутри цикла вызывать виртуальные функции, лол. Или при умножении матрицы на вектор значение элемента получать через виртуальную функцию, реализация которой зависит от формата хранение разреженной матрицы и т.п. Часть говнокода (в понимании быдлокодеров а не авторов intel mkl и т.п.) придётся оставить как есть zemlyapuhomНо для вынужденного говнокода имеет смысл всё равно надстроить интерфейс такой, чтобы всё вместе на уровне интерфейса смотрелось монолитно. А зачем рефакторить структуры? Потому что название полей не нравится? Я не совсем понимаю чем отличается виртуальная функция от интерфейса в си++, но если у тебя реально есть разные реализации, например, разреженной матрицы (или чего угодно), то использовать interface.getValue() - по-моему единственный способ, не? Изменено 1 октября 2019 пользователем aftermth Поделиться сообщением Ссылка на сообщение
Index #7423 1 октября 2019 Бля пацаны реально изобретают паттерн фасад и интеграционные тесты. Поделиться сообщением Ссылка на сообщение
Kant #7424 1 октября 2019 да эзалор вообще какую-то хуйню несетначали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуярить Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
aftermth #7425 1 октября 2019 да эзалор вообще какую-то хуйню несетначали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуяритьОн же перешел с бухла на мухоморы Поделиться сообщением Ссылка на сообщение
Index #7426 1 октября 2019 Сперва они смеются над контроллерами, сервисами, фабриками стратегий. и прочими pure fabrication, а потом бля как рефакторнуть свой God extends HashMap FeelYourDestiny и aftermth понравилось это Поделиться сообщением Ссылка на сообщение
E1azor #7427 1 октября 2019 А зачем рефакторить структуры? Потому что название полей не нравится? Я не совсем понимаю чем отличается виртуальная функция от интерфейса в си++, но если у тебя реально есть разные реализации, например, разреженной матрицы (или чего угодно), то использовать interface.getValue() - по-моему единственный способ, не? Названия полей qtCreator сам рефакторит в 1 клик. Если бы было можно без ущерба производительности ебашить классы налево и направо то всегда бы делал полноценные классы и было бы збс. Если вызывать чисто виртуальную функцию во внутреннем цикле то скорость может упасть в несколько раз (см. реализацию виртуальных функций в с++). То есть интерфейс для крупных функций делать можно, для мелких - слишком тормозно. начали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуярить требования к эффективности кода ограничивают рефакторинг Сперва они смеются над контроллерами, сервисами, фабриками стратегий. и прочими pure fabrication, а потом бля как рефакторнуть свой God extends HashMapесть и обратный эффект, см. классическую байку про хуе-хлебНекоторые патерны я изобрёл в детском саду когда программировал на си+асемблер для дос, когда они ещё не были мэйнстримом. Большая часть лежит на столько на поверхности, что просто иди нахуй. Мало какие паттерны применимы "как есть", почти всегда нужно применять то, что максимально подходит к ситуации, а не классический вариант. всё что пишу -- шизофренический бред Поделиться сообщением Ссылка на сообщение
Index #7428 1 октября 2019 Некоторые патерны я изобрёл в детском саду когда программировал на си+асемблер для дос, когда они ещё не были мэйнстримом. Ваууу. Ну ты крут. А я думал, что паттерны Аллах передал на табличках GOF Поделиться сообщением Ссылка на сообщение
aftermth #7429 1 октября 2019 Я все понял. Медленные интерфейсы для крупных или мелких функций и полноценные(!) классы. Слава богу я веб-макака и на этом языке не пишу. Поделиться сообщением Ссылка на сообщение
JuJeu #7430 1 октября 2019 Некоторые патерны я изобрёл в детском саду когда программировал на си+асемблер для дос, когда они ещё не были мэйнстримом. Ваууу. Ну ты крут. А я думал, что паттерны Аллах передал на табличках GOFтак все и было из руки в руки все 23 таблички сам видел Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
E1azor #7431 1 октября 2019 полноценные(!) То есть есть конструктор деструктор и копируктор, вроде так по классике, ну ваще в идеале сохранятор и отменятор_изменений добавить если совсем ебануться, но я вообще не программист и один нахуй, поэтому реализовываю только то что необходимо, отсюда и большая часть проблем с кодом.Часть классов у меня через метод init() инициализируется и через release() в стиле си (подсел на такой стиль после юзания directx, хз какой он сейчас, тогда directdraw и direct3d ещё не были объединены) и это вполне норм во многих случаях, а выделение памяти всё равно надо переопределять чтобы локальность по памяти была максимально збс. всё что пишу -- шизофренический бред Поделиться сообщением Ссылка на сообщение
dfgrd #7432 1 октября 2019 (изменено) Я надеюсь, что все уже написали тесты в своих магазинах на наличие постгрес? Прочитал, что можно случайно установить в свой магазин постгрескл базу и все вообще разорвет от напряга. Изменено 1 октября 2019 пользователем dfgrd Поделиться сообщением Ссылка на сообщение
0x0x #7433 1 октября 2019 бтв чел видел что я написал как питонщик, но походу не в курсе что в питоне самая охуенная либа для бд это либа для постгрину и в целом синхронщики сосать Начальник федеральной службы по контролю за оборотом мемов на продоте Поделиться сообщением Ссылка на сообщение
Just.Doit #7434 1 октября 2019 щас бы в небольшом интернет магазе за асинхронность заморачиваться очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
0x0x #7435 1 октября 2019 щас бы в небольшом интернет магазе за асинхронность заморачиватьсяну ты знаешь чел, надо учитывать что это телега, это ещё посредник между мной и пользователем, а еще время на операции с даннымиесли случайно ботом начнет пользоваться дохуя людей - тормоза сразу ощутимы Начальник федеральной службы по контролю за оборотом мемов на продоте Поделиться сообщением Ссылка на сообщение
Just.Doit #7436 1 октября 2019 (изменено) бля, хайлоады спокойно работают синхронно с постгресом и не знают бедщас куча всего позволяет писать так чтобы нивелировать эффект блокирующего IO кода (асинхронный код с тредпулом, легковесные треды) что асинхронный драйвер работы с постгресом это крайне малозначимый аргумент "если случайно ботом начнет пользоваться дохуя людей - тормоза сразу ощутимы"бесспорно, только асинхронное общение с постгресом тут наименьшая проблема, если вообще проблема Изменено 1 октября 2019 пользователем Just.Doit очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
0x0x #7437 2 октября 2019 вся система на асинхронщине (по выше описанным причинам). Траф идет пользователь -> телега -> я -> какие-то мои функции -> телега -> пользователь. это - время. 1-1,5с на всю цепь это уже НЕПРИЯТНО выглядит для юзера. следовательно зачем даже в теории использовать синхронные драйвера? и нахуя дрочить кривые питоновские потоки если вот так просто люди сделали асинхронщину бери-пользуйся-наслаждайся, нахуй тебе че ещё надо Начальник федеральной службы по контролю за оборотом мемов на продоте Поделиться сообщением Ссылка на сообщение
E1azor #7438 2 октября 2019 (изменено) Вот о чём подумал пока в качестве наставника рофлил над дебиком на профессоре1Если первый язык остаётся в памяти человека как первая женщина, топайтон, c# - опытная шлюха,haskel, erlang, prolog - женщина с тремя сиськами, бегающая на четвереньках,php - жируха с синдромом дауна,си - красивая целомудренная девушкаgo, rust - красивая целомудренная девушка, развращённая интернетомjava - богатая милфа,c++ - вонючая, накаченная, прошареная старуха-затейница, покрытая бородавкамиasembler - женщина, оказавшаяся активным трапомR - физичка ядерщикperl - библиотекарша Изменено 2 октября 2019 пользователем E1azor Pep_See понравилось это всё что пишу -- шизофренический бред Поделиться сообщением Ссылка на сообщение
JuJeu #7439 2 октября 2019 Просто спишу последние 20 страниц топика на осеннее обострение. Это просто пиздец. Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
E1azor #7440 2 октября 2019 всё что пишу -- шизофренический бред Поделиться сообщением Ссылка на сообщение