Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 15:24   #51
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Utkin, MaTBeu, захвалили прям.

мой код так никто и не понял
ну так и должно было быть.
а вот если добавить сигнатуру(полную) то он будет куда понятнее:
Код:
		const phL::LexicalScanner::Token& phL::LexicalScanner::Scanner::getToken()
		{
			if((*cache_it).getIdent()==L_EOF)return cache.back();
			if(cache_it>=cache.end())
				Scan();
			cache_it++;
			return *cache_it;
		}
ведь так уже куда яснее что он делает?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 03.01.2012 в 15:26.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:30   #52
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Utkin, MaTBeu, захвалили прям.

мой код так никто и не понял
ну так и должно было быть.
а вот если добавить сигнатуру(полную) то он будет куда понятнее:
Код:
		const Token& phL::LexicalScanner::Scanner::getToken()
		{
			if((*cache_it).getIdent()==L_EOF)
                                             return cache.back();
			if(cache_it>=cache.end())
				Scan();
			cache_it++;
			return *cache_it;
		}
ведь так уже куда яснее что он делает?
Если честно, код как-то пропустил. С сигнатурой стабильно понятнее. Хотя метод
Код:
(*cache_it).getIdent()
сначала прочитал как
Код:
(*cache_it).getIndent()
то есть не взять идентификатор, а взять отступ.

И еще вопрос - почему класс Token не внутри нэймспейса?
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 15:34   #53
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

Цитата:
Господи, а это ещё зачем?
Что бы кто-то спросил зачем это. Я написал то, чего придерживаюсь я.
Да и к факту любая нормальная IDE позволяет заменять табы пробелами.

Согласен со стилем документирования в посте #45.
Но и когда нужно то коменчу то, что нужно.
Love writing code and I am really passionate about it
Bustle вне форума Ответить с цитированием
Старый 03.01.2012, 15:34   #54
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Вам комментарии на каждой строке не помогли бы даже в таком коде
Отлично помогают . Эти строки позволили мне успешно перенести решение на C# при том, что общий объем кода вполне нормальный. И несмотря на то что сам код читается плохо.
Цитата:
Но мы ведь здесь обсуждаем не личные привязанности, а общественное удобство.
Вы написали, что мой стиль студенческий, я Вам привел пример, где это работает. Я подвел итог, что Вас не устраивает? Это совсем не придирка к словам. Между прочим никто из Вас так и не сказал чем занимается данная функция. Если бы Пепел Феникса не подымал вопрос о лексических анализаторах ранее, я бы подбросил другой код. Уверен Вы бы и его не разобрали. Кстати, я присылал ему исходники анализатора. При желании он может найти данный фрагмент (ну может с небольшими отличиями в зависимости от версии).

Цитата:
JavaDoc придумали не дураки, поэтому грех не использовать то, что вырабатывалось годами для удобства программистов.
Я и не спорю. Не помню, чтобы я писал что JavaDoc это плохо.

Цитата:
Сложные алгоритмы надо комментировать не плотно, но чтобы смысл предыдущего комментария не терялся в следующем комментарии, а развивался строка за строкой.
Дык, смысл предыдущего комментария в следующем и не теряется.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 03.01.2012 в 15:36.
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 15:35   #55
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
И еще вопрос - почему класс Token не внутри нэймспейса?
внутри, просто забыл полную сигнатуру добавить(у меня код уже внутри неймспейса, чтоб не писать вечно полные сигнатуры, потому показывая здесь добавлял)
класс токен вложен в нейспейс чтоб все что к лекс сканеру относиться было с ним рядом.
Цитата:
Кстати, я присылал ему исходники анализатора.
я так пока и не читал его.
пока все не до этого + пока вроде свое идет более менее четко.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 03.01.2012 в 15:45.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:42   #56
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от Utkin
Уверен Вы бы и его не разобрали.
Поясните чем обоснован ваш вывод? Не берите меня на понт, я пришел сюда обсудить приемы документирования, а не разбирать кучи говнокода которые вам досталсь.

Я тоже занимался лексическим и синтаксическим анализом. А насчет вашего высказывания есть отличная поговорка: "Если мне плевать на что-то, это не значит, что я в этом не разбираюсь."
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 15:47   #57
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Если мало знаний - ты вы и с "КЭП" комментариями не поймете, что делает код.

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

Я не имею базы знаний о языке на котором привел код Феникс, следовательно я не понимаю что он делает. Число символически, код - намекает на C++, но это не он. Не припоминаю там :: и т.д. Но если бы и знал синтаксис(язык), я бы всеравно пошёл смотреть сам класс Cache т.к. мне надо знать что делает каждый его метод. Без этого я не узнаю, что делает код.

Последний раз редактировалось Человек_Борща; 03.01.2012 в 15:54.
Человек_Борща вне форума Ответить с цитированием
Старый 03.01.2012, 15:52   #58
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я не имею базы знаний о языке на котором привел код Феникс, следовательно я не понимаю что он делает. Число символически, код - намекает на C++, но это не он. Не припоминаю там :: и т.д.
это полностью С++.
просто вы видимо пространства имен не изучали
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 15:54   #59
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Не берите меня на понт, я пришел сюда обсудить приемы документирования, а не разбирать кучи говнокода которые вам досталсь.
Я и не беру Вас на понт .
Цитата:
Я тоже занимался лексическим и синтаксическим анализом.
Тем более должны были сообразить. Но я как полагаю и не пытались вовсе.
Цитата:
я пришел сюда обсудить приемы документирования
Это и так понятно - суете документирование где надо и где не надо. Речь в теме вообще-то не совсем о документировании. И данный флейм тоже не из него вырос.
Цитата:
Делайте ставку на то, что человек, который будет читать ваш код, будет иметь уровень знаний не ниже вашего.
Все правильно, я знал что Пепел Феникса в теме. Но а то что MaTBeu, имеет высокий уровень знаний и так понятно всем кто достаточное время находится на форуме.

Цитата:
А комментарий нужен для поясенения ваших заоблачных мыслей, смысл которых вы уловили, но до конца не поняли, а по сему и вовсе потеряете в скором времени.
Маразм крепчал.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 16:01   #60
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Маразм крепчал.
Позволю не согласится. Вы сидите уже 2 часа над размышлением обьяснения ваших мыслей компьютерным языком. И тут ЭВРИКА вы знаете как это сделать, НО мысли такого плана очень быстро растворяются.


Я сразу открываю начало комментария и пишу мысли. Вот об этом я говорю. Об своём способе комментирования кода я уже написал.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правила написания кода на Delphi Virtson Общие вопросы Delphi 17 06.08.2010 08:59
Правила разделов/главные правила Alex Cones О форуме и сайтах клуба 1 30.09.2009 17:49
Оформления текста tae1980 Microsoft Office Excel 6 26.03.2009 18:54
Стили оформления кода Altera Свободное общение 2 30.08.2008 17:23
Проблема оформления SunKnight Общие вопросы Delphi 3 25.02.2008 01:11