Вопросы по исходному коду

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду.

Сообщение vdemidov »

zed писал(а):На странице с исходниками есть кнопочка download по которой загружаются самые свежие исходники.

Но лучше таки пользоваться TortoiseHG и без проблем затянуть исходники и требуемые компоненты.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
EVGENRUS
Новичок
Сообщения: 13
Зарегистрирован: 27 апр 2012, 10:07

Re: Вопросы по исходному коду.

Сообщение EVGENRUS »

Всем привет!
Есть ли какое-то коротенькое описание исходного кода и основных объектов?
Достаточно сложно разбираться в коде, тем более он изобилует наследование и интерфейсами - т.е. до реализации метода сразу не доберешься, чтобы узнать что же в нем происходит.
Так же к модулям, классам и интерфейсам нет описания, хоть бы строчку, за что он отвечает и какой АТД представляет. А так приходится догадаться по названию, что не всегда удачно, в виду картографической терминологии и объема информации.
Прошу авторов не вставать на быды, сам код в пределах метода очень даже читаем и понятен! Но комментариев нет и это факт, да и код не 10 строк :)

Например, сейчас хочу разобраться с "ядром" - как на форме определяется, какие это географические координаты, далее как формируется запрос серверу и выводится загруженное изображение в нужную точку (опять пересчет только из lat/lon в y/x ?). Ну и хранилище... отдельная тема... :)
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду.

Сообщение vdemidov »

EVGENRUS писал(а):Есть ли какое-то коротенькое описание исходного кода и основных объектов?

Нет. Увы, что есть, то есть.
EVGENRUS писал(а):рошу авторов не вставать на быды, сам код в пределах метода очень даже читаем и понятен! Но комментариев нет и это факт, да и код не 10 строк

Можете начать участие в проекте с попытки написать описания к интерфейсам и класса. Пишите так как вы это понимаете по названию и оформляйте пуллреквест. Я обещаю внимательно читать и исправлять если вы ошибетесь. Главное небольшими порциями.
Если найдете названия интерфейсов и классов, для которых сможете предложить лучшие имена, тоже не стесняйтесь, только это лучше сначала посоветоваться здесь, а лучше создав инцидент в багтрекере с типом "Рефакторинг"
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
EVGENRUS
Новичок
Сообщения: 13
Зарегистрирован: 27 апр 2012, 10:07

Re: Вопросы по исходному коду.

Сообщение EVGENRUS »

vdemidov писал(а):
EVGENRUS писал(а):Есть ли какое-то коротенькое описание исходного кода и основных объектов?

Нет. Увы, что есть, то есть.
EVGENRUS писал(а):рошу авторов не вставать на быды, сам код в пределах метода очень даже читаем и понятен! Но комментариев нет и это факт, да и код не 10 строк

Можете начать участие в проекте с попытки написать описания к интерфейсам и класса. Пишите так как вы это понимаете по названию и оформляйте пуллреквест. Я обещаю внимательно читать и исправлять если вы ошибетесь. Главное небольшими порциями.
Если найдете названия интерфейсов и классов, для которых сможете предложить лучшие имена, тоже не стесняйтесь, только это лучше сначала посоветоваться здесь, а лучше создав инцидент в багтрекере с типом "Рефакторинг"


Понятно.
А пуллреквесты можно делать без подключения права write на трекере? Так было бы конечно удобно.
Возможно, сегодня обнаружил ошибку i_VectorItmesFactory. Вместо Items. Интерфейс так же назван с ошибкой IVectorItmesFactory, и другие упоминания, типа ( const AVectorItmesFactory: IVectorItmesFactory ).
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду.

Сообщение vdemidov »

EVGENRUS писал(а):А пуллреквесты можно делать без подключения права write на трекере? Так было бы конечно удобно.

Все что нужно это зарегистрироваться на бибукете и сделать форк репозитория. Потом делаете исправления, коммитите их. Отправляете их в свой форк и уже потом в веб интерфейсе битбукета отправляете пул-реквест. Мороки чуть больше, зато гораздо больше порядка.

EVGENRUS писал(а):Возможно, сегодня обнаружил ошибку i_VectorItmesFactory. Вместо Items. Интерфейс так же назван с ошибкой IVectorItmesFactory, и другие упоминания, типа ( const AVectorItmesFactory: IVectorItmesFactory ).

Стопудово опечатка. Спасибо. Эту я и так поправлю, а на будущее, лучше всего писать тикет в трекере. А такие особо явные можно и самому исправлять.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду.

Сообщение vdemidov »

Еще, небольшая просьба по возможности пользоваться такой вещью как Rebase. То есть если вы сделали коммит изменений, но еще никуда не залили и видите, что в основной ветке появились новые коммиты, то по возможности лучше затянуть их к себе и переместить свои коммиты на голову ветки перед тем как отправлять на сервер и создавать пулл-реквест. Но это исключительно просьба, если лень, то можно и проигнорировать.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Fed
Новичок
Сообщения: 19
Зарегистрирован: 25 дек 2012, 13:28
Откуда: Сосновый Бор
Благодарил (а): 4 раза

Re: Вопросы по исходному коду.

Сообщение Fed »

Подскажите, каким образом (какой модуль) происходит чтение (запись) настроек из *SASPlanet.ini*?
Есть необходимость внести 2 строчки в этот файл настроек:
1. Занимаюсь реализацией функции каскадного включения/выключения категорий меток (Хотелка 917), чтобы была возможность включить (выключать) эту функцию в зависимости от настроек SASPlanet.ini
2. Так же, в SASPlanet.ini необходимо настроить доступ к кнопки «Экспорт», чтобы была возможность отключения этой кнопки –> btnExpotr.Enabled:=False/True (в окне «Управления меток» (frm_MarksExplorer)).
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Вопросы по исходному коду.

Сообщение zed »

А там это дело не в одном файле зашито. Можно считать, что практически каждая секция в ini это отдельный конфиг, co своим интерфейсом и реализацией.
Fed
Новичок
Сообщения: 19
Зарегистрирован: 25 дек 2012, 13:28
Откуда: Сосновый Бор
Благодарил (а): 4 раза

Re: Вопросы по исходному коду.

Сообщение Fed »

zed писал(а):А там это дело не в одном файле зашито. Можно считать, что практически каждая секция в ini это отдельный конфиг, co своим интерфейсом и реализацией.

Это я понимаю, посмотрел код на примере секции [MarksShow] (он больше подходит для формы frm_MarksExplorer).
И стал смотреть, где используется переменная IgnoreCategoriesVisible (в 4-х файлах):
frm_MarksExplorer.pas
i_UsedMarksConfig.pas
u_UsedMarksConfig.pas
u_UsedMarksConfigStatic.pas

Первые три в общих чертах ясны (хотя дополнительное описание хорошо бы помогло), а вот u_UsedMarksConfigStatic.pas в данном случае для чего?
zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Вопросы по исходному коду.

Сообщение zed »

Конфиги, с постфиксом *Static, это конфиги только для чтения. Не забываем, что программа многопоточная и пока вы читаете один параметр конфига, кто-то может изменить другой параметр, а иногда нам надо получить конфиг "как есть" на данный момент. Да и статический конфиг будет банально быстрее, т.к. там нету блокировок (синхронизации) на чтение/запись.
Ответить

Вернуться в «Раздел для разработчиков программы SAS.Планета»