Как стать автором
Обновить
18
0
Евгений @tavi

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

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

Чем различаются Kafka и RabbitMQ: простыми словами

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

Программные брокеры сообщения уже стали стандартом при построении больших и сложных систем. Однако до сих пор не все ИТ-специалисты понимают, как работают эти инструменты. Главный системный аналитик «Иннотех» Павел Малыгин помогает разобраться в брокерах сообщениях и их работе.

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

Яндекс выложил в опенсорс бету фреймворка userver

Время на прочтение10 мин
Количество просмотров74K
Сегодня мы анонсируем выход в опенсорс фреймворка userver для создания высоконагруженных приложений. Для нас это важный способ поделиться опытом в разработке микросервисов, который мы накопили. Вот ссылка на Гитхаб-репозиторий c исходным кодом, документацией, примерами, шаблоном для создания своих сервисов (с настроенным CI, сборкой и тестовым окружением) и сервисом динамических конфигов. Всё это опубликовано под лицензией Apache 2.0.



🐙userver позволяет быстро создавать эффективные микросервисы на языке C++ и уже много лет активно используется в Яндекс Go, Еде, Лавке, Доставке, Маркете, финтехе и других проектах. Вот из каких требований мы исходили в процессе разработки:

  • Простота. Стажёр или студент, приходя к нам, может уже через неделю написать и отправить в продакшен новый микросервис.
  • Надёжность. Многие ошибки, в том числе и связанные с многопоточностью, можно поймать на этапе компиляции. Кроме того, фреймворк даёт подсказки по исправлению проблем.
  • Полнота. В userver есть всё необходимое для тестирования, работы с разными базами данных, кеширования, логирования, трейсинга, распределённых блокировок, работы с JSON, BSON, YAML, изменения параметров сервиса на лету и так далее.

Сейчас я расскажу о том, как возникла идея userver, как фреймворк развивался, в каких задачах его сейчас используют и почему именно выход в опенсорс был логичным следующим шагом. А затем приведу пример написания нового микросервиса.
Читать дальше →
Всего голосов 177: ↑173 и ↓4+169
Комментарии142

Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…

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


Реактивное программирование в Java — полезный инструмент со множеством применений. Его суть в асинхронной обработке поступающих сообщений, и есть несколько вариантов реализации этого механизма.


И Java в целом, и Spring Framework в частности подразумевают несколько аспектов реактивного программирования. Это касается Spring WebFlux в качестве замены Spring MVC. Также можно использовать Project Reactor в Java непосредственно, без Spring Framework. Однако Spring предоставляет средства декларативного определения функции Spring Cloud Function и средства интеграции приложений с использованием внешних очередей в рамках проекта Spring Cloud Stream. В комплексе эти средства позволяют широко использовать реактивное программирование, упрощая создание, размещение, масштабирование и обслуживание приложений.


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


Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.

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

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

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

image


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

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

AnLinux: простой способ установить Linux-окружение на Android-телефон без рута

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


Любой телефон или планшет, работающий на Android, — это устройство, которое управляется ОС Linux. Да, очень модифицированной ОС, но все же основа Android — ядро Linux. Но, к сожалению, для большинства телефонов опция «снести Android и поставить дистрибутив по своему вкусу» недоступна.

Поэтому, если хочется Linux на телефоне, приходится покупать специализированные гаджеты вроде PinePhone, о котором мы уже писали в одной из статей. Но есть еще один способ получить Linux-окружение практически на любом смартфоне, причем без root-доступа. Поможет в этом инсталлятор, который называется AnLinux.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии32

Введение в React, которого нам не хватало

Время на прочтение17 мин
Количество просмотров40K
React — это самая популярная в мире JavaScript-библиотека. Но эта библиотека не потому хороша, что популярна, а потому популярна, что хороша. Большинство существующих вводных руководств по React начинается с примеров того, как пользоваться этой библиотекой. Но эти руководства ничего не говорят о том, почему стоит выбрать именно React.

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



Этот материал (вот, если интересно, его видеоверсия) написан для тех, кто хочет найти ответ на следующие вопросы: «Почему React? Почему React работает именно так? С какой целью API React устроены так, как устроены?».
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии14

Некоторые спорные размышления над работой Г. Фреге «Смысл и денотат»

Время на прочтение35 мин
Количество просмотров6.9K
Термины «значение» (meaning) и «выражать» не были введены в качестве основных терминов семиотики в связи с тем, что они настолько многозначны и используются настолько по-разному, что лучше было бы вообще не использовать их в качестве основных терминов при обсуждении семиотических проблем. Но при желании их, разумеется, можно ввести, опираясь на более фундаментальные семиотические термины. Так, можно было бы сказать, что значение знака – это его значение-сигнификация и интерпретанта одновременно, но ни одно из них в отдельности.

Моррис Ч.У. «Значение и означивание»

В этом небольшом эссе я хочу поделиться с читателем своими размышлениями, возникшими при прочтении работы Г. Фреге «Смысл и денотат» [1].


Слабонервных прошу не читать статью (да к тому же написанную 9 лет назад)!

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

Технологии фронтенд-разработки, на которые вы, возможно, не обратили внимания

Время на прочтение13 мин
Количество просмотров30K
«Хочешь жить — умей вертеться». Это — про работу фронтенд-программиста. Для того чтобы успешно справляться со своими обязанностями, такому специалисту приходится решать массу задач и необходимо обладать множеством способностей. Очень важно, кроме того, не забывать о главной цели, ради которой разрабатывают сайты. А именно, о том, что сайты должны помогать людям упрощать решение их повседневных задач.



В этом материале я собираюсь рассказать о различных аспектах веб-разработки, о которых стоит знать любому программисту соответствующего профиля. Я, если это возможно, буду приводить ссылки на материалы, демонстрирующие примеры применения соответствующих возможностей и рекомендации по их правильному использованию. Здесь я буду ориентироваться на реализацию тех или иных механизмов в Angular, React и Vue.
Читать дальше →
Всего голосов 43: ↑35 и ↓8+27
Комментарии12

Пишем телеграм бота на node.js

Время на прочтение4 мин
Количество просмотров58K
С полным кодом можно ознакомиться по ссылке.

Сегодня мы будем разрабатывать телеграм бота на node js, который умеет выводить статистику зараженных коронавирусом по всем странам.

Прежде всего в контакт-лист телеграмма нужно добавить @botFather и написать ему команду /newBot. Далее задаем имя нашего бота и, если оно не занято, придумываем идентификатор бота, по которому его можно будет найти.


Вот и все, наш телеграмм бот готов и botfather поделился с нами API Token, благодаря которому мы сможем управлять ботом

Далее создадим новый проект, введем npm init и добавим файл bot.js в котором будет разрабатываться наш бот.
Читать дальше →
Всего голосов 16: ↑9 и ↓7+2
Комментарии2

«Тудурант» — менеджер задач, который заставляет примитивный мозг работать

Время на прочтение9 мин
Количество просмотров11K
Буду краток: системы продуктивности типа GTD никогда не работают в долгосрочной перспективе. Я взял все самые сочные части разных методологий, соединил их, упростил — и теперь им пользуется более 5000 пользователей. В этой статье я описал весь процесс развития продукта от идеи до тысяч пользователей. Небольшое видео о том, как пользоваться «Тудурантом»:

Всего голосов 30: ↑26 и ↓4+22
Комментарии43

Десять ресурсов с курсами по компьютерным наукам, которые можно бесплатно пройти в апреле

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


Самоизоляция продолжается, а с ней и новый тренд подарков, которыми площадки с цифровым контентом пытаются поддержать и развлечь запертых в четырех стенах пользователей. Еще в марте многие компании заявили о том, что выложат часть своих сервисов и материалов в открытый доступ, чтобы люди могли проводить время за чем-то стимулирующим мозговую деятельность. За месяц их число только возросло. В этом обзоре мы собрали сайты с курсами для программистов, которые примкнули к общему движению и объявили апрель месяцем бесплатного обучения.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Вопросы к собеседованию Java-backend, Java core (60 вопросов)

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

Добрый день! Представляю вашему вниманию список вопросов к собеседованию Java Backend, которые я оформлял на протяжении около 2х лет.

Вопросы разбиты по темам: core, collections, concurrency, io, exceptions, которые задают основные направления хода технического собеседования. Звездочками отмечен субъективный (с точки зрения автора) уровень сложности вопроса, в сноске спойлера — краткий ответ на вопрос. Ответ представляет для интервьювера правильное направления развития мысли кандидата.
Читать далее
Всего голосов 31: ↑23 и ↓8+15
Комментарии76

Что такое Spring Framework? От внедрения зависимостей до Web MVC

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


Вы можете использовать это руководство для различных целей:


  • Чтобы понять, что такое Spring Framework
  • Как работают ее основные фичи: такие как внедрение зависимостей или Web MVC
  • Это также исчерпывающий FAQ (Перечень часто задаваемых вопросов)

Примечание: Статья ~ 9000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже. И даже на компьютере ешь читай этого слона по одному кусочку за раз :-)


Содержание


  • Введение
  • Основы внедрения зависимостей
  • Контейнер Spring IOC / Dependency Injection
  • Spring AOP (Аспектно-ориентированное программирование) и прокси
  • Управление ресурсами Spring
  • Spring Web MVC
  • Дополнительные модули Spring Framework
  • Spring Framework: часто задаваемые вопросы
  • Заключение
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии14

С чего начинается Elasticsearch

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

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


Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.

Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии44

Некоторые тонкости injection'а коллекций в Spring'е

Время на прочтение4 мин
Количество просмотров26K
Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта курса я решил написать небольшой авторский материал, которым хочу поделиться с вами.





Предыстория


Spring содержит внутри себя много «магии», осуществляя самостоятельно некоторые неочевидные вещи. Незнание или непонимание этого может приводить к side-эффектам, с которыми вы можете столкнуться в процессе написания своего приложения, используя данный framework.

Одной из таких неочевидных вещей является injection интерфейсов Java Collection Framework'а. Самостоятельно наступив на грабли, связанные с этой темой, и услышав очередные вопросы от коллег, я решил с ней разобраться и зафиксировать результаты своих исследований в виде статьи с надеждой, что она кому-то поможет уже в работе или при начальном освоении Spring'а.
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии19

РИТ, Максим Лапшин (Erlyvideo): как программисту вырастить компанию

Время на прочтение22 мин
Количество просмотров17K
РИТ++ 2017, Whale Rider. Зал «Конгресс-холл. 6 июня, 13:00. Тезисы.



В докладе я хочу рассказать о собственном опыте органического развития компании, продающей b2b серверный софт без инвестиций. Я начинал с ковыряния just for fun в том, что мне было интересно, потом был готов всё бросить (особенно после общения с несколькими менторами и бизнес-консультантами).



Максим Лапшин (далее – МЛ): – Здравствуйте, коллеги! Меня зовут Максим Лапшин. Я – владелец компании Erlyvideo. Я ею занимаюсь почти всё своё время, все 35 часов в день посвящаю своей работе.
Всего голосов 38: ↑38 и ↓0+38
Комментарии17

Как работают реляционные базы данных (Часть 1)

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

Привет, Хабр! Представляю вашему вниманию перевод статьи
"How does a relational database work".


Когда дело доходит до реляционных баз данных я не могу не думать, что чего-то не хватает. Они используются везде. Существует множество различных баз данных: от небольшого и полезного SQLite до мощной Teradata. Но есть только несколько статей, которые объясняют, как работает база данных. Вы можете искать сами по запросу "howdoesarelationaldatabasework" («как работают реляционные базы данных») чтобы увидеть, как мало результатов. Более того, эти статьи — короткие. Если же вы ищете последние модные технологии (BigData, NoSQL или JavaScript), вы найдете больше углубленных статей, объясняющих, как они работают.


Являются ли реляционные базы данных слишком старыми и слишком скучными, чтобы их можно было объяснить вне университетских курсов, исследовательских работ и книг?


image

Читать дальше →
Всего голосов 63: ↑46 и ↓17+29
Комментарии7

Как масштабироваться с 1 до 100 000 пользователей

Время на прочтение7 мин
Количество просмотров20K
Через такое прошли многие стартапы: каждый день регистрируются толпы новых пользователей, а команда разработчиков изо всех сил пытается поддержать работу сервиса.

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

Попытаемся отфильтровать информацию и записать основную формулу. Мы собираемся пошагово масштабировать наш новый сайт для обмена фотографиями Graminsta с 1 до 100 000 пользователей.

Запишем, какие конкретные действия необходимо сделать при увеличении аудитории до 10, 100, 1000, 10 000 и 100 000 человек.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии25

Лучшие плагины IntelliJ IDEA

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


Key promoter X


Использование сочетаний клавиш вместо мыши может значительно повысить производительность. С таким количеством функций, которые предлагает IDEA, это может быть пугающим и трудным для изучения всех быстрых клавиш. К счастью, есть плагин под названием Key Promoter X, который может вам помочь.

Идея проста: всякий раз, когда вы используете мышь для вызова команды в вашей IDE, появляется всплывающее окно, которое сообщает вам, каково сочетание клавиш для этого действия.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии43

Вступление в работу с возвратом пользователя: советы для Hooked-модели

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

Всем привет! Я — Сергей, R&D officer в Genesis. В этом тексте хочу поделиться своими знаниями и опытом по созданию привычки использования продукта, рассказать о том, как это влияет на прибыльность бизнеса и почему предпринимателей встречают по возврату.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии4
1

Информация

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