@spbpython

Страница 82 из 785
Roman
01.08.2016
13:17:46
https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/

Dmitry
01.08.2016
13:19:51
у меня из-за этого QUIC как-то хром тормозил на старом компе

Aleksander
01.08.2016
14:04:28
https://habrahabr.ru/post/306838/ может кому пригодиться)

Dmitry
01.08.2016
15:43:46
это вам не приходилось 5к строк ревьюить друг другу)
собственно это прямой антипаттерн код-ревью: https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/

Google
Dmitry
01.08.2016
15:44:11
>> 1. Review fewer than 400 lines of code at a time

amureki
01.08.2016
15:48:54
>> 1. Review fewer than 400 lines of code at a time
ты всегда придерживаешься этого правила, да?

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

Danil
01.08.2016
15:49:25
Очень стараемся, иначе пользы немного

Можно создавать промежуточные реквесты

amureki
01.08.2016
15:50:51
а как логику делить? если она довольно монолитна и весит 800 строк, например

не, не так

допустим, логика монолитная в 500 строк и тесты еще сверху строк на 900

Danil
01.08.2016
15:52:00
Опиши доля начала апи, потом свою псевдомонолитную логику по кусочкам и тесты заливай )

amureki
01.08.2016
15:53:34
ладно, давай другой пример, поняли, что назвали модель неверно, прям важно переименовать ее упоминаний в проекте этой моделе дофига, рефакторишь, миграции, тесты, переводы, темплейты, вот тебе 3к строк, допустим

Dmitry
01.08.2016
15:55:05
и как такое количество строк ревьюить?

ну то есть ты начинаешь понимать, да?

amureki
01.08.2016
15:55:30
вот я тебя и спрашиваю как такое количество строк ревьюить?

Google
amureki
01.08.2016
15:55:45
твое решение - не рефакторить, ибо не уложишься в 400 строк?)

Dmitry
01.08.2016
15:55:51
помню как-то за день 2к строк ревьюил-рефакторил. почти не ошибся) ключевое слово почти)

Danil
01.08.2016
15:56:43
Придётся отлучиться ненадолго (

Dmitry
01.08.2016
15:57:30
Danil
01.08.2016
16:01:04
К стоматологу, оказалось он немного время перепутал )

400 строк это среднестатистический если ребята хоть какой-то эксперимент проводили, мне кажется в разных командах/проектах/язык все сильно будет отличаться

Dmitry
01.08.2016
16:04:17
бить на меньшие реквесты

Danil
01.08.2016
16:04:28
Главное чтобы можно было код понять за один подход и писать его в голове заново. А это уже поддаётся подсчету.

amureki
01.08.2016
16:05:27
бить на меньшие реквесты
окей, я получу 10 коммитов по 400 строк, так надо делать? Как их логически разделять?

Danil
01.08.2016
16:06:09
Если это обычное переименование и просто задели много строчек, то пробежаться по файлам труда не составит, но вот если там дохрена логики, которую надо будет понять, то уж лучше отправить коллегу )

Dmitry
01.08.2016
16:06:44
я тебе не скажу с уверенностью что вы делаете не так, не видя кода

но хотя бы по коммитам ревьюить в случае чего

amureki
01.08.2016
16:07:11
ну ты уже сказал) мы не слушаемся досконально правила 400 строк

тот кейс был редкий, почти единичный, его разделили на несколько коммитов, как могли, но их было 3-4 все равно

VsegdaZhivoi
01.08.2016
16:08:12
бить на меньшие реквесты
Как переименование модели разбить на мелкие реквесты?))

amureki
01.08.2016
16:08:24
и хорошая тулзовина бы помогла - если б она умела запоминать отревьюинные части и скрывать их, допустим

тогда коммитеру не надо делать дополнительную работу

и делить это как то на десятки коммитов

Dmitry
01.08.2016
16:08:57
переименование модели делать отдельным коммитом просто. заревьюить его будет легко

Google
Danil
01.08.2016
16:09:03
Как переименование модели разбить на мелкие реквесты?))
Легко. После модели присвой старое имя новой модели )) но опять здесь не стоит так делать

Sergey
01.08.2016
16:09:13
тогда коммитеру не надо делать дополнительную работу
поддерживаю, это проблема ревьюера. Не нужно логику переименования разбивать на множество коммитов

amureki
01.08.2016
16:10:16
это не легко, ребята) переименование тяжелой модели влечет за собой еще миграции, миграции связей всех, пермишнов и контент тайпов (тк в нашем лучае была джанга), тестов, темплейтов, переводов

это тебе не регекспом пройтись по всему проекту

VsegdaZhivoi
01.08.2016
16:11:20
это тебе не регекспом пройтись по всему проекту
Ты просто не умеешь писать регекспы)

amureki
01.08.2016
16:11:35
регекспы, которые мне миграции создадут, да, я дно и такого не смогу(

долго работали?
не долго, но из-за косяка менеджмента, пришлось после работы еще несколько раз ребейзить, ибо не могли задеплоить раньше определенного момента

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

Sergey
01.08.2016
16:13:48
и этому действительно было оправдание? я здесь же как-то задавался вопросом, есть ли смысл заниматься подобным

amureki
01.08.2016
16:15:20
да, нашлось оправдание) повлияет на будущие вещи в проекте, поэтому чем запускать, решили поправить сейчас

amureki
01.08.2016
16:16:00
но да, по возможности избегайте этого

Sergey
01.08.2016
16:16:02
а можно узнать, какое примерно было переименование?

amureki
01.08.2016
16:18:29
без контекста вообще ничего не скажет просто было несколько моделей с определенным названием в тексте (основная и разные зависимые от нее штуки в нескольких аппах), вот их все перевели

Sergey
01.08.2016
16:19:50
я не о конкретных словах, а о принципе переименования: обобщили, уточнили, ещё что-нибудь ну ладно

Eugene
01.08.2016
16:20:14
Я уверен, emacs смог бы сделать это всё автоматически (это же почти ИИ). ?

А если серьёзно, чем пользовались для рефакторинга? Была какая-то автоматизация?

amureki
01.08.2016
16:21:10
да, там уточнение было, исправление смысла

да пайчармом пользовались и глазами как это автоматизируешь больше чем при помощи replace и replaceAll, потом исправление тестов, написание необходимых миграций и исправление переводов (что тоже не так то просто, языки разные)

Google
amureki
01.08.2016
16:23:16
а, ну и джанга не очень схавала сложные связи и пермишны местами, пришлось часть миграций ручками катать

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

Eugene
01.08.2016
16:27:51
Вот на такие вещи надо затачивать "нейронки" и прочий machine learning, я считаю, а не картинки разрисовывать для всяких инстаграммов. Такая система рефакторинга, основанная на нечёткой логике и экспертных системах была бы реально полезна в отличие, например, от AlphaGo. Но при этом она должна работать корректно с очень высокой вероятностью и высокой скоростью, чтобы этим можно было пользоваться. :)

Aleksandr
01.08.2016
17:00:31
Народ, а нет никаких бесплатных проектов для opensource, чтобы поднимать VM-ки для интеграционных тестов, типа какого-нибудь travis-ci? Типа хочется при pull request запустить две VM-ки каким-нибудь vagrant/ansible-ом и прогнать поверх этого дело тесты.

Это может быть можно и в рамках travis-ci как-то сделать, но я пока не допер как ...

Michael
01.08.2016
17:24:37
У нас на следующей неделе будет митап?

Serge
01.08.2016
19:24:17
Технический маркетинг: вывод части проекта в Open Source / Александр Лифанов / 9 августа 19:00 / конференц-зал DataArt / http://www.meetup.com/spbpython/events/232009979/

Admin
ERROR: S client not available

Serge
01.08.2016
23:58:23
вот как я это не люблю import numpy as np сука, тебе три буквы жалко!? ну вот на хера так делать???

Michael
02.08.2016
04:07:12
А в чем проблема?

?

Artem
02.08.2016
04:12:45
ну, тут ладно, ещё оправданно и удобно, но есть моменты, когда начинается треш. не template а tpl, или tmpl, или tmplt, или вообще tmplte. вроде как и чтобы время на набор сократить, но в тот же момент читаемость понижается, плюс начинаешь путаться, какие буквы из слова template выкинуть, чтобы получить нужное тебе имя переменной/метода.

а самое веселье начинается, когда это всё в рамках одного проекта неконсистентно

где-то tpl, где-то то же самое tmpl, где-то template

усложнение жизни.

лучше уж тогда вообще не сокращать, если только не локально. в случае с numpy это уже общепринято - сократить до np, и, вроде, всё ок. в тысяче других такие сокращения - зло.

Eugene
02.08.2016
06:07:31
https://github.com/scikit-learn/scikit-learn/search?utf8=%E2%9C%93&q=import+numpy+as+np https://github.com/matplotlib/matplotlib/search?utf8=%E2%9C%93&q=import+numpy+as+np

Sergey
02.08.2016
06:48:31
и import pandas as pd

Google
Dmitry
02.08.2016
06:49:25
угу

тут дело в том, что это очень сокращает строки

в вычисления оно может по шесть раз в строке быть

так читабельней)

тем более что сообщество договорилось о конкретном варианте сокращения

а в остальном да, сокращения в пару букв это не очень рекомендуемо.

Aleksandr
02.08.2016
07:16:54
Когда в кодстаил ограничение на 79 символов - да жалко

Dmitry
02.08.2016
07:24:14
вот это ограничение отдельный вопрос

все команды, что помню, сидели на 120

но есть ортодоксы с их аргументом про консоль

почему кстати 79, а не 80? \n?

Sergey
02.08.2016
07:30:37
но есть ортодоксы с их аргументом про консоль
у меня не про консоль аргумент пользуюсь 15" ноутбуком, и 120-символьные строки не влезают в половину экрана. Если ограничение 80, то удобно читать параллельные окна

Dmitry
02.08.2016
07:34:51
ну да, я это и имел в виду - мультиплексируемые терминалы и т.п

Aleksandr
02.08.2016
08:44:45
Да, у нас именно про сплит аргумент, а один символ типа на бордюр между

Аргумент про вопдврэп не принимается

Хз почему

Хоть и 21 век

Eugene
02.08.2016
08:46:06
https://www.python.org/dev/peps/pep-0008/#maximum-line-length

Меня раздражают переносы строк через \. По возможности лучше использовать скобки.

Aleksandr
02.08.2016
08:47:02
У нас еще gerrit, якобы там удобнее в сплите читать 79

Страница 82 из 785