Region C# хорошо или плохо?
А с каким именно, как его быстро найти? И это не пара человек в одном офисе.
Ну, с тем кто внёс изменения, которые приводят к мёрж конфликту. Смотрим какой коммит последним менял строку, смотрим автора коммита. Профит.
А что бы вы сделали с членом команды который делает всё по теории правильно, но постоянно создает проблемы другим?
1. Поговорил 2. Запретил ему мёржить в мастер (другие могут замёржить его ветку после ревью, приват свой код пока ревьюер не будет доволен). 3. Убрал из команды 4. Уволил
пока по быстрому, что идея была понятна
Ааа.. Понял. Жертва решарпера. А не надо код во всём файле пересортировывать, если 2 строчки меняете. С точки зрения гита вы поменяли не "50-ю и 250-ю строку" а "все строки с 1 по 3.000" Keep your changes small and comprehensible.
пока по быстрому, что идея была понятна
1) у тебя изменены все строчки, кроме фигурных скобок
2) кто и зачем менять порядок функции?
3) даже такое изменение можно сравнительно легко замерджить BeyondCompare'ом :) странно, что вы разорились на решарпер и не разорились на действительно полезное приложение :)
Но за год настолько привыкла к этим регионам
Не знаю что будет через год, но пока отрицательные эмоции не убавились. Просто дрожь пробирает когда надо разбираться в коде любителя регионов.
У него каждый log.Debug обвернут в регион и почти каждая функция,... в которой еще по несколько регионов. Брр.
да что уж там, даже лицензию на меня приобрести пожмотились
я эту проблему решил просто. Дома без любимых тулз тоже фигового и когда по проектам работал, ломало постоянно просить шефов.
Купил персональную лицензию. На все тулзы лицензия на разработчика+коммерческое использование.
Я думаю, что партиал не может быть заменой регионам
В общем случае безусловно нет. Но есть любители делать большие классы, а в них регионы "обработка прямоугольников", "обработка окружностей" и т.п. Вот именно для этого случая. Как первый шаг.
Теперь просто открываешь нужный файл и делаешь все что хочешь, при этом всё видно прямо в дереве солюшина, какие есть "регионы".
Смотрим какой коммит последним менял строку
и как его быстро найти? Среди многих, многих коммитов? Когда даже для того чтобы найти свои изменения приходится делать фильтр по ветке и по коммитеру.
1,2,3,4...
ну и кто захочет иметь подобные проблемы, чтобы делать всё "правильно"?
Жертва решарпера
отчего именно жертва? В "правильном" коде таких проблем не возникнет. Это проблема первого прохода, когда везде бардак.
Да даже и вручную такое может быть когда начинаешь существующие регионы анализировать.
функция,... в которой еще по несколько регионов. Брр.ну это уже перебор. Меня "бог миловал" - ни разу не видел чтоб внутри функции регионы были.
Наверно это делают те что не любят функции и в результате они у них функция в 10000 строк разбитых на регионы.
Я же люблю функции, поэтому предпочитаю чтоб функция никогда не вмещала больше строк чем вмещается в экран (и это крайний случай, а чем она меньше тем лучше).
ни разу не видел чтоб внутри функции регионы были.
я раньше тоже. А тут попался любитель который почти всё систему сделал. Но видимо раньше уже разборки были, потому как он мне тоже регионы сиильно предлагал.
Но сразу отстал, как понял что я не любитель сего дела.
Функции не такие уж и большие, но регионы везде где только можно, если не забуду примерчик скопирую.
Да вот, в начале функции лог и в конце лог и оба в регионах. Похоже у него регионы вместо комментариев.
потому как он мне тоже регионы сиильно предлагал.видимо это мышление такое.
По идее, хорошо ли это мышление нужно судить только по результату. (работает ли программа) и по мобильности (легко ли и быстро автор может модифицировать код без сайд эффектов).
Мне конечно такой код представляется не мобильным. Но может только потому что у меня другое мышление?...
....
У меня на работе есть один милый коллега (весьма приятный человек, итальянец). Но функции пишет в 10000 строк. Правда и мобильным его не назовёшь. Он мне сам сказал прямым текстом, что никогда не делает новых функций, а просто дописывает код внутри уже существующих.(а у меня мнение другое - любые изменения по возможности оформлять в виде вызовов новых функций).
Беда только, что мне бывает приходится в этом (пардон, говно-)коде разбираться. Если бы только он сам его сопровождал - флаг бы ему в руки!
Еще его любимый шпрух: Невер тач раннинг сустем. Поэтому изменения с репозиротия он берет чем реже тем лучше, чтоб не навредить своей работе.
Я же предпочитаю брать апдейтить с репозитория почаще (минимум раз в день).
У нас разные мышления!
Но есть любители делать большие классы, а в них регионы "обработка прямоугольников", "обработка окружностей" и т.п. Вот именно для этого случая. Как первый шаг.Теперь просто открываешь нужный файл и делаешь все что хочешь, при этом всё видно прямо в дереве солюшина, какие есть "регионы".
Ага, а потом у тебя дерево вида:
SomeClass.cs
SomeClass.Rect.cs
SomeClass.Circ.cs
SomeClass.Private.cs
SomeClass.IEnumerable.cs
SomeClass.ISomeOtherInterface.cs
и еще десяток файлов, которые при этом имеют кучу перекрестных ссылок. Разбираться в таком будет то еще удовольствие ;) Уж лучше регионы :D
У него каждый log.Debug обвернут в регион и почти каждая функция...
------
Слишком хорошо - тоже не хорошо.
Ты же не будешь говорить, что код написанный по лексеме на строку является не рабочим?
Но читать - не удобно.
А логер у меня тоже обернут в регион. Единственное - не завернул каждый log.Debug v #if DEBUG.
всё видно прямо в дереве солюшина
------
Я тут как-то приводил свой подход к данной проблеме:
- общий партиал (не намеспасе) класс.
- по-функционально - внутренние классы, каждый в своем файлике.
Непривычно... иногда сам путаюсь... но много удобнее всего виденного.
Разбираться в таком будет то еще удовольствие
-----
А что мешает сунуть всю группу в отдельную папку?
У меня - 700+ таблиц и требуется столько же их представлений в ДАЛе.
Плюс - СКЛ - со старым Ораклом ЕФ6 не работает.
Плюс - бизнес-объекты
Плюс - компоненты бизнес-объектов.
Плюс...
Если это все лежит в корне солюшена - мрачно. А по папочкам - не так уж и страшно.