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

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

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

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

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

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

Цитата:
Но если бы и знал синтаксис(язык), я бы всеравно пошёл смотреть сам класс Cache т.к. мне надо знать что делает каждый его метод. Без этого я не узнаю, что делает код.
ну вообще то это переменная cache, и тут еще видно что вы мало применяли STL
если интересно
Код:
std::vector<phL::LexicalScanner::Token> cache;
std::vector<phL::LexicalScanner::Token>::iterator cache_it;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 03.01.2012 в 16:27.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 16:05   #62
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Позволю не согласится. Вы сидите уже 2 часа над размышлением обьяснения ваших мыслей компьютерным языком. И тут ЭВРИКА вы знаете как это сделать, НО мысли такого плана очень быстро растворяются.
Не позволю. Я думал шапочка телепата есть только у меня Откуда Вам известно как я пишу программы и выражаю мысли компьютерным языком?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.01.2012, 16:13   #63
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Да, вы правы, я даже не пытался, потому что я считаю, что приводить код, вырваный из контекста - это плохой пример.

Навскидку, ваш код разбирает конструкции языка вроде
Код:
for(int i = 0; i < 10; i++)
Разбивая их на группы на цифровые и нецифровые лексемы. Максимальная длина конструкции = 8 лексем. Также конструкция не может заканчиваться цифрой. Конструкции разделяются пробелами. После этого формируется специальная запись, которая представляет собой объект класса Конструкция (Statement), и скорее всего используется при генерации кода.
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 16:19   #64
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

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

Банальный пример:
Код:
if(param != null)
    param = param + "";
Новый человек на проекте подумает, что это избыточный код и уберет проверку, потому что если параметр пустой то, он тоже приведется к пустой строке. А на самом деле будет строка "null" и результат будет непредсказуемым только потому то человек не знал правила преобразования типов.

2Пепел Феникса
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ну вообще то это переменная cache, и тут еще видно что вы мало применяли STL
если интересно
Код:
std::vector<phL::LexicalScanner::Token> > cache
std::vector<phL::LexicalScanner::Token> >::iterator cache_it;
Похоже, что вы добавили лишний символ ">" в каждой строке.

Последний раз редактировалось MaTBeu; 03.01.2012 в 16:23.
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 16:22   #65
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

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

ЗЫ. Вам не кажется, что мы все дальше отклоняемся от основной ветви повествования?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

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

Цитата:
Похоже, что вы добавили лишний символ ">" в каждой строке.
да вы правы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 16:27   #67
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от Utkin
Вы не правы. В своих работах я отклонился от традиционной точки зрения на данную задачу. Насчет генерации кода там интерпретатор, но это не важно и к функции не имеет отношения.
Окей. Рад, что вы подтвердили мое утверждение. Спасибо за пример.

P.S. согласен с Utkin. Что-то мы ушли в оффтоп. Нужно возвращаться к теме (это я себе )

Последний раз редактировалось MaTBeu; 03.01.2012 в 17:18.
MaTBeu вне форума Ответить с цитированием
Старый 03.01.2012, 17:48   #68
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Не позволю. Я думал шапочка телепата есть только у меня Откуда Вам известно как я пишу программы и выражаю мысли компьютерным языком?
Я привел штатную ситуацию, в которой все действуют одинаково не зависимо от привычек и профессий(где нужна думалка, смекалка, абстрактное понимание мира и фантазия).

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

Но в голове много не удержишь, человеку сложно делать что-либо более чем в 3 действия одновременно(Начинает допускать ошибки).

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

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

Ну да ладно, это уже теория о том, как продумывать будущий код. Ну её к монахам
Человек_Борща вне форума Ответить с цитированием
Старый 03.01.2012, 18:04   #69
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Посоны, вы спорите ни о чём. Давайте так

Вопрос: насколько подробно надо комментировать код, так ведь? Давайте подумаем, что такое код. Код - это формальная запись алгоритма. Значит (по идее) она должна соответствовать словесному описанию. Составьте словесное описание, и если в каких-то местах что-то непонятно, прокомментируйте соответствующие места в коде.

В жизни всё не так идеально. Ведь думаем мы так: "Для каждого элемента списка применим функцию foo". Конечно, есть языки, где это выражается языком, очень близким к человеческому (Haskell, Erlang, Scheme, Lisp, Python и другие функциональные языки):
Код:
b = map(foo, a)
Но в некоторых языках (C/C++/Delphi) мы теряемся в деталях реализации:
Код:
std::vector<int> b;
for (int i = 0; i < a.length(); i++)
    b.push_back(a[i]);
Конечно пример утрированный, все знают, что for (int i = 0; i < a.length(); i++) - это проход по всем элементам массива. Но есть примеры, где без поллитра и не разберёшь, что делает код. Кто работал со строками на Си только с помощью стандартной библиотеки, тот поймёт меня.

Вот такие печальные случаи нуждаются в более подробном комментировании (в зависимости от ситуации, иногда придётся комментировать каждую строку)
anyx вне форума Ответить с цитированием
Старый 03.01.2012, 20:01   #70
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Цитата:
А меня никто не спрашивает. Мне дают и говорят чтобы вчера было сделано. Данный код мой (я еще только учился), но он показателен.
Все равно, зачем комментарии? Покажите документацию к коду. Если она есть, но из нее ничего не понятно, то тогда можно и поговорить о необходимости комментариев. Если же документации нет, то нужно материться и ее писать. А заставить кого-то писать документацию не сложнее чем заставить его писать комментарии.

Цитата:
Зачем его переписывать с нуля? Это очередной Ваш минус. Нормальный человек попытается понять алгоритм - если он верен нужно провести рефакторинг.
Очевидно же, что причиной переписывания кода является крайняя его запутанность, а не нежелание разбираться в нем. Степень запутанности - один из оценочных факторов при принятии решения - рефакторить или переписывать.

Последний раз редактировалось still_alive; 03.01.2012 в 20:03.
still_alive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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