|
|
| Результаты опроса: Нравится ли Гото, используете ли вы его | |||
| Да |
|
21 | 37.50% |
| Нет |
|
35 | 62.50% |
| Голосовавшие: 56. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 5.00/43:
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
Хороший или плохой тон программирования28.03.2010, 13:42. Показов 9900. Ответов 49
Метки нет (Все метки)
вот в книгах читаю что гото туфта полная..на форуме тоже так говорят,а почему?очень нужная вещь,иногда лучше использовать это чем циклы
0
|
|
| 28.03.2010, 13:42 | |
|
Ответы с готовыми решениями:
49
"Ляпы" в программе. Хороший стиль программирования TCHAR + float != дружба или плохой wsprintf
|
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 01.04.2010, 23:22 [ТС] | |
|
Atrus, а причем тут это все Оо
0
|
|
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
| 02.04.2010, 00:30 | ||||||
|
Atrus, будет интересно посмотреть как вы напишите более менее серьезный проект. Просто прежде чем повторять чью-то фразу - надо понимать, что это всего лишь рекомендация и не более. Приведу простой пример, один
метод
0
|
||||||
|
12 / 12 / 2
Регистрация: 08.07.2009
Сообщений: 45
|
|
| 02.04.2010, 02:29 | |
|
M128K145
Если вы вдруг захотите добавить функциональность, в ваш калькулятор(у вас ведь серьезный проект, поэтому заказчик обязательно попросит) вам будет очень неприятно работать с предложенным выше методом. Допустим, кнопки должны будут менять свои координаты, атрибуты и даже функционирование при переключении с режима "обычный калькулятор" на режим "инженерный калькулятор". Должно будет изменяться их количество. В вашем же методе сплошной хардкодинг, который убивает всю гибкость. Поэтому, вы правы, этот метод не нуждается в декомпозиции. Он нуждается в полной переработке. *** Как насчет массива элементов jButton? А параметры каждой кнопки можно из конф. файла считывать. А метод станет размером в 12 строк(Что конечно как вы правильно заметили не главное, но все-равно очень приятно).
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 02.04.2010, 13:47 | |
|
goto запутывает код: делает переходы неочевидными и неудобочитаемыми. Если метка на другой странице, то как это прочитать ? Если требуется goto, значит проект составлен очень плохо или его нет вовсе. Надо делать упор не на оправданности goto, а на хорошем проекте.
0
|
|
|
|
||
| 02.04.2010, 14:46 | ||
|
И не надо говорить, что goto запутывают код. Есть гении, которые способны запутать код на ровном месте одними лишь арифметическими операциями. А потому читабельность кода зависит от наличия мозга, а не от наличия goto
1
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 02.04.2010, 14:57 | |
|
В общем случае, goto добавляет мест, которые нужно держать в памяти, а она не безгранична.
Как один из пунктов УМЕНЬШЕНИЯ удобочитаемости можно сформулировать так: "применяйте везде goto". Это ещё не значит, что нельзя запутать прогу не применяя goto.
0
|
|
|
|
||
| 02.04.2010, 15:01 | ||
|
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|
| 02.04.2010, 15:06 | |
|
Нужно не программу принципильно менять, а переделывать проект. Значит что-то в нём плохо, раз понадобился goto. Я ни в коем случае не говорю, что надо принципиально от него отказаться. Дело не в принципе.
0
|
|
| 02.04.2010, 20:28 [ТС] | |
|
Не по теме: Evg, :Dя его знаю:D
0
|
|
|
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 02.04.2010, 21:30 | |
|
Atrus, это был всего лишь немного подредактированный копипаст сгенерированого кода NetBeans и отправленный в Eclipse
, Вопрос, почему все визуальные конструкторы не набивают массивы/вектора, а задают жестко(MS VS C#/MFC/CLR/J#, NetBeans Java)? Но это уже оффтопПо теме. Сравните два кода Бинарные числа! Перевод простого числа в бираное и расчет. Что будет выведено на экран? И сделайте для себя вывод, goto - это хорошо или плохо. Или по вашему в первом коде лучше использовать циклы?
0
|
|
|
12 / 12 / 2
Регистрация: 08.07.2009
Сообщений: 45
|
||||||||||||
| 03.04.2010, 03:07 | ||||||||||||
|
M128K145
Эй, эй, обождите! Я разве хоть где-то говорил, что ненавижу goto? Я только привел пример грамотного выхода из сильновложенных циклов и все. Так что претензия не по адресу. Что же касается вашего примера, то тут я не вижу особых причин goto использовать:
*** M128K145 Не по теме: я понял, что это кодогенератор, но что это меняет? Сапер, например, тоже на элементах типа Button реализован. Для поля 10х10 понадобится 100 кнопок. Вы его тоже без массивов делать будете?
0
|
||||||||||||
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
||||||
| 03.04.2010, 04:14 | ||||||
|
Goto как и любой другой оператор: если применен в правильном месте облегчает и написание, и восприятие кода.
Вот пример из первого попавшегося проекта
0
|
||||||
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
||
| 03.04.2010, 11:05 [ТС] | ||
|
Добавлено через 14 секунд и на 2 скобок меньше
0
|
||
|
12 / 12 / 2
Регистрация: 08.07.2009
Сообщений: 45
|
||||||
| 03.04.2010, 12:11 | ||||||
|
Вообще мне тоже кажется, что goto лучше чем break +флаг +условие. Хуже последнего вообще ничего придумать нельзя. Но в данном примере,как мне думается, совсем необязательно смотреть на то, как файл героически пытается сохраниться.
Во время отладки(или если кто-то другой решит изучить код) это будет абсолютно бесполезной информацией. Скрыть это все в функцию и засунуть эту функцию в самый низ, чтоб не мешала! Читабелность такой программы в разы вырастает. Короче как-то так:
0
|
||||||
|
|
||
| 03.04.2010, 13:15 | ||
|
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
||
| 03.04.2010, 13:41 | ||
|
МедведЪ Давай ещё всунем goto. Проект уже плохой, нам уже терять нечего.
0
|
||
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|||
| 03.04.2010, 15:00 | |||
|
0
|
|||
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
| 03.04.2010, 15:41 [ТС] | |
|
0
|
|
|
|
|
| 03.04.2010, 15:59 | |
|
0
|
|
| 03.04.2010, 15:59 | |
|
Хороший тон программирования
Хороший стиль программирования Хороший стиль программирования: где размещать константы? Как называется движение программирования или теория программы считывающая др. язык программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача
Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Сигнатура
func Fetch(urls string, maxConcurrent int) Result
Пример
urls :=. . .
|
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition)
Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
|
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|