OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 16 Август, 2018 00:00

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 13:48 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Ivor писал(а):
Простите что вмешиваюсь. А Вас интересуют изменения внутри используемых Вами DLL? Или достаточно только описания изменений интерфейса?


Если DLL - часть проекта, то меня интересуют изменения исходников этих DLL. Это не значит, что я буду повседневно внимательно отслеживать все изменения, сделанные другими членами команды, обычно внимание обращается на изменение интерфейсной части, но когда придет время фиксить баги, я хочу, чтобы всю историю можно было поднять со всеми подобностями.

P.S. У нас в текущем проекте ресурсы форм хранятся в бинарном виде. Постоянная головная боль.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Vlad писал(а):
Я хочу трэкать изменения.


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

Separate Compilation and Module Extension
http://www.oberon2005.ru/paper/eth10650.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 14:40 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Сергей Губанов писал(а):
"отпечатками пальцев" (fingerprint)


Каким боком здесь "отпечатками пальцев"? Ладно поясняю на пальцах. Вчера твой коллега поменял модуль "Kernel". Сегодня ты взял последнюю версию этого модуля и у тебя все перестало работать. Твои действия?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 14:46 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8970
Откуда: Россия, Орёл
Не спорю, что CVS здесь будет полезной, но, строго говоря, тот, кто писал модуль Kernel, должен был его сначала протестировать, что пред-пост условия и инварианты функций остались правильными. А если ошибка есть, то я бы не стал поручать ее исправлять никому, кроме ответственного за модуль. Иначе бардак получится...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 14:49 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8970
Откуда: Россия, Орёл
Кроме того, подход, принятый в ББ, требует, чтобы во всех контрольных точках, в каждой процедуре были оговорены ASSERT-ы. Тогда вероятность того, что программа "стала работать не так" сильно уменьшается. Сразу будет видно, какие условия нарушены, и где искать ошибку.
P.S. против CVS я не спорю :-) Нужна она, нужна, да где ее пока взять под ББ? Вот руки никак не доходят сделать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 15:38 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Vlad писал(а):
Каким боком здесь "отпечатками пальцев"? Ладно поясняю на пальцах. Вчера твой коллега поменял модуль "Kernel". Сегодня ты взял последнюю версию этого модуля и у тебя все перестало работать. Твои действия?


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 15:41 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8970
Откуда: Россия, Орёл
Перестать-то может, если будут нарушены спецификации. Ну так в Оберонах и пропагандируется, чтобы программист максимальное внимание обращал на соответствие реализации модуля спецификации. Для того и проверки многие неотключаемые, и ассерты на каждом углу, и расширенные проверки целостности при линковке модулей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 15:47 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Сергей Губанов писал(а):
Если он поменял интерфейс своего модуля, значит это деяние уже было согласовано со мной заранее. Если он поменял реализацию своего модуля, то с какой стати что-то перестанет работать в моём модуле?


Детский сад. С такими вопросами не ко мне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 15:50 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Илья Ермаков писал(а):
Перестать-то может, если будут нарушены спецификации.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Среда, 30 Ноябрь, 2005 15:57 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 8970
Откуда: Россия, Орёл
Сергей, спецификации есть не только на интерфейс, но и на функциональность. Если новая реализация перестает отрабатывать какие-либо раньше допустимые входные данные, будет ошибка. Если она будет отрабатывать их не так, как раньше, будет изменение поведения.

Просто прежде чем менять, надо думать. И проверять почаще, благо пересборка проекта не нужна. А если ошибка, то лучше всего, если исправлять ее будет автор модуля. Вот тут-то CVS может и пригодиться, хотя обычно ошибки в логике на КП отлавливаются проще, чем в "классических" языках. Ставятся в контрольных точках дополнитильные ловушки-ассерты и прерывания-халты, и внимательно анализируются дампы. До полного просветления в голове. А пока этого просветления в голове не наступает, ничего лучше не менять. А то общепринятый подход - попробуем вот тут и вот тут подправить и на пошаговом отладчике прогоним, авось заработает! Так не годится, надеюсь, все понимают, почему.


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

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


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

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


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

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