
Mikhail
07.09.2017
18:39:00
Как и написание тестов
Или вы запрашиваете отдельно время на написание тестов?
Рефакторинг это такая же часть работы как написание кода с нуля.
Я не претендую на истину в первой инстанции, во всяком случае на нашем проекте так работает. Просто я не в первый раз слышу (в том числе и от своих разработчиков), что «У меня нет времени на рефакторинг». Но при это новые фичи делаются в 2 раза дольше, потому что в коде уже можно трупы закапывать.

Google

Mikhail
07.09.2017
18:43:01
И да у нас есть файлы по 150к строк в проекте примерно с 2001 года они развивались в append only style.
Но если эти файлы не меняются их не трогают.

dypa
07.09.2017
18:46:54

Vadim
07.09.2017
19:03:00
ИМХО, хайлоад-это когда ваше приложение перестает отвечать требованиям по скорости.

Sergo
07.09.2017
19:04:48
не

Vadim
07.09.2017
19:28:11
Коллеги, какие коробочные (бэк+фронт) либы/пакеты вы используете для браузерных пуш-нотиков?

Andrii
07.09.2017
19:29:31

Vadim
07.09.2017
19:30:29

Andrii
07.09.2017
19:31:28

Dmitriy
07.09.2017
19:50:34

Patrik
07.09.2017
19:50:39

Dmitriy
07.09.2017
19:51:25

Google

dypa
07.09.2017
19:53:33

Dmitriy
07.09.2017
19:54:13

Dmitry
07.09.2017
19:54:53
3.5 rps на 128мб и динамика с базой потянет ;)

dypa
07.09.2017
19:55:35

Dmitry
07.09.2017
19:56:28
вопрос не сколько в том, какая база, а в том - сколько данных и какие выборки

Dmitriy
07.09.2017
19:57:59

Patrik
07.09.2017
19:58:34
хайлоад это когда нагрузка вынуждает делать систему распределенной и горизонтально масштабируемой - кластеры, балансировка, вот это вот все
биг дата - по сути то же самое но в плоскости данных, когда их настолько много что для адекватного времени обработки ее нужно производить параллельно и распределенно на нескольких узлах
делать это все на одном сервере с тоннами ресурсов при той же гагрузке - не хайлоад, а деньги на ветер

dypa
07.09.2017
19:59:19
@miksir например я не смог добиться от mysql работа на конфигурации менее 162M (MySQL version 5.6.37)

Dmitry
07.09.2017
19:59:35
отключи innodb :)

dypa
07.09.2017
19:59:52
не спортивно :)

Dmitry
07.09.2017
20:00:22
хз в общем... 128М виртуалки еще не так давно в ходу были, и ничо, что-то даже делали на них ;)
правда уже никто не помнит что и как ;)

dypa
07.09.2017
20:02:59

Dmitry
07.09.2017
20:04:18
без времени отклика приложения не сказать ;) если оно отпуливается за 250ms, то pm.max_children=1 :)

dypa
07.09.2017
20:05:19
ну не подсказывай, интересно же как это "легко" ;)
у меня есть своя конфигурация под dokuwiki - интересно выяснить как оно правильно :)

Dmitry
07.09.2017
20:07:57
К слову, у меня вот легаси приложение стало под 1.5-2Гб на запрос жрать, да еще время отклика секунд 5 ;) Хайлоад и биг дата в одном флаконе ;)

dypa
07.09.2017
20:09:29

Dmitriy
07.09.2017
20:10:16

Google

Patrik
07.09.2017
20:12:51

Rm
07.09.2017
20:13:01

dypa
07.09.2017
20:19:08

Dmitriy
07.09.2017
20:20:24

dypa
07.09.2017
20:20:27

Sergey
07.09.2017
20:20:46
когда приходит пулреквест на новую фичу, а там в дифах не только фича, а куча рефакторинга и хрен прочитай что произошло в конечном итоге

Mikhail
07.09.2017
20:21:28

dypa
07.09.2017
20:21:50

Mikhail
07.09.2017
20:22:31

Dmitriy
07.09.2017
20:22:45

Mikhail
07.09.2017
20:22:53
Или вы на рефакторинг и тестирование выделяете специальное время (вне задач)?

Sergey
07.09.2017
20:23:12
чтобы не было мешанины

dypa
07.09.2017
20:24:11

Mikhail
07.09.2017
20:24:14
Допустим, но при этом вы считаете, что вы в таком случае делаете рефакторинг вне задачи?

Dmitriy
07.09.2017
20:24:30

Mikhail
07.09.2017
20:24:45
Без задачи за рефакторинг я и не возьмусь. Зачем что-то менять если нет необходимости?

Sergey
07.09.2017
20:24:58
и если задача требует изменения текущего кода, это не рефакторинг. это часть фичи

Google

dypa
07.09.2017
20:25:42

Mikhail
07.09.2017
20:26:22

Sergey
07.09.2017
20:26:36
новая фича это и есть изменение функциональности
как ты узнаешь что твой рефакторинг ничего не сломал, если ты делаешь параллельно еще и фичу новую?
а вообще основная проблема как раз таки в код ревью
ревьювить 100 измененных файлов куда тяжелее десятка

Mikhail
07.09.2017
20:27:36

Sergey
07.09.2017
20:28:04
тесты не все покрывают, и не всегда показывают то что нужно

Mikhail
07.09.2017
20:28:42

Dmitriy
07.09.2017
20:29:02

Mikhail
07.09.2017
20:29:15
Те проблемы, который вы описываете — это лишь проблемы органицации cr.

Sergey
07.09.2017
20:29:35
без новой фичи нет необходимости что-то рефакторить, согласны?
м, нет. есть такое понятие как тех.долг, и с ним не стоит затягивать. примерно так, делается фича, потом костыль, потом еще костыль и 3й костыль со скрипом влезает и в этот момент уже следующая задача будет на "ребейс костылей" в связи с тем что стали известны все требования и тогда рефакторится все и цикл начинается по новой

Mikhail
07.09.2017
20:29:59
А я писал о том, что за кодом надо ухаживать и «выпрашивать время» на это это глупость — рефакторинг — часть работы.

Sergey
07.09.2017
20:30:11
я и не говорю что "выпрашивать"

Mikhail
07.09.2017
20:30:26
А я изначально и не вам писал.

Sergey
07.09.2017
20:30:33
задача делается 6 часов, 2 часа рефакторинг. все в рамках задачи, но разные коммиты и реквесты. чтобы команде было проще вникать

Mikhail
07.09.2017
20:30:38

Google

Sergey
07.09.2017
20:31:34
Да пишем.
тогда должны понимать, что когда у вас bloated класс на 10 зависимостей покрыт тестами и вы пытаетесь его отрефакторить, то тесты у вас тоже меняются. и где гарантия того что все работает? пока это звучит как слоган с рекламы

Mikhail
07.09.2017
20:33:01
У нас проблемы с терминологией — у вас своя, у меня своя. Под задачей я понмиаю бизнесс-задачу. Так что тут у нас все одинаково.
Все делается в рамках одной бизнес задачи.

Sergey
07.09.2017
20:33:43
у вас нет понятия технического долга в беклоге?
т.е работаете по принципу "работает, не трогай"?

Mikhail
07.09.2017
20:34:40

Sergey
07.09.2017
20:35:21

Mikhail
07.09.2017
20:36:20
Если вы про юнит тесты, то да они будут меняться, более верхне уровневые тесты не будут.

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

Mikhail
07.09.2017
20:38:34
Если у вас класс с 10 зависимостями, то с ним явно что-то не так.

dypa
07.09.2017
20:38:40

Mikhail
07.09.2017
20:38:44
Но в целом никто веселья не обещал.
У нас есть оочень сложные классы (100к loc).
И их рефакторить боль

Sergey
07.09.2017
20:39:23
один класс на 100к?