Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Region C# хорошо или плохо?

2003  1 2 3 4 5 6 7 8 все
AlexNek патриот28.05.19 00:01
AlexNek
28.05.19 00:01 

Как до сих пор считал, что никакой особой пользы от них нет. Можно конечно придумать ситуацию где будут полезны. Но вот делать их присутствие обязательным? шок

А у Вас какое мнение?


#1 
Программист коренной житель28.05.19 08:00
NEW 28.05.19 08:00 
в ответ AlexNek 28.05.19 00:01

Польза в регионах есть - ими очень удобно группировать код. Например, если класс имплементирует несколько интерфейсов - я всегда использую регионы. Иногда имеет смысл отделить приватные методы от публичных и/или проперти от методов. Несколько раз использовал даже вложенные регионы :)


Вместе с тем, делать их присутствие обязательным - глупость :)

#2 
Murr патриот28.05.19 11:09
Murr
NEW 28.05.19 11:09 
в ответ AlexNek 28.05.19 00:01

Но вот делать их присутствие обязательным?

-----

Обязательным - нет.

Но мне просто удобнее когда есть, скажем, # region Singleton

Не надо смотреть код - сразу понятно что там имплементация синглетона...

#3 
AlexNek патриот28.05.19 21:57
AlexNek
NEW 28.05.19 21:57 
в ответ Программист 28.05.19 08:00
очень удобно группировать код

Пока что все известные мне случаи группировки сводятся сводятся или к code smell или к ненужности. То есть субъективное желание человека понять как то можно, но вот объективных причин никак не нахожу.


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

прежде всего непонятно для чего группировать по имплементации интерфейса и чем в этом случае не нравятся partial классы?


приватные методы от публичных и/или проперти от методов

А смысл? Скорее всего чисто для того чтобы новые заносить в нужные регионы.

У меня для этого есть решарпер который все автоматом сортирует как хочется. То бишь вначале идут все публичные по алфавиту, затем приватные и после проперти "с полями"


делать их присутствие обязательным - глупость

это то то меня и смущает. Постоянно открывать все регионы при просмотре файла можно еще как то привыкнуть, но писать и сортировать руками шок

#4 
AlexNek патриот28.05.19 22:00
AlexNek
NEW 28.05.19 22:00 
в ответ Murr 28.05.19 11:09
когда есть, скажем, # region Singleton

пожалуй это единственное с чем можно согласится, хотя для и для этого у меня есть базовый класс. Хотя приходится мирится с тем что ctor public хммм

#5 
Программист коренной житель29.05.19 08:11
NEW 29.05.19 08:11 
в ответ AlexNek 28.05.19 21:57, Последний раз изменено 29.05.19 08:12 (Программист)
Пока что все известные мне случаи группировки сводятся сводятся или к code smell или к ненужности.

Ну это твой опыт. Вот пример из моей жизни:


И как мне кажется, region'ы тут использованы к месту :D


прежде всего непонятно для чего группировать по имплементации интерфейса и чем в этом случае не нравятся partial классы?

Это не всегда нужно :) Смотри приведенный пример. Выводить имплементацию IEnumerable и IEnumerator в partial было бы явным перебором. Разбивать на partial имеет смысл, когда есть какое-то сильное логическое отличие. Например, у меня было так, что один тип данных надо было по-разному сериализовать. Вот сериализацию я вынес в partial.



У меня для этого есть решарпер

Решарпер не поставляется вместе со студией и не является стандартом. В то время, что регионы - встроенная фича.


#6 
AlexNek патриот29.05.19 23:16
AlexNek
NEW 29.05.19 23:16 
в ответ Программист 29.05.19 08:11
Ну это твой опыт

безусловно, поэтому и интересует другое мнение.

Относительно примера, нужность регионов для меня спорная, больше сводимая к ненужности. Для нахождения ошибки или понятия как работает нужно регионы один фиг раскрывать.

Ну и коде стайл часто не предусматривает группировку по "определенным функциям". Да и при добавлении нового кода нужно поместить его еще и в "правильный регион" -это тоже не всегда прозрачно.


Решарпер не поставляется вместе со студией и не является стандартом

Кому как, возможно поэтому я и не приемлю регионы, рефакторинг уже не срабатывает.


Я себе давно уже купил и нисколько не жалею. Лицензия на программиста, а не на комп.

#7 
  moose старожил04.06.19 15:25
NEW 04.06.19 15:25 
в ответ AlexNek 28.05.19 00:01
Как до сих пор считал, что никакой особой пользы от них нет. Можно конечно придумать ситуацию где будут полезны. Но вот делать их присутствие обязательным? шокА у Вас какое мнение?

мнение у меня есть, но я его не помню. читая такие топики, вспоминается старинная народная мудрость: когда коту нефер делать, он ... задумывается о сущности регионов : )


#8 
AlexNek патриот04.06.19 20:57
AlexNek
NEW 04.06.19 20:57 
в ответ moose 04.06.19 15:25
когда коту нефер делать, он ...

Означает только то, что пока жареный петух Вас еще не клевал.

А когда пообещают сделать вам наличие регионов обязательным, так посмотрим на Вашу память спок

#9 
  moose старожил07.06.19 17:52
NEW 07.06.19 17:52 
в ответ AlexNek 04.06.19 20:57

каким образом? циркуляр издадут? будут проверять "наличие регионов" в коде? напишите "регионщик", и пусть он в код между методами вставляет "регион а", "регион б", ...

#10 
AlexNek патриот07.06.19 22:39
AlexNek
NEW 07.06.19 22:39 
в ответ moose 07.06.19 17:52
циркуляр издадут? будут проверять "наличие регионов" в коде

грубо говоря где то так.


напишите "регионщик"

не канает.


Но пока похоже отбился смущ

Хотя пришло некоторое понимание отчего некоторым енто может нравится.

#11 
  moose старожил08.06.19 01:28
NEW 08.06.19 01:28 
в ответ AlexNek 07.06.19 22:39

у меня, как упоминал, есть мнение о случаях полезности, но лучше "некоторое понимание" - в штудию! : )


#12 
AlexNek патриот08.06.19 11:45
AlexNek
NEW 08.06.19 11:45 
в ответ moose 08.06.19 01:28
но лучше "некоторое понимание" - в штудию!

но проблемо, но безусловно, просто просто как личные догадки ни на что не претендующие. С точки зрения того кому это нравится.

Для начала две вещи которые я раньше не знал

-Ctrl/M L открывает все регионы в файле

-если навести курсор мыши на закрытый регион, то можно увидеть первые х-строк содержимого (где то 20-30 думаю)


Если много лет разрабатывать и поддерживать одну часть проекта/проект то то код изучать не нужно, удобнее скорее найти то что нужно.

Ну и если видишь группы типа этих то и искать проще и можно не обращать внимание на группы которые в данную минуту не нужны. А если что, то просто "мышку на регион".

"Кодирование строк"

"Кодирование региона"

"декодер"

"поля"

"публичные методы"


То есть в коде наводится дополнительный порядок. Зачем мне видеть часть "поиск символа" когда я и так наизусть знаю как он там ищется.

Фактически вместо кода получается псевдокод более высокого уровня.

#13 
Murr патриот10.06.19 10:15
Murr
NEW 10.06.19 10:15 
в ответ AlexNek 08.06.19 11:45

Если много лет разрабатывать и поддерживать одну часть проекта/проект то то код изучать не нужно, удобнее скорее найти то что нужно.

------

Дошло? улыб

Ну а теперь прикинь что использование прописано в полиси.

Например, имплементация интерфейсов обязательно врапируется регионом.

Да, можно и в другой файл, но не всегда удобно...


Аналогично - есть локальные переменные, есть конструкторы, есть паблик методы, есть паблик пропертя...

Для меня быстрее найти метод в регионе, где он должен быть, чем выбрать его из списка методов в Студии.

Не привык пользоваться этой фичей Студии.

#14 
AlexNek патриот10.06.19 11:54
AlexNek
NEW 10.06.19 11:54 
в ответ Murr 10.06.19 10:15
Дошло?

неа смущ


Для меня быстрее найти метод в регионе, где он должен быть

Видишь, для тебя, а мне откуда знать в каком регионе должен быть метод? И какой метод вообще нужно искать? И куда пихать новый метод? Гораздо проще когда все автоматом, допустим по алфавиту упорядочено упорядочено. И для каждого файла нужно открывать все регионы.

А то какой смысл в таком файле

public class Abc
{
   Fields <- region
   Methods <- region
... }

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

#15 
Murr патриот10.06.19 13:17
Murr
NEW 10.06.19 13:17 
в ответ AlexNek 10.06.19 11:54
а мне откуда знать в каком регионе должен быть метод?

-----

Ну если полиси не читаешь и/или им не следуешь - хрен его знает окедова...


И какой метод вообще нужно искать?

-----

Не знаю. В плане регионов - понятия не имею.

Хотя... где-то в коде есть регионы Сериализация...

Об содержимом, надеюсь, догадаешься сам... смущ



И куда пихать новый метод?

Гораздо проще когда все автоматом, допустим по алфавиту упорядочено упорядочено.

------

Ну да ради бога - удобнее - делай так.



И для каждого файла нужно открывать все регионы.

-----

Зачем?

Мне вот при генерации было важно сгенерировался кусок или пролетел мимо.

Хочешь сказать что мне нужно открывать регионы если известно что кусок обернут регионом?

Содержимое меня как раз не интересует - ели есть - будет правильно...



А то какой смысл в таком файле

------

Помнится, в изначальных Сях была фича - декларировать переменные блока в начале блока.

Потом от нее долго и медленно отходили в сторону произвольного места декларации, далее в автоматичекое создание по месту и т.п.

Ну и какой смысл в сишном коде? А привычка описывать переменные изначально она с досишных времен - у меня - с Фортарна.

Можно еще посмотреть спеки на КОБОЛ - там вообще все прозрачно.



кому то регионы сильно нравятся

-----

Кому-то они упрощают жизнь, кому-то, наоборот, усложняют.

Мне с ними - проще, но предыдущий шеф частенько тер пустые регионы в моем коде...

#16 
AlexNek патриот10.06.19 13:45
AlexNek
NEW 10.06.19 13:45 
в ответ Murr 10.06.19 13:17
хрен его знает окедова...

вот именно, для того кто кода не знает...

Нужно знать что есть регион "расчет куку" и что данный метод нужно поместить именно туда. То бишь еще перемещать вручную после автогенерации - потеря времени.


Хотя... где-то в коде есть регионы Сериализация...

для меня это фиговый код, по определению. Для этого должен быть класс "сериализаторХхх" ну или метод расширение на крайняк.


Ну да ради бога - удобнее - делай так.

Так вопрос то не в этом. Как кому удобно - это субъективные причины. Меня интересуют объективные.


И для каждого файла нужно открывать все регионы.
-----Зачем?

Что бы понять какого файл делает. Вот я привел пример кода с "полезными" регионами. Можешь сказать без открытия регионов что делает данный файл?


но предыдущий шеф частенько тер пустые регионы в моем коде...

А зачем нужны пустые регионы в файле? Откуда они берутся и почему это понятно...

#17 
Murr патриот10.06.19 13:58
Murr
NEW 10.06.19 13:58 
в ответ AlexNek 10.06.19 13:45
А зачем нужны пустые регионы в файле?

------

У меня - четыре региона задаются сразу.

Не факт, что в них что-то будет.

Но если будет - будет в них.


Меня интересуют объективные.

-----

Объективные - надо мерить. Причем - не на одном объекте...


перемещать вручную после автогенерации

-----

Да, тоже задалбывает.

Провда у меня есть куча типового кода, который правится по месту послe копи-пасты...

Нового - мало...



Можешь сказать без открытия регионов что делает данный файл?

-----

У себя - да, приблизительно смогу... но это - у себя...

#18 
AlexNek патриот10.06.19 14:15
AlexNek
NEW 10.06.19 14:15 
в ответ Murr 10.06.19 13:58
А зачем нужны пустые регионы в файле?

ты не виляй, а прямо скажи спок

Откуда они берутся понятно. Зачем нужны "читателю" в настоящее время?


У себя - да, приблизительно смогу

Чисто по имени файла, как баба Ванга?

Какая полезная информация в том, что файл имеет поля, методы и проперти. Притом, еще что регион поля пустой смущ

#19 
Murr патриот10.06.19 15:18
Murr
NEW 10.06.19 15:18 
в ответ AlexNek 10.06.19 14:15

Чисто по имени файла

-----

Даже БЕЗ имени.

Просто как программист организовавший код понятным ему способом. смущ



Зачем нужны "читателю" в настоящее время?

------

Дам программистский ответ:

Ну если считать основным и наиболее ответственным читалем компилятор - для обработки.

#20 
1 2 3 4 5 6 7 8 все