OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 17:25

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




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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Hi!

Как концепция "программы-документа" с ее бинарным форматом уживается с VCS? Скомпилировать просто текст у меня получилось, но все примеры идут именно как "документы". Какие есть общепринятые подходы к этой проблеме?


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

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

У Oberon Microsystems для CVS наверняка что-то есть - они ведь ББ под себя и разрабатывали, для выполнения заказных проектов..

Мы в "Метасистемах" думаем над этой вещью. Пока еще не очень приперло, но скоро потребуется...


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 18:42
Сообщения: 42
Откуда: Ярославль
Как вариант конечно можно использовать любую VCS. BB не дает сохранить файл если он read-only. Но к сожалению редактировать его позволяет, поэтому про то что файл кем-то заперт можно узнать уже после внесеных изменений.

Когда проект серьезный (разные версии у клиентов, больше 1 разработчика) VCS нужна как воздух


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Anton писал(а):
Как вариант конечно можно использовать любую VCS. BB не дает сохранить файл если он read-only.


Меня больше интересовала возможность отслеживать сделанные изменения.


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 18:42
Сообщения: 42
Откуда: Ярославль
Anonymous писал(а):
Меня больше интересовала возможность отслеживать сделанные изменения.

Тогда 2 варианта:
1. Писать комментарии при Check-In (что конечно лениво)
2. Делать самописную CVS для BB. Или как миниум что-то что может сравнивать документы BB


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Anton писал(а):
Когда проект серьезный (разные версии у клиентов, больше 1 разработчика) VCS нужна как воздух


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

Кстати, несколько версий в Блэкбоксе удобно вести при запуске оного в server-варианте: тогда разные рабочие папки содержат разные версии.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну так это общепринятая метода. У меня на машине - 10 "конфигураций" ББ, каждая в своей папке. И ярлычок к каждой.

Кстати, насчет контроля версий, - поглядите на отображение Time Stamp:
Tools->Insert Stamp, модуль StdStamps. Кое для чего может быть полезен. А если покопать в этом направлении и расширить?


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
info21 писал(а):
Опытные люди говорят, что потребность в VCS при работе с Оберонами сильно уменьшается.


Такую ерунду могут сказать только люди, не имеющие никакого отношения к разработке ПО как инженерной науке.

info21 писал(а):
При этом высказывается гипотеза, что где-то что-то все равно вылезет.


Вылезет. И это не гипотеза, а суровая правда жизни. Как только выйдет первый релиз или число разработчиков превысит 1.

info21 писал(а):
Кстати, несколько версий в Блэкбоксе удобно вести при запуске оного в server-варианте: тогда разные рабочие папки содержат разные версии.


Вот этой идеи я не понял. А как изменения сделанные в одной версии проводить в другую?


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Anton писал(а):
Тогда 2 варианта:
1. Писать комментарии при Check-In (что конечно лениво)
2. Делать самописную CVS для BB. Или как миниум что-то что может сравнивать документы BB


3. Хранить документы как plain-text.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Anonymous писал(а):
info21 писал(а):
Опытные люди говорят, что потребность в VCS при работе с Оберонами сильно уменьшается.


Такую ерунду могут сказать только люди, не имеющие никакого отношения к разработке ПО как инженерной науке.


Я бы не стал так резко возражать. Речь шла не об отсутствии необходимости CVS, а о том, что ее необходимость ощущается менее остро, и сама CVS (буде такая создана, а она наверняка уже давно используется той же Oberon Ms. внутрифирменно) будет организована проще.

Этому способствует, например:
1) Полноценная модульность,
2) а особенно ее динамическая реализация. Уже то, что число пересборок проекта целиком уменьшается в несколько раз...
2) Удобная концепция подсистем
и т.д.

По сути, нужен просто репозиторий, который сохраняет всю историю изменений. А структуризация проектов по подсистемам уже очень неплоха. Поучителен опыт американцев, которые используют в оборонке Ada - это очень хороший язык в плане модульности. У них проблема командной разработки решалась еще на этапе дизайна языка (пакеты - аналог модулей - могут быть вложены иерархически, на каждый пакет строгие ограничения - что и как доступно снаружи, разработчики могут работать параллельно, не имея никакого доступа к коду соседнего модуля, т.к. они еще разную степень секретности имеют...) И сравните с С++, где на вход компилятора поступает один большой текстовик, собранный препроцессором из всех .h файлов... Ясное дело, что для немодульного языка контроль версий на порядок сложнее.

Да и сделать драйвер виртуальной файловой системы к сетевому репозиторию на ББ не очень сложно. Пример перед глазами - DevPacker.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Этому способствует, например:
1) Полноценная модульность,
2) а особенно ее динамическая реализация. Уже то, что число пересборок проекта целиком уменьшается в несколько раз...
2) Удобная концепция подсистем
и т.д.


Не вижу связи. Модульность может быть сколь угодно хороша, а история и контроль изменений должны быть. Впрочем я не собираюсь доказывать прописные истины.


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

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Илья Ермаков писал(а):
По сути, нужен просто репозиторий, который сохраняет всю историю изменений.


Влад, одним постом выше я сказал ту же самую прописную истину, что и ты. Просто контроль версий - это только часть коллективной работы, а вот разделение ответственности за блоки проекта - это вторая часть. Если в языке нет полноценной модульности, то эта часть ложится на CVS, не так ли? Не мне тебе объяснять, у меня опыта работы в команде более 7 человек нет, говорю это честно.


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

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


Нет, это ортогональные понятия. Так же как и разделение работы само по себе. Конкретно в нашей команде нет понятия "хозяина" кода, весь код общий, сегодня ты сделал фичу, завтра кто-то другой в ней исправил баги. При таком подходе болезнь/отпуск/увольнение члена команды не сказываются критически на судьбе проекта, больше возможностей для code reuse и каждый член команды намного лучше понимает особенности системы в целом. Модульность, какая бы идеальная она не была, не отменяет иерархических зависимотей между компонентами системы. Более высокоуровневые компоненты все равно будут зависеть от более низкоуровневых. Даже два человека не смогут работать над одним проектом совершенно изолировано, у них обязательно будут общие куски кода (иначе можно говорить о неэффективном code reuse). CVS позволяет отследить изменения в системе и постоянно быть в курсе текущего положения дел. Если кто-то чего-то поменял в базовой компоненте - ты это увидишь, если кто-то добавил новую компоненту - ты сможешь ее в будущем использовать не изобретая собственный велосипед. Все эти сведения ты можешь получить в любой момент (я, например, предпочитаю за чашкой утреннего кофе), без отвлечения остальных разработчиков, которые могут быть банально недоступны в тот момент, когда у тебя после взятия новой версии что-то перестало работать. Если разбираясь в чужом коде ты видишь какой-то кусок кода, и не понимаешь зачем он был написан, ты всегда можешь покапаться в истории им выяснить с каким событием связано его появление (особенно забавно бывает узнать, что автором этого куска являешься ты ;)

Илья Ермаков писал(а):
Не мне тебе объяснять, у меня опыта работы в команде более 7 человек нет, говорю это честно.


У нас команда из 5 человек. Как можно жить без CVS - я не представляю :)

P.S. Про всякие технические вещи, избавляющие от трудоемкой ручной работы (типа merge разных веток кода и пропагирования изменений из одной ветки в другую) я и не говорю...


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

Зарегистрирован: Вторник, 29 Ноябрь, 2005 22:34
Сообщения: 431
Откуда: Москва
Илья Ермаков писал(а):
Илья Ермаков писал(а):
По сути, нужен просто репозиторий, который сохраняет всю историю изменений.


Влад, одним постом выше я сказал ту же самую прописную истину, что и ты. Просто контроль версий - это только часть коллективной работы, а вот разделение ответственности за блоки проекта - это вторая часть. Если в языке нет полноценной модульности, то эта часть ложится на CVS, не так ли? Не мне тебе объяснять, у меня опыта работы в команде более 7 человек нет, говорю это честно.


По-моему, зря вы так долго обсуждается очевидную вещь. Для коллективной работы над проектами (особенно если речь идет не о кустарном производстве) системы управления версиями нужны. Делать что-то "самопальное" в этом плане для BlackBox можно, но зачем? Не проще ли обеспечить аккуратный экспорт-импорт исходных текстов BB в бинарном представлении в текстовое XML-представление? А его держать под контролем. Т.е. свести задачу к уже решенной.

В общем-то эта идея уже предлагалась в "Мыслях об Обероне".


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Anonymous писал(а):
info21 писал(а):
Опытные люди говорят, что потребность в VCS при работе с Оберонами сильно уменьшается.


Такую ерунду могут сказать только люди, не имеющие никакого отношения к разработке ПО как инженерной науке.


Да нет, это (или примерно это -- воспроизводил мысль по памяти) толковый и опытный проектировщик ПО сказал, из Питера.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
info21 писал(а):
Да нет, это (или примерно это -- воспроизводил мысль по памяти) толковый и опытный проектировщик ПО сказал, из Питера.


Значит у нас разные понятия о толковости и опытности.

P.S. Этот "проектировщик" код пишет? Или все больше диаграмы в розе рисует?


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

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


Извините если вдруг я не правильно Вас понял, но, кажется, под словом "код" Вы понимаете "исходный текст", не так ли? Значит под "code reuse" Вы понимаете переиспользование текста? В таком случае (если моё предположение о "code = текст" верно), то Вы что, собственно, смеётесь или в правду не понимаете? В модульных системах (каковыми являются оберон-системы) не исходный текст подлежит переиспользованию, а модуль, т. е. бинарник. Это только в не модульных языках навроде Си/Си++ пытаются переиспользовать текст, испытывая при этом массу проблем.


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

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


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


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

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


Мне все равно как ты это назовешь - текст или бинарный модуль. Я хочу трэкать изменения. Традиционные CVS не умеют работать с бинарниками, нетрадиционных на горизонте не видно, вместо этого предлагется отказаться от CVS вообще. Я считаю такой подход непригодным ни для чего, кроме наколенных студенческих поделок.


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

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Vlad писал(а):
Мне все равно как ты это назовешь - текст или бинарный модуль. Я хочу трэкать изменения.


Простите что вмешиваюсь. А Вас интересуют изменения внутри используемых Вами DLL? Или достаточно только описания изменений интерфейса?


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

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


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

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


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

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