Никто из нас не пишет код в вакууме.
Возможно, вы начали в школе писать одноразовые приложения на Java или Python. Возможно, вы создали простой веб-сайт, объединенный с HTML и JavaScript saveur du jour. В любом случае, ваш код находится на уровнях фундаментальных строительных блоков, разработанных тысячами других.
В конце концов, вы попадете в точку, где вы захотите повторно использовать чужой код - или поделиться своим собственным! Размещение на таком сайте, как GitHub, является лишь частью решения, так как вам все равно придется включать инструкции о том, как его скомпилировать, интегрировать и т. Д.
Если бы у нас был способ упаковать наш код.![Neutral face :neutral_face: 😐](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f610.png)
Что такое пакет?
Каждое используемое вами приложение зависит от другого программного обеспечения, некоторые из которых связаны с самим приложением, а некоторые установлены с вашей ОС. Например, Notepad ++ зависит от libcurl.dll для передачи данных во время обновлений. Авторы Notepad ++ не написали libcurl, но это зависит от этого. Если вы переименуете его, то Notepad ++ не сможет работать, потому что он не может найти этот пакет кода.
Удаление или переименование кода, от которого зависит приложение, имеет предсказуемые результаты ...
То же самое и с кодом, который мы пишем.
Взять, к примеру, .NET. Когда вы создаете решение в Visual Studio, оно компилирует ваш код, упаковывает его в серию DLL-файлов (обычно по одному на проект) и выгружает их в каталог «bin» (вместе с некоторыми другими файлами, но давайте проигнорируем их). ).
Вот один из моих проектов,
Все эти различные DLL-файлы являются пакетами, то есть просто связками связанного кода. И хотя в моем примере я использовал .NET и библиотеки, у других языков есть свои собственные языки - гемы Ruby, модули Perl, Java JAR и т. Д.
Вы можете отправить эти файлы другу, отправить их по электронной почте, загрузить их в Dropbox или опубликовать в своем блоге. Вы можете загрузить исходный код в GitHub с инструкциями по их компиляции вручную. Но тогда как люди находят их, сообщают об ошибках, получают уведомления об обновлениях, ориентируются на конкретную версию ...?
Если бы у нас был какой-то способ управлять всеми этими пакетами.![Smirking face :smirk: 😏](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f60f.png)
Что такое менеджер пакетов?
Ваш (библиотека, гем, модуль, JAR и т. Д.) Может быть доступен другим проектам, которые ссылаются на них и вызывают их общедоступные функции (вроде API), но вы должны решить, как сделать этот код доступным в первом место.
NuGet - менеджер пакетов defacto для экосистемы .NET, с которым я больше всего знаком. На самом деле, термин «NuGet» относится к нескольким вещам, тесно связанным.
Если вы попытаетесь опубликовать свой собственный пакет NuGet, вы можете ожидать что-то подобное. Первые два изображения находятся в Visual Studio, в то время как последние два показывают содержимое сгенерированного nupkgфайла и nuspecфайл, который он содержит.
Генерация пакета NuGet с помощью Visual Studio
Файл метаданных в правом верхнем углу типичен для большинства менеджеров пакетов. Вы должны быть в состоянии рассказать сайту и людям, которые могут захотеть использовать ваш код, немного о вашем коде. Это может быть версия, описание, некоторые теги, которые сайт может использовать для классификации, и т. Д.
Если вы хотите узнать больше, у Microsoft есть большой набор вступительных документов, охватывающих основы того, как его использовать. Я нашел их информативными, хотя я уже знаком с этим. Вам понадобится
Источник:
Возможно, вы начали в школе писать одноразовые приложения на Java или Python. Возможно, вы создали простой веб-сайт, объединенный с HTML и JavaScript saveur du jour. В любом случае, ваш код находится на уровнях фундаментальных строительных блоков, разработанных тысячами других.
В конце концов, вы попадете в точку, где вы захотите повторно использовать чужой код - или поделиться своим собственным! Размещение на таком сайте, как GitHub, является лишь частью решения, так как вам все равно придется включать инструкции о том, как его скомпилировать, интегрировать и т. Д.
Если бы у нас был способ упаковать наш код.
![Neutral face :neutral_face: 😐](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f610.png)
Что такое пакет?
Каждое используемое вами приложение зависит от другого программного обеспечения, некоторые из которых связаны с самим приложением, а некоторые установлены с вашей ОС. Например, Notepad ++ зависит от libcurl.dll для передачи данных во время обновлений. Авторы Notepad ++ не написали libcurl, но это зависит от этого. Если вы переименуете его, то Notepad ++ не сможет работать, потому что он не может найти этот пакет кода.
Удаление или переименование кода, от которого зависит приложение, имеет предсказуемые результаты ...
То же самое и с кодом, который мы пишем.
Взять, к примеру, .NET. Когда вы создаете решение в Visual Studio, оно компилирует ваш код, упаковывает его в серию DLL-файлов (обычно по одному на проект) и выгружает их в каталог «bin» (вместе с некоторыми другими файлами, но давайте проигнорируем их). ).
Вот один из моих проектов,
Ссылка скрыта от гостей
. После сборки я получаю файлы "GhostSharp.dll" и "GhostSharp.Tests.dll" (для написанного мной кода) и "
Ссылка скрыта от гостей
" (потому что от этого зависит мой тестовый проект) .Все эти различные DLL-файлы являются пакетами, то есть просто связками связанного кода. И хотя в моем примере я использовал .NET и библиотеки, у других языков есть свои собственные языки - гемы Ruby, модули Perl, Java JAR и т. Д.
Вы можете отправить эти файлы другу, отправить их по электронной почте, загрузить их в Dropbox или опубликовать в своем блоге. Вы можете загрузить исходный код в GitHub с инструкциями по их компиляции вручную. Но тогда как люди находят их, сообщают об ошибках, получают уведомления об обновлениях, ориентируются на конкретную версию ...?
Если бы у нас был какой-то способ управлять всеми этими пакетами.
![Smirking face :smirk: 😏](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f60f.png)
Что такое менеджер пакетов?
Ваш (библиотека, гем, модуль, JAR и т. Д.) Может быть доступен другим проектам, которые ссылаются на них и вызывают их общедоступные функции (вроде API), но вы должны решить, как сделать этот код доступным в первом место.
- Укажите исходный код, чтобы они могли его скомпилировать вручную.
- Предоставьте скомпилированный код, чтобы они могли просто добавить его в свой проект.
- Предоставьте ссылку на исходный код (GitHub). Некоторые инструменты, такие как
Ссылка скрыта от гостейдля Erlang, могут напрямую ссылаться на ссылку GitHub и включать ее в процесс сборки, даже нацеливая на конкретную ветку или тег.
- Разместите скомпилированный код в каком-то центральном месте, где другие смогут его обнаружить, сослаться на него, получать уведомления об обновлениях, возможно даже обсуждать его и получать помощь.
- Для .NET есть
Ссылка скрыта от гостейиСсылка скрыта от гостей.
- Для Ruby есть
Ссылка скрыта от гостейиСсылка скрыта от гостей.
- В Node.js есть
Ссылка скрыта от гостей, PythonСсылка скрыта от гостей, JavaСсылка скрыта от гостей, PHPСсылка скрыта от гостей, PerlСсылка скрыта от гостейи т. Д.
NuGet - менеджер пакетов defacto для экосистемы .NET, с которым я больше всего знаком. На самом деле, термин «NuGet» относится к нескольким вещам, тесно связанным.
- Это система управления пакетами для .NET.
- NuGet.org - сайт, на котором размещены эти пакеты.
- Это также расширение Visual Studio, которое используется для ссылки на эти пакеты, установленные в VS по умолчанию.
Если вы попытаетесь опубликовать свой собственный пакет NuGet, вы можете ожидать что-то подобное. Первые два изображения находятся в Visual Studio, в то время как последние два показывают содержимое сгенерированного nupkgфайла и nuspecфайл, который он содержит.
Генерация пакета NuGet с помощью Visual Studio
Файл метаданных в правом верхнем углу типичен для большинства менеджеров пакетов. Вы должны быть в состоянии рассказать сайту и людям, которые могут захотеть использовать ваш код, немного о вашем коде. Это может быть версия, описание, некоторые теги, которые сайт может использовать для классификации, и т. Д.
Если вы хотите узнать больше, у Microsoft есть большой набор вступительных документов, охватывающих основы того, как его использовать. Я нашел их информативными, хотя я уже знаком с этим. Вам понадобится
Ссылка скрыта от гостей
чтобы получить максимальную отдачу от этого.-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
-
Ссылка скрыта от гостей
Ссылка скрыта от гостей
и я постараюсь помочь. Удачного кодирования!Источник:
Ссылка скрыта от гостей