Size: a a a

2020 August 02

KR

Kai Ren in rust_offtopic
Ну, чем больше уточнено информации в раскрывающемся коде, тем меньше потом вероятность нарваться на тупость компилятора
источник

AD

Andrew Demonov in rust_offtopic
Dollar Føølish
Например в SQL server виндовом каждому куску dynamic sql выделяется отдельная виндовая фибра
Это ещё и один из видов ipc в .net classic. Но зачем их держать в пуле? Они же быстро работают
источник

Т8

Т-34 85 in rust_offtopic
а тебе часто такое вообще нужно?
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
короче, вот покажи мне пример вот этого кода на сишарп:


trait MyAdd {
  fn zero() -> Self;
  fn add(self, rhs: Self) -> Self;
}

impl MyAdd for i32 {
  fn zero() -> Self { 0 }
  fn add(self, rhs: Self) -> Self { self + rhs }
}

fn generic_sum<T: MyAdd>(items: &[T]) {
 items.iter().fold(MyAdd::zero(), |x, y| x.add(y));
}

generic_sum(&[1,2,3,4,5]);
а что тут происходит? Каждый элемент (равный 0) контейнера складываешь с каким-то числом?
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
ок, а как мне добавить интерфейс к std::vector чтобы я мог передавать вектор в функции которые от него ожидают чего-то? Например, в сишарпе нет интерфейса для чисел. Как мне написать интерфейс IAdd и реализовать для всех чисел?
ну, пока что мне кажется, что вот так лучше всего. Нет проверки на переполнение, не так много лишних типов могут пролезть в рантайм

public static ValueType UncheckedAddNumbers(this IConvertible numeric1, IConvertible numeric2)
       {
           bool isNumeric1 = numeric1 switch
           {
               byte number => true,
               sbyte number => true,
               Int16 number => true,
               UInt16 number => true,
               Int32 number => true,
               UInt32 number => true,
               Int64 number => true,
               UInt64 number => true,
               double number => true,
               float number => true,
               _ => false,
           };
           bool isNumeric2 = numeric2 switch
           {
               byte number => true,
               sbyte number => true,
               Int16 number => true,
               UInt16 number => true,
               Int32 number => true,
               UInt32 number => true,
               Int64 number => true,
               UInt64 number => true,
               double number => true,
               float number => true,
               _ => false,
           };
           if (!isNumeric1 || !isNumeric2)
           {
               throw new ArgumentException("Arguments must be a numeric type");
           }
           dynamic number1 = numeric1;
           dynamic number2 = numeric2;
           return number1 + number2;
       }
источник

H

Hirrolot in rust_offtopic
источник

Т8

Т-34 85 in rust_offtopic
если перередашь строку, то эксепшн вывалится. А вот передать bool или ещё какую-нить хрень не получится, ошибка компиляции
источник

Т8

Т-34 85 in rust_offtopic
если знаешь, как можно сделать лучше - милости прошу
источник

Т8

Т-34 85 in rust_offtopic
я ещё охренел, когда узнал вот это
источник

M

MrSmith in rust_offtopic
👔Специалист по созданию сайта на Битрикс (фронт + бек)

👀Задача: Ускорение по Google page speed сайта на WP на редакторе Элементор. Сейчас в зоне 10 и 20 (мобилка и десктоп), надо минимум 40 и 75. Из задачи
- отклик сервера в норме (хороший виртуальный хостинг)
- сжатие данных подключено
- оптимизация изображений

Что может быть
1. CDN ускоряет, но падает весь сайт
2. Заложить скрипты сквозных аналитик в GTM дает слабое ускорение
3. Большое DOOM-дерево из-за редактора Элементора (но мы не можем его сместить)
Готовы подключать платные CDN, переезжать на VPS, если это не ломает сайт и дает результат.
Вам на распоряжении дается тестовая версия.

💰Оплата: по договорённости

Сроки: на выбор исполнителя, не более 1 недели

#разработка #вёрстка
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
ок, а как мне добавить интерфейс к std::vector чтобы я мог передавать вектор в функции которые от него ожидают чего-то? Например, в сишарпе нет интерфейса для чисел. Как мне написать интерфейс IAdd и реализовать для всех чисел?
ещё есть вариант - не делать таких хитростей, а сделать перегрузку для Double, Int64 и UInt64. И пускай программист сам решает, к чему надо кастануть
источник

M

MrSmith in rust_offtopic
DOOM-дерево
источник

M

MrSmith in rust_offtopic
источник

Т8

Т-34 85 in rust_offtopic
MrSmith
DOOM-дерево
дум на сях написан
источник

H

Hirrolot in rust_offtopic
MrSmith
👔Специалист по созданию сайта на Битрикс (фронт + бек)

👀Задача: Ускорение по Google page speed сайта на WP на редакторе Элементор. Сейчас в зоне 10 и 20 (мобилка и десктоп), надо минимум 40 и 75. Из задачи
- отклик сервера в норме (хороший виртуальный хостинг)
- сжатие данных подключено
- оптимизация изображений

Что может быть
1. CDN ускоряет, но падает весь сайт
2. Заложить скрипты сквозных аналитик в GTM дает слабое ускорение
3. Большое DOOM-дерево из-за редактора Элементора (но мы не можем его сместить)
Готовы подключать платные CDN, переезжать на VPS, если это не ломает сайт и дает результат.
Вам на распоряжении дается тестовая версия.

💰Оплата: по договорённости

Сроки: на выбор исполнителя, не более 1 недели

#разработка #вёрстка
ор
источник

M

MrSmith in rust_offtopic
boolsheet
источник

M

MrSmith in rust_offtopic
И div средь человеческих душь
источник

Т8

Т-34 85 in rust_offtopic
жаль, что в C++ нет экстеншн методов. Но зато там типы известны в компайл-тайме, можно до рантайма не доводить ненужные кейсы, в отличие от C#
источник

M

MrSmith in rust_offtopic
источник

AZ

Alex Zhukovsky in rust_offtopic
Т-34 85
ну, пока что мне кажется, что вот так лучше всего. Нет проверки на переполнение, не так много лишних типов могут пролезть в рантайм

public static ValueType UncheckedAddNumbers(this IConvertible numeric1, IConvertible numeric2)
       {
           bool isNumeric1 = numeric1 switch
           {
               byte number => true,
               sbyte number => true,
               Int16 number => true,
               UInt16 number => true,
               Int32 number => true,
               UInt32 number => true,
               Int64 number => true,
               UInt64 number => true,
               double number => true,
               float number => true,
               _ => false,
           };
           bool isNumeric2 = numeric2 switch
           {
               byte number => true,
               sbyte number => true,
               Int16 number => true,
               UInt16 number => true,
               Int32 number => true,
               UInt32 number => true,
               Int64 number => true,
               UInt64 number => true,
               double number => true,
               float number => true,
               _ => false,
           };
           if (!isNumeric1 || !isNumeric2)
           {
               throw new ArgumentException("Arguments must be a numeric type");
           }
           dynamic number1 = numeric1;
           dynamic number2 = numeric2;
           return number1 + number2;
       }
> dynamic

ясно-понятно
источник