Лучшие практики, создавая соединительную линию против соединительной линии?

Object.keys возвращает ключи объекта в виде массива. Если вы храните своих астрономов в объекте, используйте Object.values(astronomers) для получения имен. Если вы храните астрономы в массиве, используйте astronomers.map.

6
задан hamishmcn 15 December 2008 в 15:53
поделиться

6 ответов

Хм, я могу быть в меньшинстве здесь, но это сводится к управлению версиями.

Разработка против trunk из ряда совместно используемых компонентов означает, по определению, что компоненты являются "движущейся целью" - разработчик, использующий те совместно используемые компоненты, будет не обязательно знать, происходят ли недавно найденный дефект или отказ из-за кода проекта или совместно используемых компонентов, который приводит к потере производительности, IMNSHO.

"Совместно используемые компоненты" имеют цикл выпуска все их собственное. Дайте своим другим разработчикам передохнуть и зафиксируйте версию совместно используемых компонентов, которые проекты собираются использовать и использовать tags, labels или branches определить выпуск совместно используемого компонента. На следующем повторении для проектов натолкнитесь до последнего "производственного" "стабильного" или сборки совместно используемых компонентов.

Существует другой "запах" здесь при прощении выражения. Наличие "совместно используемых компонентов", чьи "источник/интерфейсы изменится так" между выпусками проекта, кажется, что компоненты не так тверды или не должны обязательно быть совместно использованы.

См. также ответ на этот вопрос Совместно используемые компоненты в течение всех проектов, есть ли лучшая альтернатива, чем svn:externals?

10
ответ дан 8 December 2019 в 12:23
поделиться

У Вас должны быть сильные интерфейсы, которые редко изменяются, так изменение версий не должно быть этим трудно.

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

3
ответ дан 8 December 2019 в 12:23
поделиться

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

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

Любой разработчик, работающий над ответвлением, должен создать и протестировать от того ответвления (существует несколько проектов все перешедшие/отметившие та же сборка/выпуск). Когда они передают изменения в том ответвлении, они должны также объединить те отдельные изменения в соединительную линию.

Мы ожидаем, что все разработчики будут знакомы с SCM (SVN) и будут способны к поддержанию нескольких ответвлений кода. Как команда мы обрабатываем основные сдвиги платформы, или огромный код изменяется для уменьшения неприятного слияния.

2
ответ дан 8 December 2019 в 12:23
поделиться

Две вещи здесь. Во-первых, я думаю, что Вы правы; Вы хотите создать против актуальнейших версий разработки, не против старых версий. Если Вы уже не будете иметь, то Вы будете видеть ситуацию, в которой аварийно завершается сборка для выпуска, и необходимо сделать полуночника, очищающего diffs.

Я - лично поклонник, "передают соединительной линии, выпуску от ответвления" модель так или иначе. Все фиксации переходят к соединительной линии, ночные сборки или сборки CI против соединительной линии, и люди создают ответвления свободно. Когда у Вас есть соединительная линия, которая встречает критерии допустимости, отметьте предвыпускную версию, НО ПРОДОЛЖАЙТЕ ДЕЛАТЬ ОБНОВЛЕНИЯ СОЕДИНИТЕЛЬНОЙ ЛИНИИ. Если Вы hae долгий цикл выпуска, то у Вас могли бы быть изменения для выпуска n+1, добавляемого к соединительной линии, но идеально необходимо просто сократить цикл выпуска вместо этого. Если существуют изменения в соединительной линии, которая не должна быть в выпущенной версии, И у Вас есть проблема, которая требует изменений, создайте ответвление против теговой версии---и удостоверьтесь, что Вы объединяетесь, любой возвращается к соединительной линии, после того как у Вас есть фактический выпуск.

2
ответ дан 8 December 2019 в 12:23
поделиться

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

Однако с Вашей стороны вещей, я не вижу, как можно продвинуть код в производство без нее протестированный против совместно используемых компонентов, используемых в производстве. Вы делаете второй цикл испытаний против сборки конечных версий? Вы просто молитесь, чтобы ничто не повреждалось? Откровенно говоря, (b) может быть инвертирован в этих случаях для поддержки точки зрения: Если соединительная линия достаточно отличается от нового тегового ответвления, то то усилие должно быть приложено, чтобы гарантировать, что Ваше приложение работает правильно с ним.

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

1
ответ дан 8 December 2019 в 12:23
поделиться

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

Это уменьшает потребность изменить имена версии в нескольких местоположениях как Вы упомянутый.

1
ответ дан 8 December 2019 в 12:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: