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

Поговорим об Open Source [RUS]

Поговорим об Open Source [RUS]

Oleg Kovalov

October 13, 2019
Tweet

More Decks by Oleg Kovalov

Other Decks in Programming

Transcript

  1. Поговорим об Open Source
    Kazan (Remote), 13 Oct 2019
    Oleg Kovalov
    Allegro
    https://olegk.dev

    View Slide

  2. - Гофер ~4 года
    - Опенсурс <3
    - Инженер в core team в allegro.pl
    https://olegk.dev
    Обо мне
    2

    View Slide

  3. Что это?
    3
    Open-source software (OSS) is a type of computer software in which
    source code is released under a license in which the copyright holder
    grants users the rights to study, change, and distribute the software to
    anyone and for any purpose. Open-source software may be developed in a
    collaborative public manner. Open-source software is a prominent
    example of open collaboration.
    (с) Википедия

    View Slide

  4. Так зачем оно мне?
    4

    View Slide

  5. - Практика
    Так зачем оно мне?
    5

    View Slide

  6. - Практика
    - + в резюме
    Так зачем оно мне?
    6

    View Slide

  7. - Практика
    - + в резюме
    - Польза сообществу
    Так зачем оно мне?
    7

    View Slide

  8. - Практика
    - + в резюме
    - Польза сообществу
    - Вызов самому себе
    Так зачем оно мне?
    8

    View Slide

  9. - Практика
    - + в резюме
    - Польза сообществу
    - Вызов самому себе
    - Дополнительный доход
    Так зачем оно мне?
    9

    View Slide

  10. - Практика
    - + в резюме
    - Польза сообществу
    - Вызов самому себе
    - Дополнительный доход
    - Удобный способ не потерять игрушки
    Так зачем оно мне?
    10

    View Slide

  11. Заинтриговал, а как начать?
    11

    View Slide

  12. - Аккаунт на Github
    Заинтриговал, а как начать?
    12

    View Slide

  13. - Аккаунт на Github
    - git init
    Заинтриговал, а как начать?
    13

    View Slide

  14. - Аккаунт на Github
    - git init
    - Вдохновение на покодить™
    Заинтриговал, а как начать?
    14

    View Slide

  15. - Аккаунт на Github
    - git init
    - Вдохновение на покодить™
    - Создать репо и git push
    Заинтриговал, а как начать?
    15

    View Slide

  16. - Аккаунт на Github
    - git init
    - Вдохновение на покодить™
    - Создать репо и git push
    - Красиво оформить
    Заинтриговал, а как начать?
    16

    View Slide

  17. - Аккаунт на Github
    - git init
    - Вдохновение на покодить™
    - Создать репо и git push
    - Красиво оформить
    - Привлечь внимание
    Заинтриговал, а как начать?
    17

    View Slide

  18. - Аккаунт на Github
    - git init
    - Вдохновение на покодить™
    - Создать репо и git push
    - Красиво оформить
    - Привлечь внимание
    Заинтриговал, а как начать?
    18
    И свободное время...

    View Slide

  19. Проект начинается с README.md
    19

    View Slide

  20. - Цель проекта
    Проект начинается с README.md
    20

    View Slide

  21. - Цель проекта
    - Архитектура или фичи
    Проект начинается с README.md
    21

    View Slide

  22. - Цель проекта
    - Архитектура или фичи
    - Как установить
    Проект начинается с README.md
    22

    View Slide

  23. - Цель проекта
    - Архитектура или фичи
    - Как установить
    - Пример использования
    Проект начинается с README.md
    23

    View Slide

  24. - Цель проекта
    - Архитектура или фичи
    - Как установить
    - Пример использования
    - Как контрибутить?
    Проект начинается с README.md
    24

    View Slide

  25. - Цель проекта
    - Архитектура или фичи
    - Как установить
    - Пример использования
    - Как контрибутить?
    - Цветастые бейджики с билдами
    Проект начинается с README.md
    25

    View Slide

  26. - Цель проекта
    - Архитектура или фичи
    - Как установить
    - Пример использования
    - Как контрибутить?
    - Цветастые бейджики с билдами
    - Ссылочки на донаты :D
    Проект начинается с README.md
    26

    View Slide

  27. А теперь о скучных лицензиях
    27

    View Slide

  28. - Лучше с лицензией, чем без
    А теперь о скучных лицензиях
    28

    View Slide

  29. - Лучше с лицензией, чем без
    - Но их много, очень
    А теперь о скучных лицензиях
    29

    View Slide

  30. - Лучше с лицензией, чем без
    - Но их много, очень
    - Для 99% случаев MIT или BSD3
    А теперь о скучных лицензиях
    30

    View Slide

  31. - Лучше с лицензией, чем без
    - Но их много, очень
    - Для 99% случаев MIT или BSD3
    - Если продукт, то лучше Apache 2.0
    А теперь о скучных лицензиях
    31

    View Slide

  32. - Лучше с лицензией, чем без
    - Но их много, очень
    - Для 99% случаев MIT или BSD3
    - Если продукт, то лучше Apache 2.0
    - Требовать публиковать изменения?... GPLv3
    А теперь о скучных лицензиях
    32

    View Slide

  33. - Лучше с лицензией, чем без
    - Но их много, очень
    - Для 99% случаев MIT или BSD3
    - Если продукт, то лучше Apache 2.0
    - Требовать публиковать изменения?... GPLv3
    - https://choosealicense.com или десятки других ресурсов
    А теперь о скучных лицензиях
    33

    View Slide

  34. Если у Вас библиотека, то...
    34

    View Slide

  35. - 1 репо - 1 цель
    Если у Вас библиотека, то...
    35

    View Slide

  36. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    Если у Вас библиотека, то...
    36

    View Slide

  37. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    Если у Вас библиотека, то...
    37

    View Slide

  38. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    - Тесты это круто, но порой можно и без них
    Если у Вас библиотека, то...
    38

    View Slide

  39. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    - Тесты это круто, но порой можно и без них
    - Минимум зависимостей
    Если у Вас библиотека, то...
    39

    View Slide

  40. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    - Тесты это круто, но порой можно и без них
    - Минимум зависимостей
    - Со временем лучше отказаться от пушей в мастер
    Если у Вас библиотека, то...
    40

    View Slide

  41. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    - Тесты это круто, но порой можно и без них
    - Минимум зависимостей
    - Со временем лучше отказаться от пушей в мастер
    - Линтеры и gofmt экономят время
    Если у Вас библиотека, то...
    41

    View Slide

  42. - 1 репо - 1 цель
    - Хорошо подумайте и продумайте api
    - Лучше сразу завести CI
    - Тесты это круто, но порой можно и без них
    - Минимум зависимостей
    - Со временем лучше отказаться от пушей в мастер
    - Линтеры и gofmt экономят время
    - Обратная совместимость
    Если у Вас библиотека, то...
    42

    View Slide

  43. Если у Вас приложение, то...
    43

    View Slide

  44. - Стоит подумать о том, как пользователь сможет запустить
    Если у Вас приложение, то...
    44

    View Slide

  45. - Стоит подумать о том, как пользователь сможет запустить
    - Да, Docker
    Если у Вас приложение, то...
    45

    View Slide

  46. - Стоит подумать о том, как пользователь сможет запустить
    - Да, Docker
    - git tag бесплатны и полезны
    Если у Вас приложение, то...
    46

    View Slide

  47. - Стоит подумать о том, как пользователь сможет запустить
    - Да, Docker
    - git tag бесплатны и полезны
    - Changelog/release notes (советую Release Drafter)
    Если у Вас приложение, то...
    47

    View Slide

  48. - Стоит подумать о том, как пользователь сможет запустить
    - Да, Docker
    - git tag бесплатны и полезны
    - Changelog/release notes (советую Release Drafter)
    - Опять же обратная совместимость
    Если у Вас приложение, то...
    48

    View Slide

  49. - Стоит подумать о том, как пользователь сможет запустить
    - Да, Docker
    - git tag бесплатны и полезны
    - Changelog/release notes (советую Release Drafter)
    - Опять же обратная совместимость
    - Скриншоты/gif/asciinema помогут заинтересовать
    Если у Вас приложение, то...
    49

    View Slide

  50. А как привлечь внимание?
    50

    View Slide

  51. - Друзья и коллеги
    А как привлечь внимание?
    51

    View Slide

  52. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    А как привлечь внимание?
    52

    View Slide

  53. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    - Конечно же Slack (golang-ru, golang-ua, gophers)
    А как привлечь внимание?
    53

    View Slide

  54. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    - Конечно же Slack (golang-ru, golang-ua, gophers)
    - Reddit (r/golang), Twitter (#golang)
    А как привлечь внимание?
    54

    View Slide

  55. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    - Конечно же Slack (golang-ru, golang-ua, gophers)
    - Reddit (r/golang), Twitter (#golang)
    - Блогпост Medium, Habr, Dev.to
    А как привлечь внимание?
    55

    View Slide

  56. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    - Конечно же Slack (golang-ru, golang-ua, gophers)
    - Reddit (r/golang), Twitter (#golang)
    - Блогпост Medium, Habr, Dev.to
    - Митап (см. рекурсия)
    А как привлечь внимание?
    56

    View Slide

  57. - Друзья и коллеги
    - Чаты в Телеграме (@gogolang)
    - Конечно же Slack (golang-ru, golang-ua, gophers)
    - Reddit (r/golang), Twitter (#golang)
    - Блогпост Medium, Habr, Dev.to
    - Митап (см. рекурсия)
    - Issue с меткой hacktoberfest
    А как привлечь внимание?
    57

    View Slide

  58. Рост не вечен (я о тебе, Bitcoin)
    58

    View Slide

  59. - Анонс и упоминание будут в ленте соцсети
    Рост не вечен (я о тебе, Bitcoin)
    59

    View Slide

  60. - Анонс и упоминание будут в ленте соцсети
    - Но лента неумолимо движется во времени
    Рост не вечен (я о тебе, Bitcoin)
    60

    View Slide

  61. - Анонс и упоминание будут в ленте соцсети
    - Но лента неумолимо движется во времени
    - Время сделать roadmap на будущее
    Рост не вечен (я о тебе, Bitcoin)
    61

    View Slide

  62. - Анонс и упоминание будут в ленте соцсети
    - Но лента неумолимо движется во времени
    - Время сделать roadmap на будущее
    - А лучше исправить сегодняшнее
    Рост не вечен (я о тебе, Bitcoin)
    62

    View Slide

  63. Так что там про доп. доход?
    63

    View Slide

  64. - Не все так просто, буквально
    Так что там про доп. доход?
    64

    View Slide

  65. - Не все так просто, буквально
    - Многие не понимают, что это труд
    Так что там про доп. доход?
    65

    View Slide

  66. - Не все так просто, буквально
    - Многие не понимают, что это труд
    - Мало кому удается заменить работу
    Так что там про доп. доход?
    66

    View Slide

  67. - Не все так просто, буквально
    - Многие не понимают, что это труд
    - Мало кому удается заменить работу
    - Github sponsors
    Так что там про доп. доход?
    67

    View Slide

  68. - То есть правила поведения
    Code of Conduct
    68

    View Slide

  69. - То есть правила поведения
    - Советую запастись терпением
    Code of Conduct
    69

    View Slide

  70. - То есть правила поведения
    - Советую запастись терпением
    - Много недопонимания и разный проф. уровень
    Code of Conduct
    70

    View Slide

  71. - То есть правила поведения
    - Советую запастись терпением
    - Много недопонимания и разный проф. уровень
    - Грубить, хамить, подшучивать не стоит
    Code of Conduct
    71

    View Slide

  72. - То есть правила поведения
    - Советую запастись терпением
    - Много недопонимания и разный проф. уровень
    - Грубить, хамить, подшучивать не стоит
    - Сегодня пишут ишью с багом тебе, завтра пишешь ты
    Code of Conduct
    72

    View Slide

  73. И просто не удаляйте проект
    73

    View Slide

  74. - Оставьте репо для истории
    И просто не удаляйте проект
    74

    View Slide

  75. - Оставьте репо для истории
    - Не все может быть в кеше или папке vendor
    И просто не удаляйте проект
    75

    View Slide

  76. - Оставьте репо для истории
    - Не все может быть в кеше или папке vendor
    - Возможно для кого-то это стартовая точка
    И просто не удаляйте проект
    76

    View Slide

  77. - Оставьте репо для истории
    - Не все может быть в кеше или папке vendor
    - Возможно для кого-то это стартовая точка
    - Ностальгия и 2е дыхание внезапны
    И просто не удаляйте проект
    77

    View Slide

  78. - Оставьте репо для истории
    - Не все может быть в кеше или папке vendor
    - Возможно для кого-то это стартовая точка
    - Ностальгия и 2е дыхание внезапны
    - А еще есть кнопочка Archive
    И просто не удаляйте проект
    78

    View Slide

  79. Hacktoberfest
    79

    View Slide

  80. - Понимаете, каждый год с 1 по 31 октября мы с друзьями ходим по
    Гитхабу. Это у нас такая традиция…
    Hacktoberfest
    80

    View Slide

  81. - Понимаете, каждый год с 1 по 31 октября мы с друзьями ходим по
    Гитхабу. Это у нас такая традиция…
    - Отличный повод вкатиться
    Hacktoberfest
    81

    View Slide

  82. - Понимаете, каждый год с 1 по 31 октября мы с друзьями ходим по
    Гитхабу. Это у нас такая традиция…
    - Отличный повод вкатиться
    - Бесполезных пулл-реквестов нет
    Hacktoberfest
    82

    View Slide

  83. - Понимаете, каждый год с 1 по 31 октября мы с друзьями ходим по
    Гитхабу. Это у нас такая традиция…
    - Отличный повод вкатиться
    - Бесполезных пулл-реквестов нет
    - В конце-то концов клевая футболка
    Hacktoberfest
    83

    View Slide

  84. - Понимаете, каждый год с 1 по 31 октября мы с друзьями ходим по
    Гитхабу. Это у нас такая традиция…
    - Отличный повод вкатиться
    - Бесполезных пулл-реквестов нет
    - В конце-то концов клевая футболка
    - А, знакомства и опыт еще
    Hacktoberfest
    84

    View Slide

  85. Спасибо за внимание
    Вопросы?
    https://olegk.dev
    Вот и всё
    85

    View Slide