Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

 

 

Писать интеграционные тесты без юниттестинга, рофлы, которые вышли из под контроля.

Нормальная практика, если тестов вообще нет и нужно глобально рефакторить.

 

Пишешь тесты на неизменяемый фасад (эндпоинты и тд) рефакторишь, проверяешь по тесту что всё работает как раньше.

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

Если у тебя отношения между классами реализованы не через интерфейсы, то тебе в любом случае рефакторить "по-крупному", а без тестов ты бибу соснешь и "по-мелкому", и "по-крупному".

Вообще, не совсем. Если нужна максимальная эффективность, то некоторые "классы" останутся суть структурами. Не буду же я внутри цикла вызывать виртуальные функции, лол. Или при умножении матрицы на вектор значение элемента получать через виртуальную функцию, реализация которой зависит от формата хранение разреженной матрицы и т.п. Часть говнокода (в понимании быдлокодеров а не авторов intel mkl и т.п.) придётся оставить как есть zemlyapuhom

Но для вынужденного говнокода имеет смысл всё равно надстроить интерфейс такой, чтобы всё вместе на уровне интерфейса смотрелось монолитно.

 

А зачем рефакторить структуры? Потому что название полей не нравится? Я не совсем понимаю чем отличается виртуальная функция от интерфейса в си++, но если у тебя реально есть разные реализации, например, разреженной матрицы (или чего угодно), то использовать interface.getValue() - по-моему единственный способ, не?  


Изменено пользователем aftermth

Поделиться сообщением


Ссылка на сообщение

Бля пацаны реально изобретают паттерн фасад и интеграционные тесты.  :popcorn:

Поделиться сообщением


Ссылка на сообщение

да эзалор вообще какую-то хуйню несет

начали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуярить


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

да эзалор вообще какую-то хуйню несет

начали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуярить

Он же перешел с бухла на мухоморы  :dunno:

Поделиться сообщением


Ссылка на сообщение

Сперва они смеются над контроллерами, сервисами, фабриками стратегий. и прочими pure fabrication,

 

а потом бля как рефакторнуть свой God extends HashMap

FeelYourDestiny и aftermth понравилось это

Поделиться сообщением


Ссылка на сообщение

 

 

А зачем рефакторить структуры? Потому что название полей не нравится? Я не совсем понимаю чем отличается виртуальная функция от интерфейса в си++, но если у тебя реально есть разные реализации, например, разреженной матрицы (или чего угодно), то использовать interface.getValue() - по-моему единственный способ, не?  

Названия полей qtCreator сам рефакторит в 1 клик. Если бы было можно без ущерба производительности ебашить классы налево и направо то всегда бы делал полноценные классы и было бы збс. Если вызывать чисто виртуальную функцию во внутреннем цикле то скорость может упасть в несколько раз (см. реализацию виртуальных функций в с++). То есть интерфейс для крупных функций делать можно, для мелких - слишком тормозно.

 

 

начали с рефакторинга и тестов, а он ща про оптимизацию виртуальных вызовов пошел хуярить

требования к эффективности кода ограничивают рефакторинг

 


Сперва они смеются над контроллерами, сервисами, фабриками стратегий. и прочими pure fabrication,

 

а потом бля как рефакторнуть свой God extends HashMap

есть и обратный эффект, см. классическую байку про хуе-хлеб

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


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

 

 

Некоторые патерны я изобрёл в детском саду когда программировал на си+асемблер для дос, когда они ещё не были мэйнстримом.
 

Ваууу.

 

Ну ты крут. А я думал, что паттерны Аллах передал на табличках GOF

Поделиться сообщением


Ссылка на сообщение

Я все понял. Медленные интерфейсы для крупных или мелких функций и полноценные(!) классы.  Слава богу я веб-макака и на этом языке не пишу.

Поделиться сообщением


Ссылка на сообщение

 

Некоторые патерны я изобрёл в детском саду когда программировал на си+асемблер для дос, когда они ещё не были мэйнстримом.

Ваууу.

 

Ну ты крут. А я думал, что паттерны Аллах передал на табличках 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.
 

Поделиться сообщением


Ссылка на сообщение

 

 

полноценные(!)

То есть есть конструктор деструктор и копируктор, вроде так по классике, ну ваще в идеале сохранятор и отменятор_изменений добавить если совсем ебануться, но я вообще не программист и один нахуй, поэтому реализовываю только то что необходимо, отсюда и большая часть проблем с кодом.

Часть классов у меня через метод init() инициализируется и через release() в стиле си (подсел на такой стиль после юзания directx, хз какой он сейчас, тогда directdraw и direct3d ещё не были объединены) и это вполне норм во многих случаях, а выделение памяти всё равно надо переопределять чтобы локальность по памяти была максимально збс.


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
(изменено)

Я надеюсь, что все уже написали тесты в своих магазинах на наличие постгрес? Прочитал, что можно случайно установить в свой магазин постгрескл базу и все вообще разорвет от напряга.


Изменено пользователем dfgrd

Поделиться сообщением


Ссылка на сообщение

:lolpray:  :lolpray:  :megapray:


бтв чел видел что я написал как питонщик, но походу не в курсе что в питоне самая охуенная либа для бд это либа для постгри

ну и в целом синхронщики сосать


Начальник федеральной службы по контролю за оборотом мемов на продоте

 

 

Поделиться сообщением


Ссылка на сообщение

щас бы в небольшом интернет магазе за асинхронность заморачиваться


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

щас бы в небольшом интернет магазе за асинхронность заморачиваться

ну ты знаешь чел, надо учитывать что это телега, это ещё посредник между мной и пользователем, а  еще время на операции с данными

если случайно ботом начнет пользоваться дохуя людей - тормоза сразу ощутимы 


Начальник федеральной службы по контролю за оборотом мемов на продоте

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

бля, хайлоады спокойно работают синхронно с постгресом и не знают бед

щас куча всего позволяет писать так чтобы нивелировать эффект блокирующего IO кода (асинхронный код с тредпулом, легковесные треды)  что асинхронный драйвер работы с постгресом это крайне малозначимый аргумент

 

"если случайно ботом начнет пользоваться дохуя людей - тормоза сразу ощутимы"

бесспорно, только асинхронное общение с постгресом тут наименьшая проблема, если вообще проблема


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

вся система на асинхронщине (по выше описанным причинам). Траф идет пользователь -> телега -> я -> какие-то мои функции -> телега -> пользователь. это - время. 1-1,5с на всю цепь это уже НЕПРИЯТНО выглядит для юзера. 

следовательно зачем даже в теории использовать синхронные драйвера? 

и нахуя дрочить кривые питоновские потоки если вот так просто люди сделали асинхронщину бери-пользуйся-наслаждайся, нахуй тебе че ещё надо


Начальник федеральной службы по контролю за оборотом мемов на продоте

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Вот о чём подумал пока в качестве наставника рофлил над дебиком на профессоре1

Если первый язык остаётся в памяти человека как первая женщина, то

пайтон, c# - опытная шлюха,

haskel, erlang, prolog - женщина с тремя сиськами, бегающая на четвереньках,

php - жируха с синдромом дауна,

си - красивая целомудренная девушка

go, rust - красивая целомудренная девушка, развращённая интернетом

java - богатая милфа,

c++ - вонючая, накаченная, прошареная старуха-затейница, покрытая бородавками

asembler - женщина, оказавшаяся активным трапом

R - физичка ядерщик

perl - библиотекарша


Изменено пользователем E1azor
Pep_See понравилось это

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение

Просто спишу последние 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.
 

Поделиться сообщением


Ссылка на сообщение


:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:    всё что пишу -- шизофренический бред     :zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

:zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu::zatrolka_tupostu:

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...