Pull to refresh
4
0
Send message

Битва брокеров сообщений: RabbitMQ, Kafka, AWS SNS/SQS

Reading time 11 min
Views 19K

Если вы работаете с вебом, вы обязательно столкнётесь с брокерами сообщений. Они бывают разные, но чаще остальных встречаются Kafka, RabbitMQ и AWS SNS/SQS. У каждого из них есть свои особенности, плюсы и минусы — выбирать брокер нужно под свою задачу. 

О том, как сделать правильный выбор, рассказали эксперты из команды курса «Go-разработчик» Яндекс Практикума: 

Читать далее
Total votes 22: ↑17 and ↓5 +12
Comments 9

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time 44 min
Views 211K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4 +72
Comments 270

Собеседование php-developer (вопросы и ответы)

Reading time 10 min
Views 234K
Так уж получилось, что в этом году я прошел ряд собеседований на позицию PHP разработчика, чего я не делал уже несколько лет. Будучи человеком ленивым практичным, перед собеседованием я попытался найти сборники вопросов-ответов, но все найденное было довольно старым, поэтому я решил сам подготовить список вопросов, которые встречал.

Обычно в статьях такого рода даются полные ответы на вопросы, но если вы собеседуетесь на достаточно серьезную позицию, краткой выжимки будет явно недостаточно и необходимо довольно глубоко понимать сам вопрос, поэтому я в основном вставил ссылки на документацию или статьи по описываемым вопросам.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 18

Готовимся к собеседованию по PHP: псевдотип «callable»

Reading time 5 min
Views 96K
Не секрет, что на собеседованиях любят задавать каверзные вопросы. Не всегда адекватные, не всегда имеющие отношение к реальности, но факт остается фактом — задают. Конечно, вопрос вопросу рознь, и иногда вопрос, на первый взгляд кажущийся вам дурацким, на самом деле направлен на проверку того, насколько хорошо вы знаете язык, на котором пишете.
image
Вторая часть серии статей посвящена одному из самых сложных и объемных вопросов о современном PHP — что такое «callable»? Я постарался свести в один текст некий минимум знаний об этом вопросе.
Подробный разбор неочевидных мест мануала - под катом
Total votes 37: ↑36 and ↓1 +35
Comments 65

Пишем свой плагин для IDEA для поддержки нового языка (часть 1)

Reading time 13 min
Views 6K

В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 2

Использование аннотаций в PHP 5.4 для АОП и не только

Reading time 6 min
Views 12K
При разработке крупных проектов довольно часто возникает ситуация, когда сквозной функционал, слабо относящийся к бизнес-логике, сильно раздувается, заполняя код однотипными конструкциями. Это может быть логирование операций, работа с кешем или проверка прав доступа. Тут нам на помощь приходит АОП.

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

Технологии реализации AOP в PHP


Волшебные методы

Самое простое решение — использование «волшебных методов» __call и __callStatic. Эти методы вызываются (если они определены в классе) при обращении к несуществующему методу класса. В качестве аргументов они получают имя несуществующего метода и переданные ему параметры.
В данном случае, приложение строится таким образом, что реальные методы имеют имя отличное от имени указанном в вызывающих их конструкциях. Сквозной функционал реализуется в «волшебных методах», которые, при необходимости, передают управление реальным методам классов.

Плюсы:
  • Легко начать использовать;
  • Реализация не требует дополнительных модулей (нативный PHP).

Минусы:
  • Не удобно использовать при большом количестве сквозного функционала;
  • Т.к. имена методов в определении и в вызовах различаются, создаются трудности при использовании автодополнения кода в IDE.

Предварительный разбор кода

Этот способ подразумевает наличие посредника, позволяющего использовать «синтаксический сахар». Необходимый функционал описывается вспомогательным синтаксисом (xml/json конфигурация, дополнительные php-классы или аннотации в коде), который разбирается посредником. На основе разбора генерируется результирующий код, который содержит вставки сквозного функционала в необходимые места.

Плюсы:
  • Работает быстро, т.к. на выходе это обычный PHP-код, просто сгенерированный за Вас автоматически.

Минусы:
  • Сложно внедрить в большой проект;
  • Требуется разбор кода после каждого изменения, для внесения корректировок в результирующий код.

Замена кода приложения во время выполнения

Только чёрная магия, только хардкор
Total votes 22: ↑16 and ↓6 +10
Comments 17

Кастомные аннотации в Symfony 2

Reading time 3 min
Views 12K
Symfony2 — это веб-фреймворк, который появился совсем недавно. Соответственно, разработчики просто не успели написать к нему стоящую документацию. В одном из текущих проектов используется MongoDB, и ACL прикрутить нему можно, нужно всего лишь написать свой ACL-провайдер. Но я решил пойти своим путём. Итак, вот что примерно у нас получится:
class DefaultController extends Controller
{

    /**
    * Dashboard page.
    * @Permissions(perm="dashboard_view")
    * @Route("/", name="ITEDashboardBundle_index")
    * @Template()
    * @return array
    */
    public function indexAction()
    {.......

Читать дальше →
Total votes 37: ↑28 and ↓9 +19
Comments 34

Еще немного про SDH и PDH

Reading time 9 min
Views 133K
Прослушав второй выпуск подкаста ЛинкМиАп опубликованного на habrahabr.ru у меня возникло желание дополнить и немного поправить сказанное в первой части выпуска, посвященного SDH/PDH. Но так как все мои мысли не умещались в рамки обычного комментария, то я, воспользовавшись майскими праздниками, написал это пост.
Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Comments 9

Жизнь в Сочи глазами IT-специалиста и не только: что может предложить город айтишнику?

Reading time 7 min
Views 17K

Привет, Хабр! Сегодня поговорим о Сочи как о возможном месте для жизни и работы айтишника. У города есть много достоинств, включая его близость к морю, мягкий климат и наличие красивейших пейзажей. Но есть и другие положительные моменты, о которых сегодня и поговорим. Не обошлось, конечно, и без недостатков, которые тоже стоит упомянуть. Кстати, если вы здесь живёте, расскажите о своём мнении в комментариях — это позволит дополнить статью, сделав её более объективной.

Узнать, как переехать в Сочи
Total votes 48: ↑24 and ↓24 0
Comments 59

Индексирование JSON в MySQL

Reading time 8 min
Views 7.5K


В середине 2015 года, в MySQL 5.7.8 появился тип данных JSON. С тех пор он применяется, чтобы избегать жёстких определений столбцов и сохранять документы JSON всех форм и размеров: логи аудита, параметры конфигурации, сторонние полезные нагрузки, пользовательские поля и др. Подробности — к старту нашего курса по анализу данных.

Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 11

Как оптимизировать работу с Paging 3 и работа над ошибками. Boilerplate ч. 4

Reading time 7 min
Views 5.5K

Всем привет после такого длительного перерыва возвращаем серию статей Boilerplate. Сегодня будем разбирать как облегчить пагинацию с помощью библиотеки Paging 3. За это время достаточно правок произошло в самом репозитории Boilerplate которые мы сегодня тоже разберем.

Читать далее
Rating 0
Comments 0

Полная домашняя автоматизация в новостройке

Reading time 8 min
Views 218K
Три года назад стал претворять свою давнюю мечту в реальность — максимальная домашняя автоматизация квартиры, купленной в новостройке с нуля. При этом «отделку от застройщика» пришлось принести в жертву умному дому image и полностью переделать, а вся электрика, не связанная с автоматикой приехала с известного китайского сайта. Паяльник не потребовался, но знающих мастеров, электриков и плотников пришлось искать долго.


Панель управления квартирой в феврале 2020 года (Home Assistant)

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


Строительство нашего дома в процессе — ноябрь 2016 года
Умный дом в самом соку...
Total votes 138: ↑135 and ↓3 +132
Comments 514

Полная домашняя автоматизация в новостройке. Продолжение

Reading time 9 min
Views 90K
Неожиданно статья про мой опыт автоматизации однокомнатной квартиры площадью 41 кв. м. в новостройке, опубликованная две недели назад, стала популярна и на 10 марта её добавил в закладки 781 image человек, просмотрели 123 921 раз и Хабр даже запилил рекламный блок в разделе «Рекомендуем» с пометкой «Интересно».


1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня

Перед вами продолжение истории, где я отвечу на комментарии, приведу фотографии квартиры с мебелью, получившиеся электрические щиты, а также расскажу о тех сложностях, с которыми я столкнулся после того, как перешёл c openHAB в другую систему домашней автоматизации — Home Assistant.
Самая умная однушка ...
Total votes 57: ↑55 and ↓2 +53
Comments 368

Код, который пишет себя сам

Reading time 10 min
Views 64K
Источник

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

Читать дальше →
Total votes 51: ↑49 and ↓2 +47
Comments 46

Пишем 3D игру под Windows Mobile, ч.1

Reading time 10 min
Views 5.7K

На хабре достаточно много пользователей коммуникаторов. Они рассказывали достаточно много историй о том, как их использовали: раскладывали пасьянс, играли в шарики, сидели в интернете, читали книги и в конце-концов, использовали как телефон. А что, если я вам скажу, что на коммуникаторах было аж два API для рисования 3D графики? Причем оба могли уметь хардварное ускорение. В юности я мечтал о кпк, а сейчас я исполнил свою мечту, и у меня есть несколько годных для своего времени коммуникаторов. Так почему бы не написать 3D игрушку под них?

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 31

Эмбарго на A-GPS или почему смартфоны стали плохо определять местоположение

Reading time 5 min
Views 139K

Ориентировочно с мая 2022 года в разных темах на форуме 4PDA и других интернет-площадках начали появляться сообщения вида "Что-то смартфон стал плохо ловить спутники GPS и показывать точное местоположение". Многие связывали это с обновлениями прошивок, пробовали откатываться, использовать различные приложения, дергающие различные API Android...

Объединяло все эти жалобы два момента: все смартфоны на чипах Qualcomm Snapdragon различных поколений, и все пользователи были из РФ.

Читать далее
Total votes 291: ↑291 and ↓0 +291
Comments 341

Как мы строили безопасное web приложение на базе WIKI.JS

Reading time 15 min
Views 9.9K

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

Читать далее
Total votes 3: ↑2 and ↓1 +1
Comments 4

Программирование и ДНК

Reading time 10 min
Views 5.8K

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 8

Как использовать Docker в приложениях Node.js и React

Reading time 4 min
Views 35K

В этой статье поговорим о том, как разработать и запустить бэкэнд на Node.js-Express и фронтенд на React в контейнере Docker.

Читать далее
Total votes 13: ↑8 and ↓5 +3
Comments 17

Установка Shadowsocks с обходом блокировок на Keenetic

Reading time 8 min
Views 70K

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

Читать далее
Total votes 24: ↑22 and ↓2 +20
Comments 34

Information

Rating
Does not participate
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead