Normal view

320 348 строк за 98 дней: что на самом деле меняется, когда у инженера появляется исполнитель

15 мая я впервые в жизни получил исполнителя, который пишет код быстрее, чем я успеваю продумывать требования. К 21 августа на дисках лежало 320 348 строк в актуальных версиях — цифра получена обходом с дедупликацией по SHA-1, а не оценкой; воронка подсчёта приведена в тексте целиком, вместе с шагом, на котором она в черновике не сходилась. Это не восторженный пост: половина текста про то, где я ошибся, что не доделал и какие собственные результаты потом сам же признал недействительными. Отдельно — про то, как первое за 98 дней внешнее ревью пришло из комментариев к прошлой статье через два часа пятьдесят три минуты после публикации и нашло в моём коде то, чего я не искал.

Читать далее

JSON умеет считать сам себя — удобно, как в Excel, но без вранья с типами

JSON, который считает сам себя. Ставишь = в ячейку — и она становится формулой. На диске при этом остаётся обычный JSON, который откроет кто угодно.

Читать далее

MarkMello v0.4.0: развитие MD-редактора

Всем привет!

В мае я опубликовал на Хабре первую статью о MarkMello (легкий MD-просмотрщик). Изначальная задача была простой: сделать лёгкое приложение, которое быстро открывает локальный Markdown-файл сразу в режиме чтения.

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

Читать далее

Создаём DSL на C#: LSP и поддержка в Visual Studio

В шестой части цикла про создание DSL на C# добавляем Akbura полноценную поддержку IDE.

Разберём Language Server Protocol, синхронизацию документов, immutable snapshots, MSBuild и semantic tokens. Затем посмотрим, почему для Visual Studio я выбрал нативную интеграцию через MEF и Visual Studio SDK, какие проекты помогли разобраться в Editor API и какие полезные возможности Roslyn неожиданно оказались internal.

В конце немного про публикацию расширений в Visual Studio Marketplace и приключения с Azure.

Читать далее
❌