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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

Только чёрная магия, только хардкор
Всего голосов 22: ↑16 и ↓6+10
Комментарии17

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

Время на прочтение3 мин
Количество просмотров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()
    {.......

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

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

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

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

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

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

Узнать, как переехать в Сочи
Всего голосов 48: ↑24 и ↓240
Комментарии59

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

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


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

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

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

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

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

Читать далее
Рейтинг0
Комментарии0

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

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


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

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


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

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

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


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

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

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

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

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

Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Комментарии46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

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

Fullstack Developer, Web Developer
Lead