- TBD — что это такое? Магистральная разработка программ для ПК
- TBD — что это значит в программировании
- Преимущества TBD
- Потенциальные недостатки TBD
- Заключение
- TBD — что значит это сокращение?
- Непонятные аббревиатуры
- Аббревиатура TBD
- На примере «Доты»
- TBD в других играх
- Особые случаи
- Trunk-Based Development: как мы внедряем разработку на основе главной ветки
- Trunk Based Development на пальцах
- Декомпозиция задач и Short-lived ветки
- Иерархия задач
- Непрерывная поставка и TBD
- Как мы внедряем TBD в работу команд
TBD — что это такое? Магистральная разработка программ для ПК
В сети часто встречается вопрос: «TBD — что это такое?». Данная аббревиатура затрагивает две IT — сферы: видеоигры и модель разработки программного обеспечения. Сегодня разберем, что такое TBD как подход в программировании.
TBD — это Trunk Based Development или магистральная разработка программного обеспечения. Это специальный метод разработки, при котором программисты совместно работают над одной веткой кода, которая называется «ствол» ( или главн ая ветк а) . Остальные ответвления разработки имеют более короткий срок жизни благодаря использованию документированных моделей.
TBD — что это значит в программировании
Основная идея TBD состоит в том, чтобы не использовать объединение отдельных ветвей функции с основной ветвью при раздельной разработке, а применять деление таких функций на небольшие части, которые сразу помещаются в «ствол» разработки и разрабатываются всеми программистами. Если простыми словами, то команда разработчиков программирует без четкого применения деления на отдельные ветви разработки, а целиком работает над конкретной частью.
Магистральная разработка приносит очень важное преимущество перед другими моделями — в ней практически отсутствуют конфликты при слиянии отдельных ветвей общей разработки.
Преимущества TBD
Помимо основного преимущества, описанного выше, TBD-модель — это еще ряд достоинств, которые нужно отметить:
Быстрое развертывание. TBD совместно с конвейером CI/CD дает возможность разворачивать функциональный код непосредственно в самом сердце производства. Это облегчает интеграцию рабочих частей и развертывание самой разработки. Плюс ко всему это дает хорошую возможность в случае обнаружения ошибок «откатить» разработку до рабочего состояния, так как «рабочие состояния» фиксируются.
Высокое качество кода. TBD — это то, что обеспечивает устойчивый и качественный код, начиная с самой базы, а вероятность ошибок сильно снижается. Также эта модель дает возможность использовать «принцип 4-х глаз», когда минимум 2 отдельных программиста просматривают код перед его отправкой в «ствол» всей разработки. Для этого используется парная разработка, когда программисты работают по двое, а не п оо диночке, помогая и проверяя друг друга. При этом ответственность за качество их части кода лежит на них двоих.
Командная работа. Парная разработка улучшает командный дух. Плюс это дает возможность более слабым разработчикам работать с более сильными, тем самым перенимать опыт и становиться лучше. А также общее дело поднимает градус ответственности и коммуникации между членами команды.
Потенциальные недостатки TBD
Помимо достоинств этой модели разработки, у нее есть собственные потенциальные недостатки. Почему потенциальные? Потому что во многих TBD-командах они отсутствуют, но в принципе их наличие не исключено.
TBD — это то, что обладает следующими потенциальными недостатками:
Вероятность незаконченных функций. Из-за специфики метода иногда в разработке могут возникать незавершенные функции, которые образуются по разным причинам. Чаще всего это происходит, когда одна из команд , работающая над функцией , не успевает к дате релиза и показа программы заказчику. Это может возникнуть из-за неправильного группировани я пар разработчиков, когда попадаются два слабых или не обладающих знаниями в нужной области разработчика вместе.
Затруднено тестирование и мониторинг разработки. TBD часто применяется при разработке больших и сложных программ в огромных проектах. Поэтому требуется наличие мощного набора тестов для качественного тестирования кода, чтобы быстрее выявлять ошибки и не допускать их «разрастания» из-за того, что вовремя их не выявили. Спустить баллоны можно и в машине при быстром и не особо умелом отсосе. Занимаясь любовью в комфортной обстановке хочется некой тайны, интриги. Только опытные в своем деле шалавы из Сургута готовы разыгрывать шоу, стараться подбирать белье и создавать нужную атмосферу, таким девушкм можно простить и недостатки внешности, не идеальную фигуру. Зато от общения мужчина получает настоящий кайф, а к реальной жизни возвращается полным сил и оптимизма.
Заключение
TBD — это далеко не новый подход в программировании. История этого метода тянется к нам еще из 80-х, свою популярность он приобрел к концу 90-х , и до сих пор этой моделью пользуются крупные компании, такие как Гугл или Фейсбук.
Реализовать магистральную разработку не так легко , как кажется . О на приносит с собой определенные трудности, например, она требует профессионализма и ответственности от всех участвующих разработчиков, чтобы они могли самостоятельно программировать, брать ответственность за свой код и принимать нужные решения. История показывает, что те, кто смог реализовать 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 в «Доте» — это может быть полезно, так как данная игра сейчас невероятно популярна, и вам стоит владеть информацией, которая может вам помочь в ее освоении.
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, например, правильную декомпозицию задач, написание автотестов и тестирование требований.
Источник