Forth
http://fforum.winglion.ru/

Стандартизация читабельности (понятности) кода ?
http://fforum.winglion.ru/viewtopic.php?f=36&t=1864
Страница 6 из 8

Автор:  mOleg [ Чт янв 15, 2009 21:22 ]
Заголовок сообщения: 

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

Автор:  Pretorian [ Чт янв 15, 2009 21:25 ]
Заголовок сообщения: 

Кстати, а ТЗ для Кварка есть? (такой каверзный вопросец) :))

Автор:  вопрос [ Чт янв 15, 2009 21:29 ]
Заголовок сообщения: 

Цитата:
Если я вижу функцию, определение, подпрограмму или как его назови, которая не влазит в экран, я автоматом ее пропускаю.
Ну речь зашла не о коде, а о ... несовместимости, кроме того, не о моём коде, а о 3х сразу, а насчёт не вмещается в экран - да, тут Олег прав, но это зависит от размера экрана.

Автор:  mOleg [ Чт янв 15, 2009 21:32 ]
Заголовок сообщения: 

вопрос писал(а):
Ну речь зашла не о коде, а о ... несовместимости, кроме того, не о моём коде, а о 3х сразу, а насчёт не вмещается в экран - да, тут Олег прав, но это зависит от размера экрана.

несовместимость есть и у сишных компиляторов, и про это достаточно много писалось.
размер экрана не причем. Слова должны быть ЗНАЧИТЕЛЬНО короче! не более 10 строк. Коментарии должны присутствовать хоть какие-то!
Если вы хотите, чтобы в вашем коде захотели разбираться, то к этому надо приложить усилия.

Автор:  вопрос [ Чт янв 15, 2009 21:38 ]
Заголовок сообщения: 

Цитата:
То есть изначально программист не уважает того, кто код будет разбирать, так как не пытается сделать его читаемым.
ВОт насчёт "не уважает" совершенно незачем кого-то обвинять


:)
тут нет комментариев

Код:
\ снятие со стека операций и размещение в результирующей строке: скобка - операция (-1)
\  хранить операции на стеке операций ...
\ в виде ссылок
: oper_stack> (  --  )
   result_pointer       (  check >> )  4096 > IF ." STRING LENGTH OVERFLOW "  anykey? KEY DROP BYE THEN 
   oper_stack oper_stack_pointer 1 - 1dap         
   (   addr_of_last oper_stack  )         
   @         
   (    value_of_last_operstack=addr_of_pryority_stack_elem  )         
   analog_pointers SWAP 1dap @           
   (    value_of_analog_pointers_cell[vapc]  )         
   analog_str +         
   (    addr_of_analog_  )         
   DUP TO wordbegin       
      BEGIN     
      1 +     
      DUP C@     
      32 =     
      UNTIL ( [alrs] wordend )           
   word_to_res       
   oper_stack_pointer 1 - TO oper_stack_pointer       
   ;

в каждой строке.

Другое дело, что какие-то кривые.

Но вот, можно предложить рекомендации на степень подробности и формат комментариев

Автор:  вопрос [ Чт янв 15, 2009 21:42 ]
Заголовок сообщения: 

mOleg писал(а):
вопрос писал(а):
Ну речь зашла не о коде, а о ... несовместимости, кроме того, не о моём коде, а о 3х сразу, а насчёт не вмещается в экран - да, тут Олег прав, но это зависит от размера экрана.

Если вы хотите, чтобы в вашем коде захотели разбираться, то к этому надо приложить усилия.

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

Автор:  mOleg [ Чт янв 15, 2009 21:45 ]
Заголовок сообщения: 

я смотрел только на главное слово:
я не увидел коментариев, я увидел код, который не влазит в 38 строк (у меня столько в редакторе видно), и мне сразу стало не интересно (то есть дальше я не разбирался).

<pre>
: >postfix ( asc # --> asc # )
transformation_type_flag NOT IF _BASE_POSTFIX_TYPE THEN 0 TO transformation_type_flag
SWAP DUP
TO sourcestringbegin
TO sourcestringpointer
sourcestringbegin + TO sourcestringfinal

>postfix_variables_start

BEGIN
sourcestringpointer sourcestringfinal > NOT
WHILE
sourcestringpointer
( symbol_addr )
STRING_STATE
IF
C@ s_sym
IF
\ naturally, end of word
0 TO STRING_STATE
sourcestringpointer 1 -
word_to_res


THEN
sourcestringpointer 1 + TO sourcestringpointer

ELSE \ ---------------------- NO word in process ----------------------
C@ s_sym NOT
IF
sourcestringpointer
symbol_recognize

IF
skip_op_symbols
ELSE
-1 TO STRING_STATE
sourcestringpointer TO wordbegin
THEN
THEN
sourcestringpointer 1 + TO sourcestringpointer
THEN
REPEAT
\ end of string - rest
OPERATOR_STATE OBRACKET_STATE OR IF ." UNEXPECTED END OF_ STRING " anykey? KEY DROP BYE THEN
end_of_string_match
result_begin ( asc )
result_pointer ( # )
;
</pre>

Автор:  Hishnik [ Чт янв 15, 2009 21:47 ]
Заголовок сообщения: 

вопрос писал(а):
но нам до внутренностей кварка доступа нет, хотя просили Хищника и покопаться и посмотреть - не позволил.

А зачем? Ради "покопаться"? Есть документация, из нее в принципе понятно, как сделано внутри.
вопрос писал(а):
Нужен, разумеется, и открытый проект

Кварк - открытая система ;) Если посмотреть определение открытых систем (а не систем с открытым исходным кодом, что не одно и то же).
вопрос писал(а):
кроме того
для кварка отсутствует ТЗ
кварк - диалект, а речь - о стандарте

Диалект и есть. А как, интересно, я мог его писать без ТЗ? И ТЗ, и документация - все имеется. Но рассматривать его в качестве стандарта я не стал бы, поскольку идеей была адаптация форт-машины под конкретную целевую нишу, а не создание мейнстрима.

Автор:  вопрос [ Чт янв 15, 2009 21:53 ]
Заголовок сообщения: 

Цитата:
зачем? Ради "покопаться"? Есть документация, из нее в принципе понятно, как сделано внутри.
ради упоминавшейся коллективной работы над одним проектом ... а не любования на систему со стороны (Хищник забыл о чем речь?)

Автор:  вопрос [ Чт янв 15, 2009 21:58 ]
Заголовок сообщения: 

mOleg писал(а):
я смотрел только на главное слово:
я не увидел коментариев, я увидел код, который не влазит в 38 строк (у меня столько в редакторе видно), и мне сразу стало не интересно (то есть дальше я не разбирался).

Повторюсь - не рассчитывал, что кто-то станет разбирать.
И всё-таки (я прошу посмотреть моё сообщение) извинился за то, как выглядит это слово.

Автор:  mOleg [ Чт янв 15, 2009 22:02 ]
Заголовок сообщения: 

вопрос писал(а):
Повторюсь - не рассчитывал, что кто-то станет разбирать.
И всё-таки (я прошу посмотреть моё сообщение) извинился за то, как выглядит это слово.

я прошу прощения, получилось, что я наехал.
Просто мне кажется, что начинать стоит с себя. Надо выработать правила оформления кода и им следовать.
Когда будет что предложить - предлагать конкретно, а не обще, мол, давайте!

Автор:  Hishnik [ Чт янв 15, 2009 22:03 ]
Заголовок сообщения: 

вопрос писал(а):
ради упоминавшейся коллективной работы над одним проектом ... а не любования на систему со стороны (Хищник забыл о чем речь?)

"Гарольд Керцнер определяет проект как произвольный ряд действий или задач, имеющий определенную цель, которая будет достигнута в рамках выполнения некоторых заданий, характеризующихся определенными датами начала и окончания, пределами финансирования и ресурсами." Р. Фатрелл, Д. Шафер, Л. Шафер. Управление программными проектами

Исходя из этого, если кварк - отдельная задача в рамках проекта, то откуда возьмется коллективная работа над проектом? Делать кучу веток сообразно с имхо? Тогда проекта так и не будет.

Автор:  вопрос [ Чт янв 15, 2009 22:08 ]
Заголовок сообщения: 

Цитата:
Просто мне кажется, что начинать стоит с себя. Надо выработать правила оформления кода и им следовать.
Когда будет что предложить - предлагать конкретно, а не обще, мол, давайте!
Ну, получается, что этой темой я спрашиваю мнения

Автор:  вопрос [ Чт янв 15, 2009 22:11 ]
Заголовок сообщения: 

Хищник писал(а):
вопрос писал(а):
ради упоминавшейся коллективной работы над одним проектом ... а не любования на систему со стороны (Хищник забыл о чем речь?)



Исходя из этого, если кварк - отдельная задача в рамках проекта, то откуда возьмется коллективная работа над проектом? Делать кучу веток сообразно с имхо? Тогда проекта так и не будет.


Тогда зачем предлагать кварк в качестве именно коллектичной работы ЭТИМ людям?
Хищник, ещё раз (Хищнику тоже ... ) нужна попытка коллективной работы, чтобы понять (ткнуться носом в) потребности стандарта - над чем угодно, хоть над крестиками-ноликами

Автор:  mOleg [ Чт янв 15, 2009 22:19 ]
Заголовок сообщения: 

вопрос писал(а):
Цитата:Просто мне кажется, что начинать стоит с себя. Надо выработать правила оформления кода и им следовать.
Когда будет что предложить - предлагать конкретно, а не обще, мол, давайте!Ну, получается, что этой темой я спрашиваю мнения

ну, так вам и говорят, читайте "Thinking Forth" Броуди, смотрите на уже существующие соглашения.
Следуйте правилам, типа не писать слишком длинных слова, всегда делать коментарии, не делать более двух ветвлений на одно слово и пр.

Страница 6 из 8 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/