Как стать автором
Обновить
16
0
Сергей Мелодин @melodyn

Backend web-developer

Отправить сообщение

Вызов принят!


Оффтоп

Звала за собою меня,
Твердила: "я буду твоя!",
Сказала, что знает местечко,
Где мне бы раскрыла сердечко.


И я с ней пошёл на удачу,
Не веря такому вдруг счастью,
Что столь интересная леди
Со мною готова быть вместе.


И вот мы уже в ресторане,
Она вся в вечернем наряде
Но лишь я отвлекся в меню,
Как понял, что текст не пойму.


Я просто читаю с листа:
"Крутон, дефлопе и флуа",
Но слышу расстроенный стон:
"Крутон без панакоты — моветон!"


Я понял, что слился в этот момент
И шанса загуглить теперь уже нет.
Давление скачет, пульс мой растёт,
И я тихо блею: "подайте нам счёт!"

Предлагаю создать ХаброПаб! Даже в Мск почти нет мест, где можно собраться уютной компашкой айтишников (человек до 200-300), чтобы быть и рядом, и не мешаться друг другу, и чтобы музыка не орала, и не темно, и удобно, и выпить и пожрать. Я за ХаброПаб со скидками за публикации! )

Про tsconfig не знал, а динамический импорт заинтересовал, как инструмент нативный и хотелось больше добавить контента по теме :) На досуге изучу возможности paths, интересно, покрывает ли она кейсы как с динамическим импортом.

Этот файл надо каждый раз обновлять в ручную, а автозагрузка, по сути, делает это за разработчика. Мой кейс использования — автозагрузка всего однотипного (роутов / стратегий авторизаций / etc..), где, в общем-то, всё можно сделать в цикле.

Путин подписал 2 августа закон, согласно с которому операции для сделок с недвижимостью должны сопровождаться использованием усиленной квалифицированной электронной подписи

Как выяснилось, далеко не все УЦ (удостоверяющие центры) внимательно относятся к процессу выдачи квалифицированного сертификата. Ну а поскольку по всей России работает около 500 таких центров, то некоторые из них соглашаются оформлять электронную подпись через интернет, без личного присутствия заявителя. Далеко не всегда представители УЦ требуют личного предъявления паспорта, поскольку в законодательстве способ предоставления заявителем документов не указывался.

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


PS
Вроде, ещё "Рога и копыта" через ЭП с долгами вешали на людей. Не могу найти новость, может, не на Хабре было.

О, реально! Исправил, спасибо :)

Это ирония или я чего-то не понимаю? Чем плох reduce?


[{key: 'a', value: 'b'}, {key: 'b', value: 'c'}].reduce((acc, elem) => ({ ...acc, [elem.key]: elem.value }), {})
Про дубликаты я узнал отсюда: github.com/hhru/api/issues/392
Мы внесли соответствующие изменения в код и ошибка пропала.

По поводу воспроизведения `quota_exceeded` попробуем.

Мы пытались своими силами воспроизвести некоторые ошибки на тестовом контуре, однако, по древней традиции, они воспроизводились только у заказчика в тот момент, когда никто не видел при непонятных обстоятельствах :) Однако, я завожу ишью для вас и, если получится уловить что-то из описанного статье, то соответствующая информация до вас дойдёт.
Спасибо за уточнение, исправил в статье. С поддержкой контакт держим, но конкретно по данному случаю получился сломанный телефон.
> Сравнивал, чтобы не копировали домашки друг у друга

Но как? Если 40 человек с примерно одинаковым опытом, примерно одинаковыми знаниями и одинаковым заданием, то они выдадут одинаковый результат с огромной вероятностью.

> Потом очень строго проверял.
> Оглянитесь, возможно и рядом с вами есть будущие звезды

Человек с крутыми скиллами != хороший препод. Хорошо, что этот человек нашёл себя, но не более того.
Очень жаль, что презентованное в статье далеко от истины. Обратная связь с пользователями у ВК уже несколько лет безнадёжно утеряна. При этом ребята реально готовы инвестировать в какие-то локальные истории, но, к сожалению, развивать их не собираются. В итоге сайт превратился в набор массы недопиленных фич. Думаю, все эти данные по аудитории, как минимум, в два раза приукрашены, за счёт рекламодателей и представителей бизнесов.
В процессе изучения подобных возможностей всё равно пришёл обратно к своему варианту, решил не париться и сделать как планировал, и всё получилось. Немного застопорило помещение интерфейсного объекта в Joi.object, но это тоже решилось (обновил статью).

Да, решение тоже интересное и хорошо, как минимум своей краткостью и лишь одной условной конструкцией. Почему класс, а не интерфейс и типы? Кажется, такое решение тоже достаточно рабочее:


type TS<K extends boolean, SimpleType, JoiType> = K extends true ? SimpleType : JoiType;

interface EtalonUser<K extends boolean = true> {
    name: TS<K, string, Joi.StringSchema>;
    age: TS<K, number, Joi.NumberSchema>;
    phone: TS<K, string | number, Joi.AlternativesSchema>;
}

type IUser = EtalonUser;
type IJoiUserSchema = EtalonUser<false>;

const User: IUser = {
    name: "Evg Pal",
    age: 33,
    phone: "+79151231231"
};

const UserSchema: IJoiUserSchema = {
    name: Joi.string(),
    age: Joi.number(),
    phone: Joi.alternatives([Joi.string(), Joi.number()])
};
> логика меняется и телефоны начинают храниться в строковом виде

Думаю, в контексте чисто бэка, такие вопросы почти не актуальны. В самом простом случае, у нас хранится строка (или числа) по регулярке 79[0-9]{9}, а как она будет отражена на каком-то фронте — без разницы. В статью я воткнул его просто для введения AlternativeSchema.

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

Также, добавил в статью то, о чём общался с комментаторами выше.

Я думаю, переименовать в "Валидация по TypeScript interface с использованием Joi". Так будет более семантическо верно, согласны?

Да, спасибо за ссылки, стоило их включить в статью, наверное. Мне подсказывали про эти библиотеки, но возможности их пока не изучал. Пока было два дня перед праздниками, решил больше надавить на спортивный интерес, чем на сторонние либы :)

Да, ещё можно использовать [key in keyof T] : T[key], чтобы более явно задать тип значения, но я забыл про это пока писал статью, вроде, там не было профита)


С классами интересно, вроде, не встречал подобного в статьях пока что.

Я правильно понял, что join эту проблему решает?

А как дела с интерполяцией?
В силу некоторых причин (не паранои) давно использую приватный режим на всех браузерах и устройствах, и стараюсь не логиниться где-либо без необходимости, тогда после перезапуска браузера персонализация пропадает и почти все сайты покрываются одной и той же рекламой вот уже несколько лет: «Нужна Помощь От Бога?».
Ощущение, что гугл так троллит :)

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность