Как стать автором
Обновить
52
0
Lera Samarina @Lisichkina

HRD

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

Генераторы для самых маленьких

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

Всем привет! В бытность мою, когда я самостоятельно изучал Python, я находил достаточно теоретического материала о языке и его возможностях. Однако даже после прочтения нескольких статей на разных сайтах и книг многое не укладывались у меня в голове (да, вот такой вот я тугой). Непонятные концепции приходилось зубрить «на веру» без глубокого понимания, потому что практические примеры в статьях были для меня сложны. Время шло, я становился опытнее, понимание приходило на практических задачах, и в какой-то момент я стал учить Python'у своих друзей. В рамках наставничества я обнаружил, что, кажется, наметил путь, по которому можно объяснять сложные концепции простыми словами.

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

Сегодня хочется ещё раз поговорить о генераторах. Итак, в бой!

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

Шесть принципов создания производительных веб-приложений

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

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

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

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

И последнее: чтобы сохранять баланс между оптимизацией и своевременной поставкой функционала, всегда делитесь и переиспользуйте свой код, точнее — компоненты. Это можно делать с любым репозиторием безо всякой специальной подготовки, достаточно лишь воспользоваться инструментом вроде Bit (Github).

Читать далее
Всего голосов 29: ↑23 и ↓6+17
Комментарии9

11 друзей Sanic’а – собираем асинхронное веб-приложение на Python

Время на прочтение9 мин
Количество просмотров15K
Рано или поздно маленькие приложения разрастаются до нагруженных production-решений, поэтому программисту необходимо заранее продумать стек технологий. Для Python концептуальный выбор стоит между синхронными и асинхронными фреймворками. После появления библиотеки asyncio популярность асинхронных Python-фреймворков сильно выросла, потеснив таких монстров, как Django и Flask, и стало намного проще писать веб-приложения, способные пережить высокий RPS.

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

Статья поможет новичкам посмотреть, как можно использовать вместе различные асинхронные библиотеки. А опытные программисты могут сравнить представленное ниже решение со своими наработками и конструктивно покритиковать.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии10

Дорога к BPMN 2

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

В названии цифра «2» не из-за версии нотации (хотя она и так 2.0), а потому что это вторая статья. В первой я рассказывал про наш путь к Activiti и о том, почему от этого инструмента стоило отказаться и идти дальше. И сегодня я расскажу, куда же мы пошли.

Читать далее
Всего голосов 19: ↑14 и ↓5+9
Комментарии1

Мониторинг бизнес-процессов Camunda

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

Привет, Хабр.

Меня зовут Антон и я техлид в компании ДомКлик. Создаю и поддерживаю микросервисы позволяющие обмениваться данными инфраструктуре ДомКлик с внутренними сервисами Сбербанка.

Это продолжение цикла статей о нашем опыте использования движка для работы с диаграммами бизнес-процессов Camunda. Предыдущая статья была посвящена разработке плагина для Bitbucket позволяющего просматривать изменения BPMN-схем. Сегодня я расскажу о мониторинге проектов, в которых используется Camunda, как с помощью сторонних инструментов (в нашем случае это стек Elasticsearch из Kibana и Grafana), так и «родного» для Camunda — Cockpit. Опишу сложности, возникшие при использовании Cockpit, и наши решения.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии3

Как я подружил BPMN и Bitbucket

Время на прочтение8 мин
Количество просмотров5.3K
Привет, Хабр! Я техлид в компании ДомКлик. В основном занимаюсь backend-разработкой. Мне периодически приходится погружаться и во front-разработку, но этого не происходило уже более двух лет. Сегодня я расскажу, как мне пришлось заняться front-разработкой для создания плагина для Bitbucket, с какими сложностями я столкнулся и как их решал. Также поделюсь результатом своей работы: надеюсь, он окажется полезен кому-нибудь ещё. Эта статья не является руководством по написанию плагинов для продуктов Atlassian и не описывает всех возможностей системы плагинов.
Читать дальше →
Всего голосов 26: ↑20 и ↓6+14
Комментарии15

Модули в JavaScript

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


Фронтенд-разработчики каждый день используют модули. Это может быть функция из локального файла или сторонняя библиотека из node_modules. Сегодня я кратко расскажу об основных модульных системах в JavaScript и некоторых нюансах их использования.

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

Четыре простые настройки терминала Kubernetes, которые повысят вашу продуктивность

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

Я управлял эксплуатацией больших Kubernetes-кластеров более трёх лет, и хочу поделиться своим минималистичным подходом к настройке терминала kubectl terminal, которая доказала свою высокую эффективность в повседневной работе. Хорошо настроенный терминал с командной строкой может значительно повысить вашу продуктивность. Это как хлеб и масло — волшебное сочетание.

Но в отличие от популярных модификаций и функциональных добавлений я верю в простую конфигурацию, не требующую установки новых бинарников, обёрток или модификаций. Особенно в случае с kubectl — нативным, достаточно хорошо спроектированным инструментом, у которого совсем мало недостатков.

Вот четыре мои простых дополнения к терминалу kubectl. С этой конфигурацией я каждый день управляю 20 большими Kubernetes-кластерами на 400 машин.
Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии7

Безопасность npm-проектов, часть 1

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

Безопасность npm-проектов, часть 1


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

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

Четыре вопроса для пересмотра рабочего графика

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


Коронавирус настолько изменил понятие «рабочее место», что это необратимо повлияет на будущее многих организаций. Многим руководителям пришлось создавать новые и более совершенные стратегии успешного перехода на удалённую работу; создавать окружения, которые помогают, а не вредят нашей иммунной системе; а также вырабатывать правила по соблюдению мер безопасности вроде «социальной дистанции». Пожалуй, самой распространённой переменой, необходимой для решения всех этих задач, стал пересмотр рабочего графика, призванный поддержать изменения в стиле жизни, минимизировать социальные контакты или удовлетворить новым требованиям бизнеса. Традиционный рабочий день с 9 до 18 перестал быть золотым стандартом.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии5

Lock-файлы npm

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

Lock-файлы npm


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

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

Выбор зависимостей JavaScript

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

Выбор зависимостей JavaScript


Всем привет! В предыдущем посте мы подробно поговорили про добавление зависимостей в проект и про способы и стратегии их обновления.


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

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

Debouncing с помощью React Hooks: хук для функций

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

Здравствуйте! Меня зовут Игорь, я главный инженер по разработке в команде SmartData. Занимаюсь fullstack-разработкой внутренней аналитической BI-системы. В нашей компании React принят в качестве основного стандарта для построения пользовательских интерфейсов. Как и большая часть сообщества React, мы активно используем хуки в нашей повседневной работе.


Постоянное обучение — неотъемлемая часть работы любого хорошего разработчика. Поэтому сегодня мне хотелось бы внести свой скромный вклад в этот процесс и представить небольшое руководство для тех, кто начинает активно изучать React и работу с хуками. И попутно дать вам небольшой и полезный инструмент для работы с новым стандартом React.


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


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

Установка и обновление зависимостей в JavaScript

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

Установка и обновление зависимостей JavaScript


И снова привет! В прошлом посте мы начали рассматривать процесс управления зависимостями в JavaScript, разобрали основы: что такое npm-пакет, как выглядит манифест пакета, в каких полях прописываются зависимости и в принципе что такое дерево зависимостей, а также основы семантического версионирования (semver). Если вы пропустили предыдущий пост, то рекомендую начать с него.


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

Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии9

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

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

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


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

Управление зависимостями JavaScript

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

Управление зависимостями JavaScript


Всем привет! Меня зовут Слава Фомин, я ведущий разработчик в компании DomClick. За свою 16-ти летнюю практику я в первых рядах наблюдал за становлением и развитием JavaScript как стандарта и экосистемы. В нашей компании мы используем JavaScript, в первую очередь, для продвинутой front-end разработки и успели перепробовать достаточно большое количество различных технологий, инструментов и подходов, набить много шишек. Результатом этого кропотливого труда стал ценнейший опыт, которым я и хочу поделиться с вами.

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

Хаос-инжиниринг и непрерывная проверка прода

Время на прочтение24 мин
Количество просмотров3.7K
Кейси Розенталь (Casey Rosenthal), CEO и сооснователь Verica.io, выступил на митапе Test in Production. Кейси развенчал некоторые мифы о надёжности и объяснил, что многие интуитивные действия по увеличению надёжности систем на самом деле контрпродуктивны. Более того, он объяснил, как концепция непрерывной проверки (Continuous Verification) помогает разработчикам избегать таких подводных камней.

Полное выступление Кейси:


Текст выступления для тех, кто предпочитает читать, а не смотреть
Всего голосов 34: ↑33 и ↓1+32
Комментарии6

Долгосрочное хранение данных в Elasticsearch

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


Меня зовут Игорь Сидоренко, я техлид в команде админов, поддерживающих в рабочем состоянии всю инфраструктуру Домклик.


Хочу поделиться своим опытом в настройке распределённого хранения данных в Elasticsearch. Мы рассмотрим, какие настройки на нодах отвечают за распределение шардов, как устроен и работает ILM.

Много грязных технических подробностей
Всего голосов 29: ↑29 и ↓0+29
Комментарии6

Информация

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