Size: a a a

2021 March 14

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
то есть если разобрать итоговые инструкции кода на раст и идентичного на плюсах, то разницы большой не будет, оба варианта одинаково эффективны?
Примерно да
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Разница уровня гцц вс цланг
источник

МП

Мимо Проходящий... in rust_offtopic
(
2) не продолжат, конечно. Но я хотя бы об этом узнаю :)
так и в голанге узнаешь - конпилятор на что по твоему?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
Это во-1. Во-2, у меня такие обобщённые вещи совсем редко бывают, и мне совсем не впадлу просто юнит тестами прикрыть жопу, чтобы не обосраться в проде с interface{}
Я когда свои проекты бенчил у меня получалось 10% генерик кода на самых тупых крудах. В коде посложнее - поболее
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
(
Мне как-то раз друг рассказывал, что в питоновских биндингах к openCV из одной функции в зависимости от входных параметров возвращается либо лист, либо мапа, либо граф
Супер, завтипы
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
а как же! impl Foo for Bar {
Это скорее плюс чем минус
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
Я когда свои проекты бенчил у меня получалось 10% генерик кода на самых тупых крудах. В коде посложнее - поболее
хм.. что же ты такого обобщённого пишешь в крудах? ничего в голову не приходит даже
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
Это скорее плюс чем минус
да ладно! Структура может имплементить десяток одинаковых интерфейсов, в чём прикол писать одну и ту же лабуду 10 раз?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
хм.. что же ты такого обобщённого пишешь в крудах? ничего в голову не приходит даже
Ну батчер монго запросов например
источник

МП

Мимо Проходящий... in rust_offtopic
Если утрировать, каждый модуль может пожелать задекларировать свой интерфейс для одной и той же фигни. Если это всё будут разные типы, то можно же немножко ебануться головой, работая с такими типами и реализуя под них интерфейс на каждый чих.
Вот в голанге есть io.Writer. Я представляю, что было бы, если бы имплементация этого io.Writer-а прописывалась отдельно в каждой структуре - был бы лютый треш. А так по факту есть годная абстракция
источник

H

Hirrolot in rust_offtopic
Мимо Проходящий
Если утрировать, каждый модуль может пожелать задекларировать свой интерфейс для одной и той же фигни. Если это всё будут разные типы, то можно же немножко ебануться головой, работая с такими типами и реализуя под них интерфейс на каждый чих.
Вот в голанге есть io.Writer. Я представляю, что было бы, если бы имплементация этого io.Writer-а прописывалась отдельно в каждой структуре - был бы лютый треш. А так по факту есть годная абстракция
а зачем 1 интерфейс декларировать постоянно?
источник

МП

Мимо Проходящий... in rust_offtopic
Hirrolot
а зачем 1 интерфейс декларировать постоянно?
ну вот есть пакет, в нём функция как бы принимает на вход абстракцию, мокаемую в тестах. Этот пакет ни от чего не зависит и декларирует соотв. свои интерфейсы. точно такие же как io.Writer по смыслу
источник

H

Hirrolot in rust_offtopic
Мимо Проходящий
ну вот есть пакет, в нём функция как бы принимает на вход абстракцию, мокаемую в тестах. Этот пакет ни от чего не зависит и декларирует соотв. свои интерфейсы. точно такие же как io.Writer по смыслу
impl<T> MyIface for T where T: io::Writer {}
источник

H

Hirrolot in rust_offtopic
в библиотеке пишешь и для всех пользовательских типов реализуется твой интерфейс
источник

МП

Мимо Проходящий... in rust_offtopic
Αλεχ Zhukovsky
Ну батчер монго запросов например
если ты про хук на трафик монги, то я наверное тоже делал что-то подобное. по мне так там более сильная типизация не особо что даст. Ну может я ошибаюсь конечно
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Мимо Проходящий
если ты про хук на трафик монги, то я наверное тоже делал что-то подобное. по мне так там более сильная типизация не особо что даст. Ну может я ошибаюсь конечно
нет, у меня была проблема что на монгу была высокая нагрузка
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и я написал мидлварь между монгой и приложением, которая собирала запросы на инсерт/апдейт сущностей, и батчила их
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
т.к. сущности были обобщенные то мидлварь была генериком
источник

s

suhr in rust_offtopic
Hirrolot
в библиотеке пишешь и для всех пользовательских типов реализуется твой интерфейс
Это всё славно, но магия структурно типизированных интерфейсов как раз в том, что не нужно писать, что же именно ты имплементируешь.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ничего сверхъестественного, 50 строчек кода
источник