Pull to refresh
66
0

Техлид

Send message

Докеризированные команды и make, как стандартная точка в проект. Быстрый способ запуска разработки проекта на php

Reading time3 min
Views5.2K

В публикации опишу подход к использованию контейнеров docker и make который я практиковал последние несколько лет в своих рабочих командах и личных pet-проектах. Подход сформировался в процессе поиска минималистичного и унифицированного способа запуска проектов на php. Чтобы любой разработчик мог в пару простейших команд получить рабочую копию для разработки, располагая только доступом к репозиторию, без бубнов, обновляемых инструкций и тимлида на соседнем стуле.

Читать далее
Total votes 6: ↑4 and ↓2+6
Comments6

Для входящих в «это самое»: обзор языков, рынка и отрасли для самостоятельного анализа и размышления на тему

Reading time13 min
Views8.3K

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

Тема не раз обсуждалась на хабре под разными углами. Как с высоты опыта старожилов, так и виде историй успеха/провала нововошедшых/"тут же вышедших".

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

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

Пара тимлидовских побасёнок

Reading time7 min
Views7.7K

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

Читать далее
Total votes 19: ↑16 and ↓3+18
Comments10

Вымышленные путешествия Йона Тихого мл.: Путешествие 1488

Reading time16 min
Views4.2K

Накануне я плотно поужинал шпикачками, и по склонности своей крепко спал, когда меня разбудил барабанящий в иллюминатор метеоритный дождик. В сводке вечером ничего подобного на моём маршруте не ожидалось, и я поспешно проследовал в рубку, чтобы свериться с метеорометром и уточнить курс. Метеоритная дробь быстро нарастала, по началу невинный дождик быстро стал настоящим ливнем. Я успел совершить рывок из тучи и выскочить, прежде чем влетел в самый её центр, но ракете успело достаться.

Самое досадное, что повреждения коснулись системы регулировки скорости, что-то более крупное я бы смог починить самостоятельно, а эта новомодная электроника была очень плохо приспособлена к ремонту. Я не раз себя ругал, за то что взял электронный автомат, но пойди найди в наше время ракету с ручным механическим управлением. Комфортно конечно, но уж если что-то начинает сбоить, то сбоит самым нелепым и непредсказуемым образом, а чинить такие вещи самостоятельно в открытом космосе практически невозможно. И гарантии лишаешься. Разумеется, читатель может возразить, что сервисные боты вдоль всех космических трасс расположены на каждом парсеке. Но, вырываясь из метеоритной тучи, я вылетел с трассы в пустынный уголок, где никакого сервиса не было на несколько световых недель, а ждать помощи так долго я позволить себе не мог. Шпикачки были съедены ещё вчера, и кроме пары банок с ромовыми бабами, у меня оставался лишь килограмм сублимированных кнедлей, на которых долго не протянешь.

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

Читать далее
Total votes 15: ↑10 and ↓5+10
Comments16

Ретроспектива автоматизации и изменений в процессах разработки Timeweb

Reading time7 min
Views2.9K
1 ноября 2017 года я стал руководителем рабочей группы разработки в отделе программных разработок Timeweb. А 12 ноября 2018 руководитель отдела спросил, когда же будет готова статья для Хабрахабр, потому что отдел маркетинга спрашивает, добровольцы кончились, а контент-план требует чего-то ещё)

Поэтому хочу дать ретроспективу, как менялись процессы разработки, тестирования и поставки наших продуктов в течение последнего года. Про унаследованные процессы и инструменты, docker, gitlab и то, как идёт у нас разработка.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments6

Как правильно оформить Open Source проект

Reading time7 min
Views54K

В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.


Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.


Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.


Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?

Читать дальше →
Total votes 89: ↑84 and ↓5+79
Comments135

Иерархия исключений в современном PHP-приложении

Reading time4 min
Views12K

Задача публикации: доступно изложить способ организации иерархии исключений и их обработки в приложении. Без привязки к фреймворкам и конкретной архитектуре. Описываемый способ является де-факто стандартом в сообществе: он используется во многих серьёзных библиотеках и фреймворках. В том числе Zend, Symfony. Не смотря на его логичность и универсальность, формального описания предлагаемого подхода на русском языке я не нашёл. После неоднократного устного изложения концепции коллегам, родилась мысль оформить её в виде публикации на Хабрахабр.


В языке PHP, начиная с 5-ой версии, доступен механизм исключений. В актуальной, 7-ой, версии этот механизм был улучшен и переработан с целью единнобразной обработки разных ошибок при помощи конструкции try{} catch...


В стандартной библиотеке (SPL) PHP предоставляет готовый набор базовых классов и интерфейсов для исключений. В 7-ой версии этот набор был расширен интерфейсом Throwable. Вот диаграмма всех имеющихся в версии 7 типов (изображение — ссылка):


Диаграмма типов исключения в PHP7

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments25

Что делать с чужими долгами?

Reading time16 min
Views34K
Один из аспектов профессии разработчика — посвящение профанов в особенности процесса разработки ПО.
С. Макконнелл, Совершенный код

Цель этой публикации — поделиться опытом работы над проектом со сложной историей и тяжёлым наследием. После ухода из очередного т.н. «стартапа», я решил что хочу попробовать новых ощущений: enterprise, legacy, etc. Для этого взялся за работу над корпоративным приложением для транснационального концерна. Разработка на тот момент шла уже третий год, приложение пережило несколько поколений разработчиков, но стабильного релиза так и не было.

Полагаю публикация будет полезной:

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

Затрагиваемые в статье вопросы:

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

Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments76

Тонкие клиенты, толстые сервера

Reading time4 min
Views13K
Идея тонкого клиента по-настоящему воплотилась в середине 30-ых годов. Хотя сам термин обсуждался и за пол-века до этого. Клиент-серверные приложения, преобладавшие долгое время перед этим, являлись, по-сути, тупиковой ветвью эволюции: идея тонкого клиента в виде веб-браузера мутировала до абсурда: клиентская часть приложения — та что выполнялась на машине пользователя — требовала ресурсов больше чем серверная, при том, что последняя могла обслуживать множество пользователей. Браузер стремился задействовать все доступные ресурсы пользовательской машины, становясь наиболее толстым клиентом за всю история информационных систем.
Читать дальше →
Total votes 17: ↑8 and ↓9-1
Comments10

Yii: лучшие практики

Reading time8 min
Views28K
В статье будут освещены следующие проблемы разработки и поддержки проектов на базе php-фреймворка Yii:

  1. Главные достоинства и недостатки
  2. Тестирование
  3. Нюансы использования ActiveRecord
  4. Сервис-ориентированный подход
  5. Новшества языка
  6. Расширение фреймворка


Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments76

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Lead
SQL
PHP
PhpUnit
REST
Docker
TDD/BDD
Linux