|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||||||
Холивар темы: Может ли быть спагетти-код не на основе goto?05.05.2025, 08:43. Показов 6917. Ответов 149
Метки нет (Все метки)
2автор: для начала нужно определиться, пишешь для себя или для некоего коллектива. Если для коллектива, то без вариантов нужно писать так как принято в профессиональных сообществах как бы вам там что-то не нравилось. А если пишете для себя, то пишите так как нравится лично вам, не издевайтесь над собой. Например совет про разбивку метода на несколько подметодов не имеет особого смысла если это не что-то повторяемое, как раньше говорили - функция. На читаемость это абсолютно никак не влияет, скорее наоборот, потому что вы или читаете последовательно действия или прыгаете от метода к методу. Ограничение метода какими-то строками или экранами это вообще ересь. Метод должен быть ровно такой какой он и должен быть, лично вы вообще на это никак не повлияете, то что вы его расфигачите на 100500 подметодов абсолютно никак не повлияет ни на скорость ни на его читаемость. Лично сам я люблю сокращать текст кода, писать его по возможности плотнее, но не для читаемости (читаемость как раз ухудшается). Просто я люблю плотный код и делаю я это только тогда, когда работа над методом закончена и что-то исправлять я не планирую. Как бы всё красиво не звучало, но вы нигде не найдёте единого мнения о том как же именно лучше всего оформлять код. Я иногда вставляю код с этого форума от "великих знатоков ООП" на других ресурсах и этот код обсирают ровно так же, как мой код здесь. Так что угодить всем-всем-всем вы всё равно не сможете. Но можно конечно выбрать для себя например оформление MSDN и работать строго в этом векторе, хотя вам часто так же будут говорить про индусский код, о котором вы и пишете в этой теме. goto - это не оператор говна, это такой же инструмент как if или for, главное тут уместность его применения. У меня изредка он бывает, в основном для выхода из вложенных циклов или когда сильно проще просто воткнуть goto на время разработки, не вижу как именно goto повлияет на читаемость, ведь вызов любой функции это точно такой же goto (если возвращаться к Бейсику, то это GOSUB), и вам тут же в этой теме совершенно нормально пишут что читаемость кода с кучей методов вдруг становится лучше, непонятно почему вызов метода это хорошо а переход по goto - это уже плохо. И в любом случае в ассемблере все ветвления так или иначе сделаны через goto, которых заметно больше, так как там скорее конструкции (IF условие GOTO). Любая итерация цикла это goto, просто не явный. И какую бы книжку вы не читали всегда есть вероятность что её или не читали другие или они не разделяют те же принципы что там описаны.
0
|
|||||||
| 05.05.2025, 08:43 | |
|
Ответы с готовыми решениями:
149
Спагетти код ??? С# vs vb.net Холивар или нехватка знаний? |
| 10.05.2025, 03:29 | ||||||
0
|
||||||
| 13.05.2025, 15:50 | |
|
Не по теме: Однажды автор попытается прочитать чужой спагетти код...
0
|
|
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||
| 13.05.2025, 17:06 [ТС] | ||
|
kritjara, я каждый день читаю чужой код и он всегда сложен для понимания независимо от оформления. Просто когда это один файл с последовательным ходом выполнения вы можете изучать код небольшими частями постепенно вникая в суть происходящего, а когда это ООП, то у вас 378 кусочков непонятных структур которые чтобы понять нужно сначала как-то свести всё воедино, что весьма сложно, так как способ мышления у каждого человека свой как и то как он реализует код.
Вот например большинство программистов на Делфи - говнокодеры, они просто вешают код на кнопки и на события окон, зато восстановить логику очень просто. А когда писал какой-то программист от бога он повесил обработчик на какое-то событие, а оно зависит от еще одного события и так по какой-то диковинной цепочке - дебажить такое вообще можно рехнуться. Добавлено через 52 секунды
0
|
||
|
2875 / 2080 / 386
Регистрация: 22.07.2011
Сообщений: 7,837
|
|
| 15.05.2025, 11:26 | |
|
belalugoci, зато сама делфи юзает VCL , и благодаря принципам ООП Вам легко читать "события" у экземпляров "окна" , а теперь представим весь VCL в виде сплошного листинга , как бы Вам было удобно его читать ? - не говоря уже о том . что бы добавить туда свой код ничего не поломав.
Тут скорее вопрос к повару . действительно и в ООП можно так завернуть , что лучше уж был бы простой листинг , для качественной реализации нужен опыт и понимание.
0
|
|
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||
| 15.05.2025, 11:54 [ТС] | |||
|
Алгоритм - это черный ящик, на вход подаётся А, на выходе появляется Б. Как именно реализован этот черный ящик знает только сам разработчик. Чтобы разобраться в реализации нужно понять сначала сам алгоритм, одно дело когда есть его полное описание и совсем другое когда вам нужно заниматься реверс-инженирингом. Вот смотрите вы на код, а там var i = 1 - f[j]; что это? зачем? почему? вот и приходится все вариации f[] перебирать и смотреть что происходит. А если еще попался программист который шарит во всем так что пишет оооочень замысловатый код используя какие-то трюки например с SIMD и кешем, то там вообще разобраться сможет только человек с близкой квалификацией. И пофигу уже ООП там или не ООП. Это ответ DeepSeek и я с ним согласен: Оценить точный процент разработчиков, которые придерживаются **ООП (объектно-ориентированного программирования)**, сложно, но можно выделить ключевые тенденции на основе исследований, опросов и анализа популярности языков/парадигм. Не по теме: кстати а почему до сих пор на форуме не прикрутили Markdown?
0
|
|||
|
Модератор
|
|||
| 15.05.2025, 12:32 | |||
|
Ответ DeepSeek - это "ни о чём". История создания и развития Шарпа, формирования сообществ разработчиков Шарпа, академическая среда Шарпа значительно отличается от других ЯП. Если взять все разработки сделанные в "правильном" ООП, то доля Шарпа, думаю, будет больше чем всех остальных ЯП вместе взятых. Даже в самом Шарпе различаются области по доле и глубине применения ООП. WPF (все XAML) решения, если не считать учебных, наверное почти на 100% выполняются в "правильном" ООП. Там больше споров не о применении ООП, а том какой именно следует применить паттерн или его реализацию для конкретного задания. Притягивать "за уши" в дискуссию по Шарп-теме примеры из джавы, плюсов и т.д - как минимум не корректно, пустая демагогия. Если, вообще, не считать это троллингом. Добавлено через 5 минут
2
|
|||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 15.05.2025, 13:12 [ТС] | |
|
Элд Хасп, пока в C# нет запрета на программирование в иных парадигмах этот вопрос всегда будет открыт, в этом смысле даже Object Pascal выглядит более ООПэшным. Пока не закрыли эту возможность - это вопрос выбора и любой выбор будет правильным. То что какой-то из вариантов предпочтительнее в определенных условиях - да ради бога, словно я вам запрещаю. У вас одна проблема, вы наделяете C# свойствами, которых у него нет, это ваш выдуманный конструкт и вы, почему-то решили, что именно этот конструкт единственный и самый верный. А именно:
- только корпоративное применение - только коллективная разработка - только ООП Но это лишь подмножества, утверждать, что C# скован этими утверждениями - просто глупо. Это какой-то программерский фашизм. В другой теме я показал пример игры без ООП, даже goto нафигачил и применял максимально простые конструкции языка, хотя собеседник утверждал что это невозможно. Потом он правда слился, но написанного не убрать. Вы должны понимать разницу между "предпочтительно" и "невозможно", а "люблю", "здесь так принято" и "это соответствует заветам Бога Курамора" - с этим вам в церковь Ктулху. Пока на разделах нет цензуры на публикации и нет фейсконтроля - все ваши кряхтения и брюзжания выглядят смешно. Никто не запрещает создать отдельный раздел труC# с блэкджеком и шлюпками и обсуждать свои корпоративные взгляды там в закрытом сообществе, я обещаю туда не заходить XD да и при фейсконтроле я просто туда не попаду, вон тесты на С# сделайте чтобы влияли на вход в раздел, например не меньше 80%, у меня 35%, так что я ваш мир свидетелей интерфейсов и git не побеспокою.
0
|
|
|
Модератор
|
||
| 15.05.2025, 15:53 | ||
|
Вы САМИ ПРИШЛИ в тему где ТС интересуется как лучше писать код с точки зрения СООБЩЕСТВА РАЗРАБОТЧИКОВ. Он не у вас лично поинтересовался. А это СООБЩЕСТВУ, так уж исторически сложилось, видит правильный Шарп код только в ООП стиле, с соблюдением всех паттернов и рекомендаций. Вы вваливаетесь в чужую тему, в тему где не интересуется вашим личным мнением, и начинаете всё сообщество поливать помоями. Мы (сообщество) уже давно выяснили что вам хочется писать "говном на стенах" - пишите. Никто вам не запрещает. Но вы не имеете никакого отношения к сообществу разработчиков у которого ТС интересовался мнением по качеству кода.
3
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||||||||||||
| 15.05.2025, 16:25 [ТС] | ||||||||||||||
|
Добавлено через 2 минуты Элд Хасп, Теперь по сути моего ответа автору темы, который вы скорее всего не читали:
0
|
||||||||||||||
|
|
||
| 15.05.2025, 22:01 | ||
|
2
|
||
|
|
|
| 15.05.2025, 23:39 | |
|
belalugoci,
Если форумчане и администрация относится к вашим репликам с некоторой толерантностью, это вовсе не означает что ваша точка зрения верна и/или необходима конкретно здесь и сейчас. В некоторых моментах с вашими высказываниями можно согласится, в глобальном смысле, и я думаю, это понимают многие. Однако вопрос в другом: ни каких полезных советов по существу вопроса вы дать не можете, и явно пытаетесь грести против течения. Вы это видите сами, что "ошиблись дверью" и зашли не туда. Зачем свои, быть может, в некотором смысле правильные позиции "в вашем мире" - утверждать там, где они никому не нужны? Ни каких "закрытых ООП-шных разделов" создавать не нужно - это вам надо найти такие форумы, где ваша идеология будет воспринята и оценена так, как вам надо. А мы тут как были, так и будем быть. Где-нибудь, на автомобильном форуме, вы бы наверное, советовали выкинуть V8-й двигатель и приварить педали. А что, дескать - я вообще на лошадях ездил и до сих пор они меня устраивают.
0
|
|
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||||||
| 16.05.2025, 08:55 [ТС] | ||||||||
|
Я, кстати, предлагал администрации заблокировать мой аккаунт за иной взгляд на вещи, но администрация отказалась это делать. И пока я нахожусь в рамках Правил форума, вы, господа, можете со своей идеологией идти лесом. А нет ли у кого-то из вас публикаций в научных журналах? Хотелось бы почитать мысли умных людей. Добавлено через 7 минут я пока вижу людей которые тратят кучу времени на болтовню, но пока ни один не смог ничего написать на highload.fun что обошло бы моё решение. отмазка про "занятость" и "оно мне не надо" не принимается. Вы просто диванные теоретики, умеете кодировать в рамках каких-то шаблонов, на этом ваши компетенции заканчиваются. Полезны ли вы? Абсолютно. Интересны ли вы? Нет. Сейчас вас замечательно заменяет DeepSeek (я про вашу полезность на форуме). Ну и есть другие ресурсы типа SO, где народ попроще, но и профессиональнее и поинтереснее.
0
|
||||||||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|
| 16.05.2025, 11:21 | |
|
По моему, вполне очевидно, что господин belalugoci просто очень любит спорить. Это и есть его самоцель. Потому спорить с ним бессмысленно - невозможно в чём то убедить человека, у которого цель - просто вести спор.
0
|
|
|
|
||
| 16.05.2025, 11:31 | ||
|
Катафалк, Судя по этой фразе
И да, из этой темы он так и не ретировался
0
|
||
| 16.05.2025, 11:48 | ||
|
Подождём интересанта
0
|
||
|
Модератор
|
||
| 16.05.2025, 14:19 | ||
|
Все кто больше него знают, для него это нелюди... Его позиция: "я не программист, никогда им не был и не собираюсь быть, поэтому могу нести любую чушь и вы не имеете права мне говорить что это не правильно, так как есть море ещё таких же незнаек, которые согласны с моей чушью..."
2
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||||||||||
| 16.05.2025, 18:01 [ТС] | |||||||||||
|
Например в теме про GIT я честно попробовал работать с ним, убедился что ко мне это неприменимо. Тема исчерпана. С ООП я работал очень много и ни разу это не было эффективно для меня, поэтому не вижу причин почему я должен этим заниматься насильно. В отличии от вас я в состоянии понять что мир не черно-белый. И я не вижу ничего плохого в многословности ответа. Человек сказал мне что-то, я дал комментарий. Я стараюсь многосторонне осветить свою точку зрения чтобы собеседнику было комфортно вникать в мои рассуждения. Так как у вас нет цели вести дискуссию, вы пришли спорить, навязывать своё мнение, то конечно для вас "многабукаф" будет чем-то негативным. Вы хотя бы в словарик загляните и посмотрите что такое "спор", "дискуссия", ну и логически рассудите - есть ли корреляция между количеством символов и спором. Вы свою необразованность периодически афишируете с какой целью? Или вы думаете что пыльный диплом и пара оформленных методов и есть то самое образование которое даёт вам индульгенцию на высокомерие? и это не требует аргументирования, вы просто не знаете что такое спор и что такое дискуссия. Я не программист, так как я не зарабатываю программированием. Хотя был этап в жизни когда это было. Программирование - это инструмент, как и масса других. И как и любым инструментом программирование можно использовать в профессиональном окружении, а можно и в любительском. И критерии применимости разных методов от этого могут быть разными. Как я уже отмечал, если есть желание о C# разговаривать исключительно как о профессиональном инструменте - создайте закрытый раздел. Почему-то очень многие профессионалы так делают, а вы какие-то особенные? Есть закрытые форумы по ремонту бытовой техники например, у них как правило есть открытый раздел где можно задать какой-то вопрос или попросить схему или прошивку, могут и ответить, а могут и не ответить. А в закрытый вход закрыт небольшим тестом. В теории пройти его можно, но по характеру общения все поймут что ты не свой и забанят.
0
|
|||||||||||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,235
|
||
| 17.05.2025, 05:29 | ||
|
Не по теме:
0
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 17.05.2025, 06:09 [ТС] | |
|
IamRain, то есть с бисером я угадал...
0
|
|
| 17.05.2025, 06:09 | |
|
Какие альтернативы goto можете предложить? Чем можно заменить конструкцию On Error GoTo c# и goto goto есть ли такое и как им пользоваться Чрезмерное употребление оператора goto Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж»
Уважаемые коллеги!
Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
|
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
|
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы
Математический аппарат моделирования
Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
|