Pull to refresh
106
0
Максим Олейник @Partizan

User

Send message

PHP: изменение стуктуры БД в командной разработке

Reading time6 min
Views8.7K


В мире PHP хорошо известны инструменты миграций структуры БД — Doctrine, Phinx от CakePHP, от Laravel, от Yii — это то первое, что пришло в голову. Наверняка, есть еще с десяток. И большинство из них работают с миграциями — командами для внесения инкрементных изменений в схему базы данных.

Я не буду описывать зачем это, на хабре много постов на эту тему. Например:


Далее, развитие моего опыта работы в команде с постоянным изменением структуры БД в разных ветках.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments23

Юзабилити-тестирование на коленке

Reading time4 min
Views3.4K
Я вообще довольно давно интересуюсь темой юзабилити и проектированием интерфейсов, сценариями, персонажами. Но я не занимаюсь этим профессионально. До этого момента я довольствовался только знанием того, как это делается «по-взрослому», и убеждением в том, что «по-хорошему» проекты надо развивать через UI-тестирование (test first ;). Но, как обычно, дальше разговоров и грустных вздохов не заходило.
А началось все с того, что в очередной раз обсуждая проект, фичи и дальнейшие планы, я взял и ляпнул: «Поехали в институт и проверим на студентах».

Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments26

Почему Git

Reading time8 min
Views68K
Было время, когда я ничего не знал про VCS, ни что это такое, ни тем более зачем это мне. И верхом своих достижений считал папочку с архивами версий. К моменту осознания необходимости системы контроля версий я уже набил шишек и прочувствовал необходимость такого инструмента. Но борландовский аналог CVS меня не впечатлил. У каждого файла свой номер версии. Как мне получить срез определенного релиза я так и не разобрался. А в это время SVN победоносно шла сквозь умы разработчиков. Черт, это было то, чего мне так не хватало. Прочитав доку и начав работать я просто влюбился в нее. Да, были трудности и определенные неудобства, но куда без них.
Так я и работал бы в SVN, но ничего не стоит на месте. В интернете уже потекли тонкие ручейки новостей про Git. Я не кидаюсь за каждой новой технологией, и прошло уже достаточно много времени, пока мне не прожужжали этим Git’ом все мозги. Мне стало любопытно, я вначале присматривался, примерялся, а потом плюнул и начал новый проект на Git. Мучался с ребятами 2 недели, накачал литературы, написал шпаргалку… ничего, привыкли, … а потом меня поперло.

Теперь меня регулярно просят рассказать про Git и что в нем такого. Уже надоело, поэтому этот пост для тех, кто еще сомневается.
Читать дальше →
Total votes 207: ↑195 and ↓12+183
Comments265

Symfony Code'n'Coffe (Август) Москва

Reading time3 min
Views497
Продолжая собственную инициативу хочу анонсировать следующее мероприятие, которое пройдет 7 августа в субботу в 12:00.
Не хотел откладывать до августа, но 30 июля иду на Startup Weekend. Все желающие могут присоединяться.

Пара слов о том, как прошло первое мероприятие.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments4

Symfony Code'n'Coffe (Июль) Москва

Reading time1 min
Views523
Приветствую.
Этим анонсом хочу открыть серию регулярных встреч под флагом Symfony.

Мероприятие будет неформальным. Приносите свои проекты, плагины — проведем ревью, обсудим возникшие вопросы, трудности, идеи. Если у кого нет своих проектов, могу поделиться. У меня их куча :)
Будет время и желание, покодим свои проекты в творческой атмосфере.
В будущем, возможно, кто-то захочет сделать доклад или рассказать о чем-нибудь. Посмотрим.

Когда: 17 июля (суббота) в 12:00

Место: где соберемся, я пока не знаю, сейчас это зависит от кол-ва желающих присоединиться. Но основные критерии для выбора места — не остаться голодным и без интернета на 3-4 часа.

Записываемся на странице события.
Русская рассылка symfony.
Total votes 14: ↑11 and ↓3+8
Comments9

Doctrine: Опыт работы с миграциями в symfony

Reading time6 min
Views32K
Для тех, кто не в курсе, миграции — это способ внесения изменений в структуру БД.
Управлять изменениями можно по-разному, но все сводится к работе инструкциями для изменения стуктуры.

Почему миграции это делают наилучшим способом:
1. Автоматизация. Вы можете хранить инструкции в sql-файликах, накатывать их при необходимости. Но это становится дико неудобно, когда встает вопрос о переключении между разными ревизиями (версиями БД), для командной разработки, когда всем разработчикам надо накатить изменения, для развертывания тестового окружения.
2. Rollback (как продолжение первого пункта). Мы можем откатить любую миграцию и получить версию БД на любой момент. Чем это удобно, см. ниже.
3. Идентичность DEV и PROD версий БД. Это очень важно, по крайней мере для меня, быть уверенным в том, что версии DEV, PROD и TEST абсолютно одинаковы. Да, этого можно добиться и другими способами. Но когда именно миграции являются носителями информации о структуре БД, вместе с автоматизацией решать эту задачу становится намного удобнее и проще.

Не буду описывать базовые вещи, можно посмотреть:
Далее - опыт, рекомендации, история и грабли при работе с миграциями
Total votes 19: ↑18 and ↓1+17
Comments27

Отчет по Symfony 2 Online Conference

Reading time6 min
Views1.2K
Итак, во вторник мы организовали московский хаб и провели прямую трансляцию конференции. Для организаторов, я так понимаю, это был первый опыт в проведении мероприятий такого рода. И все прошло замечательно. Мы подключились к сессии, докладчик вещал на заднем фоне и перелистывал слайды. Видео не было. Немного трудно было воспринимать информацию на слух, но в целом понятно, ребята старались.
Итак, доклады
Total votes 20: ↑18 and ↓2+16
Comments16

Symfony 2 Online Conference — Московский Conference Hub

Reading time1 min
Views656
В начале июня Sensio Labs анонсировали онлайн конференцию The State of Symfony 2 Online Conference

Авторы фреймворка расскажут о текущем состоянии Symfony 2, релиз которой намечается на конец этого года.
Доклады:
  • Fabien Potencier: Unit & Functional Tests
  • François Zaninotto: Symfony 2 Meets Propel 1.5
  • Bernhard Schussek: The new form framework
  • Fabien Potencier: Miscellaneous enhancements
  • Jonathan Wage: What's new in the Doctrine 2 Symfony Integration
  • Fabien Potencier: The Symfony 2 killer feature — you REALLY don't want to miss this announcement...
После конференции будет опубликован второй превью релиз и обновленная документация.
Конференция будет проходить 22 июня в 12:00 (MSK) и 23 июня в 19:00 (повторно, для тех кто не усвоил :)
Стоимость: 30 евро.

Мы (EasyFinance.ru) организуем московский conference hub и приглашаем всех желающих присоединиться. Вход свободный.
После конференции, я предлагаю провести собственное мероприятие под флагом Symfony. Обсудим наши проекты, поделимся своим опытом. Может проведем серию кратких докладов и флип-чарт сессий.
Ну и просто пообщаемся.

Рабочая дата и время пока 22 июня в 12:00.
Территориально мы находимся в технопарке «Строгино».
Записываемся на странице события.

UPD: Хаб в Минске

UPD2: отчет по конференции
Total votes 4: ↑4 and ↓0+4
Comments4

Test Infected

Reading time5 min
Views4.6K

Все, все будут писать тесты


Уже 3 года прошло, с тех пор как я увидел свою первую красную полоску. Что меня дернуло начать писать тесты, уже не важно. Я начал собирать информацию, перечитал весь wiki.agiledev.ru и торжественно запустил свой первый тест на SimpleTest. Конечно, эти тесты были ужасны, да и архитектура тоже (в моем сегодняшнем понимании). Тогда я, наверное, словил большинство ошибок, но зато замечательно провел время :)

Потом перешел на PHPUnit — просто было интересно, чем он отличается от SimpleTest и что в нем такого «навороченного».
А lime — гадость. Чего ребята из Symfony в него так вцепились? Понимаю ветка 1.*, наследие и все такое. Но 2.0 можно было бы и на PHPUnit начинать.
Да, мне это было интересно. Я активно писал тесты, даже честно пытался делать это перед тем, как писать код. Что-то не получалось, читал разные статьи на тему, как надо и не надо писать тесты, перечитывал wiki.agiledev.ru. Но внутри явно чего-то не хватало.
Читать дальше →
Total votes 65: ↑55 and ↓10+45
Comments40

Отправить POST через file_get_contents()

Reading time3 min
Views86K
Чтобы получить содержимое веб-страницы все с удовольствием используют file_get_contents(), например file_get_contents('http://www.habrahabr.ru/'). Но я уже давно наблюдаю, что, как дело доходит до того, чтобы отправить POST, разработчики используют либо CURL, либо открывают сокеты. Я не считаю, что это плохо или что не надо так делать, просто для решения простых задач можно использовать простые решения.

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

file_get_contents() принимает 3 параметром «контекст», который собственно и конфигурирует сам запрос.
Ниже пример такого запроса или RTFM

Читать дальше →
Total votes 97: ↑89 and ↓8+81
Comments71

Идеальная вакансия для программиста

Reading time4 min
Views8.9K
Решил я выйти из леса и найти команду своей мечты. Стряхнул пыль со своего резюме и… ничего нового не обнаружил — сотня однообразных вакансий с абстрактными требованиями: «отличное знание PHP и MySQL».

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

Ниже, как надо писать текст вакансии для программиста.
Читать дальше →
Total votes 137: ↑117.5 and ↓19.5+98
Comments182

RIT-2008. Мой взгляд

Reading time3 min
Views494
На РИТ я прихожу уже во второй раз, как и в первый — впечатления противоречивые. Как программисту, мне не очень были интересны соответствующие секции. В этом плане, я думаю, надо будет сходить на PHPConf.

Если первая конференция показалась более «технологичной», то на этот раз меня больше заинтересовали «Success Story» и «Agile Russia».
Из того, что запомнилось
Total votes 5: ↑5 and ↓0+5
Comments5

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity