Pull to refresh
0
0
Андрей Моряков @VnNort

Пользователь

Send message

Современный Javascript: всё, что вы пропустили за последние 10 лет

Reading time7 min
Views15K
JavaScript прошел долгий путь с тех пор, как я знал его как букву «D» в DHTML. Для всех, кто, как я, не хотел использовать новейший синтаксис, который может потребовать полифиллов или транспилятора, я написал эту шпаргалку, чтобы вы познакомились со всеми достоинствами, которые широко поддерживаются в современных браузерах.

Содержание

  • Array functions
  • const/let
  • Nullish coalescing ?? and Optional chaining?.. operators
  • Async/Await
  • Стрелочные функции ()=>{}
  • for...of
  • for await...of
  • Classes
  • get/set
  • function default parameters
  • function named parameters
  • function rest… parameter
  • Destructuring
  • Shorthand functions aka Methods
  • Promise.all
  • Template literals
  • Proxy
  • Module import/export
  • Читать ещё

(Исправления по качеству перевода, пожалуйста, присылайте в личку)
Читать дальше →
Total votes 44: ↑22 and ↓220
Comments9

Релокейт-обзор для удаленщика: 5 стран, куда просто приехать

Reading time10 min
Views47K

В блоге часто пишем про страны, куда IT-специалисты релоцировались, устроившись в местную компанию: и инженеры, дизайнеры и продакты рассказывают о том, как им живется на новом месте. Но это не единственный вариант переезда. Жить у моря и работать на пляже под пальмами — кажется, что именно так выглядит идеальная работа на удаленке. Реально ли в таком месте работать и оставаться продуктивным IT-специалисту? И какие еще есть варианты? Собрали 5 направлений, рассказываем!




Читать дальше →
Total votes 28: ↑22 and ↓6+16
Comments65

Добавляем CRUD в ASP.NET Core проект за 10 минут с помощью EasyData

Reading time6 min
Views9.8K

image


Одной из первых задач для большинства бизнес-приложений на ASP.NET Core является реализация операций CRUD (Create, Read, Update, Delete) для основных объектов, с которыми работает ваше решение.


Каждый разработчик, которому нужно решить эту задачу, знает, что создание CRUD-страниц и форм — очень скучный и трудоемкий процесс.


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


Можно воспользоваться инструментом scaffolding'а, доступным в Visual Studio. Но даже в этом случае это будет совсем не быстрый процесс, поскольку его нужно запускать для каждого класса модели. В итоге вы получаете множество .cs/.cshtml файлов, которые нужно поддерживать и атуализировать по мере изменений в классах модели или просто когда нужно что-то исправить в поведении или внешнем виде CRUD страниц. Если количество сущностей в вашей БД превышает десяток, то весьма велики шансы того, что файлы для реализации CRUD операций занимают больше 50% всей кодовой базы вашего проекта. Более того это решение все равно не обеспечивает некоторых важных, а порой и необходимых функций, таких как разбитие на страницы в режиме просмотра (pagination) или банальные поиск/фильтрация.


Решение: использовать библиотеку с открытым кодом EasyData, о которой и пойдет речь в данной статье.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments5

Демистификация JWT

Reading time5 min
Views14K

Вокруг JWT сложилась много распространенных заблуждений. Одно из них, например, что JWT зашифровано (на самом деле только подписано и закодировано base64url). На практике, я часто встречаюсь с довольно странными решениями, когда в JWT хранится только один идентификатор сессии (на самом деле если вы работаете с сессией то JWT вам не нужен). Или же в JWT хранится только один идентификатор пользователя, профайл которого запрашивается при каждом запросе из базы данных (на самом деле JWT имеет смысл, если Вы хотите уменьшить количество запросов в базу данных). Или, что еще более странно — сами JWT хранятся в базе данных.


Одной из объективных причин такого недопонимания роли и места JWT является то, что спецификация JWT описывает формат JWT, и ничего не говорит о том как JWT нужно применять.


Желание написать об этом у меня возникло уже давно. И после просмотра очередного проекта с немного странным использованием JWT я все же решился.

Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments41

Сохраняем музыку на C#

Reading time3 min
Views9.4K
image
В 2020ом мы пользуемся разными музыкальными сервисами, но как реликт ушедшей эпохи, в забытом профиле ВК, у многих хранится музыка. Функции для загрузки нет, но что если позарез нужно спасти аудиозапись?
Поскольку такого софта в открытом доступе не обнаружилось, кроме парочки веб-сервисов требующих авторизацию через ВК (что не очень то и безопасно), под катом мы рассмотрим процесс создания self-hosted утилиты на современном C# для загрузки своих аудио, не сливающей данные профиля сторонним сервисам.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments38

Дизайнер — это не тот, кто рисует красиво, это тот, кто помогает бизнесу понять пользователя

Reading time11 min
Views4.3K
image

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

Практика показывает, что если нужно что-то предметно обсудить в ИТ (и в других областях тоже), то речь идёт именно о классических дизайн-подходах с User Flow и CJM. То есть очень многие процессы разработки ускоряются за счёт построения процесса от конечного пользователя к продукту, а не наоборот.

За годы выстраивания таких процессов мы в МсKinsey начали использовать фреймворк, в основе которого — парадигмы Design thinking, Zero-based design и Service design. Теперь мы рекомендуем использовать его при перестроении компании в сторону human-centric.

Первый постулат — стоит забыть про имеющиеся наработки и оценить ещё раз, что именно нужно пользователю и как он решает свои задачи на текущий момент. Он часто даётся больнее всего, потому что чаще проще развивать уже имеющийся продукт, а не думать перспективой на один-два года.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

Современные архитектуры фронт-энда

Reading time12 min
Views47K

image


В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе.


Материал состоит из трех частей


  1. Теория и история
  2. Реализация
  3. Перспективы

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments14

Дорога в ад JavaScript-зависимостей

Reading time8 min
Views26K
Каждый JavaScript-проект начинается с благих намерений, заключающихся в том, что его создатели обещают себе не использовать слишком много NPM-пакетов в ходе его разработки. Но даже если разработчики прилагают немалые усилия к тому, чтобы сдержать это обещание, NPM-пакеты постепенно проникают в их проекты. Размер файла package.json со временем растёт. А с package-lock.json после установки зависимостей происходит настоящий ужас, выражающийся в добавлениях и удалениях пакетов, особенно заметных при очередном PR…



«Всё нормально», — говорит тимлид. Остальные члены команды согласно кивают. А что ещё делать-то? Нам всем хорошо от того, что экосистема JavaScript жива и здорова. Нам не надо каждый раз изобретать колесо и пытаться решать задачи, уже решённые сообществом опенсорса.

Предположим, вы собираетесь сделать блог и хотите воспользоваться Gatsby.js. Попытайтесь добавить этот генератор сайтов в зависимости своего проекта. А теперь — принимайте поздравления. Только что в вашем проекте оказалось 19000 дополнительных зависимостей. Это нормально? Насколько сложным может стать дерево JavaScript-зависимостей? Как дерево зависимостей превращается в ад? Давайте с этим разберёмся.
Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments53

OpenID Connect: авторизация внутренних приложений от самописных к стандарту

Reading time7 min
Views13K
Несколько месяцев назад я занимался реализацией OpenID Connect сервера для управления доступом сотен наших внутренних приложений. От собственных наработок, удобных на меньших масштабах, мы перешли к общепринятому стандарту. Доступ через центральный сервис значительно упрощает монотонные операции, сокращает затраты на реализацию авторизаций, позволяет находить много готовых решений и не ломать голову при разработке новых. В этой статье я расскажу об этом переходе и о шишках, которые мы успели набить.

intro
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments3

Конвертация xls в xlsx и xml на C#

Reading time10 min
Views15K

В этой статье я постараюсь рассказать об одном из возможных путей конвертации документов формата xls в xml.


Непосредственно моя задача выглядела примерно так:


Дано:


  1. 1-2 дня времени на поиск и реализацию решения
  2. Найденное решение должно быть настолько бесплатным, насколько это возможно
  3. Известна примерная структура, размер и содержание файла, которые должны быть обработаны, что снимает необходимость читать графики, диаграммы и иные медианные из документа.
  4. Использовать Interop, равно как и иные библиотеки, которые требуют установки Office нельзя, так как это создает лишнюю нагрузку на сервер и требует дополнительной установки офисного пакета.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments18

7 привычек, которые превратят любого интроверта в мастера коммуникации

Reading time4 min
Views29K
Привет! Я Саша, Exness Global Learning & Development Manager.

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

image
Читать дальше →
Total votes 25: ↑16 and ↓9+7
Comments16

Как получать 100 тысяч за код. Полное руководство для начинающих

Reading time9 min
Views57K

Сохраните в закладки сейчас, скажите спасибо через год. В конце каждого этапа — ссылки для внеклассного чтения.


Что нужно знать, чтобы получать зарплату 100 тысяч

1. Познакомьтесь с веб-разработкой


Ситуация на 1 этапе

Продолжительность этапа: 1 месяц.


Что изучить на этом этапе.


  1. Структуру HTML.
  2. Отличия фронтенда и бэкенда.
  3. Разметку и оформление текста.
  4. Как размечать страницу по макету.
  5. Как ставить ссылки и вставлять изображения.
  6. Основы CSS — правила, селекторы, свойства и каскадирование.
  7. Хотя бы немного понимать, как работает и где применяется JavaScript.

Сначала будет много непонятных слов, аббревиатур и голова пойдёт кругом. В одном JavaScript десятка три направлений, поэтому нужно понять, ваше ли это вообще. Смотрите видео на Ютюбе или тренируйтесь на интерактивных курсах. Другой вариант — по учебникам, но с ними сложнее всего. Электронные пока держатся, а вот бумажные устарели ещё до публикации.


Ещё 7 шагов
Total votes 52: ↑30 and ↓22+8
Comments91

Методы удаленного доступа к Linux GUI

Reading time11 min
Views341K
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.


Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments42

Ускоряемся в Entity Framework Core

Reading time15 min
Views65K

Не будь жадиной!


При выборке данных выбирать нужно ровно столько сколько нужно за один раз. Никогда не извлекайте все данные из таблицы!

Неправильно:

using var ctx = new EFCoreTestContext(optionsBuilder.Options);                
// Мы возвращаем колонку ID с сервера, но никогда не используем и это неправильно!
ctx.FederalDistricts.Select(x=> new { x.ID, x.Name, x.ShortName }).ToList();

Правильно:

using var ctx = new EFCoreTestContext(optionsBuilder.Options);  
// Мы не возвращаем колонку ID с сервера и это правильно!
ctx.FederalDistricts.Select(x=> new { x.Name, x.ShortName }).ToList();
ctx.FederalDistricts.Select(x => new MyClass { Name = x.Name, ShortName = x.ShortName }).ToList();

Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments42

Работаем с аудио: прогресс и визуализация данных

Reading time6 min
Views16K


Доброго времени суток, друзья!

Хочу поделиться опытом работы с аудио. Под «аудио» я подразумеваю HTMLAudioElement и Web Audio API.

Что будем делать?

Мы создадим нечто вроде плеера для одного трека (о полноценном проигрывателе — в одной из следующих статей).

Условия:

  • Возможность загрузки файла из любого места на жестком диске как по нажатию кнопки, так и перетаскиванием.
  • Круговой графический и текстовый индикаторы прогресса.
  • Текстовый индикатор громкости звука.
  • Визуализация аудио данных.
  • Управление плеером с помощью клавиатуры.

В сети полно материалов как по HTMLAudioElement, так и по WAAPI, поэтому я сделаю акцент на практической составляющей. Кроме аудио, мы будем работать с drag-drop и canvas.

Без дальнейших предисловий…
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments12

32 совета веб-разработчику, который хочет вырасти над собой в 2020 году

Reading time7 min
Views44K
Ушёл 2019 год. Для нас, для веб-разработчиков, это был год испытаний и возможностей. Вокруг много всего такого, что можно изучить, и такого, в чём можно попытаться достичь мастерства. Например — это JavaScript-инструменты для разработки сайтов, такие, как React, Vue, Angular и Svelte. Но это, конечно, далеко не всё. Есть ещё генераторы статических сайтов, JAMstack, бессерверные технологии, Git… Этот список можно продолжать и продолжать.

Хотя в экосистеме веб-разработки каждый может найти что-то такое, что нужно именно ему, проблема тут заключается в том, чтобы поспеть за постоянно изменяющимися технологиями. Но и технологиями дело не ограничивается. Есть ещё множество вопросов, на которые должен найти ответы каждый разработчик. Где мне хочется работать и с кем? Стать ли мне фулстек-разработчиком или нет? Нужна ли мне постоянная работа или мне ближе фриланс? Как мне развиваться и приобретать новые знания и навыки?



Автор статьи, перевод которой мы сегодня представляем вашему вниманию, говорит, что он вложил в приведённые здесь 32 совета веб-разработчику все свои знания и весь свой опыт. Он надеется на то, что эти советы пригодятся и тем, кто только начал свой путь, и тем, кто уже кое-что понимает в веб-разработке. Хотя нельзя говорить о том, что тут каждый найдёт советы на все случаи жизни, и о том, что все эти советы идеально подойдут любому, автор хочет верить в то, что читатель этого материала сможет найти среди них такие, которые его вдохновят или послужат руководством к действию в 2020 году.
Читать дальше →
Total votes 65: ↑42 and ↓23+19
Comments29

Как официально оплатить услуги фрилансера за границей, заплатить 0% налогов и не кормить платёжные системы

Reading time5 min
Views23K
Такая возможность есть и вполне легальна. Не всё ещё наше государство и банки обложили налогами и комиссиями, чтобы любовницы больших государственных шишек летали частными самолётами на свои 62-метровые яхты. Пользуйтесь пока не прикрыли.

Из статьи вы узнаете с какими проблемами сталкивается бизнес при оплате работ фрилансеров, как отнести данные затраты к расходам, как заплатить с расчётного счёта организации, какие документы и как составить, а так же будут приведены образцы документов.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments29

Telegram Open Network: теория и практика от валидатора сети

Reading time16 min
Views22K


В последние несколько месяцев всё внимание мирового блокчейн-сообщества было приковано к запуску одного из самых масштабных криптовалютных проектов — Telegram Open Network (TON).
Что на самом деле представляет из себя блокчейн TON? Является ли сеть TON действительно децентрализованной? Каковы её реальные возможности масштабирования? Как стать валидатором сети?

Ответы на эти и другие вопросы попыталась найти команда проекта Mercuryo, которая является активным участником тестовой сети с начала сентября 2019 г.

15 ноября 2019 сервисы Telegram переехали на testnet 2 и стартовала третья очередь тестирования. Наша команда продолжила участие в тестировании, став первыми валидаторами в сети после TON.

Для участия в процессе валидации, от пользователя требуется не только иметь достаточное количество монет (токенов GRAM), но и постоянно запущенный полный узел сети (TON Blockchain Full Node).

Теоретически любой пользователь может стать валидатором при соблюдении условия, что он владеет минимально необходимой долей актива (в монетах Gram) в мастерчейне, но на практике возникает ряд вопросов, на которые ответит в данной статье наша команда.

Кроме этого, мы хотим поделиться опытом по использованию tonlib-cli, т.к. в данный момент практически отсутствует задокументированная информация в отличие от базового варианта, подробно описанного в HowTo.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments35

Функциональное программирование — это не то, что нам рассказывают

Reading time17 min
Views124K

Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


Как же так, разве не наоборот? Красивый флюент интерфейс, трансформация данных и лямбды это функционально, а грязные циклы которые мутируют локальные переменные — наследие прошлого? Так вот, оказывается, что нет.

Читать дальше →
Total votes 267: ↑259 and ↓8+251
Comments795

Как IT-специалисту работать и жить в Швейцарии

Reading time9 min
Views45K
image

Будущее за теми, кто разбирается в технологиях и двигает эти самые технологии в светлое и непредсказуемое будущее. И хотя считается, что основную массу IT-специалистов «всасывают» США, есть и другие страны, куда направляются айтишники.

В этом материале вы узнаете:

  • Почему Швейцария — это привлекательная юрисдикция для специалистов в области IT?
  • Как получить разрешение на работу и проживание, перевезти с собой семью?
  • В каком кантоне стоит искать работу или создавать свой бизнес?
  • Есть ли хорошие школы, где обучать детей, и насколько качественно местное образование?
  • Каков уровень жизни и расходы на его поддержание?

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

Читать дальше →
Total votes 54: ↑36 and ↓18+18
Comments133

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity