Как стать автором
Обновить

Комментарии 26

НЛО прилетело и опубликовало эту надпись здесь
Девочка с плохим планом, выйди из класса
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за публикацию!
Хороший материал. Посмотрел с интересом.
Область тегов позволяет присваивать узлам метки и впоследствии работать с ними. Употребляется, видимо, для прибавления новых измерений глубины упорядочивания хаоса. Выбираем узел, пишем идентификатор тега, нажимаем "+". Выбираем другой узел, на нём просто жмём "+", будет присвоен активный тег. Выбираем третий узел, пишем «шмуцкер», давим "+". У нас в настоящий момент есть два узла с тегом «цуцкер» и один узел с тегом «шмуцкер».

То есть без мышки с этим всем работать не получится?


По сути выходит древовидное подобие jupyter notebook более общего назначения + todolist
Поддержки git, консоли, перехода в импортируемые либы нет?


Смысл не в том, что один программист может решить задачу, написав код, а другой то же самое «накликает» (условно). Инструмент, в котором можно «накликать» (условно), позволит решать задачи недоступные ранее по временным и сложностным характеристикам.

Пока как-то неубедительно. :-/

По сути выходит древовидное подобие jupyter notebook более общего назначения + todolist
Поддержки git, консоли, перехода в импортируемые либы нет?


Именно «более общее назначение» главная ценность, вы сами вольны загрузить в дерево репозиторий git, подключить плагин консоли (вроде уже есть). Переход по либам будет затратно сделать, хоть и реально.

Если расположить по трудозатратам разные подходы, то получается так:
— слева готовые решения (но для многих задач их просто нет)
— посередине описанный в статье подход
— справа целиком самописные решения

Leo Editor это заготовка для вашей среды, типа УАЗика, который можно прокачать под ваш стиль офроада. Если под ваши задачи есть готовая машина, то берите её. Если езда только по шоссе, то Leo Editor не нужен.

Так и не почувствовал, чем это лучше Notepad ++ или sublimate текста, а времени на изучение судя по всему уйдёт масса

Это редакторы для разных задач.

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

Leo Editor — это слабая работа с текстом, и сильная с содержимым, с тем что скрывается за символами.
Зачем, если уже есть Vim?
[сарказм]
image
vim наше всё…

Ну. Нет скорее это ОргМод такой недолеланный.
Или точнее Оутлайнер бе emacs.

Сначала прочитал как «Давайте быдлокодить как профессионалы»
Это и подразумевалось

До вашего комментария я и не думал, что название другое...

[оффтоп]
Из-за кэмелкейса в вашем нике, создается ложное впечатление, что Бог важнее путина
[/оффтоп]
извините
И часто вы ищете глубинный смысл в идентификаторах переменных?
глубинный смысл в идентификаторах переменных

Если человек напрягся вместо int i написать чего-то в camelCase — наверное, неспроста? И имя переменной что-то для него значит?
Если хочется делать какую-то фигню, зачем себя ограничивать в этом удовольствии.

[оффтоп]
Bog написано, полагаю, по-английски, то есть на русский переводится как "трясина", "болото".
[/оффтоп]

и сортир, хм…

создаёт исчерпывающую имитацию отдельной установки выбранной версии


Это прям редактор для фронтэндеров… Потратит пол дня на настройку пачки сборщиков/планировщиков, а потом ещё пол дня на настройку редактора, а потом станет говнокодить на jQuery.

Быстрее чем до настройки или медленнее?
Абстрактные рассуждения:

Мне показалось, что главное преимущество Leo — ациклический граф блоков текста — автор не донёс.

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

Как редактор текста он ужасен, но возможность создания множества живых видов кода/данных/текста позволяет с этим смириться.

Мой опыт:

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

Как Leo мне помог?

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

Почему это была проблема: система состояла из разнородных подсистем, а функциональные блоки были рассредоточены в разных её частях.



Т. е. например для конкретного протокола для уровня CLI, который представлял из себя один набор программ, надо было смотреть XML–файлы, в которых описаны команды и их параметры, причём в зависимости от уровня доступа команды были в разных местах. Смотреть куски кода, которые формировали обращения/запись настроек в свою часть логики и конфигурации. А это уже отдельный набор программ. Смотреть, какие команды выдаваются адаптерам и почему.

Поэтому я загрузил в Leo файлы проектов целиком, в полном соответствии с горизонтальным слоением (это, наверное, ярус/tier), которое, в принципе, совпадало с иерархией проектов на диске.

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

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

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

После этой детективной работы у меня было множество видов на код:

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


Во-вторых, Leo помог мне написать документ и не запутаться в деталях.

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

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

А для функциональных блоков у меня были альтернативные виды на документ, в которых я в основном его и производил.

И здесь Leo реально показал свои преимущества над прочими средствами редактирования:

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


Выводы:

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

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

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

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

Из аналогов очень похожий подход в литературном программировании, но в Leo всё как-то наглядней.
Большое спасибо за замечательный комментарий, но даже скорее дополнение к статье! Рассказа о том, как на практике можно использовать описанные средства управления сложностью, очень не хватало.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории