Тип работы:
Предмет:
Язык работы:


Определение профессионального уровня программиста по github аккаунту

Работа №131189

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

Объем работы26
Год сдачи2017
Стоимость4600 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
24
Не подходит работа?

Узнай цену на написание


Введение 4
1. Существующие работы на данную тему 7
2. Постановка задач 8
3. Метрика 9
3.1. Построение метрики 9
3.2. Примеры использования метрики 10
3.3. Достоинства метрики 10
4. Проведения анализа пользователей Германии 12
4.1. Структура данных 12
4.2. Анализ пользователей 15
5. Проведение анализа самых популярных программистов мира 19
6. Ручной алгоритм 20
6.1. Самые важные характеристики со страницы профиля 20
6.2. Ручной алгоритм 22
7. Заключение 25
Список литературы 26

GitHub самая популярная система контроля версий для создания open source про­дуктов. Свою популярность данный сайт получил не только благодаря инструмен­там, обеспечивающим сам процесс разработки, но и благодаря встроенной системе социальных отношений [1]. Многие люди пользуются GitHub , чтобы создавать и поддерживать существующие продукты, но не меньшее количество людей приходит из-за популярности данного сервиса. Ввиду всего этого на GitHub происходят явле­ния социального характера [1], которые не могут быть объяснены в терминах данной системы (например, пользователь с большим числом подписчиков, но совсем без про­граммного кода).
Уже на протяжении нескольких лет GitHub активно развивается, в данный момент сложно найти разработчика, не исользующего данный сервис. Каждый программист, который зарегестрирован на GitHub, должен иметь профиль, содержащий важную информацию о нём. В связи с этим GitHub стал интенсивно использоваться HR ме­неджерами для поиска сотрудников.
Перечислим информацию, доступную в профиле программиста, котрую может ис­пользовать HR менеджер:
1) Organizations - организации в которых состоит пользователь;
2) Repositories - репозитории (репозиторий - ’’папка с кодом” какого-либо проекта);
3) Stars - количество звёзд, которые поставил пользователь другим репозиториям. Также можно просмотреть непосредственно эти репозитории;
4) Followers - количество тех, кто подписался на данного пользователя. Также мож­но просмотреть непосредственно этих пользователей;
5) Following - количество людей в подписке пользователя с возможностью просмот­реть профили этих людей;
6) Popular repositories - самые популярные репозитории пользователя, которые бы­ли специально выбраны для экспозиции их на главной странице. В настройках поль­зователь может поменять список выбранных репозиториев (тогда их называют pinned repositories, то есть специально поставленные пользователем);
7) Contribution - поле, характеризующие вклад пользователя в какие-либо проекты за последний год. Является натуральным числом.
Ниже вы можете видеть, как это выглядит на сайте GitHub (элементы пронуме­рованы).
Рис. 1: Страница профиля программиста
Также можно просмотреть репозитории пользователя, которые содержат следую­щую информацию:
1) код проекта;
2) Watchers - количество людей, наблюдающих за репозиторием. Также можно про­смотреть профили непосредственно этих людей;
3) Stargzers - количество пользователей поставивших звёздочку репозиторию с воз­можностью просмотреть принадлежащие им профили;
4) Forks - количество ’’копий” данного репозитория в терминах GitHub, с возмож­ностью просмотреть данные копии.
Благодаря этой информации, менеджеры по персоналу могут в ручную оценивать любого пользователя. Обычно они смотрят количество подписчиков, которое говорит о популярности пользователя, в ручную просматривают код, пробегая по некоторым из его репозиториев, однако практически невозможно проводить полный анализ или сравнивать сразу нескольких кандидатов (ввиду объёма информации). В итоге дан­ный анализ превращается в сравнение полей, доступных в профиле кандидата, что ненадёжно в смысле корректной оценки.
Очевидно, проблема невозможности HR менеджера пробежаться по всем данным пользователя могла бы быть успешно решена при автоматизации данного процесса, но, к сожалению, сейчас не существует подобных подходов. Также, очевидно, что проблема автоматизации - это непростая задача, так как программисты могут прояв­лять одинаковую активность, иметь одно и тоже количество репозиториев, но писать существенно разный по ценности код.
Построение метрики, которая поможет в автоматизации оценки разработчиков, могло бы существенно упростить работу HR менеджеров, а также помочь выработать глубокое понимание того, как должна проводиться ручная оценка.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В данной работе была продемонстрирована удобная с практической точки зрения метрика (3.1), которая позволяет оценивать программистов на сайте GitHub. Данная метрика делает акцент на реальных вкладах программистов, поэтому является кор­ректной и осмысленной в нашей предметной области. Также в работе был проведён анализ немецких разработчиков (4), в том числе с использованием построенной мет­рики. В конце был приведён на практике реализуемый ручной алгоритм, который позволяет предсказать результат по метрики с довольно хорошей точностью (6.2), используя характеристики доступные на странице профиля.
Данная работа может служить руководством для внедрения подобной оценки в реальные системы поиска разработчиков, что сильно поможет в работе HR специа­листам. Подходы продемонстрированные в этом тексте могут способствовать в до­казательстве оправданности иных построенных метрик для сайта GitHub, а также в выработки ручных алгоритмов на основе построенных метрик.


[1] Exploring the Patterns of Social Behavior in GitHub / Yue Yu, Gang Yin, Huaimin Wang, Tao Wang // Proceedings of the 1st International Workshop on Crowd-based Software Development Methods and Technologies. — CrowdSoft 2014. — 2014. — P. 31-36.
[2] Gousios Georgios, Kalliamvakou Eirini, Spinellis Diomidis. Measuring Developer Contribution from Software Repository Data // Proceedings of the 2008 International Working Conference on Mining Software Repositories.— MSR ’08.— 2008.— P. 129-132.
[3] Hauff Claudia, Gousios Georgios. Matching GitHub Developer Profiles to Job Advertisements // Proceedings of the 12th Working Conference on Mining Software Repositories. — MSR ’15. — 2015. — P. 362-366.
[4] Influence analysis of Github repositories / Yan Hu, Jun Zhang, Xiaomei Bai et al. // Published online.— 2016.— URL: https://www.ncbi.nlm.nih.gov/pmc/articles/ PMC4975729/.
[5] Joicy Xavier, Autran Macedo, Marcelo de Almeida Maia. Understanding the popularity of reporters and assignees in the GitHub // Proceedings of the 26th International Conference on Software Engineering Knowledge Engineering, At Vancouver, Canada. — SEKE 2014. - 2014. - P. 484-489.
[6] Social Coding in GitHub: Transparency and Collaboration in an Open Software Repository / Laura Dabbish, Colleen Stuart, Jason Tsay, Jim Herbsleb // Proceedings of the ACM 2012 Conference on Computer Supported Cooperative Work. — CSCW ’12. — 2012. — P. 1277-1286.
[7] Tsay Jason, Dabbish Laura, Herbsleb James. Influence of Social and Technical Factors for Evaluating Contribution in GitHub // Proceedings of the 36th International Conference on Software Engineering. — ICSE 2014. — 2014. — P. 356-366.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ