|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
|||||||||||
Как лучше ветвить метод20.10.2021, 00:56. Показов 1840. Ответов 19
Метки нет (Все метки)
Есть ли какая-нибудь выгода:
0
|
|||||||||||
| 20.10.2021, 00:56 | |
|
Ответы с готовыми решениями:
19
Как лучше запустить метод в отдельном потоке?
Как лучше передать массив объектов в метод? |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 20.10.2021, 01:00 | |||||||
|
Можете писать вообще так:
1
|
|||||||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
||
| 20.10.2021, 01:30 [ТС] | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 20.10.2021, 01:35 | ||
|
Fylhtq05, я бы в этом случае сначала вычислял аргументы, а потом после условия передавал их в метод — как у вас в первом варианте. Код обычно более читаемый с таким подходом.
Если там чего-то много происходит, то можно вообще вынести в отдельный метод, чтобы не валить все в одну кучу.
1
|
||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
|
| 20.10.2021, 01:52 [ТС] | |
|
А если все-таки не выносить код в метод и не инициализировать параметры, а просто делать копирование с подставкой параметров, т.е. аналог инлайна. Есть у инлайна, кроме увеличения экзешника, другие недостатки? Кажется, где-то читал, что в будущем можно будет инлайнить методы по своему усмотрению. Если недостатков нет, кроме размера исполняемого файла, имеет смысл инлайнить почти все методы, т.к. диски сейчас большие, а при инлайне не происходит задержка, связанная с вызовом метода и передачи в него параметров?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 20.10.2021, 02:04 | ||
Сообщение было отмечено Fylhtq05 как решение
Решение
1
|
||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
||
| 20.10.2021, 13:12 [ТС] | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 20.10.2021, 14:38 | ||||
|
Джиттер знает железо, на котором выполняется код и генерирует наиболее подходящие для него инструкции. Плюс может менять местами инструкции для лучшей утилизации кэша. Остальные 1% пишут на ассемблере или сях с ассемблерными вставками.
2
|
||||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
|
| 20.10.2021, 15:43 [ТС] | |
|
В таком случае если есть большущий метод на несколько 1000 строк, в котором нет фрагментов, которые могли бы использоваться в других методах, не нужно ли его все равно разбивать на несколько методов, чтобы джиттер смог делать оптимизацию? Или все равно в таком случае сначала компилятор сделает инлайн и потому никакого выигрыша не будет?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 20.10.2021, 15:54 | ||||
![]() Метод на 1000 строк — это кошмар.
1
|
||||
|
14314 / 9398 / 1355
Регистрация: 21.01.2016
Сообщений: 35,431
|
|
| 20.10.2021, 15:58 | |
|
Fylhtq05, если человек пишет методы на тысячи строк, то оптимизировать он в них ничего не сможет по определению и думать ему нужно в первую очередь о порядке в коде.
1
|
|
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
||
| 20.10.2021, 16:18 [ТС] | ||
|
0
|
||
|
14314 / 9398 / 1355
Регистрация: 21.01.2016
Сообщений: 35,431
|
||
| 20.10.2021, 16:33 | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 20.10.2021, 16:51 | ||||
Сообщение было отмечено Fylhtq05 как решение
РешениеНачать можно с разделения этих процессов на отдельные методы, чтобы глядя на код метода даже незнакомому с кодом человеку было понятно что там происходит. Кому интересны детали — посмотрит реализацию методов. Наверняка где-то в комментарии есть и название метода.
1
|
||||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
||
| 20.10.2021, 17:27 [ТС] | ||
|
0
|
||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
||
| 20.10.2021, 20:29 | ||
![]() Но все-таки чаще всего по-человечески (каждому отдельно) будет удобнее. Так и тут - код читают люди.
0
|
||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
||
| 20.10.2021, 21:01 [ТС] | ||
|
0
|
||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
||
| 20.10.2021, 21:15 | ||
|
Метод - логически завершенный повторно используемый кусок кода, имеющий имя. Есть один логический бизнес-процесс, состоящий из двух подпроцессов - соответственно, логически создавайте два метода, с осмыленными имена. Самодокументируемый код здесь - наше все. А то, что там глазками навигацию сложно выполнять - так это следствие сложности разрабатываемой ИС. Вы и в регионах запутаетесь. 10 логически разных "проектов" в 10 файлах? А 20? А 50? Для такого кодописаки надо мачету... И размер exe в случае inline-инга методов - особо не проблема. Вы размер exe основного сервиса СУБД Postgresql видели? - 9-10 MB. В 21 веке то, где рулят микросервисы...да пофиг.
0
|
||
|
109 / 52 / 16
Регистрация: 09.06.2021
Сообщений: 480
|
|||||
| 20.10.2021, 21:25 [ТС] | |||||
|
0
|
|||||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
||
| 20.10.2021, 21:31 | ||
![]() Полезно для ознакомления: nice to have Добавлено через 1 минуту ps: за 49 баксов, думаю, подойдет.
0
|
||
| 20.10.2021, 21:31 | |
|
Помогаю со студенческими работами здесь
20
Как лучше передавать параметры в метод/функцию Что лучше всего читать/смотреть где лучше всего практиковаться и как в принципе лучше всего учиться программированию Куда лучше поместить метод?
Как лучше группировать объекты? Просто чем VB.NET лучше? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|