сервис для хранения фрагментов кода

Бесплатные сервисы для разработчиков — огромный список

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода
Бесплатное хранилище артефактов PackageCloud

Удивительно, но в интернете сотни сервисов, которыми разработчик может пользоваться совершенно бесплатно. «Бесконечное» время (пока компания не обанкротится или не изменит условия), без рекламы, пробного периода и других подводных камней.

Недавно мы обсуждали эту тему в статье «Боль разработчика: “Никогда не давайте пользователям бесплатный тариф”». Речь шла о том, что на самом деле бесплатный план вовсе не бесплатен — приходится тратить массу времени и усилий на поддержку этих тарифов.

Но для некоторых бесплатный тариф — единственный способ завлечь новых клиентов. Это просто замечательно с точки зрения самих пользователей. Ведь перед нами десятки бесплатных хостингов, API, CMS, CDN, сервисов обработки данных, поисковых движков, репозиториев, инструментов проверки кода и других. Бесплатный тариф идеален для опенсорс-разработчиков, любительских и некоммерческих проектов, маленьких стартапов. Ни за что не надо платить.

Например, огромный список бесплатных сервисов для разработчиков ведётся в репозитории free-for-dev. Список составлен пул-реквестами более 900 участников.

Важно подчеркнуть, что конкретно в этом списке отсутствуют альтернативы на своём хостинге (о них см. ниже). Здесь исключительно онлайновые сервисы, то есть SaaS, PaaS, IaaS.

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

Для примера вот несколько тематических категорий.

Основные облачные провайдеры

Ниже указано, в каком объёме предоставляются бесплатные услуги.

Аналитика, статистика, логи

Вот несколько сервисов бесплатной аналитики для мобильных приложений и сайтов. Здесь только бесплатные сторонние сервисы. Многие из них можно использовать вместо скриптов Google Analytics, поскольку GA рассматривается как угроза приватности.

Примечание. Программы self-hosted см. в отдельной категории.

Другие категории

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода
Эмулятор основных операционных систем в браузере copy.sh

Облачные сервисы и аналитика — лишь малая капелька в море бесплатных услуг для разработчиков. Вот ещё 45 категорий. В каждой от нескольких штук до несколько десятков сервисов с бесплатными тарифами.

Опенсорсные инструменты безопасности

Компания Penetrum Security, которая специализируется на информационной безопасности, составила собственный список опенсорсных инструментов для разработчиков, с упором на безопасность.

Например, в нём есть системы для управления уязвимостями Faraday, Archery Sec, Jackhammer,
Watchdog и OpenVAS, сканер контейнеров trivy, менеджеры конфигурация вроде MGMT, Chef и Puppet, бесплатные системы SIEM (анализ событий в реальном времени и реагирование), VPN, инструменты для улучшения безопасности систем на Linux и Windows (Bastille, JShielder, nixarmor, Zeus (AWS), Docker-bench и др.), защита аутентификации в Linux, чёрные списки IP и доменов, прокси, socks-серверы, HTTP-туннели, FTP-прокси, DNS-прокси, инструменты сетевого и серверного мониторинга, системы для определения вторжений в сеть и на хост (NIDS и HIDS, соответственно), мониторинг и анализ логов, антивирусы, спам-фильтры, симуляторы инфраструктуры, файрволы для веб-приложений, сетевые сканеры, системы форензики (поиск цифровых улик), программы анализа файлов, метаданных, оперативной памяти и многие другие инструменты.

Всё бесплатно и с открытыми исходниками.

Бесплатные альтернативы на своём хостинге

Вышеупомянутый список free-for-dev не включает бесплатные инструменты на своём хостинге. Однако их очень много. Обычно это опенсорсные программы. Бывает, что какой-то коммерческий сервис SaaS одновременно публикует исходники, то есть предлагает параллельно платный и бесплатный тариф.

Вот список бесплатных альтернатив на своём хостинге в 81 категории из коллекции awesome-selfhosted:

Списки бесплатных ресурсов для разработчиков также ведутся в проектах FOSS-for-Dev, getAwesomeness и De-google-ify Internet.

Надеемся, что эта подборка окажется кому-то полезной.

Наша компания предлагает облачные серверы для любых задач и на любой операционной системе. Создавайте собственные конфигурации в течение минуты, минимальный тариф — всего 6.5 рублей в день!
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Источник

Сервис для хранения фрагментов кода

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

TLTR

Потом всеми правдами и неправдами я заставил себя пользоваться Notion.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кодаЗаметки по работе в Notion

✅ Получше поиск. Особенно с появлением CMD + P который может искать локально, а не лезть в интернет;
✅ Лучше оформление контента. Можно раскрасить текст и добавить картинки;
⛔️ Электрон со всеми вытекающими;
⛔️ Постоянно на каждый клик что-то тянет с интернета. При запуске тоже самое;
⛔️ Чтобы что-то быстро посмотреть, нужно дождаться пока Notion загрузится, потом сделает запрос с поиском на сервер и только потом покажет результат. Нормальных глобальных шорткатов или интеграции с Alfred нет.

Для хранения рабочих сниппетов, которые активно использую в работе, мне служит VSCode. Но в данном контексте я имею ввиду сниппеты с реализацией какого-то функционала. Набор функций, который вы копируете с проекта в проект или примеры реализации. Сниппеты, которые не должны быть “на кончиках пальцев”, а которые можно быстро просмотреть и скопировать. Сейчас храню такие куски кода то в Notion, то просто захожу в нужный проект и копиру. Хотелось бы все как-то свести в единую базу.

Сейчас тестирую связку Dash + Alfred.

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

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кодаБаза сниппетов в Dash

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

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

И в качестве бонуса, с помощью Alfred и расширения https://github.com/mwaterfall/alfred-quick-ref можно быстро открывать картинки поверх других окон со шпаргалками, которые лежат в определенной папке.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кодаПоиск по шпаргалкам

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кодаНа случай если забыл как выходить 👌

Пока свой идеал для заметок и сниппетов не нашел… В идеале хотелось чтобы:

Делитесь своим опытом!

Источник

Обзор сервисов для размещения фрагментов кода

Очень часто бывает нужно поделиться частью своего кода на PHP, HTML, CSS и JS. Например, на форуме или в комментариях в блоге, или просто отправить сообщением по почте или в социальных сетях. Конечно, можно просто скопировать и вставить код, но в этом случае с большой вероятностью возникнут проблемы: движок блога или форума отрежет код из соображений безопасности, если код отпарвили просто письмом, то человеку, который его получит, будет очень неудобно разбираться в коде без подсветки и отступов. Что же делать?

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

Как поделиться PHP кодом?

Чаще всего бывает нужно поделиться PHP-кодом. В этом случае нам помогут два сервиса: Pastie и Codeshare.

Pastie
http://pastie.org/
сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода Pastie
Чтобы разместить код на Pastie, нужно зайти на главную старницу сайта, в появившееся окно вставить код и нажать сохранить. Среди особенностей системы:

Codeshare
http://codeshare.io/
сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода Codeshare

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

Где разместить HTML, CSS и JS код?

В размещении HTML, CSS и JS есть свои особенности 🙂 Например, сервисы JSfiddle и CSSdeck позволяют не только разместить код, но и сразу посмотреть, как он работает.

JSfiddle
http://jsfiddle.net/
сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода JSFiddle

Этот сервис больше подходит для размещения JS-скриптов.

CSSdeck
http://cssdeck.com/labs
сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода CSSDeck

Сервис больше подходит для размещения HTML и CSS.

В целом, если нужно разместить небольшой и несложный фрагмент кода, то особой разницы между JSfiddle и CSSdeck нет.

Я чаще всего исользую Codeshare и CSSdeck, просто потому, что лично для меня они кажутся удобнее. А какие сервисы для размещения фрагментов кода испольуете вы?

Источник

Online-редакторы кода для вебразработчика

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

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

1. JSFiddle

Один из старых проектов для работы с HTML, CSS и JavaScript кодом.

Для HTML можно выбрать следующие стандарты: XHTML 1.0 Strict, XHTML 1.0 Transitional, HTML 5, HTML 4.01 Strict, HTML 4.01 Transitional, HTML 4.01 Frameset.

Для CSS можно выбрать в настройках SCSS.

Для JavaScript в настройках можно выбрать CoffeeScript, JavaScript 1.7, Babel или TypeScript. Поддерживается множество фреймворков и расширений.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

2. CodePen

Более свежий сервис для работы с кодом в онлайн. Сайт содержит более богатый функционал: консоль для кода, быстрые клавиши, настройка рабочей среды и т.д.

Поддержка множества препроцессоров:

Существует и версия CodePen Pro, которая поддерживает совместный режим, позволяющий дополнять код в режиме реального времени.

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

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

3. Plunker

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

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

4. Online Compiler

Инструмент для компиляции и отладки кода в онлайн. С помощью его вы сможете скомпилировать исходный код более чем на 60 языках программирования. С несложными кусками кода вполне справится. Вполне можно использовать для внедрения кода редактора на ваш сайт.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

5. JS Bin

Инструмент для эксперементов с web-языками. В частности, поддержка HTML, CSS и JavaScript (доступны также Markdown, Jade и SASS). Простой редактор для совместной работы и распространения своего кода (можно вставить редактор на свой сайт, например, для просмотра демо-кода).

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

6. Pastebin

На сайте вы сможете сохранять и редактировать любой код (PHP, JS, HTML, CSS, С++ и сотни других). Сервис полностью бесплатен. Здесь не найдете чего-то особенного. Обычно его используют в качестве базы для хранения кусков кода. В настройках вы можете задать дату удаления кода (по умолчанию, не удалять никогда).

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

7. Online regex tester and debugger

Если вы часто используете регулярные выражения и возникает необходимость поделиться ими с другими участниками, то данный сервис создан для вас. На данный момент поддерживаются следующие диалекты: JavaScript, PHP, PCRE, Python и Golang. Простые настройки, возможность поделиться ссылкой, быстрая справка и генератор кода.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

8. PLAYCODE

Очередной простой редактор HTML, CSS и JavaScript. Все сделано по простому и без лишних функций. Удобно работать целиком с проектом, создав и разбив все по файлам. Для ценителей минимализма в своей работе.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

9. Dabblet

Как написано на самом сайте — это интерактивная площадка для быстрого тестирования фрагментов CSS и HTML-кода. Одним из приятных моментов является то, что здесь уже используется скрипт -prefix-free (избавляет от необходимости вспоминать и перечислять префиксы свойств CSS3 для разных браузеров).

К сожалению, поддерживаются только современные версии Chrome, Safari и Firefox.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

10. Codly

Размещаю еще один онлайн-редактор HTML, CSS и JavaScript кода, предложенный одним из пользователей в комментариях. Это удобный сервис визуального проектирования макета сайта и составляющих по отдельности, разработанный с целью повышения продуктивности как начинающих, так и более опытных веб разработчиков.

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

11. DB Fiddle

Интересный ресурс для тестирования ваших SQL-запросов. Поддерживает MySQL (от версии 5.5 до 8.0), PostgreSQL (от версии 9.4 до 10.0) и SQLite (версия 3.26). Есть возможность сохранить запрос или форкануть его. До этого сайта иногда пользовался SQL Fiddle, но последнее время он часто не работает. Так что, рекомендую!

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

«В одной корзине»: Немного о хранении кода

Эффективное хранение данных интересует абсолютно всех, кто хоть как-то связан с ИТ. Мы в IaaS-провайдере 1cloud постоянно анализируем опыт коллег — совсем недавно мы обсуждали, как хранят свои данные крупные компании.

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

сервис для хранения фрагментов кода. Смотреть фото сервис для хранения фрагментов кода. Смотреть картинку сервис для хранения фрагментов кода. Картинка про сервис для хранения фрагментов кода. Фото сервис для хранения фрагментов кода

/ фото Dennis Skley CC

Нужно ли сохранять свои исходники в едином, монолитном репозитории или же надо разбить код на блоки и записать их в несколько разных хранилищ? Как правило, это зависит от команды и проекта, над которым она работает. Для начала рассмотрим преимущества и недостатки обоих типов хранения.

Монолитный репозиторий

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

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

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

Когда весь код хранится в одном месте, нам остается лишь запустить процесс и, например, следить, как изменения в общей библиотеке влияют на работу с корзиной. Объекты доступны в любое время из любого места, изменения проходят быстро и безболезненно. Но не все так гладко.

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

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

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

Несколько советов по смягчению недостатков монолитных репозиториев в Git (большие размеры файлов, количество коммитов и указателей) здесь предлагает пользователь Хабра.

Хранение кода в нескольких репозиториях

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

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

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

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

Как хранят код Google и Kiln

Судя по сделанным выводам, большинство компаний, особенно крупных, предпочло бы работать с несколькими репозиториями. Даже если это так, из этого правила есть как минимум одно большое исключение. Как ни странно, десятки тысяч разработчиков Google сегодня используют монолитный репозиторий, где хранится около двух миллиардов строк кода. Чтобы сохранить такие масштабы, Google пришлось разработать систему контроля версий, более известную как Piper.

Доступ к Piper организован с помощью системы Clients in the Cloud (CitC), состоящей из облачного хранилища и файловой системы FUSE для Linux. У каждого разработчика есть рабочая среда, в которой хранятся измененные им файлы. Все записанные файлы хранятся в CitC в виде снэпшотов, что позволяет при необходимости «откатить» работу на несколько этапов назад.

Встроенный в CitC инструмент для поиска кода CodeSearch позволяет вносить мелкие исправления в код, а также передавать измененный код на проверку с возможностью автокоммита: если проверка пройдена, проводится тест, после которого система сама выставляет коммит.

Основу модели монолитного репозитория составляет подход, имеющий название trunk-based development («стволовая разработка»). Основная (trunk) линия представляет собой последнюю версию кода, изменения в которую вносятся разово и последовательно. Сразу после коммита новая версия кода доступна всем пользователям Piper, то есть, по сути, у разработчика перед глазами всегда свежая версия кода.

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

Пользователи Stack Overflow советуют хранить код в едином репозитории, даже когда есть возможность разбить его на несколько хранилищ. Для этого существуют такие инструменты, как подмодули в Git, внешние объекты в Subversion и субрепозитории в Mercurial.

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

Кроме того, в Git есть возможность создавать независимые ветви, которые называют сиротскими (orphan). Они не имеют ничего общего друг с другом и сохраняют исключительно свою историю. Так создается новая сиротская ветвь:

Каждый отдельный проект можно представить отдельной сиротской веткой. По какой-то причине в Git нужно проводить такую очистку после создания этой ветви:

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

Другого мнения о хранении кода придерживаются разработчики Kiln, в свое время перешедшие с монолитного репозитория Subversion на мультирепозиторий Mercurial. Их проект разделен на пять частей: exe-клиенты, сервер для взаимодействия клиентов (Reflector), сайт, биллинговая система и библиотека Aadvark.

Для каждой части они создали по два репозитория – devel и stable. В первый попадают новые фичи, которые спустя время переходят во второй, а исправленные баги, наоборот, сначала помещаются в stable, а затем как новые функции возвращаются в devel. Для синхронизации используются теги. В Mercurial они представляют собой метаданные репозитория.

Например, чтобы развернуть новую версию сайта, берутся репозитории website-stable и aadvark-stable. К каждому прикрепляется тег, допустим, Website-000123. Затем запускается процесс сбора билда, который клонирует оба репозитория с сервера в директорию сборки и выполняет команду hg up –C Website-000123 для переключения локальной копии на нужный тег. После сбора билда производится развертывание.

Заключение

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *