Въведение на програмист към GitHub

Искате да научите JavaScript? Вземете безплатната ми електронна книга на jshandbook.com

GitHub е уебсайт, който хоства милиарди редове код и там се събират милиони разработчици всеки ден, за да си сътрудничат и да съобщават за проблеми със софтуер с отворен код.

Накратко, тя е платформа за разработчици на софтуер и е изградена около Git.

СЪВЕТ: Ако все още не знаете за Git, прегледайте моето ръководство за Git.

Като разработчик, не можете да избегнете ежедневното използване на GitHub или друг Git-базиран инструмент като част от работата си. Използва се или за хостинг на вашия код, или за сътрудничество върху кода на други хора. Тази статия обяснява някои ключови понятия на GitHub и как да използвате някои от неговите функции, за да подобрите работния си процес.

Защо GitHub?

Сега, когато знаете какво е GitHub, може да попитате защо трябва да го използвате.

В крайна сметка GitHub се управлява от частна компания, която печели от хостинг на хората. Така че защо да използвате това вместо подобни платформи като BitBucket или GitLab?

Освен личните предпочитания и техническите причини, има и една голяма причина: всички използват GitHub, така че мрежовият ефект е огромен.

Основните кодови бази са мигрирали с течение на времето от други системи за контрол на версиите към Git поради неговото удобство, а GitHub исторически е добре позициониран и положи много усилия да обслужва нуждите на общността с отворен код.

Затова днес, всеки път, когато потърсите някоя библиотека, 99% от времето ще я намерите в GitHub.

Освен кода с отворен код, много разработчици също така хостват частни хранилища в GitHub поради удобството на платформата.

Сега нека да започнем с важните специфични концепции на Git, които един програмист трябва да знае.

Проблеми с GitHub

Изданията на GitHub са едни от най-популярните проследяващи грешки в света.

Те предоставят на собствениците на хранилище възможността да организират, маркират и асоциират проблеми с етапи.

Ако отворите проблем за проект, управляван от някой друг, той ще остане отворен, докато или не го затворите (например, ако разберете проблема, който сте имали) или собственикът на репо не го затвори.

Понякога ще получите окончателен отговор, а друг път въпросът ще бъде оставен отворен и маркиран с някаква информация, която го категоризира. Тогава програмистът може да се върне към него, за да отстрани проблема или да подобри кодовата база с вашите отзиви.

Повечето разработчици не са платени да поддържат своя код, пуснат на GitHub, така че не можете да очаквате бързи отговори. Но някои хранилища с отворен код се публикуват от компании, които предоставят услуги около този код, имат търговски предложения за версии с повече функции или използват архитектура, базирана на приставки. И така те са платили на разработчиците, работещи по проекта с отворен код.

Социално кодиране

Кредит за изображение: https://octodex.github.com

Преди няколко години логото на GitHub включваше лога на „социалното кодиране“.

Какво означаваше това и все още ли е уместно? Със сигурност е така.

последвам

С GitHub можете да следвате програмист или хранилище, като отидете в потребителския профил и щракнете върху „следвайте“ или като кликнете върху бутона „гледане“ на репо.

И в двата случая дейността ще се покаже на таблото ви за управление. Следването на потребител или хранилище е за разлика от Twitter, където виждате какво казват хората - вместо това виждате какво правят хората.

Звезди

Една голяма особеност на GitHub е възможността да играе звезда в хранилище. Това действие ще го включи в списъка ви със „звездни хранилища“, което ви позволява да следите проектите, които ви се струват интересни, и да откривате подобни проекти.

Това е и един от най-важните механизми за оценка, тъй като колкото повече звезди има репо, толкова по-популярен и важен е той. Това води до това, че се показва по-ясно в резултатите от търсенето.

Основните проекти могат да имат десетки хиляди звезди.

GitHub също има тренд страница, където съдържа хранилища, които получават най-много звезди за определен период от време (например днес или тази седмица или този месец).

Попадането в тези тенденционни списъци може да доведе до други мрежови ефекти, като например представяне на други сайтове, само защото имате повече видимост.

вилица

Последният важен мрежов индикатор на проекта е броят на вилиците.

Това е ключово за начина на работа на GitHub, тъй като вилицата е основата на Pull Request (PR), което е предложение за промяна. Човек може да разклони вашето хранилище, да направи някои промени и след това да създаде заявка за изтегляне, за да ви помоли да обедините тези промени.

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

Популярни = по-добри

Като цяло това са ключови показатели за популярността на даден проект. Освен горните показатели, датата на последния ангажимент и участието на автора в проследяването на проблеми са полезни индикации за това дали трябва да разчитате на библиотека или софтуер.

Издърпайте заявки

В предишния раздел представих какво е заявка за изтегляне (PR). За да повторите, човек може да разклони вашето хранилище, направи някои промени и след това да създаде заявка за изтегляне, за да ви помоли да обедините тези промени.

Един проект може да има стотици PR, и като цяло случаят е, че колкото по-популярен е проектът, толкова повече PR-и има, като проект React:

След като човек подаде заявка за изтегляне, той трябва да бъде прегледан от основните поддръжници на проекта.

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

Един проект може да има ясен график на промените, които искат да въведат. Поддръжникът може да иска да опрости нещата, докато въвеждате сложна архитектура в заявка за изтегляне.

Това означава, че заявката за изтегляне не винаги се приема бързо и няма гаранция, че заявката за изтегляне някога ще бъде приета.

В примера, който публикувах по-горе, в репото има заявка за изтегляне, която датира от преди 1,5 години. И това се случва във всички проекти - това е съвсем нормално и може да се дължи на причините, които споменах по-горе.

Управление на проекти

Наред с проблемите, които са местата, където разработчиците получават обратна връзка от потребителите, интерфейсът GitHub предлага и други функции, насочени към предоставяне на няколко функции за управление на проекти.

Един от тях са Проекти. Той е много нов в екосистемата и много рядко се използва, но това е съвет на Kanban, който помага да се организират проблеми и работа, която трябва да се свърши.

Уикито е предназначено да се използва като документация за потребителите. Едно от най-впечатляващите приложения на Wiki, което съм виждал досега, е Goit Programming Language GitHub Wiki.

Друга популярна помощ за управление на проекти са основните етапи. Това е част от страницата с проблеми и можете да зададете проблеми на конкретни етапи, които биха могли да бъдат насочени към освобождаване.

Говорейки за версии, GitHub подобри функционалността на Git tag чрез въвеждане на версии.

Маркерът Git е указател към конкретен ангажимент и ако се прави последователно, ви помага да се върнете към предишната версия на кода си без да споменавате конкретни ангажименти.

Версията на GitHub се надгражда върху таговете на Git и представлява пълно освобождаване на вашия код, заедно с Zip файлове, бележки за освобождаване и двоични активи, които могат да представляват напълно работеща версия на крайния продукт на вашия код.

Докато Git тагът може да бъде създаден програмно (например с помощта на програмата за git на командния ред), създаването на GitHub версия е ръчен процес, който се случва чрез потребителския интерфейс на GitHub. По принцип кажете на GitHub да създаде ново издание и им кажете към кой маркер искате да приложите това издание.

Сравняване на ангажименти

GitHub предлага много инструменти за работа с вашия код.

Едно от най-важните неща, което може да искате да направите, е да сравните един клон с друг. Или може да искате да сравните последния ангажимент с версията, която в момента използвате, за да видите кои промени са направени във времето.

GitHub ви позволява да направите това с изгледа за сравнение: просто добавете / сравнете до края на репо името.

Например https://github.com/facebook/react/compare

На фигурата по-долу сравнявам последната React v15.x с най-новата версия v16.0.0-rc, налична към момента на писането, за да видя какво се е променило.

Този изглед ви показва поръчките, направени между две версии (или тагове или препратки), които са променени, и действителната разлика, ако броят на промените е по-нисък от разумната сума.

Уебшоки и услуги

GitHub предлага много функции, които помагат на работния процес на разработчиците, като уеб куки и услуги.

Webhooks

Webhooks позволяват да се пингират външни услуги, когато в хранилището се случват определени събития, например когато се натисне код, се направи вилица или се създаде или изтрие маркер.

Когато се случи събитие, GitHub изпраща POST заявка до URL, който му казваме да използва.

Често срещано използване на тази функция е да пинг на отдалечен сървър, за да извлечете най-новия код от GitHub, когато избутваме актуализация от нашия локален компютър.

Ние натискаме към GitHub, GitHub казва на сървъра, който сме натиснали, и сървърът се дърпа от GitHub.

Услуги

Услугите на GitHub и новите приложения на GitHub са интеграции на трети страни, които подобряват изживяването на разработчиците или предоставят услуга за вас.

Например, можете да настроите тестов бегач, който да стартира тестовете автоматично всеки път, когато натискате някои нови ангажименти, използвайки TravisCI.

Можете да настроите непрекъсната интеграция с помощта на CircleCI.

Можете да създадете интеграция с Codeclimate, която анализира кода и предоставя отчет за „Технически дълг“ и тестово покритие.

Заключителни думи

GitHub е невероятен инструмент и услуга, с които да се възползвате, истински скъпоценен камък в днешния набор от инструменти за програмисти. Този урок ще ви помогне да започнете, но реалният опит от работата по проекти на GitHub с отворен код (или затворен код) е нещо, което не трябва да се пропуска.

Искате да научите JavaScript? Вземете безплатната ми електронна книга на jshandbook.com