Обновить
-3
LittleDonut@beskaravaev

C# Developer

1
Подписчики
Отправить сообщение

Точных данных по rps я вам не скажу, но направлю на подумать.

1) Грубо прикидывать rps исходя из кол-ва заказов в день - неправильно, т.к. нагрузка в течении дня неравномернавя

2) Если перечитать статью, то можно заметить, что с обычной нагрузкой проблем не было. Проблемы были при старте продаж хамеров (товаров по супер низкой цене). Это когда условно 10к товаров сметают за пару секунд. 1 товар в одни руки. При этом далеко не у всех резерв завершается успешно как у вас.

Теперь вопрос, что будет с вашей системой, когда в неё прилетит под 10к RPS?

По сути база. Если есть класс со статическими методами, то просто делаем обёртку с интерфейсом за которой скрываем статический класс и мокаем интерфейс обёртки.

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

Хорошая работа, вы молодцы! Но есть придирка и вопрос:

Больше похоже на статью из разряда "пиарюсь". На хабре хочется больше видеть технического, нежели "смотрите какой интересный проект".

Название специально выбрано совпадающим с набором виджетов для андроид?

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

Из этого складывается впячатление, что интернируются все строки, но это не так. Интернируются строки созданные на этапе компиляции, а именно константы. Строка созданная через string.Create string.Join и многими другими способами интернирована не будет, то есть все, что создаются во время работы приложения.
p.s. но если очень нужно есть специальный метод String.Intern
Вы ведь додокоины пилили совсем недавно? Как так вышло, что это не отдельный микросервис с отдельной базой?
10км? Вроде не первое апреля, я не мог столько проспать…
А если серьёзно как они смогли добиться такого покрытия подняв частоту и скорость передачи, если у 5G радиус совсем небольшой и ему любые преграды мешают сильно больше, чем сетям прошлых поколений?
И не забудьте для файлов с картинками шашек задать копирование при сборке. Copy if newer(копировать более новые в русской версии студии) или Copy always(копировать всегда). Иначе когда кто-то будет собирать проект из исходников, при запуске новой игры будет ошибка их отсутствия.
п.с. в репозитории не должно быть артефактов сборки, т.е. папки obg и bin должны быть прописаны в файле gitignore, а также папка .vs. Вообще этот файлик должен создаваться автоматически, во всяком случае Github desktop создает его сам, нужно лишь указать для какого проекта создаётся репозиторий(в вашем случае проект Visual studio).
Есть баг. Обычные шашки(не дамки) могут ходить назад.
Библиотечка очень интересная, но внутри генератора всё вызывается Guid.NewGuid() от которого они хотели избавиться, так что она не подойдёт.
Spoiler header
public static Uuid NewTimeBased()
        {
            byte* resultPtr = stackalloc byte[16];
            var resultAsGuidPtr = (Guid*) resultPtr;
            var guid = Guid.NewGuid();
            resultAsGuidPtr[0] = guid;
            long currentTicks = DateTime.UtcNow.Ticks - ChristianCalendarGregorianReformTicksDate;
            var ticksPtr = (byte*) &currentTicks;
            resultPtr[0] = ticksPtr[3];
            resultPtr[1] = ticksPtr[2];
            resultPtr[2] = ticksPtr[1];
            resultPtr[3] = ticksPtr[0];
            resultPtr[4] = ticksPtr[5];
            resultPtr[5] = ticksPtr[4];
            resultPtr[6] = (byte) ((ticksPtr[7] & ResetVersionMask) | Version1Flag);
            resultPtr[7] = ticksPtr[6];
            resultPtr[8] = (byte) ((resultPtr[8] & ResetReservedMask) | ReservedFlag);
            return new Uuid(resultPtr);
        }


p.s. Да и решают авторы статьи и библиотеки разные задачи
Исходников ImportExportDataSql в открытом доступе так и нет, а жаль.
Кто в здравом уме будет использовать Linq для поиска чего-то в словаре?
Для этого достаточно посмотреть на код в репе. Ручной, это проход форичем по словарю
Отсылка к сериалу «Рик и Морти», которая давно стала мемом в массовой культуре. Отсылает она к серии, когда Рик уговорил на приключение, которое казалось коротким «приключение на 20 минут. Вошли и вышли.», а по факту оказалось очень тяжелым и затянулось на несколько дней.
Среди готовых конфигураций увидел Intel Core i7-6700 и Intel Core i3-3220. Это списанное железо получило новую жизнь или кто-то из сотрудников своё старое принёс?) Казалось такое в продаже уже давно найти нельзя.
Зачастую да, всё хорошо и тоже нравится качество додо, но пару раз были случаи, когда пицца было жесткой, т.к. её пережарили. Такое случается и совсем от этого не избавиться, но можно уменьшать количество «брака» разными путям и в статье один из них. И да, нужен комплексный подход. Было бы глупо отбраковывать половину товара, из-за не стандартизированного процесса приготовления.
Зашёл с тем же вопросом
А Visual Studio for Mac на новых камнях не работает или почему она не подходит?
Разве где-то ещё осталось железо не на Win10?(Сарказм) Грустно, но да, осталось. Использовать будут те, кому известна пользовательская база, т.е. разработка на заказ с длительной поддержкой. А позже и остальные подтянутся(если очередная технология в очередной раз не умрёт).
Статья конечно хорошая, но не рассказывает ничего нового, чего не было бы в других подобных. Но для новичков да, пусть лучше будет, а вот для тех кто заинтересовался и хочет глубже, лучше читать Pro .Net Memory Management от Konrad Kokosa и\или посмотреть доклады с CLRium о работе GC (есть в свободном доступе на ТыТруба)

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность