Компания
367,65
рейтинг
8 октября 2013 в 21:05

Разработка → Upsource: новая платформа от JetBrains

В прошлом месяце, на конференции JetBrains Day мы объявили о новой платформе Upsource, над которой работаем. В этом обзоре предлагаем вам познакомиться с ней поближе.

Как знают многие пользователи наших продуктов, JetBrains разработала и поддерживает гибкую расширяемую платформу IntelliJ, служащую фундаментом для всех наших интегрированных сред разработки, включая IntelliJ IDEA, PhpStorm, WebStorm, RubyMine, PyCharm и AppCode, а также для Android Studio от Google. Именно IntelliJ обеспечивает всю основную функциональность этих IDE; остальные особенности и «примочки», придающие индивидуальность каждой из IDE, — не более чем набор плагинов к платформе.

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

image

Весь ваш код, каждый коммит — как на ладони

Upsource — это «браузер кода» (помимо прочего). Щелкнув тот или иной коммит, мы можем в любой момент начать просматривать соответствующий ему код:

image

Сразу отображается древовидное представление нашего проекта:

image

Из него мы можем перейти к любому файлу. В файлах с исходным кодом работает не только подсветка синтаксиса, но и мощная навигация. Щелкнув на любом символе, мы можем перейти к его объявлению (Goto Declaration) или найти его вхождения (Find Usages):

image

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

image

Кроме того, Upsource позволяет перейти к конкретному символу (Goto By Name), подобно тому, как это делается в обычной IDE:

image


Изменения в коде (диффы)


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

image

Можно наглядно сравнить их side-by-side:

image

Например, это может быть полезно при совместном разборе кода. Просто выделив фрагмент кода, можно создать URL-адрес и отправить его другому человеку:

image

В коде можно заранее подсветить фрагмент, чтобы привлечь к нему внимание:

image

И наконец, есть вид «Аннотации», когда в левой части отображается информация о коммитах:

image


Больше, чем браузер: анализ кода

Выше мы описали некоторые полезные способы самостоятельного просмотра кода и совместного разбора кода. Но этим возможности Upsource, конечно, не ограничиваются.

На одном из скриншотов выше вы могли заметить желтый квадратик (в правом поле). Если вы пользуетесь нашими IDE на базе IntelliJ или ReSharper (для .NET), то знаете, что зеленый квадратик означает, что у вас в коде все отлично, желтый — что есть потенциальные проблемы, а красный — что проблемы есть наверняка.

Если так, то интуиция вас не обманула: этот квадратик говорит нам о том, что Upsource ведет анализ исходного кода, как это делает IntelliJ IDEA. Он выявляет те же проблемы в браузере, которые вы могли бы увидеть в своей IDE.

image

В ближайшее время мы планируем добавить и другие языки. Большая часть подготовительной работы для этого (выделение нужных модулей из платформы IntelliJ) уже проделана, так что поддержка дополнительных языков, с которыми уже работают IDE от JetBrains, — не за горами.


Попробуйте Upsource уже сейчас

Хотя мы еще не запустили официальную программу предварительного доступа (EAP), Upsource уже можно попробовать в виде решения с удаленным хостингом. Зайдите на upsource.jetbrains.com и взгляните на два наших проекта c открытым кодом: IntelliJ IDEA Community Edition и Project Kotlin. Там же доступна навигация по множеству общедоступных JVM-библиотек, включая весь Android SDK.

Программируйте с удовольствием!
Команда JetBrains
Автор: @beenom
JetBrains
рейтинг 367,65

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

  • +40
    Ребят, когда c++ IDE ждать? :) Я давно подписался, но до сих пор ничего: ни новостей, ни пресс-релизов.

    • +3
      Ага :) Там и Android NDK к Android Studio вероятно скоро будет.
      • 0
        в Android Studio если и появится, то очень нескоро, потому что поддержка C++, полагаю, будет платной и закрытой.
    • +3
      На YAC был спич про AppCode, там вроде говорилось про то что в течение осени будет закрытое превью.
    • НЛО прилетело и опубликовало эту надпись здесь
      • +7
        Со временем будут все языки, которые есть в IntelliJ IDEA, а может и больше ;)
        Работать будет со всеми типами проектов, с которыми работает IDEA, соответственно с мультиязыковостью уже и сейчас все хорошо, просто из языков только Java и XML.
    • +5
      Мы по-прежнему рассчитываем на EAP осенью. Я бы сказал, поздней осенью.
  • +1
    А какие системы контроля версий оно будет поддерживать?
    Или что-то своё?
    • +5
      Будут поддерживаться все системы контроля версий, поддержка которых есть в TeamCity.
    • +3
      А еще конкретней: будут поддержаны все вменяемые системы контроля версий, которые представлены на рынке. Вот тут на странице есть картинка: confluence.jetbrains.com/display/TCD8/TeamCity+Documentation
      • +17
        Александер, ты только что назвал Visual SourceSafe вменяемой системой.
      • 0
        Очень сильно!
  • –39
    Народ, все классно когда смотря на xcode 5 делаешь выборочно что-то подобное, но прошу вас, сделайте intelliJ изменения по интерфейсам, елементарные:
    1. я НИКОГДА не знаю ГДЕ я нахожусь попадая в другие окна. метод народного тыка дает чаще маты и желание закрыть приложение. У меня нет другого выхода — эклипс вызывает желание закрыть его сразу :)
    2. structure — не знаю как где а для андроид это полный коллапс. куда-то пропадают методы, const заменяет все, никакого варианта организации кода like #pragma. Ну конечно я напильником доточил но ведь public void ____________________MAIN_VIEW_LIFECYCLE______________() {}; смотрится как-то не
    3. я не знаю кто из вас (найдите его и get him paid) придумал что при открытии меню хорошо когда 12ть пунктов. в перечислении. Ребята — я КОДИРУЮ а не РАЗБИРАЮСЬ В ВАШЕМ ИНТЕРФЕЙСЕ. мне реально нет времени на декомпилирование ваших (уверен умных) мыслей.
    4. Я сделал RUN application. Ура. А смотрел до этого логи android. причем определенные. Ну где этот неизвестный герой который подумал, что раз он мне показал что апликация закачалась на девайс успешно (ну да, я не понял конечно это глядя на девайс который перезапустил мою аппу) зачем мне обратно смотреть логи. Кликай мля на мизерную иконку Android на 2000x2000 мониторе :) Если трезвый с первого раза попадешь :) И будь счастлив пока они загрузятся наново :)

    Это только крики души а сколько еще вялых попискиваний :). Без обид, продукт хороший, только предлагаю свою помощь в организации интерфейса. Реально бесплатно, просто чтобы было классно. Пишите в личку если что :)

    • +24
      После такого описания проблемы, я бы не принял вашу помощь, даже с вашей доплатой ). Даже не сказали про какую конкретно IDE речь.
      • –25
        intellij idea конечно а что другие платформы под андроид работают?
        После такого сообщения я бы никогда вам не помог, видно что вряд ли помощь вам нужна и возможна. Я принимаю любые комментарии от своих юзеров(их уже почти миллион) в любом тоне и выбираю оттуда здравые мысли. Посмотрим кто из нас двоих останется в рынке через пару лет…
        • +12
          Вам и пользователю Divers горячо желаем остаться на рынке через пару лет. Стоит, впрочем, отметить, что он не является сотрудником JetBrains.
        • +1
          Ога, например Android Studio.
        • +2
          Про ADS уже ответили, и про, то что я к JB отношение не имею тоже( это и так понятно по «я бы»).

          По поводу здравых мыслей — вы метко заметили. В вашем посте, на мой взгляд, их нет. Это все таки IDE для программистов, а не игра для детей,
          1. Как можно не знать в каком окне вы находитесь, если вы нажали кнопку с текстом перед тем как туда попасть, тем более в хедере диалога есть его название.
          2. Вообще не понял про что речь.
          3. Какие способы организации кнопок вы еще знаете, кроме как группировки их в меню?
          4. В ADS так и есть.
    • +12
      С удовольствием примем вашу помощь в виде оформленных в трекере реквестов с четким указанием каждой проблемы, описанием того, как есть сейчас, и того, как, по вашему мнению, должно быть.

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

      Спасибо
      • –4
        А у вас разработчики насколько соответствующие? ;)
        • +6
          Как правило, высоко соответствующие.
      • –52
        Оформлять на трекере ничего не буду. Потому что не обязан и вообще… Разработка сродни магии а вы мне про трекер… Работайте дальше рано или поздно кто то другой решит все проблемы :) только заработает с этого не вы и не ваш трекер. :)
        • +28
          Вы слишком непоследовательны. Сначала предлагаете волонтерскую помощь (причём достаточно адовым постом а-ля «я джва года жду такую игру»), а потом категорически отказываетесь её оказать, мотивируя тем, что инженерная дисциплина у вас «сродни магии». Это печально.
          • 0
            Даже несмотря на то, что магия, как ни странно, достаточно точная наука :)
            • 0
              Это смотря в чьей философии. Есть куча фантастов, которые про магию вообще почти ничего не рассказывают — откуда она берётся, какие имеет ограничения… Вот Асприн вроде бы этим грешил.
        • +16
          Да вы, батенька, дурак.
        • +4
          Что вы там курите?
  • НЛО прилетело и опубликовало эту надпись здесь
    • +6
      CodeReview в Upsource будет, мы сейчас над этим активно работаем. Никаких дат назвать не могу, но следите за обновлениями ;)
      • +1
        Вот это реально круто! Стеш и джыра вообще полноге уг, а вот YouTrack + Upsource я б юзал!
  • +2
    Вот бы в GitHub добавили подобные фичи.
    • 0
      Вот да. Особенно фирменное обнаружение проблем (желтные квадратики и прямоугольники). Часто вижу классные по функционалу (или, по крайней мере, по задумке) библиотеки, но внутри такой говнокод, что жить не хочется. Эти функции здорово бы мотивировали народ писать лучше.
      • +5
        Библиотеки бесплатно-опенсорсные? Если так, то их контрибьюторов могли бы мотивировать и наши IDE, которые для них ничего не стоят.
      • +1
        Особенно фирменное обнаружение проблем (желтные квадратики и прямоугольники)

        Понемногу пилю что-то подобное, только намного проще. Сильно мешает то, что на github аннотации к коду отображаются только на странице коммита — как пример работы =)
  • +1
    Условия распространения продукта уже известны?
    • 0
      Продукта еще нет. Нет даже Preview или EAP. Так что тут нечего сказать.
      • 0
        Эм, обычно, сначала придумывают бизнес-модель, а потом выпускают продукт.
        Странно, что в таком порядке. Или это обычная для вас модель?
        • 0
          Ага, обычная.
  • +12
    Год от года поддерживаете марку. Вы лучшие!
  • 0
    Какого типа продукт намечается? Хостинг по модели Github/Bitbucket, или скорее браузерная IDE?
    • 0
      Намечается все. А что получится, и что нужно рынку — это не известно. Но с хостингами соревноваться точно не хочется — там жестокая экономия не ресурсах, а считать код — дорого.
      • +3
        Чекбокс на гитхабе. Она активируется — тариф увеличивается на n%. И вы получаете свою часть :)
    • +2
      Я даже название придумал jetHub :)
  • 0
    А как там дела с Jetbrains VCS? ;) Жду с анонса)
    • 0
      Пару месяцев назад на JetBrains TV был расширенный анонс (по ссылке презенташка на полчаса). Вы о нем говорите или о каком-то более раннем анонсе?
      Если совсем кратко, то VCS в отличие от git будет централизованная, по рассказу докладчика она напомнила Perforce. Будет бесплатная и даже open-source. Релиз будет не раньше чем через год, хотя в течение года уйдёт в EAP.
      • 0
        а с чем связан акцент на централизации? т.е. преимущества с одной стороны ясны (тот же perforce достаточно хорош), но DVCS плавно становится стандартом де-факто в силу своего удобства.
        • 0
          DVCS становится стандартном в силу 100 миллона инвестиций у GitHub.

          Без центрального репозитория вы не можете сделать ни одной Enterprise фичи. То, что часть репозитория может храниться и даже изменяться локально, это другой аспект, и к DVCS он имеет отношение весьма косвенное: в рамках DVCS такую штуку просто сделать техически проще.
  • 0
    Дайте посмотреть на python исходники :)
  • +2
    Сходу замечание по функционалу расшаривания — ссылка совсем монстр, было бы хорошо прикрутить сокращалку
    • 0
      угу, напрашивается сходу.
    • +1
      Это да, прикрутим, конечно.
  • +2
    Это все, конечно, классно. Жаль только, что общемировая тенденция направлена на забивание на поддержку. Другими словами — когда баги будете фиксить? Например youtrack.jetbrains.com/issue/IDEA-90070 — висит уже год, важная часть функционала просто не работает, но всем пофиг.
    • +1
      За что минус, еще и в карму? После этого коммента в баге появилось движение. Я же не виноват, что иначе никак. А функционал нужный, без него плохо, привык на прошлой конторе, но там была Jira.
    • +1
      Увы, фиксить все и быстро успеваем не всегда: продукты большие, проблем немало.
      Извиняемся, что этот организационный момент коснулся лично вас.
      В баге, действительно, пошла движуха — надеюсь, она дойдет до логического завершения.
      Спасибо, что напомнили.
  • 0
    503 Service Unavailable

    No server is available to handle this request.

    :(
    • +1
      трагическое стечение обстоятельств, пофиксили! )

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка