Как стать автором
Обновить
0
0
Иван Волков @oOLokiOo

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

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

Пишем первый микросервис на Node.js с общением через RabbitMQ

Время на прочтение5 мин
Количество просмотров62K

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


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

Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии34

Javascript Interface Abstract Notation

Время на прочтение6 мин
Количество просмотров14K
Здравствуйте всем, этот пост о библиотеке, а вернее философии разработки приложений на Javascript которую изобрел пару месяцев назад. Постоянно использую сам, раздал всем друзьям. Отзывы положительные, поэтому решил рискнуть открыть более широкому сообществу.
Сама библиотека работает как подстройка к jQuery. Практически зависимость от jQuery условна и ее можно разделить с самой библиотекой, пока не было необходимости.
Jiant позволяет создавать клиентские приложения любой сложности, значительно упрощая их поддержку и развитие.
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии12

Работа с памятью (и всё же она есть)

Время на прочтение13 мин
Количество просмотров107K
Существует распространенное мнение, что «рядовому» PHP разработчику практически не нужно заботиться об управлении памятью, однако «заботиться» и «знать» всё же немного разные понятия. Попытаюсь осветить некоторые аспекты управлению памятью при работе с переменными и массивами, а также интересные «подводные камни» внутренней оптимизации PHP. Как вы сможете убедиться, оптимизация это хорошо, но если не знать как именно она «оптимизирует», то можно столкнуться с «неочевидными граблями», которые могут вас заставить изрядно понервничать.

Читать дальше →
Всего голосов 235: ↑224 и ↓11+213
Комментарии90

Почему Node.js в качестве основы фронтенда – это круто [обновлено]

Время на прочтение6 мин
Количество просмотров45K


Накануне запуска школы Node.js от Яндекс.Денег я хотел бы рассказать чуть больше о том, почему именно эта платформа прижилась в нашем фронтенде.


Несколько лет назад в Яндекс.Деньгах назрела смена платформы для серверной прослойки фронтенда: имевшаяся была внутренней проприетарной разработкой и постепенно умирала от слабой поддержки и проседания скорости работы. Вместе с медленной работой в рантайме и отсутствием развития XSLT, на котором работало API, этот «черный ящик» с множеством ограничений настала пора заменить.


Под «фронтендом» мы понимаем не только выполняемый в браузере код, но и серверную прослойку по сбору данных и генерации HTML. Хорошей заменой для имевшейся логики стал Node.js.

Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии41

Понимание жизненного цикла React-компонента

Время на прочтение9 мин
Количество просмотров179K
React предоставляет разработчикам множество методов и «хуков», которые вызываются во время жизненного цикла компонента, они позволяют нам обновлять UI и состояние приложения. Когда необходимо использовать каждый из них, что необходимо делать и в каких методах, а от чего лучше отказаться, является ключевым моментом к пониманию как работать с React.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии15

Git happens! 6 типичных ошибок Git и как их исправить

Время на прочтение5 мин
Количество просмотров239K


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

Все мы делаем ошибки, особенно при работе с такими сложными системами, как Git. Но помните: Git happens!
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии62

Разбираем ACID по буквам в NoSQL

Время на прочтение7 мин
Количество просмотров38K

Мотивация


Ни для кого не секрет, что при наличии сформулированного эвристического правила под названием CAP Теорема в противовес привычной RDBMS-системе класс NoSQL-решений не может обеспечить полную поддержку ACID. Нужно сказать, что для целого ряда задач в этом нет никакой необходимости и поддержка одного из элементов приводит к компромиссу в разрешении остальных, как итог — большое разнообразие существующих решений. В данной статье я бы хотел рассмотреть различные архитектурные подходы к решению задач по частичному обеспечению требований к транзакционной системе.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии22

Книга «Node.js в действии. 2-е издание»

Время на прочтение8 мин
Количество просмотров26K
image Второе издание «Node.js в действии» было полностью переработано, чтобы отражать реалии, с которыми теперь сталкивается каждый Node-разработчик. Вы узнаете о системах построения интерфейса и популярных веб-фреймворках Node, а также научитесь строить веб-приложения на базе Express с нуля. Теперь вы сможете узнать не только о Node и JavaScript, но и получить всю информацию, включая системы построения фронтэнда, выбор веб-фреймворка, работу с базами данных в Node, тестирование и развертывание веб-приложений.

Технология Node все чаще используется в сочетании с инструментами командной строки и настольными приложениями на базе Electron, поэтому в книгу были включены главы, посвященные обеим областям. Внутри поста будет рассмотрен отрывок «Хранение данных в приложениях»
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии30

Что почитать по PHP на русском?

Время на прочтение4 мин
Количество просмотров81K
image

PHP — один из самых популярных языков программирования. А ещё это язык, для изучения которого не так просто найти качественную книгу. Что ж, мы вместе с командой GeekBrains заглянем в интернет-магазин и посмотрим, что стоящего можно найти сегодня по PHP на русском языке.
Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии12

IBM, память на линиях задержки и история дисплея 80×24 символа

Время на прочтение14 мин
Количество просмотров12K

У терминала DEC VT100, проданного в количестве более миллиона штук, был дисплей 80×24 символа

Чем объяснить популярность терминалов 80×24 и 80×25 символов? Недавняя запись в другом блоге подвигла меня на небольшое исследование. Источником строк длиной в 80 символов очевидно являются перфокарты, и об этом пишут довольно часто. Однако что насчёт 24 или 25 строк на экране? Теорий существует много, но я нашёл простой ответ: IBM, а в частности, её доминирование на рынке терминалов. В 1971 году IBM ввела терминал с дисплеем 80×24 символа (модель 3270), и вскоре он стал наиболее продаваемым терминалом, заставив остальные равняться на размер 80×24. Дисплей для IBM PC добавил ещё одну строку, и сделал размер 80×25 стандартом в мире ПК. Влияние этих систем остаётся в силе и десятилетия спустя: строки длиной в 80 символов являются стандартами по сей день, как и терминальные окна 80×24 и 80×25.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии39

Ожидаемые новые возможности JavaScript, о которых полезно знать

Время на прочтение6 мин
Количество просмотров19K
С момента выхода стандарта ECMAScript 2015 (его ещё называют ES6) JavaScript серьёзно изменился и улучшился. Это очень хорошая новость для всех JS-разработчиков. Более того, теперь новая версия ECMAScript выходит каждый год. Возможно, вы не обратили особого внимания на то, что появилось в самой свежей версии стандарта, который был выпущен в июне 2019 года. Автор заметки, перевод которой мы сегодня публикуем, хочет в двух словах рассказать о новшествах JavaScript, и о том, чего можно ждать в следующей версии стандарта ECMAScript.



Здесь будут упомянуты возможности, предложения которых находятся на третьем этапе согласования (Stage 3). Это значит, что они, скорее всего, появятся в следующей версии стандарта ECMAScript, но с абсолютной достоверностью этого утверждать нельзя. Вот репозиторий, в котором можно найти сведения о предложениях, находящихся на разных этапах согласования.
Читать дальше →
Всего голосов 59: ↑55 и ↓4+51
Комментарии21

Базовые стили и полезные CSS-сниппеты

Время на прочтение6 мин
Количество просмотров148K


В этой статье собраны полезные  и «правильные» стили и сниппеты, которые помогут ускорить процесс разработки сайта, а также оптимизировать верстку.
Читать дальше →
Всего голосов 163: ↑118 и ↓45+73
Комментарии54

Осторожно: HSTS

Время на прочтение3 мин
Количество просмотров95K
Про HSTS на Хабре уже писали, этот механизм включен в генераторе конфигов для веб-серверов от Mozilla. Написать этот пост я решил за один день столкнувшись с недоступность сразу двух крупных сайтов из-за HSTS.

TL;DR
Тщательно проверяйте работу сайта по TLS перед включением HSTS, особенно если это большой портал с кучей субдоменов и управляемый разными людьми.

Что такое HSTS?


HSTS (HTTP Strict Transport Security) — это механизм защиты от даунгрейд-атак на TLS, указывающий браузеру всегда использовать TLS для сайтов с соответствующими политиками. Стандарт описан в RFC6797, а политики бывают двух видов:

Динамические


Политика применяется из HTTP-заголовка Strict-Transport-Security при первом заходе на сайт по HTTPS, в нём указан срок действия и применимость к субдоменам:

Strict-Transport-Security: max-age=15768000; includeSubDomains;

Статические


Статические политики захардкожены в браузер и для некоторых сайтов включает привязку к вышестоящему CA, выпустевшему сертификат (например: google.com, paypal.com или torproject.org). Причем она может действовать только когда сайт открыт через TLS, разрешая незащищённое соединение, но блокируя MitM с подменой сертификата.

Список из Chromium используют все популярные браузеры (Firefox, Safari и IE 11+Edge) и добавить в него сайт может любой желающий, если веб-сервер отдаёт заголовок Strict-Transport-Security со сроком действия от двух лет и ключевым словом preload в конце:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии16

Разница между асинхронной функцией и функцией, возвращающей промис

Время на прочтение4 мин
Количество просмотров24K
Существует небольшая, но довольно важная разница между функцией, которая просто возвращает промис, и функцией, которая была объявлена с помощью ключевого слова async.

Взгляните на следующий фрагмент кода:
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии12

Суровая практика: как сделать Wi-Fi сеть в городском парке

Время на прочтение4 мин
Количество просмотров19K
В прошлом году у нас был пост про проектирование общественного Wi-Fi в гостиницах, а сегодня мы зайдем с другой стороны и расскажем о создании Wi-Fi сетей на открытых пространствах. Казалось бы, что тут может быть сложного — бетонных перекрытий нет, а значит, можно раскидать точки равномерно, включить их и радоваться реакции пользователей. Но когда дело доходит до практики, приходится учитывать много факторов. О них мы сегодня и поговорим, а заодно прогуляемся в Мытищинский городской парк культуры и отдыха, где недавно было установлено наше оборудование.


Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии29

Никогда больше не игнорируйте обучение с подкреплением

Время на прочтение6 мин
Количество просмотров11K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Don’t Ever Ignore Reinforcement Learning Again» автора Michel Kana, Ph.D.

Обучение с учителем и обучение без учителя — это ещё не все. Все это знают. Начните с OpenAI Gym.

image

Собираетесь победить чемпиона мира по шахматам, нардам или го?

Есть способ, который позволит вам это сделать — обучение с подкреплением.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Дайджест новостей машинного обучения и искусственного интеллекта за октябрь

Время на прочтение3 мин
Количество просмотров8.2K
Привет, Хабр! Отфильтровав для вас большое количество источников и подписок, собрал все наиболее значимые новости из мира машинного обучения и искусственного интеллекта за октябрь. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие новости.

Для тех, кто не читал дайджест за сентябрь, можете прочесть его здесь.

Итак, а теперь дайджест за октябрь:

1. Фотореалистичная 3D-модель человека выступила на TED. Нейросеть динамически восстанавливает 3D-модель человека на основе распознавания движения лицевых мышц. С помощью данных с камеры нейросеть распознает и восстанавливает эмоции и действия человека.

Всего голосов 61: ↑58 и ↓3+55
Комментарии5

Кеширование в Laravel: основы плюс tips&tricks

Время на прочтение7 мин
Количество просмотров28K

Техника кеширования позволяет создавать более масштабируемые приложения, запоминания результаты некоторых запросов в быстрое in-memory хранилище. Однако, некорректно реализованное кеширование может сильно ухудшить впечатление пользователя о вашем приложении. Эта статья содержит некоторые базовые понятия о кешировании, различные правила и табу, которые я извлек из нескольких прошлых своих проектов.


Не используйте кеширование.


Ваш проект работает быстро и не имеет никаких проблем с производительностью?
Забудьте о кешировании. Серьезно :)


Оно сильно усложнит операции чтения из базы без каких-либо бенефитов.


Правда, Мохамед Саид в начале этой статьи делает некоторые вычисления и доказывает, что в некоторых случаях оптимизация приложения на миллисекунды способна сэкономить кучу денег на вашем AWS счету. Так что, если прогнозируемая экономия на вашем проекте больше, чем 1.86 долларов, возможно, реализация кеширования — неплохая идея.

Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии13

Обзор GUI-интерфейсов для управления Docker-контейнерами

Время на прочтение5 мин
Количество просмотров170K


Работа с Docker в консоли — привычная для многих рутина. Тем не менее, бывают случаи, когда GUI-/веб-интерфейс может оказаться полезным даже для них. В статье представлен обзор наиболее заметных на сегодняшний день решений, авторы которых попытались предложить более удобные (или подходящие для каких-то случаев) интерфейсы для знакомства с Docker или даже обслуживания больших его инсталляций. Некоторые из проектов совсем молоды, а иные — наоборот, уже отмирают…
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии26

Обзор NoSQL систем

Время на прочтение5 мин
Количество просмотров56K
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
  • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
  • производительность каждого отдельного сервера
  • не гибкий дизайн логической структуры.
Читать дальше →
Всего голосов 101: ↑98 и ↓3+95
Комментарии67

Информация

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