Отправляет email-рассылки с помощью сервиса Sendsay

За 2020-10-03

[prg] Re: Материалы по освоению Python.

Здравствуйте, Юрий Шабанов.

> Хочу освоить сабж для более глубокого
> освоения NVDA и создания дополнений к нему.
> Буду благодарен за файлы и ссылки, способные помочь быстрее и легче
> это сделать.

Здесь сразу стоит разделить задачу на две подзадачи: освоение Python и
освоение написания дополнений для NVDA.
Начать стоит с изучения Python как такового.
Если у вас уже есть базовые знания о программировании, то есть Python для
вас не первый язык, тогда фактически вам можно взять любой учебник или курс
по изучению Python.
Единственно после скриптов JAWS и BASIC в Python для вас может оказаться не
до конца прозрачной концепция классов и объектов, ну и в целом парадигма
ООП.
Для мягкого входа в Python можно попробовать учебник Byte of Python. Он есть
и в русском переводе - https://wombat.org.ua/AByteOfPython/
Хотя это именно учебник для изучения Python как вообще первого языка
программирования, поэтому по началу может быть скучно, если какой-то опыт
уже есть.
В целом, вам надо выйти на достаточно уверенное понимание общего синтаксиса
языка, а уже потом связываться с разработкой под NVDA.
Дело в том, что документации по дополнениям NVDA, аналогичной FSDN, не
существует и вряд ли когда-то будет существовать, потому что Python - это
язык общего назначения, а не DSL, специфичный только для NVDA.
Соответственно для выработки каких-то решений вам очень часто придётся
напрямую читать исходный код NVDA или других дополнений, находя там нужную
информацию.
Например, когда вы захотите взять выделенный текст, у вас в NVDA не будет
готовой функции, как в JAWS. Тут самым простым будет вспомнить, что в NVDA в
принципе есть функции, завязанные на взаимодействие с выделенным текстом, а
значит надо пойти в исходники и посмотреть, как именно там это сделано. В
исходниках вы и найдёте уже отлаженную реализацию на десяток строк кода,
которую можно будет взять и адаптировать под свою задачу.
Вот чтобы относительно свободно читать исходники и понимать, кто, что и
откуда вызывает, вам для начала и нужны уже достаточные знания Python.
По сути плагины NVDA - это работа на том же уровне абстракции, что и
основной код программы экранного доступа. То есть вы не пишите какие-то
высокоуровневые скрипты, а фактически прямо дописываете screenreader.
Кроме того, внутри NVDA могут быть далеко не все модули, которые вам
возможно понадобятся в вашем дополнении. Особенно если дополнение не просто
улучшает доступность приложения, а реализует какую-то расширенную
функциональность. Соответственно вам полезно представлять общие возможности
языка, в том числе по затаскиванию в проект сторонних модулей, например,
requests, если вам понадобится какая-то сложная работа с сетевыми запросами.
Впрочем, основа дополнений NVDA всё-таки документирована, но буквальном на
том уровне, чтобы просто понимать, с какой стороны запрягают коней.
Вот находящаяся в состоянии постоянного уточнения и дополнения документация
- https://github.com/nvdaaddons/DevGuide/wiki/NVDA-Add-on-Development-Guide
Всё на английском. На это сразу стоит ориентироваться.
Есть пара местами устаревших русских материалов. С ними можно ознакомиться,
чтобы какие-то вопросы проще воспринять на русском. Но их на сегодняшний
день уже недостаточно для сборки полноценного дополнения.
http://win.tiflocomp.ru/docs/free/nvda_plugins.php
http://win.tiflocomp.ru/docs/free/nvda_packaging_add-ons.php
Исходный код NVDA лежит на GitHub - https://github.com/nvaccess/nvda
Заморачиваться с его сборкой совсем не обязательно. В большинстве случаев
достаточно просто выкачать и читать.
Также с NVDA всегда поставляется документ "Что нового", где есть раздел "Для
разработчиков". Туда полезно заглядывать, чтобы не пропустить какие-то
ключевые изменения.
Системными требованиями и аспектами совместимости своего дополнения можно
управлять через соответствующие параметры в manifest.ini и дополнительные
проверки в installTasks.py. Впрочем, об этом итак написано по
вышеприведённым ссылкам.
Успехов. Никита.

   2020-10-03 18:27:33 (#3658874)

[prg] Материалы по освоению Python.

Здравствуйте, уважаемые участники.

Довольно уверенно владею скриптовым языком Джоз, имею опыт работы с
Бейсик, ещё в зрячее время. Хочу освоить сабж для более глубокого
освоения NVDA и создания дополнений к нему.
Буду благодарен за файлы и ссылки, способные помочь быстрее и легче
это сделать. Можно на личный адрес.
Всем моя признательность и найлучшие пожелания.

   2020-10-03 17:13:34 (#3658865)