Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sergey Sobko - Жизнь одного плагина для Emacs: от идеи до попадания в меню M-x package-install

Moscow 2600
October 05, 2018

Sergey Sobko - Жизнь одного плагина для Emacs: от идеи до попадания в меню M-x package-install

Moscow 2600

October 05, 2018
Tweet

More Decks by Moscow 2600

Other Decks in Research

Transcript

  1. Жизнь одного плагина для Emacs: от идеи
    до попадания в меню M-x package-install
    2600, 5 октября – Москва, Россия
    Сергей Собко

    View Slide

  2. About
    Sergey Sobko (@IwasakiRussia; GH: profitware; bug2bug.me)
    Руководитель группы разработки PT Application Firewall
    Преподаватель курса веб-разработки в НИУ ВШЭ

    View Slide

  3. Layer 01: Why

    View Slide

  4. Emacs Integration with Flower
    Очень хотелось листать таск-трекер из Emacs
    И просматривать содержимое задач
    Попрактиковаться в написании плагинов для Emacs
    Научиться интегрировать библиотеки на Clojure в Emacs
    Довести дело до логического финала – M-x package-install

    View Slide

  5. Layer 02: How

    View Slide

  6. Steps
    Clojure + Emacs = Clomacs (должен пиво Косте kostafey)
    Ощущение полной беспомощности при написании кода
    Двойное ревью и попадание в MELPA

    View Slide

  7. Layer 03: Code

    View Slide

  8. Code: Emacs Definition

    View Slide

  9. Code: Clojure

    View Slide

  10. Code: Emacs Usage

    View Slide

  11. Code: Emacs Usage

    View Slide

  12. Layer 04: Review

    View Slide

  13. Review from Clomacs Author
    Docstrings для interactive функций обязательно! C-h f
    Магия autoload для экономии памяти
    Определение сочетания клавиш вне пакета, а не через global-set-key
    Замена текста буфера через erase-buffer/insert, а не (setf (buffer-string) …)
    Очевидно, использование let вместо заведения глобальных переменных

    View Slide

  14. Review from MELPA

    View Slide

  15. Review from MELPA
    Группа настройки applications, а не чужая (например, org)
    Не вешать хуки загрузки своей библиотеки на чужие библиотеки
    Сборка для пакетов в MELPA с ветки master

    View Slide

  16. Layer 05: Conclusion

    View Slide

  17. Conclusion
    Open Source: Hacktoberfest в октябре
    Просите ревью и не стесняйтесь писать на почту
    Изучайте и развивайтесь — важно не останавливаться

    View Slide

  18. Спасибо за внимание!
    Sergey Sobko
    @IwasakiRussia
    GH: profitware
    bug2bug.me

    View Slide

  19. Вопросы?
    https://github.com/PositiveTechnologies/flower
    Flower
    Sergey Sobko
    @IwasakiRussia
    GH: profitware
    bug2bug.me

    View Slide