Что за файл todo

Обновлено: 04.07.2024

За пять шагов вы создадите свою программу для ведения списка дел: таск-менеджер, тудушку, называйте как хотите. Её можно сразу разместить в интернете и управлять задачами с любого компьютера или телефона. На это уйдёт 10 минут, и её можно будет бесконечно настраивать и дорабатывать под ваши потребности и предпочтения.

Для написания программы понадобится простой текстовый редактор. Мы рекомендуем установить Sublime Text, у него есть версии для всех компьютеров.

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

Создаём макет страницы

Сделаем пустую HTML-страницу, которая будет отвечать за наш список задач. В самом минимальном виде она выглядит так:

Надписи внутри угловых скобок — например, <body> — это специальные команды HTML. Они говорят браузеру, как вести себя с разными элементами страницы. Пока что на этой странице нет элементов, есть лишь служебная часть <head> . </head> и часть страницы, в которой позже будет наша программа — <body> . </body> . Это наш чистый лист.

Обратите внимание: в самом начале есть команда <!DOCTYPE html> . Она сообщает браузеру, что содержимое файла нужно показывать как веб-страницу. Если этого не сделать, то компьютер может не понять некоторые команды и страница будет выглядеть плохо.

Сохраним этот текст как файл task.html. Обратите внимание, что расширение здесь (то, что идёт после точки) именно .html, а не .doc или .txt! Когда мы откроем этот файл в браузере, то увидим белую страницу, на которой ничего нет.

Добавим в раздел <head> служебную информацию, которая расскажет компьютеру, как работать с этой страницей. С помощью надписей <!--. --> мы оставляем комментарии — чтобы было понятно, что происходит в коде. Браузер на эти пометки не смотрит, это всё для нас:

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

Теперь наполним страницу смыслом: напишем заголовок, поставим поле для ввода задач и предусмотрим место для списка. Вставим этот кусок кода после тега <body> :

Сохраняем файл и обновляем страницу:


Настраиваем внешний вид

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

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

Чтобы использовать CSS-элементы внутри страницы, их помещают в служебный раздел <head> . Компьютер должен знать, что это именно стили для внешнего вида, а не команды что-то показать, поэтому они пишутся внутри тега <style type="text/css"> . </style> :

Помещаем этот кусок в самом конце раздела <head> , сохраняем файл и обновляем страницу:


Теперь наш список задач выглядит аккуратнее, но по-прежнему ничего не умеет. Начинаем программировать на JavaScript.

Пишем скрипт для работы с задачами

Всю скриптовую часть мы будем писать в конце страницы, чтобы сначала у нас в файле шёл CSS, затем HTML-код самой страницы, а после него — JavaScript. Поэтому все блоки помещаем после последнего тега </div> , когда у нас закончилась вся визуальная часть.

Нам понадобится библиотека jQuery, чтобы код мог быстро работать с полем ввода и списком задач.

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

Строго говоря, всю работу в этой задаче можно было проделать и без jQuery, на чистом JavaScript, но это займёт немного больше времени и будет не так удобно и красиво.

А теперь пишем сам скрипт, который будет делать следующее: ждать, пока пользователь не внесёт текст в поле ввода и не нажмёт клавишу ввода. После этого скрипт помещает новую задачу в память компьютера, а потом добавляет её в конец списка. Когда задача выполнена и на неё щёлкнули мышкой, скрипт удалит соответствующую строку из списка и из памяти устройства.

Добавим раздел с нашим скриптом после раздела с jQuery:

Заведём переменные для наших задач, которые отвечают за список:

Теперь напишем функцию, которая берёт из памяти наши задачи (если они там уже есть) и делает из них список. Функция — это маленькая программа внутри большой программы, в нашем случае она отвечает за визуализацию списка задач.

У каждого браузера есть своё внутреннее хранилище данных, где он запоминает информацию с разных сайтов. Хранилище называется localStorage. Любой сайт может туда что-то записать, а потом, когда понадобится, извлечь из памяти свои данные и работать с ними дальше.

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

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

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

Теперь при запуске скрипта он проверяет, нет ли чего-то старого в памяти, и как бы «вспоминает» ваши задачи.

Теперь нужно сделать так, чтобы мы могли вводить эти задачи. Для этого нам нужно отследить тот момент, когда пользователь ввёл текст в поле на странице и нажал Enter. Если он хоть что-то написал — запоминаем это и добавляем в список. Нестрашно, если сейчас вы не до конца понимаете, что в этом коде происходит, — всему своё время. Просто используйте его, так делает большинство программистов:

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

Всё, планировщик готов. Копируем эти части кода в наш раздел со скриптом и проверяем работу:


Если мы закроем эту страницу или перезагрузим компьютер, то данные всё равно останутся в памяти. Значит, программа работает как нужно и у нас всё получилось.
Полный текст страницы (можно скопировать целиком и вставить в текстовый редактор):

Что можно ещё сделать

Можно перекрасить любой элемент на странице: для этого в таблице стилей CSS нужно прописать свойства нужных вам объектов. Наберите в Яндексе «CSS сменить фон страницы», и интернет вам подскажет решение.

Как использовать ToDo.txt — список дел для минималистов

Сейчас существует огромное количество самых разных менеджеров задач на любой вкус. Однако у них есть недостаток: их работоспособность от вас не зависит. И в случае ликвидации любимого сервиса придётся заново осваивать другую программу. Если вас не устраивает такая перспектива, попробуйте ToDo.txt.

Что такое ToDo.txt

Это не программа и не веб‑приложение. Это система управления задачами, для которой достаточно только простого текстового файла в формате TXT. Придумала её блогер и разработчик Джина Трипани.

Суть этой системы в следующем: вы пишете свои дела в файлик TXT, строчка за строчкой, и отмечаете завершённые символом x. При необходимости можно добавлять теги и контекст, чтобы группировать задачи. Вот, в общем‑то, и всё. Идеальный инструмент для тайм‑менеджмента минималистов.

Прелесть ToDo.txt в том, что вы можете контролировать свои задачи с помощью одного только «Блокнота» — даже не надо ничего больше устанавливать. Правда, энтузиасты всё же разработали для ToDo.txt много клиентов, которые делают работу с задачами удобнее. Они, например, подсвечивают даты и приоритетные задачи, автоматически группируют дела по спискам и так далее.

В чём плюсы ToDo.txt

У этого способа записи дел есть ряд преимуществ — вот основные из них:

  1. Универсальность. Ваш список дел хранится в простом текстовом файле. И его можно открыть на любом устройстве — даже на самом старом и маломощном. Хотя для ToDo.txt создано множество удобных клиентов для всех платформ, вы легко можете обойтись и без них.
  2. Простота. Чтобы работать с ToDo.txt, достаточно запомнить только четыре символа — скобки для расстановки приоритетов, плюсик для группировки по проектам, @ для присвоения тега и x (буква «икс») для отметки завершённых задач. Никаких навороченных интерфейсов тут нет и быть не может.
  3. Независимость. Ваши задачи хранятся лично у вас. Текстовый файлик todo.txt не попросит денег, не предложит перейти на премиум‑версию и не сообщит о закрытии в неподходящий момент.

Как составлять задачи в ToDo.txt

Принцип ToDo.txt гласит, что ваши задачи хранятся в текстовом документе todo.txt. Просто записывайте дела в файл (один пункт на одну строчку). Вдобавок вы можете снабжать их тегами и приоритетами для большей информативности. Вот пример самого простого списка, составленного в «Блокноте»:

Написать статью и проверить ссылки.

Сходить в спортзал.

ToDo.txt лучше всего сохранить в Dropbox, Google Drive или любом другом облаке на ваш выбор: так список дел всегда будет под рукой.

Определение приоритетов

В ToDo.txt можно назначать задачам приоритеты. Таким образом вы будете видеть, какие дела особенно важны, а какие нет, не вчитываясь в содержимое пунктов. Чтобы назначить приоритет, поставьте перед пунктом букву A, B, С и так далее, заключив её в скобки. Вот как это будет выглядеть:

(A) Закончить важный проект.

(B) Накормить кота.

(C) Прибраться на кухне.

Большинство клиентов ToDo.txt могут сортировать ваши задачи по приоритетам, поэтому не забывайте проставлять их. Это, в принципе, необязательно, но полезно.

Группировка задач по проектам

Дела стоит группировать по проектам или темам, к которым они относятся: это позволит быстрее в них разбираться. Чтобы отнести задачу к тому или иному проекту, поставьте после неё знак + и сразу же, без пробела, укажите какое‑нибудь слово. Например так:

Закончить статью +Работа.

Заказать фитнес‑трекер +Личное.

Переустановить macOS +Личное.

Прибраться наконец на кухне +Личное +Уборка.

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

Добавление тегов

Иногда одних только проектов недостаточно, чтобы рассортировать ваши задачи. В таком случае используйте теги. Они добавляются символом @. Выглядит это так:

Закончить статью @Лайфхакер.

Переустановить macOS @Mac @Личное.

Выбрать подставку для Mac @Mac @Покупки.

Прибраться на кухне @Уборка.

Их тоже можно добавлять сколько угодно.

Завершение задач

Когда вы выполнили какую‑то задачу, её нужно пометить как завершённую. Чтобы это сделать, поставьте в начале пункта букву x («икс»).

x Закончить статью.

x Заказать фитнес‑трекер.

x Переустановить macOS.

x Прибраться на кухне.

Расстановка сроков

Если у дела есть дедлайн, его можно добавить, написав слово due и дату в формате год — месяц — число (due: ГГГГ‑ММ‑ДД).

Закончить статью due: 2019‑11‑20.

Заказать фитнес‑трекер due: 2019‑12‑02.

Переустановить macOS due: 2019‑11‑25.

Прибраться на кухне due: 2019‑11‑25.

Форматирование списка задач

Само собой, все указанные элементы можно использовать вместе, чтобы одновременно назначать задачам приоритеты, проекты, теги и отмечать законченные дела. В итоге ваш ToDo.txt будет выглядеть примерно так:

x Закончить важный проект +Работа @Лайфхакер due: 2019‑11‑20.

x Покормить кота +Личное @Кот.

Заказать фитнес‑трекер +Покупки @Гаджеты.

Прибраться на кухне +Личное @Уборка @Кухня.

Какие приложения ToDo.txt можно использовать

Приложения ToDo.txt есть для самых разных платформ. Все они мало весят, просты и практически идентичны в плане интерфейса и управления. И отслеживать задачи с помощью этих программ будет удобнее, чем в простом «Блокноте». Вот основные из них.

2. TodoTxtMac

TodoTxtMac позволяет вести списки дел в macOS. Как и полагается программам для Mac, очень удобен и красив. Обладает продвинутой настраиваемой системой фильтров, так что вы не запутаетесь в вашем таск‑листе, даже если там десятки пунктов.

3. DayTasks

Приложение для Ubuntu и основанных на ней систем. Минималистичное и простенькое. Похвастаться настраиваемыми фильтрами, как предыдущие два кандидата, не может, но всё равно достаточно наглядно.

4. Todo.TXT Plus

Todo.TXT Plus — расширение для текстового редактора Atom. С его помощью можно добавлять пункты в список дел не отрываясь от работы с текстом: просто переключаетесь между вкладками с рабочими файлами и todo.txt в одном окне.

5. Simpletask

Simpletask — клиент для Android. Умеет работать с Dropbox и Nextcloud. Помимо приложения, предоставляет также виджет для домашнего экрана. Выделяет приоритеты задач цветами и сортирует дела по датам, контексту или категориям.

Как написано в Манифесте Go Plain я предпочитаю простоту красивостям.
Особенно когда это касается продуктивности.
Списки дел - это основной компонент моей продуктивности. Причем я использую систему GTD уже очень давно и перепробовал много хороших утилит, прежде чем прийти к системе Todo.txt
В данном разделе я рассматриваю ключевые особенности этой системы и существующие утилиты, помогающей в работе с ней, хотя, как вы наверное поняли, иногда достаточно простого текстового редактора :)

todotxt

Ключевые особенности

  • Список дел должен быть важным инструментом управления вашим днем.
  • Сохраняйте список задач простым, как для скорости, так и для фокусирования только на важном: на работе, а не на управлении задачами.
  • Охватывайте ВСЕ ваши задачи и делайте это не медля.
  • Управляйте вашим списком задач, основываясь на приоритетах.
  • Всегда держите список задач в актуальном состоянии и обновляйте по мере необходимости. Храните не первоочередные задачи в другом месте. К примеру, планы на будущее и долгосрочные задачи. Это поможет сконцентрироваться только на важном.

Todo.txt

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

Формат файла

Формат совершенно не сложный, но при этом отвечающий требованиям системы GTD :

Когда у вас появляется свободная минутка и есть возможность позвонить, вы проверяете задачи в контексте “@телефон” и делаете один-два звонка.

Это все реально с todo.txt.

Особенности формата

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

Первое и наиважнейшее правило гласит: одна строка файла todo.txt это одна задача.

Незавершенные задачи

Красота формата в том, что он неструктурирован. Вы можете создавать задачи так, как вам хочется.

Только используйте специальную нотацию для проектов (+Проект), контекстов (@Контекст) и приоритетов (А).

Правило 1. Если указан приоритет, то такая задача всегда наверху списка.
Приоритет указывается символами A-Z в верхнем регистре в скобках с обязательным последующим пробелом:

К примеру, эти задачи не имеют приоритета:

Правило 2. Дата создания задачи (опциональна) указывается сразу после приоритета с пробелом
Если приоритета нет, то дата создания идет в начале строки в формате ГГГГ-ММ-ДД.

Правило 3. Контексты и проекты указываются в любом месте строки, сразу после приоритета и даты создания.
Проекты начинаются со знака “плюс” и не должны содержать пробелов (так: “+МойСуперПроект”). Контексты начинаются со знака @ и также не должны содержать пробелов (пример: “@ПродуктовыйМагазин”).

К примеру, эта задача входит одновременно в проекты +Семья и +МирЛюбовьИСчастье, а также принадлежит контекстам @iphone и @телефон:

Эта задача не содержит контекста:

А эта не входит ни в один проект:

Завершенные задачи

Правило 1. Завершенные задачи начинаются с символа x

Если задача начинается с символа x (латиницей с маленькой буквы) с последующим пробелом, то она считается завершенной:

Это незавершенные задачи:

мы используем символ “x” чтобы в любом текстовом редакторе автоматическая сортировка отнесла завершенные задачи вниз списка.

Правило 2. Дата завершения идет сразу за символом x после пробела

при этом приоритет задачи теряется. Если вы не хотите этого, используйте приоритет так: pri:A .

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

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


Todo для Todo

Todo-лист должен уметь:

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

Аргументы командной строки

Практически любая консольная утилита управляется с помощью передаваемых при запуске аргументов. В Deno они лежат массивом в Deno.args . А, к примеру, в Node мы бы использовали process.argv , в котором помимо аргументов находятся строки node и путь к скрипту .

Итак, начнём…

Реализуем первую команду – вывод информации.

Создадим главный файл нашего приложения – todo.ts . Лучше назвать файл осмысленно, так как в будущем он понадобится нам для запуска и установки.

Далее создадим файл /src/ui.ts , в котором будем хранить элементы «пользовательского интерфейса». Добавим константу help , содержащую информационный текст.

В todo.ts напишем свитч для обработки команд и выведем справку с помощью console.log() .

Проверим работу команды:

deno run todo.ts help

Разрешим запуск файла:

Теперь для вывода справки можно использовать:

Стандартный вывод

В листинге выше мы использовали console.log() , но, мне кажется, идеологически log – это инструмент разработчика, и реализовать с его помощью полноценный интерфейс не получится.

В Deno за стандартный вывод отвечает Deno.stdout , за ввод, соответственно, Deno.stdin .

И stdin , и stdout типизированы пересечением интерфейсов и объекта, содержащего rid , – идентификатор ресурса.

Более подробно рассмотрим stdout и выведем «Hello world!» в консоль.

Запустим скрипт hello.ts:

deno run hello.ts

На экране появляется наш «Hello world!».

Функция Deno.stdout.write принимает на вход массив байтов и возвращает количество записанных байтов. Deno.stdout.writeSync работает точно так же, только синхронно.

Строку необходимо предварительно закодировать с помощью объекта TextEncoder .
Можно не создавать TextEncoder , а импортировать функцию encode из стандартной библиотеки, которая делает то же самое, точно так же.

Воспользуемся полученными знаниями и создадим файл terminal.ts с двумя функциями print и printLines . Последняя выводит строку и переводит каретку.

Заменим console.log на printLines .

Чтение и запись файла

В Deno для чтения файла используется функция Deno.readFile и её синхронный аналог Deno.readFileSync .

Для записи в файл соответственно используются Deno.writeFile и Deno.writeFileSync .

Создадим интерфейс Task в src/Task.ts

и класс Todo в файле src/Todo.ts .

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

Добавление задачи в список

Для реализации команды todo add "implement add command" добавляем в класс Todo метод add .

Так как мы добавили чтение и запись в файл, необходимо добавить права --allow-read --allow-write .

Вывод списка задач

В файл src/ui.ts добавляем функцию для форматирования списка задач.

Добавляем метод list в класс Todo и команду ls в свитч.

Таким же образом добавляем остальные методы и команды.

Реализованные команды отвечают первым трём пунктам наших требований.

Работа в интерактивном режиме

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

Создадим в свитче кейс по умолчанию,

а в классе Todo асинхронный метод interactive .

Метод interactive содержит бесконечный цикл, в котором выводится пользовательский интерфейс, ожидается ответ пользователя и, в зависимости от нажатой клавиши, совершается действие.

Для управления курсором в интерактивном режиме необходимо импортировать функции из библиотеки cursor .
Добавляем права для доступа к энвайронменту, так как библиотека проверяет, в каком окружении программа запущена --allow-env .

В файле terminal.ts создадим функцию printInteractive .

Она выводит текст на экран и возвращает курсор в начало. При следующем вызове всё стирается и печатается заново. Для того чтобы квадрат курсора не мешался, его можно скрыть функцией hideCursor .

Добавим в файл ui.ts константу toolbar , в которой будут перечислены доступные действия.

В функцию formatTaskList добавляем параметр showToolbar :

В зависимости от флага showToolbar мы будем показывать или скрывать подсказку.

Дорабатываем метод list :

Вывод реализован, перейдём к вводу.

Стандартный ввод

Интерфейс ввода, аналогично выводу работает с Uint8Array , поэтому для декодирования используется TextDecoder .

Создаём буфер размером, например, в 1024 байта. Передаём его в функцию Deno.stdin.read и ждём пока пользователь закончит ввод. Как только будет нажата клавиша enter, функция наполнит буфер и вернёт количество прочитанных байтов. Стоит отметить, что перевод строки «\n» будет в конце прочитанной последовательности. Обрезаем лишнее и декодируем полученную строку. Синхронная функция Deno.stdin.readSync работает аналогично.

Обработка клавиш

Для того чтобы получить информацию о нажатии клавиш, необходимо воспользоваться функцией Deno.setRaw . На текущий момент она доступна под флагом --unstable . setRaw и позволяет получить символы по одному, без обработки. В функцию необходимо передать идентификатор ресурса и флаг. Как только мы воспользовались этим режимом, нажатие CTRL+C перестаёт приводить к закрытию программы, и это поведение нужно реализовать самостоятельно.

В файл terminal.ts добавляем функцию readKeypress :

В метод interactive добавляем возможность выйти из приложения.

Не отходя далеко от ввода текста, реализуем добавление задачи в интерактивном режиме.

В файл terminal.ts добавляем 2 функции:

Функция readLine позволяет прочитать одну строку, исключая последний символ, – перевод строки.

Функция prompt очищает экран, печатает вопрос, читает ввод пользователя, а затем перемещает курсор в начало, аналогично функции printInteractive .

В метод interactive добавляем обработку клавиши «а»:

Перемещение по списку задач

Добавим поддержку стрелок клавиатуры. Для того чтобы понимать, какой элемент сейчас выбран, добавляем свойство currentIndex в класс Todo :

А в функции formatTaskList активную строку выделяем жирным и красим в жёлтый:

В Todo создаём методы, которые будут изменять currentIndex :

В метод interactive добавляем обработку стрелок:

Аналогичным образом добавляем возможность отмечать выполненные задачи:

И, наконец, редактирование:

Проверяем работу приложения:

Установка

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

Установка, так же как и запуск, может производиться по URL.

Имя файла будет использовано как название программы по умолчанию, но с помощью опции -n/--name можно задать другое.

После чего todo можно использовать в командной строке.

Импорт зависимостей

Последняя фича, которую мы использовали, но ещё не обсудили – импорт зависимостей. В отличие от Node, в Deno подход к импортированию несколько иной: предполагается, что зависимости импортируются по URL. В этом подходе, на мой взгляд, есть как достоинства, так и недостатки.

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

Для управления сложностью существует два основных решения: файл dep.ts и файл с картой импортов.

В первом случае мы делаем реэкспорт библиотек, собирая все импорты в одном месте.

Во втором случае в JSON файле мы пишем alias:

При запуске программы указываем путь до карты и флаг --unstable, так как фича не готова для продакшена.

Резюме

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

Читайте также: