IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Стиль кода, транслятор, оформление, публикация
сообщение
Сообщение #1


Большевик–концептуал
***

Группа: Пользователи
Сообщений: 194
Пол: Мужской
Реальное имя: Иван Левашев
Jabber: bu_gen@octagram.name
Skype: i.levashew
QQ: 3152538431
WeChat
Ада: Сторонник
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик
Turbo Pascal: Установлен

Репутация: -  1  +


Для реализации проектов выбран язык Ада в редакции стандарта 95го года. Рекомендуется оформлять исходные коды, руководствуясь соглашениями, описанными в Качество и стиль, с отступлениями от правил, именуемые стиль GNAT. В частности, отступ 3 пробела, зарезервированные слова в нижнем регистре, идентификаторы в Смешанном_Регистре_С_Подчёркиванием. Стиль GNAT отличается тем, что между именем функции или массива и скобкой ставится пробел. GNAT Programming Studio по умолчанию настроена на стиль.

При необходимости писать на других языках программирования по возможности используются те же правила оформления, как описанные выше для языка Ада, как более совершенные, чем те, что приняты в других языках программирования. При создании привязок по возможности производится конвертация идентификаторов в формат, принятый в языке Ада. КРИЧАЩИЙ_КАПС и ЕлеЧитаемыеСклееныеСлова все приводятся к Единственно_Нормальному_Виду, как в языке Ада.

В отличие от правил именования файлов с исходным кодом, популярных в других проектах на языке Ада, вида нижний-регистр.ads, настоятельно требуется именовать файлы так же, как названы пакеты, как в Delphi. То есть, пакет Wrapper.URL_Utilities должен располагаться в Wrapper.URL_Utilities.ads, а не Wrapper.Url_Utilities.ads, как требует строгое соответствие режиму Mixed_Case в GNAT, и не wrapper-url_utilities.ads, как принято по умолчанию. К сожалению, приходится принимать специальные меры, чтобы нормально назывались exe и dll, как в Delphi и .NET, тоже с соответствием регистра и точками, а не минусами. Регистр объектных файлов (.o) и промежуточных файлов на переносимом ассемблере (Си), впрочем, не столь принципиален.

В шапках исходных текстов, в комментариях указывается лицензия, а это, если по задаче не указано иное, Лицензия Апаче 2.0. В отличие от других комментариев, предпочтительно её текст на английском вставлять. Также в шапке ставятся копирайты. Кто автор, того и копирайт. Если по задаче не требуется передать исключительные права, то они так и остаются за автором. Если авторов несколько, добавляются копирайты.

Я узнавал, может ли где-то лицензия Апаче 2.0 быть неудобной. Выяснил, что она совмещается с GPL 2.0 только если весь проект покрывается GPL 3.0, а в GPL 3.0 для защиты от тивоизации требуется обеспечить возможность обновления прошивки на устройстве, что может как минимум удорожать устройство. И на миллион случаев взлома в целях майнинга хорошо, если будет один случай, когда энтузиаст воспользовался по назначению свом правом залезть под капот. Кажется, это единственная проблема с Апаче 2.0. С другой стороны, двойное (дизъюнктивное) лицензирование Apache 2.0+GPL 2.0 может сильно смущать. Решил не смущать. У нас из России это всё какие-то невиданные истории, чтоб кто-то с кем-то посудился за тивоизацию, и тяжело выверять свои шаги, будучи так далеко от всего этого. Обычная Лицензия Апаче 2.0 кажется нормальным решением.

Для сборок выпусков для скачивания другими пользователями рекомендуется применять GNAT, но для постоянной работы в целях узнавания инструмента использовать комбинацию AdaMagic + более современный gcc, чем тот, что там из коробки. Из коробки не поддерживаются atomic intrinsics, на которых построены счётчики ссылок. Например, gcc из комплекта GNAT GPL 2017 для Win32 годится.

Для работы над исходным кодом применяется SCM Mercurial, скачать которую можно в комплекте с превосходной, не считая выбора Qt для реализации GUI, оболочкой для неё, TortoiseHg. Ветка default используется как остриё прогресса, для релизов используются теги ревизий. Бывает так, что код заведомо сломает что-то, если отправить в default, но и наработки пора бы выложить, пусть даже код не собирается или сломан. Для этих случаев можно заводить дополнительные ветки. Когда код наконец собрался, делать коммит, закрывающий ветку, и потом сливать в default.

Для отслеживания задач используется Форум «Всё о Паскале». Темы в разделах категории НИФ СП, кроме текущего хозяйственного раздела Деятельность Фонда, закрепляются вверху, и так считаются поставленными к исполнению. По приёмке работы тема открепляется и становится просто темой для обсуждений.

В названиях коммитов Mercurial настоятельно рекомендуется указывать задачу, при работе над которой был сделан коммит. Где-то в тексте назначения коммита должен быть текст #12345 , который соответствует id темы на Форуме. TortoiseHg и хостинги, как правило, можно настроить, чтоб они превращали это в гиперссылку.

Для хостинга исходного кода на текущий момент выбран https://osdn.net/

Для документации рассматривается http://www.linux-france.org/~dmentre/lp4all/ . На текущий момент есть нестрогое пожелание писать комментарии к объявлениям в спецификациях пакетов, можно на русском. Писать выше или ниже объявлений процедур — интересный вопрос. Надо бы расставить раз и навсегда точки над i. Написать комментарий без пустых строк между двумя процедурами и посмотреть, к какой из них он приклеится в подсказке GPS. С пустыми строками вроде бы работает в обе стороны. Что касается комментариев в коде, хороший нужный комментарий отвечает на вопрос «зачем».


--------------------
If you want to get to the top, you have to start at the bottom
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 21.05.2022 19:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name