Pull to refresh
5
0
Леонид @LFedorov

Software Engineer

Send message

Создание сервера для онлайн ММО игр на PHP ч.13 — Event-driven паттерн, JSON-RPC и почему не сервисная (SOA) архитектура

Level of difficultyMedium
Reading time5 min
Views4.2K

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

В этой статье я без привязки к коду объясню простым языком и в картинках как можно применять в разработке архитектуры авторитарного сервера для онлайн игр шаблон проектирования Event-driven.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments7

Создаём npm пакет, совместимый с CJS, ESM, написанный на TypeScript

Reading time6 min
Views8.9K

Здравствуйте! Меня зовут Евгений, я бакенд разработчик в компании ClickON. Хотелось бы поделиться опытом создания npm пакета, который умеет встраиваться в CommonJS, ESModule проект. Опишем подводные камни, попытаемся сделать универсальный пакет, прикрутим алиасы.

Читать далее
Total votes 18: ↑17 and ↓1+18
Comments7

Топ-30 онлайн-ресурсов для обучения детей основам программирования на Python

Reading time8 min
Views34K

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

Читать далее
Total votes 16: ↑15 and ↓1+16
Comments6

Как посчитать длину текста и не привлекать внимание санитаров

Reading time10 min
Views33K

Привет! Меня зовут Алексей Ивасюта, я фронтенд-разработчик в Авито в кластере Seller Experience. В этой статье я расскажу, как правильно рассчитать длину текста в Java Script. Эта статья будет одинаково полезна как начинающим разработчикам, так и весьма опытным. Благодаря ей вы поймете устройство Unicode и особенности его работы в JS.

Читать далее
Total votes 58: ↑57 and ↓1+71
Comments58

Шпаргалка по функциональному программированию

Reading time23 min
Views39K

Привет, меня зовут Григорий Бизюкин, я преподаватель Школы разработки интерфейсов и фронтенд-разработчик в Яндексе. Давайте поговорим о функциональном программировании в мире JavaScript. Мы все про ФП что-то слышали, нам всем оно интересно, но у меня, когда я искал полезные материалы для подготовки к лекциям, сложилось такое впечатление: есть куча статей, каждая из которых либо говорит об ФП общими словами, либо раскрывает отдельный маленький кусочек темы, чего, конечно, недостаточно.



Добавим функционального света


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

Читать дальше →
Total votes 31: ↑28 and ↓3+33
Comments18

Революция или боль? Доклад Яндекса о React Hooks

Reading time16 min
Views28K
Меня зовут Артём Березин, я разработчик нескольких внутренних сервисов Яндекса. Последние полгода я активно работал с React Hooks. По ходу дела возникали некоторые сложности, с которыми приходилось бороться. Теперь хочу поделиться этим опытом с вами. В докладе я разобрал React Hook API с практической точки зрения — зачем нужны хуки, стоит ли переходить, что лучше учитывать при портировании. В процессе перехода легко наделать ошибок, но избежать их тоже не так сложно.



— Хуки — это просто еще один способ описывать логику ваших компонентов. Он позволяет добавить к функциональным компонентам некоторые возможности, ранее присущие только компонентам на классах.

Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments72

Полное руководство по useEffect

Reading time45 min
Views254K
Вы написали несколько компонентов с использованием хуков. Возможно — даже создали небольшое приложение. В целом результат вас вполне устраивает. Вы привыкли к API и в процессе работы обнаружили несколько неочевидных полезных приёмов. Вы даже создали несколько собственных хуков и сократили свой код на 300 строк, поместив в них то, что раньше было представлено повторяющимися фрагментами программы. То, что вы сделали, вы показали коллегам. «Отлично получилось», — сказали они о вашем проекте.


Но иногда, когда вы используете useEffect, составные части программных механизмов не особенно хорошо стыкуются друг с другом. Вам кажется, что вы что-то упускаете. Всё это похоже на работу с событиями жизненного цикла компонентов, основанных на классах… но так ли это на самом деле?
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments6

Тестирование на примере ReactJS: насколько глубока кроличья нора

Reading time14 min
Views25K
Всем привет, меня зовут Ярослав Астафьев, и сегодня я хотел бы провести обзорную экскурсию в тестирование ReactJS. Я не буду углубляться в сложности тестирования веб приложений с использованием определенных библиотек (руководствуясь подходом «сложно тестировать только плохой код»), взамен постараюсь разнообразить ваш кругозор. Так что в этой статье React — скорее повод собрать воедино подходы к тестированию, отправная точка, объединяющая хипстеров и технологии. Корректнее будет даже сказать, что речь пойдет о принципах тестирования вообще с иллюстрациями на ReactJS (и не только).

Если вы считаете себя гуру тестирования — пропустите первую половину статьи, она о базовых принципах тестирования. Если же и вторая часть не откроет для вас ничего нового — приходите к нам работать и научите как надо.



Если введение не вызвало приступ синестезии — добро пожаловать под кат.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments0

Собеседование для фронтенд-разработчика на JavaScript: самые лучшие вопросы

Reading time9 min
Views212K
Недавно мне довелось побывать на встрече участников проекта FreeCodeCamp в Сан-Франциско. Если кто не знает, Free Code Camp — это сообщество, нацеленное на изучение JavaScript и веб-программирования. Там один человек, который готовился к собеседованиям на позицию фронтенд-разработчика, попросил меня подсказать, какие вопросы по JavaScript стоит проработать. Я немного погуглил, но не смог найти подходящего списка вопросов, на который я бы мог дать ссылку и сказать: «Разбери эти вопросы и работа твоя». Некоторые списки были близки к тому, что мне хотелось найти, некоторые выглядели очень уж простыми, но все они были либо неполными, либо содержали вопросы, которые вряд ли кто станет задавать на реальном собеседовании.

image
Читать дальше →
Total votes 58: ↑41 and ↓17+24
Comments118

Есть ли альтернатива MS Windows, IE и CSP при доступе в личные кабинеты порталов Госзакупок, ФНС России и Госуслуг

Reading time4 min
Views20K
image

И сразу дадим ответ – да, можно и нужно, только не отказаться, а дать гражданам и организациям возможность использовать и другие операционные системы, браузеры и средства криптографической защиты информации (СКЗИ). Ответим на вопрос и как – соблюдать стандарты и технологии. Почему бы для доступа в личные кабинеты не использовать авторизованный доступ по протоколу https? И тогда нет необходимости в использования только CSP а ля Микрософт с поддержкой российской криптографии. Тогда автоматом станут востребованы и токены PKCS#11 и как международный стандарт, так и стандарт, поддерживаемый ТК-26, стандарты PKCS#12 (тем же ТК-26), может что-то другое, но стандартное. В этом случае речь уже будет идти не об MS Windows, Interner Explorer и CSP, а о браузерах или других программ с поддержкой https с российскими шифрсьютами. Это может быть и Internet Explorer, и модификации того же Mozilla Firefox, наконец Google Chrome или прокси типа stunnel.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments84

Разворачиваем и демонизируем ASP.NET Core приложение под Linux в виде фонового сервиса

Reading time5 min
Views75K
Доброго дня, господа. Сегодня мы затронем тему, за обсуждение которой ещё два года назад сожгли бы на костре — запуск ASP.NET приложения под linux. В данной статье будет использоваться Ubuntu 16.04
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments26

Пишем симпатичные Node.js-API с использованием async/await и базы данных Firebase

Reading time5 min
Views24K
Мы уже рассказывали об основах работы с async/await в Node.js, и о том, как использование этого нового механизма позволяет сделать код лучше. Сегодня поговорим о том, как создавать, используя async/await, RESTful API, взаимодействующие с базой данных Firebase. Особое внимание обратим на то, как писать красивый, удобный и понятный асинхронный код. Можете прямо сейчас попрощаться с адом коллбэков.


Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments6

Платформа Node.js обойдёт Java в течение года

Reading time9 min
Views37K
В конце июня сего года Микеал Роджерс (он участвовал в работе Node.js Foundation со дня основания этой организации, а теперь покидает проект) дал интервью thenewstack.io. Тогда он сказал, что платформа Node.js обойдёт Java в течение года. Тут надо уточнить, что речь идёт о том, что число программистов, которые пишут для Node.js, превзойдёт число тех, кто пишет на Java.

image

Ресурс builtinnode.com, через неделю после публикации интервью, подготовил материал, автор которого, задавшись вопросом: «Действительно ли Node.js обойдёт Java?», проанализировал ситуацию. Представляем вашему вниманию перевод интервью и аналитической статьи и предлагаем поразмыслить о перспективах Node.js и Java.
Читать дальше →
Total votes 38: ↑26 and ↓12+14
Comments56

Мемоизация в JS и ускорение функций

Reading time6 min
Views89K
В погоне за производительностью разработчики изобретают самые разные способы оптимизации программ. В нашем случае речь идёт о повышении скорости работы функций. Пожалуй, в JavaScript их по праву можно назвать одним из краеугольных камней языка. В частности, функции — это средство разбиения программ на модули и инструмент для повторного использования кода.

Некоторые функции выполняются так быстро, что их многократный вызов, хотя и создаёт нагрузку на систему, проблемой не является. Некоторые же весьма «тяжелы», каждое обращение к таким функциям ведёт к серьёзным затратам вычислительных ресурсов. Если траты оправданы, вычисления оптимизированы, то деваться особо некуда. Но как быть, если при повторных вызовах, функция иногда (или, возможно, довольно часто) выполняет те же самые вычисления, которые выполнялись при её предыдущих вызовах? Можно ли этим воспользоваться для повышения производительности?


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

Moby/Docker в продакшене. История провала

Reading time18 min
Views73K

Обновление: у этой статьи появилось продолжение, переведённое @achekalin. В каком порядке читать — на ваше усмотрение: в этой статье можно получить удовольствие от обширной попоболи автора, а в продолжении — от сделанных им выводов.


Примечание переводчика: в предыдущей статье о подготовке к девопс-конференциям, Gryphon88 задал резонный вопрос: как отличить cutting-edge и хайп? Нижеследующая статья наполнена сочной незамутненной истерикой, которую так приятно читать с утра, попивая чашечку кофе. Минус в том, что она написана в ноябре 2016, но нетленка не стареет. Если после прочтения захочется добавки, есть комментарии на Hacker News. А у тебя, юзернейм, такой же ад? Пиши в комментариях. Итак, начнем.


В первый раз я встретился с Докером в начале 2015. Мы экспериментировали с ним, чтобы понять, для чего бы его можно употребить. В то время нельзя было запустить контейнер в фоне, не было команд чтобы посмотреть что запущено, зайти под дебагом или SSH внутрь контейнера. Эксперимент оказался быстрым, Докер был признан бесполезным и более похожим на альфу или прототип, чем на релиз.


Промотаем нашу историю до 2016. Новая работа, новая компания, и хайп вокруг докера поднялся безумный. Разработчики уже выкатили докер в продакшен, так что сбежать с него не удастся. Хорошая новость в том, что команда run наконец-то заработала, мы можем запускать и останавливать контейнеры. Оно шевелится!


У нас 12 докеризованных приложений, бегающих на проде прямо в момент написания этой заметки, размазанные на 31 хост на AWS (по одному приложению на хост, дальше объясню — почему).


Эта заметка рассказывает, как мы путешествовали вместе с Докером — путешествие полное опасностей и неожиданных поворотов.

Читать дальше →
Total votes 141: ↑132 and ↓9+123
Comments175

Три дня как все кассы в стране должны стать онлайн (на самом деле нет)

Reading time5 min
Views67K

Теперь так делать нельзя

Старая логика такая: внутри кассы есть некая постоянная write-only память, в которую касса пишет каждый пробитый чек. Это реализовано в виде ЭКЛЗ — электронной контрольной защищённой ленты, которая уже давно не лента, а плата. Это устройство требует много геморроя — там целый квест с заменой, заведением новой кассы и так далее.

В цифровом мире такие проблемы очень давно решаются сертификатами. Именно эту плюшку даёт нам ФЗ-54, который описывает онлайн-отправку чеков. Он же запрещает с 1 февраля 2017 заводить новые кассы старого типа, а с 1 июля 2017 (то есть уже) — вообще использовать такие кассы. То есть если в феврале планировалось открытие нового магазина, то в нём уже должна быть онлайн-касса. С 1 июля 2017 все кассы должны быть онлайн.

Мелкие бизнесы (ИП, ЕНВД и патентное налогообложение) могли перетоптаться до 1 июля вообще без кассы, но потом даже для торговых автоматов они стали обязательными. На самом деле это нереально круто для страны, но…

… реализация породила целую гору проблем. Первая и главная — фактическая спекуляция новым оборудованием, потому что потребность в нём была больше, чем производители успевали выставлять на полки.
Читать дальше →
Total votes 97: ↑95 and ↓2+93
Comments344

ReactJS — мое понимание тестирования

Reading time6 min
Views6.8K
Как мог бы сказать мой босс, всем рок. Поскольку я ничего умнее не придумал, на этом и остановимся.

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

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

Возникла задача попробовать таки сделанное небольшое приложение протестировать. Ну, всякие сервисы вполне в привычном стиле можно тестировать каким-нибудь jasmine. С компонентами сложнее, если хочется тоже остаться в рамках концепции юнит-тестирования. По идее тестировать принято контракты, а не реализацию, то есть тесты должны иметь вид «ткнули кнопку — приложение попыталось сделать то-то».

Ну все, завязываю со вступлением.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments13

Redux Business Logic

Reading time6 min
Views11K

Как-то раз в Телеграмм-чате React_JS (кстати, русскоязычный чат, присоединяйтесь) обсуждали вопрос: "где в React-приложении должен быть расположен код, отвечающий за бизнес-логику". Вариантов несколько, мнения разделились. Ну а я решил записать подкаст (автор @PetrMyazin).

Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments21

Бешеные псы: Angular 2 vs React: доклад Евгения Гусева и Ильи Таратухина

Reading time1 min
Views17K
Angular2 отрелижен, React и подавно. Копья поломаны, мечи перекованы на орала, страсти уже поутихли и, вроде как, статус кво восстановлен. Кто-то использует один инструмент, кто-то другой, разве что, иногда раздаются возгласы: «А у них...!»



Однако не всё так просто. В конце концов, мы не только пишем код, но и решаем однотипные проблемы:

  • Как сделать наше приложение быстрым?
  • Как писать понятнее и проще?
  • Как писать быстрее?

Кто-то может сказать: «Эту тему уже миллион раз обсасывали, зачем опять?». Но, все же, если вы запускаете новый проект или решили переписать старый, перед вами всё равно встанет проблема выбора. И даже если вы считаете, что всё очевидно — это далеко не так.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments44

Что будет если скрестить React и Angular?

Reading time6 min
Views12K

Akili — javascript фреймворк, который появился под влиянием таких решений как React, Angular, Aurelia и в меньшей степени некоторых других. Целью было объединить все лучшее, что я вижу в них и максимально все упростить.

Нравится React, но отталкивает JSX? Любите Angular, но надоела всякая магия?

Тогда вам стоит попробовать это.
Читать дальше →
Total votes 23: ↑17 and ↓6+11
Comments67

Information

Rating
Does not participate
Location
Химки, Москва и Московская обл., Россия
Date of birth
Registered
Activity