Запланированная дата выхода tbd что это значит

TBD — что значит это сокращение?

Геймер — это понятие, которое некоторое время носило даже чуть ли не оскорбительный смысл. На самом деле так называют человека, который любит компьютерные игры. Но еще совсем недавно этому слову придавали ярко выраженную негативную окраску, потому что игры в глазах многих были злом, которое отнимает у человека жизнь, делает его агрессивным, является причиной проблем с учебой и в личной жизни. Довольно много времени у людей заняло понимание того, что компьютерные игры — это лишь очередное развлечение, которое позволяет человеку расслабиться, получить удовольствие. Конечно же, понимание пришло не ко всем, но большинство людей уже вполне нормально относится к компьютерным играм и не видит в них ничего плохого. Однако стоит обратить внимание на то, что у геймеров все же сохранился язык, на котором они могут общаться между собой, но при этом другие люди могут его понимать с трудом. На отдельном примере можно разобрать подобную ситуацию, необходимо разобрать понятие TBD — что значит и зачем применяется?

Непонятные аббревиатуры

Прежде чем браться именно за термин TBD (что значит? как употребляется? в каких ситуациях? для чего?), следует более обширно взглянуть на ситуацию. Дело в том, что аббревиатуры — это вполне нормальная часть жизни любого геймера. С одной стороны, это вызвано тем, что в компьютерных играх в многопользовательском режиме редко есть достаточно времени, чтобы полностью написать фразу, которую хотелось бы. Так и рождаются сокращения типа ГЛ (good luck — удачи!) или ГГ (good game — хорошая игра). Однако есть и те сокращения, которые употребляются просто для удобства — именно к таким и относится аббревиатура TBD. Что значит это сокращение и для чего оно используется? Именно об этом и пойдет речь дальше.

Читайте также:  Хорошие действия что это значит

Аббревиатура TBD

Итак, пришло время более детально рассмотреть конкретное сокращение, которое часто используется в сфере компьютерных игр — TBD. Что значит это сокращение? На самом деле, здесь все довольно просто. Как и в случае с предыдущими примерами, эта аббревиатура не скрывает в себе никаких таинственных смыслов и расшифровывается очень просто — To Be Determined, то есть «Будет определено». Очень часто подобное сокращение можно встретить в анонсах компьютерных игр в графе «Дата выхода». Когда разработчик той или иной игры уже сообщил о том, что она готовится к выходу, но пока еще не может назвать точную дату, именно это сокращение и используется. Естественно, оно может применяться и в других случаях, но данный вариант является самым распространенным. Стоит отметить также, что у этой аббревиатуры могут быть и иные значения, например To Be Done — должно быть сделано, или To Be Discussed — подлежит обсуждению. Однако в данном случае это, скорее, варианты для деловой переписки, в которой также периодически встречаются сокращения, которые вряд ли будут понятны среднестатистическому человеку. Теперь вы понимаете, что собой представляет сокращение TBD. Dota 2 — это игра, в которой оно также используется. Однако она ведь уже вышла, что же здесь может быть еще определено?

На примере «Доты»

На самом деле существует большое количество разнообразных вариантов, в которых теперь употребляется аббревиатура TBD. Dota 2 — это игра, в которой она уже успела сильно прижиться и используется повсеместно. В частности, аббревиатуру можно встретить в темах, в которых обсуждаются предстоящие соревнования и сражения. Сокращение TBD подставляют там, где противник еще не известен. Поэтому в «Доте» иногда случаются забавные курьезы с участием новичков, которые не могут понять, что за геймер с ником TBD и почему о нем ничего еще не известно. Что ж, теперь вы знаете, что такое TBD в «Доте» — это может быть полезно, так как данная игра сейчас невероятно популярна, и вам стоит владеть информацией, которая может вам помочь в ее освоении.

Читайте также:  Sayonara что это значит у элджея

TBD в других играх

Как вы уже поняли, данное сокращение может принимать разнообразные формы, но чаще всего оно используется для обозначения неизвестной даты выхода. Обратите внимание на то, что эта аббревиатура может быть использована и в случае с уже вышедшей игрой. Дело в том, что сейчас во многих случаях игра — это лишь база, основа для дальнейших дополнений. Аддоны, модификации, ДЛЦ и другой контент постоянно выпускается уже после релиза основной игры. Поэтому вы можете увидеть TBD и в отношении уже вышедших в свет игр, если у них готовится к релизу какое-либо дополнение, однако пока не известно, когда именно оно будет выпущено.

Особые случаи

Однако не стоит забывать и про то, что мир игр очень разнообразен. Поэтому данное сокращение может в некоторых частных случаях означать вообще нечто иное. Например, в популярной ролевой игре Skyrim TBD не имеет ничего общего с датой выхода игры или дополнения. Так сокращается игровая раса, полное название которой звучит как Touched by Dibella. Однако «Дибелла» — это не божество, которому поклоняются люди, это игровой редактор, который позволяет менять пропорции тела, изменять длину и размеры частей тела и так далее. В общем, TBD в «Скайриме» — это персонажи, которые были отредактированы в «Дибелле».

Источник

Trunk-Based Development: как мы внедряем разработку на основе главной ветки

В этой статье мы подробно расскажем о том, как мы трансформируем процесс разработки в наших командах.

Trunk Based Development на пальцах

Все релизы в обязательном порядке выходят в ветке Trunk или Master (по-русски – главной ветке). Разработка новых фич ведется в отдельных, коротко живущих ветках, так называемых фича-бранчах (Feature Branches). Разработчик делает ответвление, пишет код в течение одного-двух дней и возвращает ветку обратно в Master.

Принципиально важно всегда поддерживать работоспособность и стабильность Master-ветки. Здесь на помощь приходят Feature Toggles (FT) – специальные переключатели в коде, которые отображают/скрывают элементы решения или приложения. Они встраиваются в код во время разработки, а управление ими происходит через специальный портал. Так мы можем скрыть от пользователя нестабильные и незавершенные функции, пока идет доработка, и это не повлияет на работу приложения в целом.

Автоматическое тестирование и непрерывное Code Review – еще две обязательных компонента TBD. Если все изменения в фича-бранче закончены, их нужно оперативно слить в Master, поэтому проверка кода должна быть приоритетной задачей. Что касается автотестов, то строго говоря, они подходят не для всех задач, и покрывать ими 100% кода не нужно (мы подробно рассказывали об этом в статье про наш опыт внедрения практик SDET). Для каждой конкретной задачи сценарий тестирования прописывается на этапе планирования. Для задач, где автотесты актуальны, код сливается в Master только после их прохождения.

Декомпозиция задач и Short-lived ветки

Все ветки кода, кроме главной, должны иметь короткий срок жизни, максимум – несколько дней. Этого можно добиться за счет мелкой декомпозиции: ветка будет небольшой, если она решает небольшую задачу. Правильная постановка задач на этапе планирования играет очень важную роль, поэтому мы придерживаемся принципа декомпозиции задач INVEST и вводим иерархию задач.

Декомпозиция по INVEST определяет, каким должен быть пользовательский сценарий (user story):

Independent — независимый

Negotiable — написанный понятным языком

Valuable — несущий ценность

Estimable — поддающийся оценке

Small — компактный, не более 40 часов разработки

Testable — тестируемый в широком смысле

Каждую из планируемых задач нужно «прогнать» по всем этим пунктам. Если по результатам выпадает хотя бы один из них, задачу нужно декомпозировать заново.

Иерархия задач

При уменьшении отдельных задач их общее количество возрастает многократно. Правильно расставить приоритеты и не потеряться в этом потоке нам помогает иерархия задач.

Непрерывная поставка и TBD

Конечная цель всех наших внутренних изменений – ускорение и оптимизация стандартных этапов создания IT-решений.

Мы тщательно проанализировали наш процесс разработки и нашли несколько точек потери времени и качества – они могут возникать из-на недоработки на конкретном этапе или из-за проблем между разными этапами.

Недостаточная аналитика и декомпозиция;

Сборка релизов из множества задач;

Длительное ожидание Code Review;

Потери на слияние больших изменений;

Отсутствие обратной связи от потребителей.

Для того, чтобы оптимизировать этот процесс, мы переходим от ручной доставки программного обеспечения к практике так называемой “непрерывной поставки” (Continuous Delivery, CD). Это надежный, контролируемый и максимально автоматизированный процесс с понятными и четко измеряемыми рисками, который:

Учитывает потери на каждом этапе;

Учитывает потери на переходах между этапами;

Может быть собран автоматически на основе метрик трекера.

Как мы внедряем TBD в работу команд

Прежде всего, мы придерживаемся мнения, что внедрение методики TBD имеет смысл только в активно растущих продуктах. Если на данном этапе проекта мы выпускаем по одной правке в месяц и ведем поддержку, TBD не актуально.

В целом, мы не рассматриваем переход на TBD как отдельную задачу, мы стараемся действовать комплексно и включаем в наши проекты несколько платформенных практик сразу – это и переход на единый трекер Azure DevOps, и добавление функций SDET в командах, и внедрение TBD, в том числе.

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

Источник

Что такое Trunk Based Development (TBD)?

Перевод статьи «What is Trunk Based Development? A Different Approach to the Software Development Lifecycle».

Жизненный цикл разработки ПО (англ. Software Development Lifecycle, SDLC) в каждой компании свой.

Используемая система контроля версий, процедура код-ревью, осуществление непрерывной интеграции, автоматизированное и ручное тестирование и т. п. вещи будут очень сильно зависеть от того, где вы работаете.

То, как компания планирует, пишет, собирает, проверяет, деплоит и выпускает программы, подогнано под ее собственные нужды с учетом всех достоинств и недостатков выбранных подходов.

Я начал читать о том, какие есть жизненные циклы разработки ПО в разных технологических компаниях, и несколько раз наткнулся на термин Trunk Based Development. Это процедура, которой придерживается Google, и мне стало любопытно, чем она отличается от процедур, принятых в большинстве других компаний, занимающихся разработкой.

Два разных подхода к ветвлению

Ответвления для отдельных функций

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

Первый подразумевает создание отдельных веток для всех создаваемых фич.

Чаще всего разработчики работают с системой контроля версий Git. Каждый из них делает форк кодовой базы на свою машину (в результате у всех есть идентичные копии всего кода). Затем все делают ответвления от основной ветки master и создают ветки фич или проектов, над которыми будут работать. Закончив работу над своей фичей, каждый разработчик сливает свои изменения обратно в master. Тут надо подчеркнуть, что merge делается только один раз, когда работа над фичей окончена, и в master мержится вся ветка этой фичи.

Вот схема того, как происходит работа с ветками:

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

Trunk Based Development (TBD)

Второй подход к совместной работе над кодовой базой — TBD. При этом подходе все разработчики делят свою работу на маленькие порции и мержат свои изменения прямо в master по нескольку раз в день. Ветку master при этом часто называют trunk — англ. «ствол», по аналогии с деревом.

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

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

Джез Хамбл, Site Reliability Engineer в Google и автор книги «Continuous Delivery», сказал: «ветвление — не проблема, проблема — слияние». Именно эту проблему и призван решить подход TBD.

Цель TBD — избежать болезненного мержа, а он часто бывает болезненным, если в trunk мержатся долгоживущие ветки, которые уже слишком сильно отличаются от ствола. И если разные разработчики (или даже разные команды) сливают несколько веток в одну, прежде чем слить ее в trunk, — merge тоже редко бывает беспроблемным.

Насколько подход TBD применим в больших проектах?

Рейчел Потвин, Engineering Manager в Google, рассказала об одной кодовой базе. В январе 2015 года в этой базе было:

  • 1 миллиард файлов
  • 2 миллиарда строк кода
  • 86 терабайтов контента
  • 45000 коммитов в день
  • 15 миллионов измененных строк в 250000 файлов еженедельно.

При работе над этой кодовой базой они применяли TBD, и для их нужд этот подход отлично работал. Поскольку в Google работает много талантливых (и, что более важно, — опытных) инженеров, они редко ломают свои сборки.

Также в Google существует очень строгая процедура тестирования (почитать о ней можно здесь). При применении TBD эта процедура тестирования делает возможной быструю и эффективную поставку ПО.

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

Давайте коротко обсудим преимущества TBD.

Преимущества TBD

  • Фидбэк (от тестировщиков или коллег) поступает быстро, поскольку свой код вы мержите ежедневно. Это делает невозможной ситуацию, когда вы три недели работали над чем-то не тем (или не так), а затем в самом конце работы получили фидбэк, поняли, что все было сделано неправильно, и в результате пропустили дедлайн.
  • TBD имеет одно достоинство ментального характера. Разработчики относятся к trunk как к своему общему коду. Когда разработчик работает над своей фичей в отдельной ветке, он склонен считать этот код своим. Таким образом, TBD способствует развитию культуры коллаборации и активизирует общение.
  • Интеграция кода со всеми другими текущими проектами и тикетами происходит на ранних этапах, что способствует повторному использованию кода. Это также избавляет вас от ужасного опыта мержа 9-месячной ветки фичи обратно в trunk.
  • Большие проекты со множеством задач принудительно разбиваются на маленькие части, а это облегчает эстимейты и способствует разделению кода на модули.
  • Когда многочисленные разработчики работают изолированно, каждый в своей ветке, сложно присматривать за джуниорами. Но если им приходится ежедневно коммитить свой код, вы можете мониторить их работу и помогать при необходимости.
  • Подход TBD очень тесно связан с непрерывной интеграцией. Когда у вас множество маленьких инкрементальных коммитов в конечный проект, вы получаете кодовую базу, которая постоянно находится в интегрированном и протестированном состоянии. Количество болезненных мержей сводится к минимуму.

Недостатки TBD

  • Повышается шанс сломать trunk и разом остановить работу многих людей. Нужно следить за тем, чтобы код всегда проходил юнит-тестирование и тщательные ревью. Это позволит не терять время, целыми днями откатывая назад коммиты.
  • Ваша история коммитов в master будет, скорее всего, весьма многословной. Вам будет труднее определить, где именно что-то пошло не так. Если вас вызовут в три часа ночи, чтобы исправить баг на проде, проявившийся после добавления коммитов в течение предыдущего рабочего дня, — вы предпочли бы иметь дело с одним коммитом, или двумя сотнями?
  • Если у вас нет быстрой процедуры сборки, вы будете тратить много времени, ожидая, пока что-то соберется, а ваша команда между тем будет непрерывно добавлять новые коммиты.
  • Работая по TBD, вы постепенно добавляете новый код, чтобы сделать что-то новое, но вам также нужно, чтобы «старые» пути, которые вы заменяете, продолжали работать. Из-за этого вам приходится полагаться на feature toggles (обычно из базы данных) для включения и выключения разных вещей. Это может усложнить отладку.
  • Когда у вас все время происходят коммиты, нужно постоянно следить за тем, чтобы команда регулярно подтягивала изменения из trunk. В противном случае люди будут создавать помехи друг для друга.

Как релизить программы, применяя TBD

У команды, которая придерживается TBD, процедура релиза будет отличаться от аналогичной процедуры в команде, где используются ветки фич.

Допустим, вы работаете с ветвлением. Когда вы мержите что-то (тикеты, завершенные проекты и т. п.) в master, вы делаете релиз этой основной ветки. В некоторых командах релиз master происходит по расписанию, скажем, раз в неделю.

А вот как обстоят дела с релизами в TBD-командах:

В TBD ответвления используются исключительно для релизов.

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

В приведенной выше схеме могут появиться дополнительные детали, только если с релизом prj-123 что-то пойдет не так. Тогда мы коммитим результат в trunk и выбираем (cherry pick) коммиты в нашу ветку релиза, чтобы как можно быстрее привести ее в рабочее состояние.

В некоторых командах, если релизы у них происходят регулярно, вообще обходятся без ответвлений и, когда необходимо, делают релиз trunk.

Заключение

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

Надеюсь, прочитав эту статью, вы поняли, что такое Trunk Based Development и зачем нужен этот подход. Он определенно помогает избавиться от многих проблем, связанных со слиянием долгоживущих веток.

Источник

Оцените статью