Pull to refresh

IDE Atom от GitHub. Опубликован roadmap к версии 1.0

Reading time 4 min
Views 15K

Команда Atom опубликовала roadmap. Впервые это объявлено на discuss, затем добавлено в FAQ и расписано в issues, потому новость вполне официальная, хотя её всё ещё нет в блоге. На скрине список на стабилизацию API.
UPD. Из интересного:
  • У команды разработчиков Atom нет жестких сроков
  • В текущем роадмапе отсутствует поддержка отличных от UTF-8 кодировок (линк на коммент)
  • Хотя официальная поддержка больших файлов (>2МБ) только планируется — в последних сборках расширение (до 10МБ) обходится заменой пары строк в коде


Предыстория.


Неделю назад в одном из топиков на discuss.atom.io была высказана идея о публикации roadmap Atom`а:
Some things I can think of off the top of my head to increase transparency:
  • post the roadmap with general guidelines on here, or on the atom/atom
  • open PRs super early in the process with an explanation of what we're doing


Мой текст представляет собой вольный перевод заметки и объединения контента из ссылок оригинала в более наглядное целое.
Скрин оригинала

Собственно перевод, с моими вставками


Мы хотим донести до каждого над чем мы работаем и сосредоточены. Перед нами стоит две задачи: зафиксировать API и 1.0

Фиксация API (API Freeze)


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

Задачи


Плюсом помечены реализованные задачи.
+ Поменять редактор на поддерживающий react.
+ Сконвертировать всю документацию в atomdoc.
+ Изменить API документации.
+ Разделить API на основное и расширенное.
+ Преобразовать все события в события-методы.
+ Добавить view provider API.
+ Пройтись по API и сделать его более последовательным / симметричным.
(не уверен в правильности — оригинал «Make a pass through the API and make APIs more consistent / symmetrical»)
+ Новая, менее запутанная система команд.
— Обновление API конфигурации.
+ Повсеместное использование одноразовости. (Use disposables everywhere)
— Обновление API проектов для работы с множеством проектов. (Сейчас один проект может работать только с одним репозиторием в одном каталоге)
— Преобразовать внутренне представление в кастомные HTML Элементы. В API присутствует т.н. Shadow DOM которое они планируют унифицировать.
— API панели аналогично API провайдера. Это два недавно добавленных и анонсированных API для рабочего пространства Atom`а.
— Экспорт только единичного ядра классов. (Проблема в том что разные пакеты могут ссылаться на несколько одинаковых пакетов, каждый из которых загружается в память, со всеми вытекающими)
— Удалить устаревшее из пакетов.(Remove deprecations from packages)
— Дать пользователю использовать устаревшее.(Enable deprecations for users)

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

Atom 1.0


Когда мы зафиксируем API, мы будем стремительно приближаться к версии 1.0. Это будет включать в себя множество важных вещей. На текущий момент опубликованы следующие задачи:
  1. Features
    1. Проект в нескольких директориях
    2. Система конфигурации для каждого проекта
    3. Конфигурация привязанная к области (Scoped config settings)
    4. Отключение посимвольной отмены
    5. Обновление стандартных тем
    6. Windows installer/updater
    7. Пользовательский опыт в исключениях (Exception user experience)
    8. Обновление интерфейса настроек
    9. Работа с отступами и переносами (задача аж с ноября 2013, которая заново была открыта в июле 2014)
    10. Обновление tree-view. Реализация аналога «smart tabs» из sublime


  2. Производительность
    1. Загрузка
    2. Поиск и замена
    3. Переключение между вкладками
    4. Autocomplete
    5. Набор и передвижения курсора. (Typing and cursor movement)
    6. Поддержка файлов с экстремально длинными строками
    7. Поддержка файлов большого размера. Всё ещё только 2 мегабайта.
      UPD. Если есть необходимость можно обойти это ограничение, поправьте строчку непосредственно в отладчике или файле app/src/project.js
          Project.prototype.buildBuffer = function(absoluteFilePath) {
            var buffer;
            if (fs.getSizeSync(absoluteFilePath) >= 2 * 1048576) {
              throw new Error("Atom can only handle files < 2MB for now.");
            }
      

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




    8. Tree view (видимо не устраивает его производительность)

  3. Bugs (пока пусто)
  4. Docs
    1. Обновление и уточнение документации

  5. API
    1. Избавиться от устаревших API
    2. Сервисы (внутри пакетная коммуникация)
    3. Обновление компонентов для просмотра


Ни одна из перечисленных задач не решена, поэтому оформил их списком.

Отслеживание наших действий/состояния


Мы будем закреплять за модулями с которыми работаем систему стикеров.

Когда мы будем готовы работать над чем то, мы добавим стикер on-deck
github.com/atom/atom/labels/on-deck



То над чем мы работаем помечено стикером in-progress:
github.com/atom/atom/labels/in-progress



Когда модуль на пути к реализации он помечается стикером shipping:
github.com/atom/atom/labels/shipping
(сейчас только «уплывшие»)



Кроме того Вы можете следовать за нами nathansobo, kevinsawicki, thedaniel and benogle на github и наблюдать за нашими действиями.
Надеемся — это даст Вам понимание того где мы и куда двигаемся.

Источники



Про Atom


Tags:
Hubs:
+22
Comments 10
Comments Comments 10

Articles