Как стать автором
Обновить
0
0
Egor Gruzdev @egor_gruzdev

Эникейщик (всего по чуть чуть)

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

Как backend разработчики frontend писали (Vue + TS + Webpack)

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

У нас в команде есть пару проектов, для которых есть старые frontend. Написаны все они на разных технологиях, но объединяет их одно: нежелание кого-либо туда лезть и что-то править. Команде там кажется страшно, непонятно и неудобно. Любая доработка превращается в головную боль. В очередном проекте нам хотелось не допустить такого развития событий, и, кажется, у нас получилось.

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

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии22

Настройка Gmail API для замены расширения PHP IMAP и работы по протоколу OAuth2

Время на прочтение13 мин
Количество просмотров10K
Оказавшись одним из счастливчиков, совершенно не готовым к тому, что с 15 февраля 2021 года авторизация в Gmail и других продуктах будет работать только через OAuth, я прочитал статью "Google хоронит расширение PHP IMAP" и загрустил начал предпринимать действия по замене расширения PHP IMAP в своём проекте на API Google. Вопросов было больше, чем ответов, поэтому заодно нацарапал мануал.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Локальные файлы при переносе приложения в Kubernetes

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


При построении процесса CI/CD с использованием Kubernetes порой возникает проблема несовместимости требований новой инфраструктуры и переносимого в неё приложения. В частности, на этапе сборки приложения важно получить один образ, который будет использоваться во всех окружениях и кластерах проекта. Такой принцип лежит в основе правильного по мнению Google управления контейнерами (не раз об этом говорил и наш техдир).

Однако никого не удивишь ситуациями, когда в коде сайта используется готовый фреймворк, использование которого накладывает ограничения на его дальнейшую эксплуатацию. И если в «обычной среде» с этим легко справиться, в Kubernetes подобное поведение может стать проблемой, особенно когда вы сталкиваетесь с этим впервые. Хотя изобретательный ум и способен предложить инфраструктурные решения, кажущиеся очевидными и даже неплохими на первый взгляд… важно помнить, что большинство ситуаций могут и должны решаться архитектурно.

Разберем популярные workaround-решения для хранения файлов, которые могут привести к неприятным последствиям при эксплуатации кластера, а также укажем на более правильный путь.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии12

Современные стандарты идентификации: OAuth 2.0, OpenID Connect, WebAuthn

Время на прочтение13 мин
Количество просмотров75K
Пускать или не пускать? Вот в чем вопрос…

Сейчас на многих сайтах мы видим возможность зарегистрироваться или войти с помощью соцсетей, а некоторые сайты предлагают использовать внешние ключи безопасности или отпечатки пальцев. Что это? Стандарты с хорошо проработанной безопасностью или проприетарные реализации? Можем ли мы доверять этим технологиям и использовать их для разработки сайтов и в повседневной жизни? Давайте разбираться. Итак, сейчас существуют несколько стандартов и технологий для идентификации пользователей OAuth 2.0,OpenID Connect, WebAuthn, SAML 2.0, Credential Management API и др. В статье я расскажу о трех наиболее перспективных протоколах OAuth 2.0, OpenID Connect и WebAuthn. И чтобы понять как их применять на практике, сделаем три лабораторные работы. В качестве платформ для идентификации пользователей будем использовать GitHub и Google, на которых у большинства есть аккаунты.

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

Правила работы с динамическими массивами и пользовательскими классами коллекций

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


Правила работы с динамическими массивами и пользовательскими классами коллекций
Здесь представлены правила, которых я придерживаюсь при работе с динамическими массивами. По сути, это руководство по проектированию массивов, но я не захотел помещать его в руководство по проектированию объектов, потому что не в каждом объектно-ориентированном языке есть динамические массивы. Примеры написаны на PHP, потому что он похож на Java (с которым вы, возможно, уже знакомы), однако с динамическими массивами вместо встроенных классов коллекций и интерфейсов.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии5

Laravel. Локализованный роутинг

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

КДПВ


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


UPD
На этом ресурсе актульность статьи может оказаться умноженной на ноль одним комментарием. Задача описанная в статье может быть с меньшей болью решена библиотекой mcamara/laravel-localization.
За наводку спасибо DExploN!

Кат приподнят. Умноженное на ноль — снизу.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии10

Зачем ограничивать наследование с помощью final?

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

Вы наверняка слышали это знаменитое высказывание от GoF: «Предпочитайте композицию наследованию класса». И дальше, как правило, шли длинные размышления на тему того, как статически определяемое наследование не настолько гибко по сравнению с динамической композицией.


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


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


Проблема хрупкого базового класса


Проблема хрупкого базового класса

Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии45

Манифест об отмене 146 УК и бойкоте Сбербанка и правообладателей-паразитов. За опенсорс и Nginx

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

#nginxживи


#ЯМыNginx


#ЯМыСысоевКоновалов


  Астрологи объявили неделю жадных юристов в IT.
Количество правообладятлов увеличилось вдвое.

Когда они вводили реестр запрещенных сайтов, я молчал — что мне до педофилов и экстремистов?..


Когда они пришли за Богатовым, я молчал — я ведь не держал выходную ноду Tor.


Когда они арестовывали протестующих в Москве, я молчал — кто их знает, этих оппозиционеров, может это всё Запад стабильность нарушает.


Когда они собирали подписи на GitHub в поддержку Котова, я молчал — я не разделял его взглядов или не интересовался политикой (чего мне бояться, кому я нужен?).


Когда они пришли за Сысоевым и Коноваловым, я молчал — у меня ведь нет бизнеса на пол-лярда баксов.


… вы находитесь здесь...


Когда они ввели выездные визы для всех с зарплатой выше среднего, я...


Стоп. *звук ускоренной перемотки назад*


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

И как говаривали римляне, Qui prodest?
Всего голосов 197: ↑127 и ↓70+57
Комментарии392

Умный сервис кэша на базе ZeroMQ и Tarantool

Время на прочтение14 мин
Количество просмотров4.7K
Руслан Ароматов, главный разработчик, МКБ



Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис кэша для фронт-серверов наших клиентов, использующих мобильное приложение «МКБ Онлайн». Статья может быть полезна тем, кто занимается проектированием сервисов и знаком с микросервисной архитектурой, in-memory базой данных Tarantool и библиотекой ZeroMQ. В статье практически не будет примеров кода и объяснения основ, а только описание логики работы сервисов и их взаимодействия на конкретном примере, работающем у нас на бою уже более двух лет.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии23

Параллельный Hystrix. Повышаем производительность распределенных приложений

Время на прочтение11 мин
Количество просмотров16K
Около года назад наша команда переписала бэкенд одного малоизвестного приложения с 5 млн. пользователей с использованием «latency and fault tolerance» Hystrix. Это позволило значительно повысить надежность приложения при падении или задержках в нижестоящих системах (их около 10, что для серьезной системы не много), предоставило замечательный инструмент (Hystrix Dashboard) мониторинга нагрузки внешних систем (теперь мы знаем кто тормоз), позволило оптимизировать размеры различных пулов в приложении. Однако, осталась проблема длительной обработки отдельных тяжелых запросов, решению которой и посвящена эта статья.
Много букв и кода
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

HTTP-заголовки для ответственного разработчика

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

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

Разработчики соединяют людей.
Разработчики помогают людям.
Разработчики дают людям возможности.

Разработчики могут создать сеть для всех, но эту способность необходимо использовать ответственно. В конце концов, важно создавать вещи, которые помогают людям и расширяют их возможности. В этой статье я хочу рассказать о том, как HTTP-заголовки могут помочь вам создавать лучшие продукты для лучшей работы всех пользователей в интернете.
Читать дальше →
Всего голосов 92: ↑90 и ↓2+88
Комментарии64

Руководство по Kubernetes, часть 1: приложения, микросервисы и контейнеры

Время на прочтение16 мин
Количество просмотров162K
По нашей просьбе Хабр создал хаб Kubernetes и нам приятно разместить первую публикацию в нём. Подписывайтесь!

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


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

Cила PostgreSQL

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

Встречаясь со сложной нетривиальной задачей по поиску и обработке данных, порой хочется решить ее в лоб. И хотя ты понимаешь, что решение возможно будет медленным или вообще нежизнеспособным, а знаний и опыта не хватает, чтобы решить ее по-настоящему, не нужно спешить. Важно понять, что СУБД были специально созданы для этого, и решать задачи, предназначенные для них, другими способами не стоит.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии51

Резервное копирование большого количества разнородных web-проектов

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

Казалось бы, тема избитая – про резервное копирование сказано и написано многое, поэтому нечего изобретать велосипед, просто бери и делай. Тем не менее, каждый раз, когда перед системным администратором web-проекта встает задача настроить бэкапы, для многих она повисает в воздухе большим вопросительным знаком. Как правильно собрать бэкап данных? Где хранить резервные копии? Как обеспечить необходимый уровень ретроспективы хранения копий? Как унифицировать процесс резервного копирования для целого зоопарка различного ПО?


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

Как настроить установку переменных окружения Nuxt.js в рантайме, или Как сделать всё не как все и не пожалеть

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

(Иллюстрация)

Senior web developer’ы Антон и Алексей продолжают рассказ о непростой борьбе с Nuxt. В предыдущем раунде битвы с этим фреймворком они показали, как запустить проект на Nuxt так, чтобы все были счастливы. В новой статье поговорим о реальном применении фреймворка.

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

После пары раундов обсуждения решили не полагаться на традиционный подход с только серверным рендерингом — но и не загонять себя в ловушку клиентского рендеринга. Как итог мы начали строить решение на базе Nuxt.js.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии3

SSR: когда, зачем и для чего. На примере Vue

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

(Иллюстрация)

Once upon a time Несколько лет назад, когда я только начинал работать с вебом на Java, мы работали с JSP. Вся страница генерировалась на сервере и отправлялась клиенту. Но потом встал вопрос о том, что ответ приходит слишком долго…
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии17

Как я пытался выучить английский и что из этого получилось

Время на прочтение4 мин
Количество просмотров29K
Так уж получилось, что мне 40 и я не знаю английского. Совсем (*). Что делать и кто виноват?
Немного подробностей под катом.

Читать дальше →
Всего голосов 38: ↑26 и ↓12+14
Комментарии104

Горизонтальное масштабирование. Что, зачем, когда и как?

Время на прочтение17 мин
Количество просмотров118K
Александр Макаров

Александр Макаров ( SamDark )


Здравствуйте! Я Александр Макаров, и вы можете меня знать по фреймворку «Yii» — я один из его разработчиков. У меня также есть full-time работа — и это уже не стартап — Stay.com, который занимается путешествиями.

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

Что такое масштабирование, вообще? Это возможность увеличить производительность проекта за минимальное время путем добавления ресурсов.

Обычно масштабирование подразумевает не переписывание кода, а либо добавление серверов, либо наращивание ресурсов существующего. По этому типу выделяют вертикальное и горизонтальное масштабирование.
Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии17

Нужно поднимать Kubernetes кластер, но я всего лишь программист кода. Выход есть

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


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

Ключевые слова — AWS + Terraform + kops . Если это полезно мне — возможно будет полезно кому-нибудь еще. Добро пожаловать в комментарии.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии13

Переход с jQuery на Vue.js

Время на прочтение10 мин
Количество просмотров40K
Автор статьи, перевод которой мы публикуем сегодня, полагает, что в мире существует ещё много программистов, которые, когда им нужно разработать простое веб-приложение, обращаются к jQuery. Обычно это случается тогда, когда некую страницу нужно оснастить простыми интерактивными возможностями, но использование для этого какого-нибудь JavaScript-фреймворка кажется явным перебором. Ведь это — килобайты ненужного кода, шаблоны, инструменты для сборки проектов, средства для упаковки модулей… При этом подключить к странице jQuery, воспользовавшись CDN-ресурсом, проще простого.



В этом материале речь пойдёт о том, как перевести проект, созданный с использованием jQuery, на Vue.js. Этот проект будет создан на jQuery, а потом переработан с применением Vue. Автор материала хочет продемонстрировать всем желающим то, что использование Vue, даже в сравнительно небольших проектах, не обязательно означает чрезмерное увеличение размера кода таких проектов и большую дополнительную нагрузку на программиста. Это, наоборот, при практически тех же размерах вспомогательного кода, что и при использовании jQuery, позволяет повысить производительность труда и улучшить качество приложений.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии43
1
23 ...

Информация

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