
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

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
антипаттерны антипаттернами, но есть ситуации в реальной жизни, когда все не так как хочется)

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

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

VsegdaZhivoi
01.08.2016
16:09:31

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

Sergey
01.08.2016
16:10:56

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
У нас на следующей неделе будет митап?

Aleksander
01.08.2016
17:44:36

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

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