@symfony_php

Страница 598 из 1418
Sergey
26.01.2018
19:04:52
следующий этап - это автоматизация таких вещей как тесты, статический анализ кода

Sergey
26.01.2018
19:05:14
Бывают рефакторинги, которые не делятся на куски, потому что очень много надо рефакторить.
бывает лень и отсутствие воображения. Почитай про branch by abstraction.

Alexander
26.01.2018
19:05:15
Это как?

Google
Dinar
26.01.2018
19:05:38
Ты лучше скажи, что делать конкретно в этом случае

Sergey
26.01.2018
19:06:14
http://continuousdelivery.com/wp-content/uploads/2011/05/branch_by_abstraction.png

как-то так)

я года 2 назад тоже думал что некоторые задачи нельзя разделить и "это неделя и не трогай"... но...

Dinar
26.01.2018
19:06:49
Очень малообъясняющая картинка :)

Sergey
26.01.2018
19:06:52
все всегда можно разделить, и это даже не сложно

не хочешь - не читай)

Dinar
26.01.2018
19:07:10
Так ты мне картинку скинул :)

Sergey
26.01.2018
19:07:46
ну а ты подумай. Вот решил ты фреймворк заменить или ORM.

работы явно больше чем на пару дней

а теперь посмотри на картинку и прикинь план

Google
Dinar
26.01.2018
19:08:32
Но смотри. Ты предлагаешь избавиться от надуманной семантической проблемы и реальной проблемы конфликтов. Но при этом добавить себе проблем в рефакторинге, какой-то абстракции и еще и контроль за собой усилить. Разрабы - ленивые люди. И для этого и стали разрабами, чтобы многие вещи автоматизировать.

Sergey
26.01.2018
19:08:54
никаких проблем в рефакторинге - наборот удобнее

> Разрабы - ленивые люди. настолько что не могут загуглить и почитать, зачем, проще сразу делать выводы

Dinar
26.01.2018
19:09:53
Вот смотри. Я решил разбить сервис, который очень большой и явно делает больше чем ему надо на нормальные куски, при этом перелопатить все зависимости, и их тоже немного придется нарефакторить. Потому что они не соответствуют тому, что нужно. И все это как паук используется по всей системе.

Вот как ты это будешь делить?

> Разрабы - ленивые люди. настолько что не могут загуглить и почитать, зачем, проще сразу делать выводы
Именно. Ведь я с тобой беседую не чтобы почитать :) А чтобы ты сразу сказал, абстрактные слои - это вот на конкретном примере так и так

Sergey
26.01.2018
19:10:52
сделаю абстракцию которая будет скрывать старую штуку, постепенно переведу зависимости на эту абстракцию, реализую новую штуку, переключу абстракцию на новую штуку

Dinar
26.01.2018
19:11:03
Ты же вот даже ленишься рассказать об этом. Шлешь читать. И говоришь что не ленивые :)

Alexander
26.01.2018
19:11:36
Вот как ты это будешь делить?
По 1 зависимости менять или ты хочешь весь проект за 1 раз зарефакторить? Он у тебя на ревью на неделю или больше зависнет))

Sergey
26.01.2018
19:11:38
Ты же вот даже ленишься рассказать об этом. Шлешь читать. И говоришь что не ленивые :)
это не те вещи о которых надо узнавать в чатах. Ну то есть в чатах надо узнавать о существовании вещей. Потом идти читать, день два переваривать в голове... ну ты понял

Dinar
26.01.2018
19:11:45
Иногда деланье тольк одной абстракции может быть похлеще всего рефакторинга

А в дерьмовом проекте, который требуется рефакторить - это так не работает

Sergey
26.01.2018
19:12:29
Иногда деланье тольк одной абстракции может быть похлеще всего рефакторинга
ммм.... но поскольку она никем не используется ты можешь хоть до посинения ее пушить в мастер и это никакого эффекта не даст. И нет, абстракция = адаптер. Это штука которую ты можешь сделать очень быстро. НЕ выдумывай

Alexander
26.01.2018
19:12:29
Ну ну

Sergey
26.01.2018
19:12:47
только они дальше пошли - пофиксил - git push -> деплой сразу на прод

Dinar
26.01.2018
19:13:21
знаю ребят которые так из дерьма выплывали
Знание ребят - не означает, что ты знаешь все, верно? Случаи могут быть кардинально разными.

Sergey
26.01.2018
19:13:31
если сломалось - алертика быстро скажет что говно - откатываем билд. А так как ты сломал изменениями котоыре залил 10 минут назад - то ты точно знаешь что сломал

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

Google
Alexander
26.01.2018
19:14:55
А в дерьмовом проекте, который требуется рефакторить - это так не работает
Конечно выкатывать переписанный проект за 1 раз работает, ну ну. Ты учти что проект может и будет меняться пока ты его весь рефакторить будешь.

Sergey
26.01.2018
19:14:55
что бы говоритиь об эффективности нужны какие-либо метрики и в сравнении с парой тройкой других проектов и команд

Dinar
26.01.2018
19:15:11
А если частенько обновляться с мастера - так вообще конфликтов практически не бывает. У нас в среднем на 10 разрабов в месяц - 1 случай конфликта.

Dinar
26.01.2018
19:15:48
Alan
26.01.2018
19:15:48
а без конфликтов но чтоб сломалось бывает?)

Sergey
26.01.2018
19:15:52
10? 50?

Dinar
26.01.2018
19:16:11
а сколько мерджжите PR в месяц?
Ща гляну. Гитхаб перед глазами

а без конфликтов но чтоб сломалось бывает?)
Тестами все покрыто. Не мерджится, пока не починиться и 2 человека ревью не заапрувит. И QA не заапрувит

Sergey
26.01.2018
19:17:11
для код ревью? сколько у тебя в среднем живет один PR?

1-2 дня? неделю?

если в большинстве случаев - день - то более менее. В этом случае trunk-based тебе просто ускорит процесс за счет устранения лишних звеньев

Dinar
26.01.2018
19:18:00
Примерно 100 мерджей в месяц

Sergey
26.01.2018
19:18:05
10 человек?

Dinar
26.01.2018
19:18:17
Сейчас вообще 6

Sergey
26.01.2018
19:18:43
то есть примерно 17 PR с человека в месяц.

срок жизни PR?

Google
Sergey
26.01.2018
19:19:03
из цифр - 1-2 дня, но в реальности?

Не день. У нас СТО ревьюит каждый ПР. Очень детально.
оооо.... э - эффективность и микромэнеджмент

Dinar
26.01.2018
19:19:28
Поэтому бывает иногда ПР может и неделю висеть. А вообюще зависит от сложности задания. QA тоже возвращает если баги какие-то

оооо.... э - эффективность и микромэнеджмент
Ну он как-то вот так вот хочет. Но при этом он на ревью отлавливает кучу багов

Sergey
26.01.2018
19:19:59
Поэтому бывает иногда ПР может и неделю висеть. А вообюще зависит от сложности задания. QA тоже возвращает если баги какие-то
то есть у вас нормально когда у одного человека висит по 5-6 его PR не влитых в мастер?

Dinar
26.01.2018
19:20:06
Отправил на ревью, переключил ветку и работаешь над другой таской.

Sergey
26.01.2018
19:20:24
я что-то сомневаюсь про 1 конфликт в месяц. Может быть 1 у каждого хотя бы?)

Dinar
26.01.2018
19:20:33
Нет.

Admin
ERROR: S client not available

Dinar
26.01.2018
19:20:48
Если регулярно тянуть с мастера, то конфликты оооочень маленькие.

Типа в 1 файле 1 строчка.

Alan
26.01.2018
19:21:23
так пр неделю висят а мастер меняется

потом в этих повисших появляются конфликты

Dinar
26.01.2018
19:21:58
Проблемы бывают, только когда работают над одним и тем же.

Вот я не вру. Очень мало конфликтов. Либо они настолько простые, что не стоят того, чтобы Транкфлоу заводить

Sergey
26.01.2018
19:23:38
Если регулярно тянуть с мастера, то конфликты оооочень маленькие.
маленькие? ну то есть их уже больше чем 1 в месяц?)

я про конфликты когда ты мастер к себе вливаешь

Dinar
26.01.2018
19:23:52
Нет.

Google
Dinar
26.01.2018
19:24:04
Хорошо. Если их в 2 раза больше

2 раза в месяц

Это что-то меняет?

Sergey
26.01.2018
19:25:01
Это что-то меняет?
да, это значит что елси ты увеличил количество в 2 раза то там может и не один и не два конфликта в месяц а больше

а ты просто не обращаешь внимания из-за волшебного auto-merge

Dinar
26.01.2018
19:25:32
Хорошо. Давай предположим, что у меня 1 конфликт в день.

Sergey
26.01.2018
19:25:35
или у вас настолько грамотно планирование работы происходлит что конфликты не возникают

Dinar
26.01.2018
19:25:53
И чем же плох волшебный автомердж?

Sergey
26.01.2018
19:25:56
или никто ничего толком и не меняет - только добавляет новое (абсолютный open/close)

Dinar
26.01.2018
19:26:01
Если тестами покрыто.

Юнит тестами, ненавистными интеграционными и фича тестами

Sergey
26.01.2018
19:26:21
Если тестами покрыто.
как часто после вливания мастера в твою ветку они фэйлятся?

Dinar
26.01.2018
19:26:45
Почле вливания в мастер за 2 года работы - 0!

На стадии ПР - очень часто.

Но при мердже в мастер - 0

После мерджа, точнее

Sergey
26.01.2018
19:27:27
Но при мердже в мастер - 0
нет, при мердже МАСТЕРА в твою ветку

ну то есть в процессе работы над PR

Dinar
26.01.2018
19:27:35
А в мою ветнку?

Sergey
26.01.2018
19:27:45
вот у тебя были зеленые тесты в твоей ветке, ты влил мастер и они стали красными

Dinar
26.01.2018
19:27:55
Типа, у меня все работает. Я ничего не трогаю, тяну мастер и прогоняю тесты, так?

Sergey
26.01.2018
19:28:02
да

и еще пара вопросов - каков средний объем изменений (количество файлов или количество инсертов/делитов на PR) - что пилите? CRM? вэбсайт?

Страница 598 из 1418