beta.gitlance.net/top/javascript


Источник изображения: beta.gitlance.net/top/javascript




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


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


Мы же верим, что есть способ получше, и именно поэтому создали GitLance. По сути своей, коммиты в Git подобно бухгалтерской книге надежно фиксируют вклад каждого из участников, а на Github находится огромное множество публичных репозиториев Git вместе с их разработчиками, а также сравнимое количество их взаимных оценок в виде звёздочек на репозиториях и форков, идущих от них. Так почему бы не воспользоваться этим для генерации кодового графа?


Это и представляет собой основу GitLance: кодовый граф из более чем 500 миллионов коммитов и звездочек от более чем 9 миллионов разработчиков по 39 миллионам репозиториев на более чем 350 разных языках программирования. Поскольку отдельные коммиты могут появляться в нескольких репозиториях (в частности, в их форках) и содержать в себе более одного файла (а, значит, и языка программирования), то на выходе получается довольно большой граф: около 15 миллиардов ребер в несжатом виде, плюс-минус миллиард или два.


Если кому любопытно, то граф целиком загружается в память, а сам хранится на шардах с базой данных MongoDB. Наш проект написан на Go, а алгоритм оценки по сути похож на PageRank, с репозиториями и пользователями как основными типами вершин, а рёбра в нем определяются коммитами, звездочками и форками.


В конечном счете, все сводится примерно к 23 миллионам рейтингов по языкам программирования, из которых мы и вывели те самые рейтинги программистов. На сегодняшний день, мировой ТОП-200 лучших JavaScript-разработчиков доступен по адресу: beta.gitlance.net/top/javascript. Если вас нет в этом списке, то можете ввести свой логин Github в поиск и посмотреть на какой позиции находитесь вы.


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


Послесловие переводчика


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


Если же вы до этого слышали о подобных проектах, занимающихся выведением критериев “программист X лучше программиста Y” на основе разной статистики, поделитесь в комментариях, пожалуйста. Также интересно, что вы думаете об этом направлении анализа? Может ли автоматизированный анализ профессиональных навыков стать в рекрутинге чем-то самим собой разумеющимся, и не будет ли от этого больше вреда, чем пользы?


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


P. S. По личным наблюдениям, данные там обновляются около раза в месяц, так что иной раз туда можно наведываться за свежими рейтингами.


> Оригинал статьи

Поделиться с друзьями
-->

Комментарии (36)


  1. igor_suhorukov
    08.03.2017 11:40
    +2

    Теперь кроме строчек кода (LOC) в процессе работы нас HR будут мерить по GitLance до найма за деньги работодателей…


  1. k12th
    08.03.2017 11:50
    +7

    Это неплохая метрика, но не идеальная. Есть очень крепкие разработчики, которые просто не пишут в open source — другое хобби, частный проект, просто не пользуются гитхабом:)


    1. lookid
      08.03.2017 15:27
      -35

      Отмаза просто гениальная: "Я хорошие программист. Но работу свою не покажу. А если вы не верите или критикуете меня, то вы…! Я скозал!" Вы пытаетесь заставить людей играть по своим правилам. И недовольны, когда вам предлагают играть по своим. Лицемерие выше крыши. Ну ок, в таком случае будете получать тестовое задание "Закодить за 4 часа без ошибок". Хотели войну? Воюйте до конца.


      1. k12th
        08.03.2017 15:30
        +4

        Вот как весна, так хоть блокируй себе хабр. Дорогое НЛО, удали, пожалуйста мой коммент и всю ветку.


      1. greendimka
        08.03.2017 15:41
        +3

        Войну это тут вы себе надумали. До конца еще воевать… что за мода?


        Если вы не работали в серьёзных проектах, зачастую подкреплённых исследованиями, то не беритесь утверждать. Большинство крутых, не помешанных на пиаре, ребят за пояс затыкают опенсурсников.


        Лично забраковываю 90% предлагаемого в проекты опенсурса. Причина номер один: низкое качество. Причина номер 2: низкое качество. Причина номер 3: низкое качество.


      1. Pakos
        09.03.2017 10:52

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


    1. Kroid
      08.03.2017 23:02

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


    1. lpwaterhouse
      09.03.2017 10:09

      Кодить за бесплатно вообще такое себе удовольствие.


      1. k12th
        09.03.2017 12:13
        +1

        Я и говорю — разные у людей хобби.


  1. za90
    08.03.2017 12:01
    +2

    Пролистал первую сотню, встретил DmitryBaranovskiy на 87 месте. Так держать!


    1. DmitryBaranovskiy
      08.03.2017 12:39
      +13

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

      Если твоя песня называется React, то знать что такое замыкание не обязательно.


  1. deniskreshikhin
    08.03.2017 12:26
    +3

    Такие рейтинги бессмысленны, т.к. обычно приходится сравнивать не XXX с TJ, а XXX и YYY которые в хвостике. И вот подобные рейтинги не гаратируют ничего. А то что TJ крутой ноджсер, итак все знают.


    1. TJ
    ....
    9900. XXX
    10000. YYY


    1. zharikovpro
      08.03.2017 13:17
      +1

      Что примечательно, TJ уже два года как попрощался с экосистемой Node.js в пользу Go. Так что он крутой, но замотивировать его вернуться к JS будет теперь отдельной задачей))))


      1. deniskreshikhin
        08.03.2017 13:41

        Да, но что еще более примечательно, в Go он такой же популярности добиться не смог)


  1. greendimka
    08.03.2017 12:39

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


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


    1. f0rk
      08.03.2017 13:19

      но работу я бы им ни за что не дал.

      Представил как tj или substack умоляют вас дать им работу… :)


      1. greendimka
        08.03.2017 13:28

        Речь не шла о TJ. Но даже если бы и о нём: вы действительно думаете, что клиент платит за то, что кто-то там где-то там звезда?


  1. tentakle
    08.03.2017 12:59
    +2

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


  1. sbnur
    08.03.2017 13:20
    +4

    «Общество, в котором нет цветовой дифференциации штанов, лишено цели» — цитата


  1. lexasss
    08.03.2017 15:31
    +5

    Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?


    1. madkite
      08.03.2017 16:36
      +3

      Проплатил, стопудово. Исходники то этого gitlance не на github, перепроверить то нереально. Вообще все эти рейтинги — такая большая область для коррупции.


    1. vedenin1980
      08.03.2017 17:33
      +4

      Простите, но как могло получиться, что 11ая позиция досталась человеку с четыремя репозиториями, и все не про JS?

      У него в followers много JS девелоперов. Видимо вся суть рейтинга (аля pagerank) берем все followers, берем их star в JS проектах, суммируем и получаем рейтинг разработчика. То есть по сути рейтинг разработчика строиться на основе дружеских связей, есть куча приятелей-звезд в opensource и у тебя будет высокий рейтинг.


      человеку с четыремя репозиториями

      Ладно 4 репозитория, у него со всех репозиториев 1 star и 1 fork. И в другие репозитории нет коммитов.


      P.S. Вывод — В целом, рейтинг ерунда и накручивается легко за счет друзей и знакомых.


      1. NeXTs_od
        09.03.2017 01:53

        рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас? у вас в друзьях вся первая десятка со списка?


        1. vedenin1980
          09.03.2017 04:40

          рейтинг высчитывается на основе «раскрученности» фолловеров. как вы «легко» уговорите раскрученные аккаунты подписаться на вас?

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


          Как-то же человек с 1 звездой во всех репозиториях получил 76 фоловеров.


          1. Areso
            09.03.2017 05:41

            У меня фолловеров в разы больше, чем звезд. А если посчитать, сколько у меня было фолловеров (то есть люди подписываются и отписываются с течением времени), то порядка 20 человек наверное наберется.
            Звезда на репозитории — это интересный реп/полезный реп.
            Фолловер — значит человек надеется увидеть что-то новое и полезное для себя в списке репов со временем.


  1. anton_slim
    08.03.2017 20:41
    +1

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


    1. markhor
      08.03.2017 20:51
      +1

      У нашей компании похожий алгоритм, хотя мы не стрeмимся ко всяким этим рейтингам: https://blog.sourced.tech/post/handshakes_pagerank/
      image


  1. Areso
    09.03.2017 05:47
    +1

    Для всех остальных ЯПов этот сервис пока не работает? Попробовал python / vb (да, вот такой вот я), говорит, пока нет данных. При попытке вбить php там все ломается)


    1. noomorph
      09.03.2017 12:39

      В целом, подсчеты по другим ЯП у них уже есть (их можно увидеть в JSON API), но публичный доступ к ним организация пока не предоставляет. Сдается мне, что адекватность и точность выдачи там порядком ниже, чем для JS, и они хотят позаниматься тюнингом и дополнительной проверкой других ТОП-рейтингов, прежде чем их выкладывать в общий доступ.


  1. inker
    09.03.2017 10:09
    +3

    Судя по комментариям к статье, TypeScript (и все подобные компилируемые в JS языки) учитываются отдельно и поэтому не идут в рейтинг, что делает его (этот рейтинг) немного бессмысленным, поскольку любой TS-разработчик — он же JS-разработчик, просто предпочитающий статическую типизацию.


  1. Cnfc19932
    09.03.2017 10:09
    +1

    Вы понимаете что количество звездочек и прочих фидбэков — это оценка вклада (полезности) в сообщество? И качество кода никак не коррелирует с количеством этих самых звездочек.В мире куча крутых программистов с идеальным кодом, которые не выложили в open source ничего, что подняло бы всеобщий хайп.


  1. Kekoc
    09.03.2017 10:09
    +1

    Просто опишу пару ситуаций из жизни. Поработал с несколькими frontenderami за год и хочу поделиться с вами следующими воспоминаниями.
    1) Человек создаёт репозитории решений которые уже есть в достатке и просит своих коллег, друзей лайкать и фоловить.
    2) Работаем с человеком и у него множество вкладов в другие репозитории элементарно по той причине что их надо править, косяк на косяке и иногда даже владелец репозитория на 100+ звёзд пишет, что ошибка не у меня, а у сурца который я использую, пишите им. (Коммент выше про качество)
    3) Мой товарищ тоже frontend разработчик и как-то я завёл с ним разговор чувак зачем весь этот пиар, что если просто будут фермы и набивать звёздочки и т.д. А он говорит «да нет, ты чего, какая разница много или нет все равно можно посмотреть кто звёздочки ставит и какого уровень вклад и вообще есть ли смысл в том что он сделал»
    P.s. вообще к комментам выше присоединяюсь (по поводу может норм разработчик просто в закрытую пишет) и хочу добавить.
    В какой момент opensource стал инструментом пиара? Почему к его написанию просто нельзя логически подойти и подумать, а нужно ли это вообще, а не просто «я хочу весь такой разраб клац клац код звёздочки фоловерсы»? Личные наблюдение, что всё это твориться преимущественно в JS (возможно ещё в каких модных ЯП)


  1. Infernion
    09.03.2017 11:12

    Странные результаты показывает этот сервис. У меня в репозитарии есть только три форнутых JS проекта, где я особо ничего не менял, а пишет что я в TOP 70% JS разработчиков, при том что я не считаю себя компетентным в этой области.


    1. f0rk
      09.03.2017 12:24

      TOP 70% — это bottom 30%, так что все нормально :)


      1. greendimka
        09.03.2017 15:15

        Как понять?


    1. iShatokhin
      09.03.2017 18:49

      Я в топ 7%, но при этом бываю в гитхабе по коммиту раз в полгода (и то в проекты, которые широкому кругу неинтересны). Сомнительный, совсем сомнительный рейтинг.