Как стать автором
Обновить
0
0

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

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

Безопасный HTTPS-прокси менее чем за 10 минут

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

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее
Всего голосов 54: ↑53 и ↓1+52
Комментарии85

Основные ошибки, которых следует избегать при репликации MySQL

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

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

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

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии1

Улучшение производительности vue приложения

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

У нас в TeamHood есть wiki. Там собралась коллекция рекомендаций, в том числе, по улучшению производительности тяжелого фронтенда на vue.js. Улучшать производительность понадобилось, потому что в силу специфики наши основные экраны не имеют пагинации. Есть клиенты, у которых на одной kanban/gantt доске больше тысячи вот таких вот карточек, все это должно работать без лагов.

В статье разобрано несколько редко упоминаемых техник из нашей wiki, которые помогут сократить излишний рендеринг компонентов и улучшить производительность.

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

Тонкости настройки CI/CD: как работает GitLab runner, когда использовать Docker-in-Docker и где пригодится Argo CD

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


В конце 2020 года в «Слёрме» вышел бесплатный мини-курс и комплексный курс по CI/CD. Авторы курса инженер Southbridge Александр Швалов и старший системный инженер Tinkoff Тимофей Ларкин ответили на вопросы первых студентов.


В частности, обсудили:


  • Как работает GitLab runner: сколько задач берёт и сколько ресурсов потребляет, где его лучше размещать и как настроить шаринг между проектами?
  • Как настраиваются пайплайны для проектов в монорепозитории? А как в ситуации, когда для каждого микросервиса свой репозиторий?
  • Как бороться с тем, что во время сборки артефакта в Docker очень быстро забивается свободное место на диске?
  • Когда лучше использовать подход Docker-in-Docker?
  • Как организовать доставку и развёртывание сервисов в закрытые окружения заказчика?

Видео с ответами на вопросы смотрите на YouTube. Под катом — текстовая версия разговора.

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

Botsman: новая платформа для разработки Telegram-ботов

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

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

Для тех же, кому уже захотелось ознакомиться с Botsman (но не очень хочется много читать) — вот ссылка, милости прошу: https://bots.mn/. Главное, о чём стоит помнить — платформа только-только запустилась, и (пока что) не стоит переносить на неё что-то серьёзное и масштабное.

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

Организация типовых модулей во Vuex

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

Как мы организовали Vuex-сторы и победили копипасту


Vuex — это официальная библиотека для управления состоянием приложений, разработанная специально для фреймворка Vue.js.


Vuex реализует паттерн управления состоянием, который служит централизованным хранилищем данных для всех компонентов приложения.


По мере роста приложения такое хранилище разрастается и данные приложения оказываются помещены в один большой объект.


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


Работая над проектом CloudBlue Connect и создавая очередной модуль, мы поймали себя на мысли, что пишем один и тот же шаблонный код снова и снова, меняя лишь эндпоинт:


  1. Репозиторий, в которой содержится логика взаимодействия с бекендом;
  2. Модуль для Vuex, который работает с репозиторием;
  3. Юнит-тесты для репозиториев и модулей.

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


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


Для этого мы создали фабрику типовых модулей Vuex, сократившую практически до нуля написание нового кода для взаимодействия с бекендом и хранилищем (стором).

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

Что JavaScript-разработчику следует знать о Curl

Время на прочтение8 мин
Количество просмотров33K
Доброго времени суток, друзья!

Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov.

Curl — это популярный инструмент командной строки, часто используемый для отправки HTTP-запросов. Curl поддерживает большое количество протоколов, однако как Node.js-разработчик вы, скорее всего, будете использовать его для отпраки http-запросов к RESTful API.

Документация curl представляет собой перечень из 383 флагов командной строки, поэтому в ней очень трудно найти то, что ищешь. В этой статье я хочу поделиться с вами некоторыми часто используемыми мной шаблонами. Для примеров будет использоваться сервис httpbin.org.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии8

Команды для работы с JavaScript-консолью в браузерах и повышение производительности труда программиста

Время на прочтение5 мин
Количество просмотров63K
Если вы занимаетесь веб-программированием, это значит, что вам не надо рассказывать о том, насколько в вашей работе важна отладка. Нередко для записи данных в логи, для их форматирования или вывода на экран используют внешние библиотеки, не учитывая при этом того факта, что в распоряжении программистов имеются JavaScript-команды для работы с консолями, которые встроены в браузеры. И обладают эти консоли гораздо более серьёзными возможностями, чем может показаться на первый взгляд.

image

Пожалуй, первое, что многим приходит в голову при слове «консоль» — это команда console.log(). Однако, она — лишь одна из многих подобных команд. Материал, перевод которого мы сегодня публикуем, посвящён особенностям работы с консолью JavaScript.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии7

10 советов и приемов, которые помогут вам стать лучшим разработчиком на VueJS

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

Перед вами вольный перевод статьи "10 Tips & Tricks to make you a better VueJS Developer" с сайта Dev.to. Автор расскажет нам об интересных и полезных вариантах применения привычных нам средств VueJS.


Введение


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

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

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

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

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


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

Подкасты для разработчиков

Время на прочтение10 мин
Количество просмотров20K
Интересно наблюдать за историей. Netflix, YouTube, Twitch постепенно вытеснили телевизор из нашей жизни. Сейчас похожий процесс происходит с подкастами и радио. За последние 2 года количество подкастов в мире выросло с 525 000 до 900 000, а количество эпизодов увеличилось с 18 000 000 до 30 000 000. В России эта волна началась в прошлом году, но уже сейчас становится сложно в них ориентироваться. Мы сделали для вас подборку из 57 техноподкастов и около того.


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

Редактор кода Visual Studio Code. Самый подробный гайд по настройке и установке плагинов для начинающих

Время на прочтение23 мин
Количество просмотров795K
Бесплатный, мощный, очень популярный, с кучей дополнений, да что там говорить, сам Фейсбук выбрал его в качестве основного редактора!


Сегодня речь пойдет о редакторе кода Visual Studio Code или просто VS Code. Мы с тобой его установим, настроим, а также применим плагины, которые существенно упростят нам работу.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии18

Создаем интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1

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


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


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


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


  • Который будет быстро загружаться у пользователя.
  • Который полюбит Google (или любой другой поисковик) с точки зрения SEO.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

Используем console.log() в Chrome на полную

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


Сложно представить себе разработку на JS без вывода информации в консоль. Говоря метафорически, console.log() — лекарство от большинства болезней кода.


Отладка — почти как расследование преступления, где главный преступник тоже вы — Филипе Фортес


Но помимо повсеместно используемой функции console.log(), есть ещё много инструментов, позволяющий сильно упростить процесс. Давайте разберём некоторые из них на простых примерах.

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

ServerLess PHP

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

Накануне запуска курса «Backend-разработчик на PHP» мы провели традиционный открытый урок. В этот раз познакомились с концепцией Serverless, поговорили о её реализации в AWS, разобрали принципы работы, сборки и запуска, а также построили простой TG-бот на PHP на базе AWS Lambda.


Преподаватель — Александр Пряхин, технический директор компании Westwing Russia.




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

Руководство по логированию в Node.js

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

Первая задача, с которой чаще всего сталкиваются разработчики, начинающие программировать на JavaScript, – как регистрировать события в журнале консоли с помощью метода console.log. В поисках информации по отладке кода на JavaScript вы найдёте сотни статей в блогах, а также инструкций на StackOverflow, советующих «просто» вывести данные в консоль через метод console.log. Это настолько распространённая практика, что пришлось ввести правила для контроля качества кода, подобные no-console, чтобы не оставлять случайные записи из журнала в коде для продакшена. Но что делать, если нужно специально зарегистрировать какое-нибудь событие, чтобы предоставить дополнительную информацию?

В этой статье рассматриваются различные ситуации, в которых требуется вести логи; показывается разница между методами console.log и console.error в Node.js и демонстрируется, как передать функцию логирования библиотекам, не перегружая пользовательскую консоль.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии6

Асинхронный PHP и история одного велосипеда

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

После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph, broadway, tactician, messenger, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать небольшой шаг вперёд, углубившись в вопрос?


Попробуем разобрать судьбу ещё одного велосипеда, который позволяет реализовать Publish/Subscribe приложение.

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

Использование JavaScript-консоли в браузерах

Время на прочтение4 мин
Количество просмотров39K
Сегодня мы публикуем заметку, посвящённую особенностям использования JavaScript-консоли в браузерах, лежащим за пределами широко известной команды console.log(). Собственно говоря, эта команда представляет собой простейший инструмент для отладки программ, который позволяет выводить что-либо в консоль. Однако знание некоторых особенностей этого инструмента позволит тем, кто им пользуется, повысить эффективность работы.


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

Мониторинг мёртв? — Да здравствует мониторинг

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


Наша компания с 2008 года занимается преимущественно управлением инфраструктурами и круглосуточной технической поддержкой веб-проектов: у нас более 400 клиентов, это порядка 15% электронной коммерции России. Соответственно, на поддержке очень разнообразная архитектура. Если что-то падает, мы обязаны в течение 15 минут это починить. Но чтобы понять, что авария произошла, нужно мониторить проект и реагировать на инциденты. А как это делать?

Я считаю, что в организации правильной системы мониторинга происходит беда. Если бы беды не было, то мой спич состоял из одного тезиса: «Установите, пожалуйста, Prometheus + Grafana и плагины 1, 2, 3». К сожалению, теперь так не работает. И главная проблема заключается в том, что все продолжают верить во что-то такое, что существовало в 2008 году, с точки зрения программных компонентов.

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

Все мы сталкивались с историей наподобие следующей: работает некий девопс, некий админ, к ним приходит команда разработчиков и говорит — «мы зарелизились, теперь замониторь». Что замониторь? Как это работает?

Ок. Мониторим по старинке. А оно уже изменяется, и выясняется, что ты мониторил сервис А, который стал сервисом B, который взаимодействует с сервисом C. Но команда разработчиков тебе говорит: «Поставь софт, он же должен все замониторить!»

Так что изменилось? — Всё изменилось!
Читать дальше →
Всего голосов 62: ↑56 и ↓6+50
Комментарии24

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

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

Андрей Копылов, наш технический директор, любит, активно использует и пропагандирует Docker. В новой статье он рассказывает, как создать пользователей в Docker. Правильная работа с ними, почему пользователей нельзя оставлять с root правами и, как решить задачу несовпадения идентификаторов в Dockerfile.

Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии18
1
23 ...

Информация

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

Специализация

Fullstack Developer
Middle
От 200 000 ₽
PHP
Docker
Laravel
JavaScript
Vue.js