Title: Возвращение к разработке «ПСКОВа»
Date: 2024-11-14 00:00
Category: News
Slug: pskov-again
Lang: ru

![lha][lha]

# «ПСКОВ» сегодня

Итак, у нас есть старая версия «ПСКОВа», а нам нужна новая с улучшенными
характеристиками.

Первым делом стоит вспомнить, из чего состоит «ПСКОВ»:

1. Непосредственно [генератор][pskov-ru] в виде веб-страницы на HTML + JavaScript
1. Вспомогательный [скрипт Python][lfsa-ru] для сохранения генерируемых файлов на диске

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

Скрипт представляет из себя крошечный веб-сервер со следующими командами:

| № | Команда | Детали |
|---|---|---|
| 1 | `GET /path` | Получение пути к текущей рабочей директории |
| 2 | `POST /list` | Получение списка файлов переданного в теле запроса пути |
| 3 | `POST /read` | Получение содержимого файла |
| 4 | `POST /write` | Запись содержимого файла |

# «ПСКОВ» завтра

Самым простым способ вернуться к разработке «ПСКОВа», таким образом, является
перераработка вспомогательного скрипта. На замену Python я выбрал Kotlin
по двум причинам:

1. Kotlin можно скомпилировать под десктоп, мобилки и веб
1. Kotlin имеет строгую типизацию

Оба этих фактора упрощают в будущем работу c портируемым кодом.

Что касается переработки, то на текущий момент готова команда `GET /path`
на платформах JVM, macOS и Windows (изображение в начале).

# Ноябрь

В ноябре я планирую реализовать две команды:
* `POST /list`
* `POST /read`

[lha]: ../../images/2024_lha-path.gif
[pskov-ru]: https://opengamestudio.org/pskov/ru/pskov_1.0.0+ru.html
[lfsa-ru]: https://opengamestudio.org/lfsa/ru/index.html