Как стать автором
Обновить
1
0
Алексей @AnisimovAM

PHP Developer

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

Микросервисный фронтенд — современный подход к разделению фронта

Время на прочтение6 мин
Количество просмотров38K
too FAT SPA


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

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

Сегодня я расскажу вам, как мы делали микросервисный фронт в нашем SaaS-решении и с какими проблемами столкнулись.
Подробнее под катом
Всего голосов 26: ↑26 и ↓0+26
Комментарии68

Безопасный OpenVPN на VPS за несколько минут

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

Введение


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

Скрипт позволяет одной командой создать работающий сервер и создать файлы конфигурации для клиентов в unified формате (то есть с сертификатами, включёнными в файл конфигурации). Кстати, эти файлы подходят для мобильных устройств.

Скрипт создавался для машин с CentOS 7.x или Ubuntu Server 17.x, использование на Ubuntu 16.x. возможно, но там OpenVPN 2.3.x в репозиториях. При необходимости можно добавить другие дистрибутивы, но обычно при покупке VPS можно выбрать систему и это не так важно.
Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии59

[UPDATED + Комментарии] Сначала они воруют, а когда ты побеждаешь, то тебя убивают

Время на прочтение9 мин
Количество просмотров178K
Кому-то может показаться, что это начало какой-то детской загадки, но на самом деле это реальность. Ответ на нее Департамент Информационных Технологий.

Заранее говорю, что статья является лишь сводом информации. Каждый из вас может сделать собственные выводы.

[UPD]: ДИТ ответил в комментариях
[UPD]: ДИТ прислал официальный ответ
[UPD]: Сайты, которые указывают на связь компании Альтрикс и компании Тактик Лабс почистили, но интернет помнит все
Часть 2. Сначала они воруют, а когда ты побеждаешь, то тебя убивают
Читать дальше →
Всего голосов 536: ↑521 и ↓15+506
Комментарии659

Внедряем безопасность в процесс разработки крупного проекта

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



В данной статье нам хотелось бы поделиться своим опытом внедрения нашей команды пентестеров в цикл разработки большого проекта «МойОфис». Найти материал подобной тематики с реальными кейсами на русском языке практически невозможно. Всем, кого интересует модные направления пентестов, теория, практика, методики, тулзы и реально найденные уязвимости в контексте безопасной разработки, — добро пожаловать под кат. Статья изобилует полезными ссылками на теоретические и практические материалы. Но давайте по порядку.

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

Symfony и Command Bus

Время на прочтение16 мин
Количество просмотров43K
Уже больше года использую паттерн Command Bus в своих Symfony-проектах и наконец решил поделиться опытом. В концев концов обидно, что в Laravel это есть «из коробки», а в Symfony, из которого Laravel во многом вырос — нет, хотя самому понятию Command/Query Separation уже не менее 10 лет. И если с буквой «Q» из аббревиатуры «CQRS» еще понятно что делать (лично меня вполне устраивают custom repositories), то куда приткнуть букву «C» — неясно.

На самом деле, даже в банальных CRUD-приложениях Command Bus дает очевидные преимущества:

  • контроллеры становятся «худыми» (редкий «экшен» занимает более 15 строк),
  • бизнес-логика покидает контроллеры и становится максимально независимой от фреймворка (в результате ее несложно повторно использовать в других проектах, даже если они написаны не на Symfony),
  • упрощается unit-тестирование бизнес-логики,
  • сокращается дублирование кода (когда, например, необходимо реализовать «фичу» как через Web UI, так и через API).

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

Как учить по 100 английских слов в день

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


Словарный запас многое решает. Знаешь слова — понимаешь, о чем речь, даже не зная тонкостей грамматики. Не знаешь слова — общаешься, как Эллочка-людоедка. Сегодня говорим о том, как запоминать много и надолго.
Читать дальше →
Всего голосов 28: ↑20 и ↓8+12
Комментарии33

Построение гибких PHP приложений

Время на прочтение8 мин
Количество просмотров32K
Эра фулстэк фрэймворков в прошлом. Современные разработчики фрэймворков разделяют свои монолитные репозитории на компоненты с помощью ответвлений в Git, позволяя разработчику выбрать то, что действительно необходимо его проекту. Это означает, что вы можете построить свое приложение на топовых Zend Service Manager, Aura Router, Doctrine ORM, Laravel (Illuminate) Eloquent, Plates, Monolog, Symfony Cache или любых других компонентах, которые можно установить через Composer.

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

Работа с геолокацией в iOS 24/7

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



В последнее время, часто вижу вопрос:
Можно ли в iOS работать с геолокацией, когда приложение свернули и отправлять данные на сервер?

Это действительно возможно и совсем не сложно.
How to вместится в превью статьи.

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


Чтобы была какая-то конкретика, я предположил, что перед нами стоит задача написать вело-трекер. Со стороны пользователя это выглядит так:


  1. Скачиваю приложение
  2. Запускаю
  3. Регистрируюсь
  4. Нажимаю куда просят
  5. Закрываю
  6. Катаюсь
  7. Запускаю
  8. Вижу результат

p.s. финальный код здесь.

Любые совпадения с реально существующим приложением случайны
Всего голосов 16: ↑15 и ↓1+14
Комментарии11

Броня крепка, и танки наши быстры

Время на прочтение12 мин
Количество просмотров17K
Приветствую всех любителей тяжелой техники. Сегодня в блоге группы компаний ЛАНИТ исторический пост. Он посвящен приближающемуся Дню Победы.

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

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

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



Рисунок 1. Источник
Читать дальше →
Всего голосов 73: ↑57 и ↓16+41
Комментарии43

Создание игры на Unreal Engine 4 за 150 часов (видео + исходники)

Время на прочтение6 мин
Количество просмотров186K
Приветствую, Хабр! Хотел бы познакомить вас с относительно небольшим проектом, который я сделал c нуля примерно за 150 часов (50 заходов ~3 часа каждый) на Unreal Engine 4. Проект я делал в прямом эфире только на стримах раз в неделю (в общей сложности ушел год), попутно отвечая на вопросы пользователей.

Сам проект не предназначался как коммерческий. Целью я ставил на практике показать всю сложность разработки игр, а именно такие проблемы, как:

  • Планирование и прототипирование проекта
  • Продумывание и реализация архитектуры проекта и отдельных его компонентов
  • Реализация интерфейса пользователя
  • Отладка и исправление ошибок
  • Работа с ассетами и графикой

image

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

Если вам интересны подробности проекта, записи стримов, исходники и прочее, читайте далее.
Всего голосов 103: ↑99 и ↓4+95
Комментарии45

Отправка голосовых сообщений ВКонтакте с помощью VK API

Время на прочтение3 мин
Количество просмотров33K
Всем, кто работал с VK API, давно известно, что доступ к любой работе с аудиозаписями ВКонтакте был закрыт 16 декабря 2016 года, а информация о голосовых сообщениях вообще отсутствует в документации.

imageНа примере моего пустого сообщества-песочницы

Так как же это делается?
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии6

N причин, чтобы использовать Create React App

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


Create React App — отличный инструмент для быстрого старта React-приложений. Вы не тратите время на настройку Webpack, Babel и других привычных инструментов. Они заранее настроены и спрятаны, так что разработчики могут сфокусироваться на коде и бизнес-логике приложения.
Читать дальше →
Всего голосов 35: ↑28 и ↓7+21
Комментарии33

Эволюция на React+Redux

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

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

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

php-cs-fixer: Пишем свой фиксер

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

Качество кода не только в том, как он работает, но и в том как выглядит. То, что единый в рамках кампании code style — это очень важная вещь — в наши дни убеждать уже никого не нужно. Код должен быть не только написан, но и оформлен. В плане оформления PHP кода, утилита php-cs-fixer давно уже стала стандартом. Использовать ее довольно просто, есть куча правил и можно удобно забиндить ее запуск на какую-нибудь комбинацию клавиш в шторме или на pre-commit hook в гите. Все это легко гуглится и подробно разбирается в сотнях статей. А мы сегодня поговорим о другом. Хотя в php-cs-fixer есть большое количество разных фиксеров, но что, если нам понадобится такой, которого там нет? Как написать собственный фиксер?
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии0

$PHP не нужен*

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

Хорошо известно, что PHP — это мёртвый язык программирования и его 22-летняя экосистема фактически стала бесполезна, когда появился Node и новые асинхронные фреймворки на его основе. Превосходство Node очевидно, потому что все знают, что однопоточные асинхронные программы более лучше по умолчанию. И быстрее.


«Но Саймон! Почему?!", вы, вероятно, прокричите увидев этот текст на экране. И вот почему:


Перспективы трудоустройства


PHP-разработчики не пользуются спросом. По прошествии 22 лет, все компании, использующие PHP, сразу же отказались от него, как только был выпущен Node v0.0.1, потому что этот стек разработки мгновенно стал лучшим. Кроме того, всем известно, что для успешного запуска (забудем про Slack) вам нужно создавать веб-интерфейсы на Node, а данные сохранять в MongoDB.


Иначе просто невозможно добиться успеха.


Приведем немного научных™ фактов, чтобы доказать эти утверждения:
image
$заголовок = ‘PHP-разработчики не могут найти работу чтобы содержать свои семьи’;

Читать дальше →
Всего голосов 200: ↑127 и ↓73+54
Комментарии281

Разработка WebRTC видеочата между iOS, Android и браузером

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

В предыдущей статье мы описывали принципы разработки видеочата между браузером и Android — устройством. Теперь же попробуем усложнить задачу и заимплементить трехсторонний видеочат на следующих платформах: Google Chrome на десктопе, Android приложение на планшете, и iOS приложение для Apple iPhone.
Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии1

Делаем свой Skype с переводом речи в реальном времени, только лучше

Время на прочтение2 мин
Количество просмотров16K
Не так давно Skype анонсировал реал-тайм перевод во время видеообщения с собеседником. Эта тема уже давно не дает покоя человечеству: многие помнят фильм «Автостопом по галактике» и Babel fish. Мы решили разобраться, как сделать это существо на Voximplant. Описание и демка – под катом.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии8

Разрабатываем видеочат между браузером и мобильным приложением

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

Империи зла нередко получают лучи ненависти со стороны конечных пользователей. Не смотря на это, Uber частично оплачивает наши поездки, хоть и временно, а Google придал значительное ускорение технологии WebRTC, которая бы так и оставалась проприетарной и сильно платной софтиной для узких целей b2b, если бы не ИЗ.

После появления WebRTC, видеочаты стало делать проще. Появились различные API и сервисы, серверы и фреймворки. В данной статье мы подробно опишем еще один способ разработки видеочата между веб-браузером и нативным Android-приложением
Читать дальше →
Всего голосов 24: ↑20 и ↓4+16
Комментарии8

Использование memcached и Redis в высоконагруженных проектах

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


Вячеслав Москаленко (Ленвендо)


Я буду рассказывать вам об инструментах высоконагруженных проектов, кэшировании, в частности, о memcached, Redis-е и о сервисе очередей RabbitMQ или в простонародье «кролике».

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

А во второй части я буду рассказывать о брокере сообщений RabbitMQ, об основных понятиях, которые есть в «кролике», о том, как работает маршрутизация сообщений между продюсерами и консьюмерами. Также расскажу о практическом применении в наших проектах данного брокера сообщений.

О кэшировании. Думаю, многие из вас хоть что-то кэшировали в своих веб-проектах, поэтому все будет очень просто и доступно.
Всего голосов 36: ↑32 и ↓4+28
Комментарии22

Особенности протокола в IO-играх

Время на прочтение5 мин
Количество просмотров15K
Допустим, вы хотите создать IO-игру. Что-то похожее на agar.io, slither.io и тысячи их.

Что такое IO -игры
Такое название закрепилось за браузерными, клиент-серверными многопользовательскими играми в реальном времени.

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

Родоначальником жанра является agar.io

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

Сейчас я так не думаю.
Расскажу почему
Всего голосов 34: ↑27 и ↓7+20
Комментарии75

Информация

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