Рубрики
Без рубрики

Какая музыка может научить нас о том, как мы поделимся кодом

Джонатан Саринг, какая музыка может научить нас о том, как мы делимся Codeis, что виолончель играет обезьяна? Не так давно, многие из нас носили подозрительный чемодан в задней части наших автомобилей, или был один скрыт под нашими кроватями. У некоторых из нас были башни из IKEA с несколькими

Джонатан Саринг

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

После короткого правления музыкальные CD-ROM были заменены itunes и YouTube с MP3-плеерами между ними. Эта революция произошла главным образом из-за 5 основных недостатков компакт-дисков с первого дня:

  1. Они были громоздкими для использования, несут и обрабатывать.
  2. Они приняли слишком много усилий, чтобы купить/создать.
  3. Им было очень трудно изменить и модифицировать. Никто не очень хотел сжечь новый CD всякий раз, когда вышла новая песня Bieber (не суди меня).
  4. Они заставили нас носить кучу песен, которые мы не слушаем и заппируйте их, чтобы слушать одну песню, которую мы действительно хотели слушать.
  5. Которые вспомнили, какие песни были на каком CD? 90% моих сгоренных компакт-дисков содержали ту же 10 песен в любом случае.

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

Как на земле то, что подобно обмену?

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

Каждый день, больше приложений, которые мы строим, предназначены с большей модульностью через меньшие компоненты кода. Многоразовые функциональные возможности, интерфейсы пользовательского интерфейса и веб-компонентов (например, React, Vue и Angular), Node.js модули, APISCL APIS и даже безвесочные функции являются нашими строительными блоками.

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

Позволь мне показать тебе. Вот a Реагировать приложение фильма размещены на Github. Как видите, он содержит в общей сложности 49 файлов и 14 каталогов. Одним из этих каталогов является Компоненты подкаталог. Внутри этого подкаталара есть 8 многоразовых реагированных компонентов (таких как Hero и навигация ).

├── src
│   ├── App.js
│   ├── App.scss
│   ├── App.test.js
│   ├── components
│   │   ├── hero
│   │   ├── hero-button
│   │   ├── item
│   │   ├── list-toggle
│   │   ├── logo
│   │   ├── navigation
│   │   ├── title-list
│   │   └── user-profile
│   ├── favicon.ico
│   ├── global.css
│   └── index.js
└── yarn.lock

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

Копировать код вставки – это Очень плохая идея Отказ Это может показаться быстрым способом, чтобы пойти об этом, но это на самом деле нет. Не делай этого.

На сегодняшний день у меня действительно есть три варианта:

  1. Опубликовать девять пакетов : Создайте восемь новых REPOS, Boaterplate и опубликовать девять пакетов и изменить оба исходного кода проекта на требуется их. Когда я захочу изменить компонент, мне придется очень усердно работать, чтобы внести изменения с разных REPOS. Теперь представьте, что имейте 500 из них.
  2. Я могу использовать Лерна Чтобы сохранить несколько пакетов в одном репо, но он работает только, если я действительно хочу пойти в MonoRepo. Даже тогда мне придется реструктурировать мой проект, настроить каждый пакет отдельно и определить их тресную зависимость, и каждое изменение все равно придется пройти через исходный репозиторий.
  3. Общая библиотека : Создайте новое репо, группируйте компоненты вместе, создайте конфигурации, необходимые для такого проекта, опубликуйте его как новую библиотеку и измените оба исходного кода проектов. Каждое приложение, использующее эту библиотеку, добавит избыточный код, вес и сложность. Каждая модификация потребует переизданию всей библиотеки и пройти через владелец.

Дело в том, пакеты – это Отличный для больших проектов. Для небольших компонентов и модулей эти решения разделяют некоторые из тех же проблем, что и музыкальные CD-ROM: серьезные накладные расходы, изменения жесткие, а обнаруженность отсутствует.

В некотором смысле, создавая 500 REPOS и пакетов, чтобы поделиться меньшими компонентами, напоминает мне об использовании игрока Mini-Disc (не мои лучшие 100 долларов): вы не можете решить эту проблему, оптимизируя ее. Вы должны инновации.

Итак … iTunes для общего кода?

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

Тем не менее, общий общий код между проектами действительно не должен быть этим сложным. Что мы можем действительно узнать у того, как мы делимся и потребляем музыку сегодня, это эффективный обмен требует Лучше Опыт: Уменьшение накладных расходов, увеличение обнаружения и собирается от статического для динамической.

Итак, мы решили построить это

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

Мы решили пойти дальше и построить Бит – A an Проект с открытым исходным кодом Предназначен для совместного использования кода, какие iTunes сделал для совместного использования музыки – сделать его простым, динамичным и легко доступным для всех. Бит Идея проста: убить накладные расходы об обмене.

Как это работает

Он был построен для обеспечения самого быстрого опыта для «Управляемого копирования» и составлять 100% совместимым с Git и NPM.

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

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

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

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

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

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

Вот как Рабочий процесс бита Выглядит:

  1. Установите бит и инициализируйте его для вашего проекта.
  2. Выберите какие компоненты кода для отслеживания от вашего проекта и которые среды Чтобы добавить для сборки и тестирования процессов.
  3. Поделитесь их до удаленного объема, которые они размещены, организованы и были доступны для установки с использованием вашего любимого менеджера пакетов.
  4. Легко импортируйте свой код в любое репо, измените его по мере необходимости и обновите изменения на вашей кодовой базе.

Давайте посмотрим пример.

Вернуться к реакции кино-приложение

Давайте вернемся к React Movie-App Отказ

Добавление бита Для проекта позволил мне отслеживать и изолировать многоразовые компоненты внутри, не устанавливая новые репозитории или изменение кода моего проекта. Затем я поделился их этим Коллекция Отказ

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

Как видите, каждый компонент теперь доступен для моей команды для установки с НПМ или импортировать в свои собственные проекты для дальнейших модификаций.

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

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

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

Вы можете увидеть видео демонстрацию этого проекта здесь Отказ

Назад в будущее

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

iTunes предоставил нам динамический опыт, который помог нам составить и делиться плейлистами, легко найти песни, которые мы хотели, и быстро обновляли наши плейлисты. Когда я на вечеринке, я могу легко сыграть свой романтичный плейлист Up-Tempo или так же, как легко играть в мои романтические песни моей кошке, чтобы пойти спать.

Мы можем многому научиться от того, как музыка переехала с CD-ROM для общей плейлистов. Бит Цель, чтобы сделать совместное использование кода и повторно использовать простым и доступным для всех, такими как iTunes сделал для общей музыки. Это все еще работа в прогрессе, и как таковая у него все еще есть много места, чтобы расти и развиваться. Добро пожаловать в Попробуйте это высказать идей и Обратная связь И помогите нам взять этот скачок вперед.

Оригинал: “https://www.freecodecamp.org/news/what-music-can-teach-us-about-the-way-we-share-code-a69c30ebded8/”