Подтвердить что ты не робот

Контроль версий для Smalltalk/Seaside?

Я в первую очередь разработчик Java EE. Меня попросили изучить возможность использования Smalltalk/Seaside в предстоящем веб-проекте. Как вы можете себе представить, это привело к множеству интересных вопросов.

Как команда разработчиков внедряет управление версиями программного обеспечения и контроль версий с помощью Smalltalk/Seaside. Можете ли вы использовать Subversion или Git?

Из того, что я понимаю, Smalltalk использует образ, а не сохраняет каждый класс в свой собственный файл. Как это влияет на возможность управления версиями исходного кода, особенно в команде?

Большое спасибо за любую информацию, которую вы можете предоставить!

4b9b3361

Ответ 1

Настройка PharoGemstone)

Каждый разработчик работает по своему образу. Каждое изменение метода, которое он создает, сохраняется локально в файле изменений. Это позволяет восстановить при сбое изображения. Записи производятся путем создания файла monticello с именем пакета, порядковым номером и именем разработчика. Он знает свою родословную. Этот файл сохраняется на сервере WebDAV. Здесь он подхвачен задачей merging с помощью monticello. Состав продукта (структура упаковки) представляет собой еще один файл monticello, содержащий описание metacello. Это также позволяет разрабатывать на Pharo и размещать на Gemstone. Время от времени вам нужно добавить миграции классов.

Для не-smalltalk зависимостей и разработки, принятия тестов и производственных различий добавьте создание изображений виртуальных камер с помощью vagrant, chef-solo (или puppet, надеюсь, скоро Coral), veewee. Они, конечно, управляются версиями с помощью git.

В дополнение к использованию статических инструментов управления качеством кода (smallLint, также проверяет различия между диалектами smalltalk), добавьте Moose и создать собственную зависимую от контекста динамическую визуализацию проекта (гуманная оценка)

В VisualWorks Smalltalk локальный разработчик использует STORE с реляционной базой данных (например, PostgreSQL) для хранения локальных коммитов. Код организован в пакеты пакетов с пространствами имен. Репликация script используется для копирования локальных версий в центральную базу данных и из нее. Оттуда поток те же, что и с установкой Pharo.

[обновление] В Esug2012 Дейл Хенрикс представил работу, чтобы использовать git и github для управления небольшим кодом для нескольких диалектов. В основном, была определена файловая структура (Cypress для Amber, Gemstone, Pharo, Squeak, VisualAge, STIG для VisualWorks) для хранения методов smalltalk в каталогах. Это в настоящее время больше нацелено на обмен кода между диалектами, чем на замену родного SCM.

Ответ 2

Короткий ответ: вы не можете (на данный момент) использовать Git или Subversion.

Даже более короткий ответ: вам это не нужно:)

Большой ответ: см. объяснение Стефана о том, как он создан сам Фаро:)) Конечно, если вы привыкли к файловым системам, это будет странно в первом экземпляре, но как только вы начнете работать, вы поймете, что у вас есть все инструменты, необходимые для управления версиями (monticello - это замена для Git/Subversion), а также для создания сложных установок (metacello - это замена таких вещей, как maven). С некоторой работой (как всегда и с любой выбранной вами платформой) вы можете настроить свой собственный сервер непрерывной интеграции (jenkins или hudson или что-то еще), и вскоре вы будете работать в команде так же, как и в других средах, но с одним большим плюсом: вы будете разрабатывать Seaside/Smalltalk: P

Ответ 3

Есть несколько инструментов для Svn/ Git, но IMHO гораздо лучше пойти с потоком здесь и использовать Monticello, потому что Monticello дает вам очень похожий опыт, как git, но гораздо проще в использовании и много более интегрированы с методом "Smalltalk".

Вы не указали, какой Smalltalk, но если вы собираетесь использовать Pharo, это определенно Monticello (и когда материал становится сложным - Metacello сверху), чтобы использовать.

Ответ 4

Smalltalk имеет собственные системы упаковки/управления версиями, где пакеты исходного кода находятся под контролем, разделены, объединены и т.д. Какие диалекты Smalltalk вы планируете использовать? У Фаро есть Monticello и Metacello, у Squeak есть Monticello, у VisualWorks есть STORE.

Ответ 5

Разработка в Smalltalk обычно более продуктивна - но сначала вам нужно узнать о новых инструментах: Monticello/Metacello для упаковки (подумайте об этом как о сохранении пакета в собственном файле ZIP с расширением mcz и собственным номером версии каждый раз, когда вы фиксации). Metacello предоставляет информацию о том, какие пакеты Monticello подходят друг другу и должны быть загружены, чтобы обеспечить полное рабочее приложение (подобное POM в Maven, но в файле определенного класса ConfigurationOfXXX, где XXX - это имя компонента). Вам не нужны инструменты управления версиями, отличные от Smalltalk, такие как subversion, если вы не хотите управлять внешними ресурсами, такими как изображения или сценарии базы данных.

Также посмотрите на интеграцию Hudson/Jenking, так как это также поможет вам автоматизировать создание изображений и непрерывную интеграцию.

Ответ 6

Вы можете быть заинтересованы в Amber.

Ответ 7

VA Smalltalk имеет Envy.

Какой из когда-либо Smalltalk вы выберете, я думаю, вам действительно понравится Seaside.