SASGIS

Веб-картография и навигация

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

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

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

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

Сообщение vdemidov » 29 окт 2012, 12:14

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

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

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

Сообщение EVGENRUS » 03 дек 2012, 14:59

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

Например, сейчас хочу разобраться с "ядром" - как на форме определяется, какие это географические координаты, далее как формируется запрос серверу и выводится загруженное изображение в нужную точку (опять пересчет только из lat/lon в y/x ?). Ну и хранилище... отдельная тема... :)
EVGENRUS
Новичок
 
Сообщения: 13
Зарегистрирован: 27 апр 2012, 10:07
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение vdemidov » 03 дек 2012, 15:19

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

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

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

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

Сообщение EVGENRUS » 03 дек 2012, 15:32

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

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

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


Понятно.
А пуллреквесты можно делать без подключения права write на трекере? Так было бы конечно удобно.
Возможно, сегодня обнаружил ошибку i_VectorItmesFactory. Вместо Items. Интерфейс так же назван с ошибкой IVectorItmesFactory, и другие упоминания, типа ( const AVectorItmesFactory: IVectorItmesFactory ).
EVGENRUS
Новичок
 
Сообщения: 13
Зарегистрирован: 27 апр 2012, 10:07
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение vdemidov » 03 дек 2012, 15:41

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

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

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

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

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

Сообщение vdemidov » 03 дек 2012, 15:54

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

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

Сообщение Fed » 04 янв 2013, 14:08

Подскажите, каким образом (какой модуль) происходит чтение (запись) настроек из *SASPlanet.ini*?
Есть необходимость внести 2 строчки в этот файл настроек:
1. Занимаюсь реализацией функции каскадного включения/выключения категорий меток (Хотелка 917), чтобы была возможность включить (выключать) эту функцию в зависимости от настроек SASPlanet.ini
2. Так же, в SASPlanet.ini необходимо настроить доступ к кнопки «Экспорт», чтобы была возможность отключения этой кнопки –> btnExpotr.Enabled:=False/True (в окне «Управления меток» (frm_MarksExplorer)).
Fed
Новичок
 
Сообщения: 19
Зарегистрирован: 25 дек 2012, 13:28
Откуда: Сосновый Бор
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

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

Сообщение zed » 04 янв 2013, 15:38

А там это дело не в одном файле зашито. Можно считать, что практически каждая секция в ini это отдельный конфиг, co своим интерфейсом и реализацией.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

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

Сообщение Fed » 04 янв 2013, 16:01

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

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

Первые три в общих чертах ясны (хотя дополнительное описание хорошо бы помогло), а вот u_UsedMarksConfigStatic.pas в данном случае для чего?
Fed
Новичок
 
Сообщения: 19
Зарегистрирован: 25 дек 2012, 13:28
Откуда: Сосновый Бор
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

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

Сообщение zed » 04 янв 2013, 16:07

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

За это сообщение автора zed поблагодарил:
Fed (04 янв 2013, 16:14)
Рейтинг: 5.26%
 
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Пред.След.

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

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

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