Автор Тема: [Oberon-07] Руководство по стилю кодирования  (Прочитано 37238 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
[Oberon-07] Руководство по стилю кодирования
« : Сентябрь 01, 2013, 06:20:56 pm »
Начал писать руководство по стилю кодирования. За образец взял документ Ada Quality and Style Guide, pdf-версия которого содержит 377 страниц.
Подумал -- ну, Обероне же проще Ады, так что страниц будет намного меньше...

Ну, начало положено, дальше продолжу...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #1 : Сентябрь 01, 2013, 09:10:50 pm »
До кучи вот соглашения принятые в ББ. Возможно стоит взять за отправную точку их.
Y = λf.(λx.f (x x)) (λx.f (x x))

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #2 : Сентябрь 02, 2013, 06:26:36 am »
Начал писать руководство по стилю кодирования.
Посмотрел. Думаю, что документ весьма полезен, особенно для начинающих.
Да, привет любителям пропорциональных шрифтов  :D

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #3 : Сентябрь 02, 2013, 07:50:34 am »
Начал писать руководство по стилю кодирования.
Посмотрел. Думаю, что документ весьма полезен, особенно для начинающих.
Да, привет любителям пропорциональных шрифтов  :D

Пропорциональные шрифты, похоже, используют лишь блекбоксёры и ненавидимый ими Страуструп )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #4 : Сентябрь 02, 2013, 08:09:25 am »
Кстати, если удастся формализовать стилистические правила, то это открывает новые возможности. Допустим, загружаешь в свой специализированный редактор чужые сырцы, нажимаешь кнопку "Исправить стиль", и - вуаля!

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #5 : Сентябрь 02, 2013, 08:41:59 am »
Кстати, если удастся формализовать стилистические правила, то это открывает новые возможности. Допустим, загружаешь в свой специализированный редактор чужые сырцы, нажимаешь кнопку "Исправить стиль", и - вуаля!

Ну да, это стандартный инструмент у тех же ада-программеров -- Reformat.
Правда, почему-то мне не удалось заставить его запуститься в Ada-студии GPS... ))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #6 : Сентябрь 02, 2013, 08:44:13 am »
Кстати, если удастся формализовать стилистические правила, то это открывает новые возможности. Допустим, загружаешь в свой специализированный редактор чужые сырцы, нажимаешь кнопку "Исправить стиль", и - вуаля!
Я не слишком люблю подобное автоформатирование по двум причинам:
1) коментарии могут оказаться в самых необычных местах.
2) убивается авторское форматирование некоторых специфических штук, ну например некоторые вещи в коде удобно оформить табличками.

Но иногда да, код такой, что явно там ни комментов ни табличек, и читать такой код совершенно невозможно. В этом случае уж лучше автоформат.
Y = λf.(λx.f (x x)) (λx.f (x x))

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #7 : Сентябрь 02, 2013, 12:56:49 pm »
2) убивается авторское форматирование некоторых специфических штук
Согласен с замечанием. Самому лучше вручную придерживаться стиля, и не пользоваться автоформатом.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #8 : Сентябрь 02, 2013, 08:49:45 pm »
Если судить о простоте языка не по его "арифметике синтаксиса", а по длине руководства по стилю кодирования, то хаскель получается куда уж проще оберонов:

Snap Framework Haskell Style Guide

Минимальнейший текст, а вроде и не прибавить к нему ничего -- всё что надо, указано! о_О
Вот как надо проектировать языки -- что бы нетрудно было на них правильно оформлять программы )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #9 : Сентябрь 03, 2013, 02:29:26 am »
Цитировать
Некоторые редакторы умеют делать "умное выравнивание" при использовании символов табуляции для выравнивания строк кода. Однако такие редакторы не слишком распространены и чаще всего использование табуляции приводит к плачевному разрушению форматирования программ при различающихся настройках в разных редакторах.
Поэтому использование символов табуляции в текстах программ крайне нежелательно.

Это какие такие редакторы "плачевно" реагируют на табуляцию? Блокнот, что ли??

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #10 : Сентябрь 03, 2013, 02:35:01 am »
Цитировать
так что разумное использование выравнивания очень приветствуется.

Лучше пишите так:

TYPE
  Event = RECORD
    date    : Date;
    time    : Time;
    location: Location
  END;

Угу, и если нужно добавить новое поле, то я буду перебивать отступы в 5 соседних? Удивительно, как часто забывается, что "программёр больше не писатель, а менятель".
Специальный редактор/плагин будем искать для такого? Особенно, после того, как отказались от табуляций, потому что хотим работать в гипотетических "любых редакторах"...
"Разумное использование выравнивания приветствуется..." - так разумное или чрезмерное? Что добавляет для читабельности вот это центрование двоеточий?
Вот будет семантическое редактирование - и табличка объявлений в таком редакторе, это дело. А изголяться так в тексте...

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #11 : Сентябрь 03, 2013, 02:38:42 am »
Цитировать
Разумное использование пустых строк для группирования логически связанных блоков программы повышает её понятность при чтении.

Лучше бы пропагандировать ограничение размера процедур в среднем 15 строками и запрещать вложенность циклов в рамках одной процедуры (кроме случаев типа FOR x .... DO FOR y... DO FOR z ... DO...).
И тогда логически "связанные блоки программы" будут оформлены, как и следует, отдельными процедурами.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #12 : Сентябрь 03, 2013, 02:42:18 am »
Цитировать
Имена неэкспортированных полей записей, параметров и локальных переменных процедур следует начинать со строчной буквы (в нижнем регистре).

Принятый не только в КП, но и в той же Java, и ещё много где, стиль, где имена типов-классов-модулей-процедур - с большой буквы, а имена объектов-переменный - с маленькой, наверное, лучше всего... Объявлять с разной буквы экспортированные и неэкспортированные поля - как-то странно.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #13 : Сентябрь 03, 2013, 02:54:29 am »
Не знаю, как это реализовывать в плоском тексте...

Но я использую оформление подчёркиванием выходных параметров при вызове процедур:

GetXxxXxx(aa, bb, cc, cc)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: [Oberon-07] Руководство по стилю кодирования
« Ответ #14 : Сентябрь 03, 2013, 02:59:34 am »
Если судить о простоте языка не по его "арифметике синтаксиса", а по длине руководства по стилю кодирования, то хаскель получается куда уж проще оберонов:

Можно судить по чему угодно, хоть по длине ...ки. Не проще пойти куда-нибудь класс в 9-й, хотя бы, и там посудить "о простоте языка"? :)
Я просто не понимаю, зачем оригинальничать и делать заведомо некорректные высказывания, чисто чтоб сказать.