OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 10:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: Воскресенье, 28 Ноябрь, 2010 14:46 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Александр Ильин писал(а):
Надо в Обероне сделать как в Ассемблере - комментарий от ";" до конца строки.
не согласен. приведёт к размазыванию текстов на большое число строк


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 12:08 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Евгений Темиргалеев писал(а):
Александр Ильин писал(а):
Надо в Обероне сделать как в Ассемблере - комментарий от ";" до конца строки.
не согласен. приведёт к размазыванию текстов на большое число строк

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 12:42 

Зарегистрирован: Четверг, 23 Апрель, 2009 18:01
Сообщения: 219
Я на одной строке пишу операции, которые логически являются атомарными. Копипаста их не нарушит.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 13:00 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Berserker писал(а):
Я на одной строке пишу операции, которые логически являются атомарными. Копипаста их не нарушит.

Это не проблема копипасты, а проблема восприятия.

Ну и проблема последующего постмортем-анализа, многие тулзы могут сказать на какой строчке навернулось, но не все могут прямо сказать при выполнении какой конкретно операции.

Логически неделимое нечто неплохо бы таки выделять в отдельную сущность, например в функцию.

Впрочем, я тоже люблю в одну строчку писать нечто логически не делимое (в разных языках). За что был периодически бит :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 13:06 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Кстати, нередко наблюдаю ситуацию, когда искажается суть размещённого в интернете кода после копирования в редактор.

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


Последний раз редактировалось Роман М. Понедельник, 29 Ноябрь, 2010 13:10, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 13:07 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Роман М. писал(а):
Кстати, нередко наблюдаю ситуацию, когда искажается суть размещённого в интернете кода после копирования в редактор.

А подробней можно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 13:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexey Veselovsky писал(а):
Много где считается хорошим стилем именно по одной операции на одной строке. Собственно почти везде. В промышленном коде естественно.
"Много где" ещё не означает что так надо везде и это лучший вариант. А ещё много где производительность измеряется числом строк...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 13:42 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Код, размещённый на сайтах, в которых нет обрамления кода. В таком коде могут быть проблемы с комментариями по вышеуказанным причинам.
Или, допустим, код на Питоне, который требует отступов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:06 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
При сравнении двух версий исходника (в Subversion или ещё где-то) гораздо лучше видно суть изменения, если все операторы размещаются на отдельных строках. Этот удалили, этот добавили, этот заменили. Иначе каша, которая ещё и подсветится неправильно в программе сравнения.

Аналогично с пошаговым отладчиком и установкой BreakPoint'ов. Шаг отладчика = 1 строке. Если у нас в одной строке IF ELSE END, то не видно, какая ветка отработала. Или на каком из цепочки операторов вылетело исключение, не говоря уж о промежуточных значениях переменных.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:12 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Евгений Темиргалеев писал(а):
Alexey Veselovsky писал(а):
Много где считается хорошим стилем именно по одной операции на одной строке. Собственно почти везде. В промышленном коде естественно.
"Много где" ещё не означает что так надо везде и это лучший вариант. А ещё много где производительность измеряется числом строк...

Производительность числом строк кода за единицу времени давно уже не меряют. Даже у индусов-аутсорсеров.

Везде безусловно не надо. Например в книжках не надо. Но в промышленном коде обычно надо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:19 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Александр Ильин писал(а):
Аналогично с пошаговым отладчиком и установкой BreakPoint'ов. Шаг отладчика = 1 строке.

Справедливости ради, это не везде так. Кое-где шаг это таки операция (при этом в коде подсвечивается ровно тот текст который соответствует текущему шагу). Это удобно в том числе когда у нас есть нечто вроде:
Код:
foo(boo(zoo()) + 42, boo()/13);


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:20 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Alexey Veselovsky писал(а):
Производительность числом строк кода за единицу времени давно уже не меряют. Даже у индусов-аутсорсеров.
А чем меряют? Я не в теме просто.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:24 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Peter Almazov писал(а):
Alexey Veselovsky писал(а):
Производительность числом строк кода за единицу времени давно уже не меряют. Даже у индусов-аутсорсеров.
А чем меряют? Я не в теме просто.

В закрытых CR (Client Request). При этом каждый CR оценивается в часах (менеджеры и разработчики как-то сторговываются с заказчиком во сколько часов данный CR оценивается).

По сути в конце концов смотрится на сколько часов закрыто CR'ок за единицу времени (например неделю).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:31 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Александр Ильин писал(а):
При сравнении двух версий исходника (в Subversion или ещё где-то) гораздо лучше видно суть изменения, если все операторы размещаются на отдельных строках. Этот удалили, этот добавили, этот заменили. Иначе каша, которая ещё и подсветится неправильно в программе сравнения.

Аналогично с пошаговым отладчиком и установкой BreakPoint'ов. Шаг отладчика = 1 строке.
Это ровном счётом проблемы, вызыванные спецификой отладчика и сравнителя текстов. Т.е. получается, что в данном случае требование писать один оператор в одну строку прежде всего диктуется спецификой инструмента.

Специфика восприятия, по-моему, в деталях субъективна. Понятно, что если писать всё в одну строку, то не понятно будет всем. Однако каждый оператор на одной строке, это, кажется, скорее детали. Раньше я тоже с трудом разбирал по паре операторов в строке, т.к. привык к одному. Теперь же наоборот, у меня восприятие буксует, если несколько простых операторов размазаны на отдельные строки...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:39 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Евгений Темиргалеев писал(а):
Это ровном счётом проблемы, вызыванные спецификой отладчика и сравнителя текстов. Т.е. получается, что в данном случае требование писать один оператор в одну строку прежде всего диктуется спецификой инструмента.

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

В частности необходимость лепить пачку операторов на одной строке частенько идет из за специфики такого инструмента как "бумажная книга", которая не имеет таких элементарных функций, как например полнотекстовый поиск, отображение одновременно более чем двух страниц и т.п. Да что там, она даже свертку кода (aka folding) не умеет!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 14:42 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexey Veselovsky писал(а):
Мы всегда работаем с вполне конкретными инструментами (сам язык, его компилятор, ...
В частности необходимость лепить пачку операторов на одной строке частенько идет из за специфики такого инструмента как "бумажная книга"...
Разница есть: специфику инструмента "бумажная книга" не поменять. А "вполне конкретные инструменты" могут быть доработаны...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Ноябрь, 2010 22:04 

Зарегистрирован: Четверг, 23 Апрель, 2009 18:01
Сообщения: 219
Alexey Veselovsky писал(а):
Впрочем, я тоже люблю в одну строчку писать нечто логически не делимое (в разных языках). За что был периодически бит :-)

Скажем, в ЯП без сборки мусора передачу объекта на владение делаю следующим образом:
A := B; B := NIL;
Удаление объекта из списка:
TObject(List[i]).Free; List[i] := NIL;
Кое-где конструкции, возможно, и избыточны, но уменьшают вероятность ошибок работы с памятью.
А вот чтение некоторых обероновских исходников режет глаза, так как привык к блочному коду с элементарными операциями и if ... else ... в одной строке считаю если не варварством, то для многих программистов нечитаемым точно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB