Pull to refresh
-3
0
Павел Омельченко @pOmelchenko

php-developer

Send message

Не нервничай

Reading time2 min
Views3.4K

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

Читать далее
Total votes 15: ↑4 and ↓11-7
Comments4

Как управлять проектом? Самый простой пошаговый план для новичков

Reading time4 min
Views14K

Привет, менеджер!

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

Совсем немного введения

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

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

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

Для полноценного проектирования и детализации требований продукта необходимо подготовить следующее...

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

Руководство по пограничным вычислениям для архитектора. Самое важное

Reading time10 min
Views6.5K
Для современного энтерпрайз-архитектора критически важно разбираться в пограничных вычислениях (edge computing). В этой статье будут рассмотрены основы пограничных вычислений и приведены примеры использования этой технологии на практике.



Пограничные вычисления – определенно существенная часть современного технологического ландшафта. Объем рынка для продукции и услуг, связанных с пограничными вычислениями, более чем удвоился с 2017 года. Причем, согласно статистическому сайту Statista, к 2025 году ожидается взрывной рост этого рынка (см. рисунок 1 ниже). 


Рисунок 1: Объем мирового рынка пограничных вычислений: текущая ситуация и прогноз на 2025 год (в миллиардах долларов США) (Statista)

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

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

В этой статье рассмотрены четыре темы, фундаментально важные в контексте данной технологии. Сначала я сделаю введение в базовые концепции пограничных вычислений. Далее мы обсудим, в чем суть ценностного предложения пограничных вычислений. Далее я опишу закономерности, формирующиеся в этой области, в частности, как туманные вычисления соотносятся с пограничными. Наконец, я рассмотрю, как внедрение искусственного интеллекта с прицелом на его эксплуатацию вывело пограничные вычисления на передний край проектирования современных архитектур.
Читать дальше →
Total votes 19: ↑16 and ↓3+17
Comments2

Новые функции языка, начиная с Java 8 до 16

Reading time22 min
Views12K

Улучшения языка Java, которые вам следует знать

Последнее обновление 30.03.2021, чтобы включать изменения до JDK 16.

Когда в Java 8 были представлены Streams и Lambdas, это было большим изменением, позволившим использовать функциональный стиль программирования с гораздо меньшим количеством шаблонного кода.

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

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments9

Руководство по возможностям Java версий 8-16

Reading time15 min
Views42K

Последнее обновление: 05 апреля 2021 г.

Вы можете использовать это руководство, чтобы получить практическую информацию о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), А также получить обзор функций языка Java, включая версии Java версии. 8-16.

Читать далее
Total votes 16: ↑14 and ↓2+22
Comments23

Никто и не заметил, как вышел MySQL 8.0

Reading time2 min
Views45K

Неожиданно для себя обнаружил, что mysql вдруг релизнулся буквально на днях (19 апреля), а статьи на хабре нет — все обсуждают сами-знаете-что.


Постараюсь перевести выжимку из "What's new". Для тех, кто следит за разработкой, тут вероятно не будет ничего или почти ничего нового, для интересующихся время от времени — может показаться интересным. Сразу скажу, что в оригинальном посте более детальный
разбор всех пунктов — тут лишь краткая выжимка со ссылочками.


Оригинал

Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments41

Практики при работе с PHPUnit

Reading time9 min
Views15K

Не секрет, что чем больше проект, тем с большим количеством проблем он сталкивается даже в самых элементарных аспектах.  В продукте Plesk, над которым я работаю, PHP является одним из основных языков, и количество кода на нем превышает 1 миллион строк. Соответственно, мы активно используем PHPUnit для тестирования. Кроме большого объема кода, поддержка двух платформ (Linux и Windows) доставляет нюансы, как и тот факт, что поддерживается несколько бранчей с приличной разницей возраста (крупные релизы), а активно вносят правки несколько десятков инженеров. В статье я хочу поделиться некоторыми практиками, которые мы используем при работе с PHPUnit.

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments16

Как дойти до CQRS, если у тебя PHP

Reading time8 min
Views8.5K

Недавно я посмотрел доклад «Как перестать бояться CQRS». Вроде бы простая идея, но есть нюансы. Так и появился этот выпуск.

CQRS vs CQS (не перепутай)

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments1

It’s the future

Reading time5 min
Views85K

Этот пост просто шутка и не пытается выставить инструменты, упомянутые здесь, в дурном свете. Я использую их постоянно, они великолепны, и я рекомендую их использовать. По мотивам It's the future @ CircleCI Blog


— Эй, я бы хотел научиться писать крутые веб-приложения. Слышал, у тебя есть опыт.


— Да, я как раз занимаюсь фронтендом, юзаю пару тулз.


— Круто. Я щас делаю простое приложение — обычный TODO-лист, используя HTML, CSS и JavaScript, и планирую заюзать JQuery. Это норм?


— Не-не-не. Это олдскул. Джиквери мёртв — никто не использует его теперь! Тебе нужен React. Это будущее.


— Окей, лады. А что это?


Читать дальше →
Total votes 178: ↑167 and ↓11+156
Comments287

Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям

Reading time10 min
Views38K

Всем привет! В последнее время я вплотную занимаюсь исследованием возможностей systemd и решил поделиться результатом исследований с сообществом, в виде небольшого (или большого, как пойдёт ;-) цикла статей. Итак первым номером нашей программы будет запуск юнитов по различным событиям происходящим во время работы ОС. В качестве исследовательской платформы будет выступать Manjaro Linux c systemd v247.2. И... да. Некоторые события, вынудили меня написать внеочередную статью, которая «взлетела на вершину хит-парада», а опрос показал, что тема актуальна и вызывает интерес, так что погнали!

Нырнуть в кроличью нору!
Total votes 62: ↑60 and ↓2+68
Comments23

Почему хабражители предпочитают велосипеды, вместо готовых решений? Или о systemd, part 0

Reading time4 min
Views36K

С Новым Годом Хабр!
Первого января все нормальные люди занимаются прокрастинацией, уничтожением стратегического запаса оливье и прочими, не связанными с физической или интеллектуальной нагрузкой вещами. Вот и я планировал присоединиться к этой новогодней армии, но не тут-то было!

Во всём виноват Хабр!
Total votes 82: ↑80 and ↓2+102
Comments245

Программист учится рисовать. Дневник Емели

Reading time16 min
Views35K
Так получилось, что моим основным хобби на лихой 2020-й год стало освоение ремесла рисования.

Еще в январе я дал себе некое обещание в виде цели к концу года — прокачать навык рисования (звучит конечно абстрактно и совсем не по SMART-у, я думаю, это и повлияло в дальнейшем на то, как я развивал этот навык весь год и что получилось в итоге).

spoiler
В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

image
Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
Читать дальше →
Total votes 105: ↑104 and ↓1+142
Comments123

Использование journalctl для просмотра и анализа логов: подробный гайд

Reading time6 min
Views198K


Journalctl — отличный инструмент для анализа логов, обычно один из первых с которым знакомятся начинающие администраторы linux систем. Встроенные возможности ротации, богатые возможности фильтрации и возможность просматривать логи всех systemd unit-сервисов одним инструментом очень удобны и заметно облегчают работу системным администраторам.

Эта статья рассматривает основные возможности утилиты journalctl и различные варианты ее применения. С помощью journalctl можно просматривать логи системы, чтобы решить возникшие проблемы на рабочей станции или сервере использующие дистрибутив linux с демоном инициализации systemd, де-факто уже ставшим стандартом в современных Linux-системах, например: RHEL, CentOS, Fedora, Debian и многих других.

Существует мнение, что systemd не так уж и хорош — он нагружает систему и это все еще предмет для споров на сегодняшний день, но нельзя отрицать, что он предоставляет прекрасный набор инструментов для управления системой и поиска проблем. Представьте, что вам приходится иметь дело с проблемным сервером, который даже не загружается — в таком случае можно загрузиться с live-дистрибутива, смонтировать системный раздел и просмотреть логи systemd, чтобы понять, в чем проблема.
Читать дальше →
Total votes 43: ↑41 and ↓2+60
Comments25

Авторизация клиентов в nginx посредством SSL сертификатов

Reading time4 min
Views139K

Введение:


Потребовалось мне тут как-то написать небольшой API, в котором необходимо было помимо обычных запросов принимать запросы с «высокой степенью секретности».
Не я первый с этим столкнулся и мир давно уже использует для таких вещей SSL.

Поскольку на моём сервере используется nginx, то был установлен модуль SSL
Гугл не выдал ни одного работоспособного howto, но информация в сети есть по частям.

Итак, пошаговое руководство по настройке nginx на авторизацию клиентов через SSL-сертификаты.
Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments32

«Жизнь» на PostgreSQL

Reading time4 min
Views20K
Недавно на Хабре была опубликована статья Морской бой в PostgreSQL. Должен признаться: я обожаю решать на SQL задачи, для SQL не предназначенные. Особенно одним SQL-оператором. И полностью согласен с авторами:

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

И еще. Будем честны: всегда использовать SQL по назначению — тоска зеленая. Вспомните, какие примеры приводятся во всех учебниках, начиная с той самой статьи Кодда? Поставщики да детали, сотрудники да отделы… А где же удовольствие, где же фан? Для меня один из источников вдохновения — сравнение процедурных решений с декларативными.

Я, позвольте, не буду объяснять, что такое Жизнь Джона Конвея. Скажу только, что — оказывается — используя клеточный автомат Жизни, можно построить универсальную машину Тьюринга. Мне кажется, это грандиозный факт.

Так вот, можно ли реализовать игру Жизнь одним оператором SQL?
Конечно можно
Total votes 77: ↑77 and ↓0+77
Comments30

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 1: Аудитория

Reading time5 min
Views13K


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


Лучше брать пример с Тэйлора Отвела, который создавал Laravel в свободное от основной работы время. В ноябре он опубликовал мини-серию подкастов, в которой поразмыслил над успехом своих программных продуктов — за последние 5 лет они принесли ему больше 10 млн долларов. В четырех выпусках подкаста Тейлор поделился советами, которые затрагивают ряд тем от поиска идеи и формирования лояльной аудитории до сохранения мотивации и преданности качеству.


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

Итак, поехали.

Читать дальше →
Total votes 26: ↑24 and ↓2+32
Comments13

Руководство по перезаряжаемым литиевым аккумуляторам для начинающих

Reading time6 min
Views61K


Когда-то аккумуляторы были тяжёлыми и неуклюжими предметами, выдававшими смехотворно мало энергии для своего размера и веса. К счастью, со временем технологии улучшаются, и в 2020 году у нас есть прекрасные мощные литий-полимерные аккумуляторы, выдающие столько энергии, сколько может понадобиться вашему мобильному проекту. Однако при их использовании нужно учесть некоторые моменты – поэтому предлагаю вам прочесть руководство для начинающих о том, как правильно использовать LiPo в своём проекте.

Так много типов!


Первые коммерческие литий-ионные аккумуляторы вышли на рынок в 1991 году, и за прошедшие с тех пор почти 30 лет мы наблюдали быстрый их прогресс. В итоге у нас появилось множество различных технологий и типов аккумуляторов, делящихся по типу конструкции и используемых материалов. Чтобы правильно обращаться с аккумуляторами, важно знать, какой именно тип попал к вам в руки, и очень важно обратить на это внимание.
Читать дальше →
Total votes 16: ↑13 and ↓3+16
Comments33

Скрам умер. Да здравствует канбан

Reading time7 min
Views53K
Я пользовался методом управления проектами Scrum (скрам) с самого начала карьеры. Я изучал скрам в колледже. Тогда он считался лучшим методом управления разработкой программного обеспечения. Когда я начал работать, мне нравилось всё, что имеет отношение к скраму: ежедневные встречи, планирование, ретроспективные совещания, спринты и так далее. В конце концов, я пользовался на практике тем, чему меня учили.



Но через несколько лет я начал кое-что замечать: в последние дни спринта все бросаются доделывать всё то, чем занимались в предыдущие две недели, стремясь избежать переноса задач на будущее. Часто те, кто так поступали, брали на себя ненужный риск.

Почему? Разве какие-то задачи не могут подождать до следующей недели? Так ли важно доделать абсолютно всё до выходных? Нет, не так уж это и важно. А всё это происходит из-за того, что «Переносы задач — это плохо».
Читать дальше →
Total votes 58: ↑48 and ↓10+62
Comments106

Навигатор для трактора или эмиграция с цифрами

Reading time14 min
Views51K

Cover
https://www.deviantart.com/mrmarkchilcott/art/Warpig-662451056


Итак, ваш трактор отполирован до блеска, смазан, проведено ТО. Вы в костюмчике с иголочки стоите рядом, позвякиваете ключами и… не знаете толком куда же ехать. Внучатая племянница лучшей подруги двоюродной тети вашей мамы говорит, что лучше страны, чем Германия нет. Васек, товарищ детства, за бутылкой пива рассказал, что если куда и ехать, то в Эмираты. Там дорого-богато, а небоскребов сколько? Владимир Викторович, директор конторы, где вы в студенческие годы подрабатывали, считает, что где родился, там и пригодился, мол, страну поднимать надо. Направлений много, а жизнь одна. Давайте вместе вооружимся цифрами и попытаемся составить хотя бы отдаленно объективный список потенциальных мест дислокации на следующие N лет.

Читать дальше →
Total votes 80: ↑73 and ↓7+92
Comments0

DBA: находим бесполезные индексы

Reading time12 min
Views20K
Регулярно сталкиваюсь с ситуацией, когда многие разработчики искренне полагают, что индекс в PostgreSQL — это такой швейцарский нож, который универсально помогает с любой проблемой производительности запроса. Достаточно добавить какой-нибудь новый индекс на таблицу или включить поле куда-нибудь в уже существующий, а дальше (магия-магия!) все запросы будут эффективно таким индексом пользоваться.

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

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

Доработки происходят итеративно силами множества распределенных команд, которые бывают разнесены не только в пространстве, но и во времени. И тогда, не зная всей истории развития проекта или особенностей прикладного распределения данных в его БД, можно легко «напортачить» с индексами. Но соображения и проверочные запросы под катом позволяют заранее предсказывать и обнаруживать часть проблем:

  • неиспользуемые индексы
  • префиксные «клоны»
  • timestamp «в середине»
  • индексируемый boolean
  • массивы в индексе
  • NULL-мусор
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments6

Information

Rating
Does not participate
Location
Подольск, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
PHP
Laravel
Symfony
PostgreSQL
MySQL
Nginx
Git
Docker
Linux