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

Проектирование библиотек. НАЧАЛО

Проектирование библиотек. НАЧАЛО

Знаете, что такое «двойное дно»? Это когда вы открываете коробку, находите в ней массу вещей, затем поднимаете дно и находите что-то еще. А представляете каким может быть «тройное дно»? Или «четверное»? Как много можно вытащить из одной коробки? Как много можно заложить в один фреймворк?

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

Avatar for Alexander Blinov

Alexander Blinov

November 24, 2017
Tweet

More Decks by Alexander Blinov

Other Decks in Programming

Transcript

  1. Александр Блинов [email protected] Руководитель группы Android разработки Участник подкастов Админ

    чата по архитектуре Android Соавтор Moxy Выступаю на конференциях
  2. О чем будем говорить О бщ ие понятия Сообщ ество

    П роектирование Д истрибуция С чего начать Слож ности П ланирование
  3. Internal Open source Доступ Команда Сообщество Bug report Команда Сообщество

    Bug fix Команда Сообщество Статьи и доклады NDA ;) Opensource?
  4. Установить цель - 1000 звезд на гитхабе - Не писать

    больше авторизацию - Утвердить в команде фреймворк для который победит жизненный цикл
  5. Сформировать видение ПРИЁМЫ - Как хотелось бы в идеале -

    Я не понимаю как что-то сделать / Я не понимаю что я не понимаю - Синхронизироваться с кем-либо - Top to bottom - Открытые вопросы
  6. Research - Актуальность • SoF • Чаты • На сколько

    нужно самому - Аналоги - Осуществимость
  7. API - Баланс между кастомизацией и удобством - Лаконичность -

    Недвусмысленность - Сокрытие реализации - Обратная совместимость / миграция
  8. Решение из коробки - Ожидаемое поведение (Стратегии в Moxy) -

    Настройки по умолчанию (Reflection в Toothpick)
  9. Поддержка - Обработка Issue на Github & SoF - Ответы

    на вопросе в чате и личные сообщения - Развитие библиотеки
  10. README - Image, screenshot or/and animation - Tags - Description

    - Installation - Usage - Authors - Roadmap - Contributing guidelines
  11. Чек лист - Заливка дистрибутива в Maven/Bintray - README +

    Wiki - Документация в исходном коде - Open Source License - Удалена предыдущая история commit’ов - Commit'ы на английском.
  12. Проблем при разработке - Текучка (решение: Приоритезация) - Не понятно

    как это делать и с чего начать (решение: Декомпозиция) - Пропадает энтузиазм (решение: План)
  13. С чего начать? - Смотреть на внутреннее устройство библиотек -

    Контрибьютить в opensource - Разработать внутренние библиотеки - Написать мааааленькую open source библиотеку
  14. Сontributing to open source ВЫБОР ПРОЕКТА - Библиотека с высокой

    популярностью, но низким Bus factor - Библиотека в стадии развития
  15. Сontributing to open source СТАДИЯ 1 (ЛЮБОЗНАТЕЛЬНАЯ) - Создавать issue/feature

    request на github - Посмотреть внутреннее устройство библиотеки - Подписаться на репозиторий - Найти сообщество разработчиков библиотеки(Telegram/Slack/ Gitter)
  16. Сontributing to open source СТАДИЯ 2 (ПОМОЩЬ С ОКРУЖЕНИЕМ) -

    Помочь с документацией - Написать тесты
  17. Сontributing to open source СТАДИЯ 3 ( ) - Фиксить

    issue - Создавать новый функционал! !!! ПЕРЕД СОЗДАНИЕМ ФУНКЦИОНАЛА У З Н А Й Т Е М Н Е Н И Е О Н Е М У ВЛАДЕЛЬЦА РЕПОЗИТОРИЯ ПРОЕКТА!!!
  18. Итоги - Разрабатывать библиотеки/фреймворки сложно - Все начинается с планирования,

    research и проектирования - Начните с contribution в чужие решения, это просто ;-)