Чому і навіщо писати open-source код?

image

Під катом цікавий опитування

Можливо, заголовок статті видасться Вам не коректним, «Як можна писати open-source код? І що це за такий код?» — запитаєте Ви.

Чим open-source код відрізняється від «просто-коду»? Open-source проект — це відповідальність за якість коду, за його покриття тестами, за документацію, за своєчасні відповіді на питання та реагування на bug репорти, за обробку pull-request'ів. Ваша поведінка і думки під час написання open-source коду, який побачить світ будуть інші, відповідно і код на виході виходить інший.

Open-Source проект живе своїм життям — життям спільноти, яка утворюється навколо проекту. Ідеї, відгуки, bug репорти, обговорення та подяки від інших членів спільноти впливають на Вас і проект напряму, і стимулюють написання коду — зрозумілого, документованого і покритого тестами.



Про досвід:
Одного разу, виклавши свій код на GitHub, я вже не зміг зупинитися. Моїм першим публічним репозиторієм був PHP-код, призначений для інтерналізації на основі MySQL таблиці. Цей репозиторій не зібрав зірок і сумнівно, що був кимось помічений. Не в зірках справа, справа в тому що Ваш код доступний всім. Ваш код не приховано на сервері, не минифицирован/аглифицирован в браузері і не скомпільовано на жорсткому диску користувача — він виставлений на показ. Усвідомлення цього факту просто зобов'язує Вас писати код у загальноприйнятій манері (відповідно з тим мовою, на якому Ви пишіть), дотримуватися відступи, додавати опис до методів і класами (як мінімум до публічних), адекватно називати змінні, класи, методи та функції, дотримуватися правило do-not-repeat-yourself.

Я впевнений, що публікується мною код корисний іншим розробникам рівно на стільки ж, як і мені самому. Публікуючи код, я не тільки ділюся своїм досвідом з світом, але і самоорганизуюсь рівно на стільки ж, як і організується мій код.

Писати загальнодоступний код — це відвідувати світські заходи. Ви виглядаєте, розмовляєте і відповідаєте вищим стандартам IT-індустрії, або як мінімум прагніть до них. Писати загальнодоступний код — це обговорювати функціонал IT-колективом рівним за масштабом всьому IT-спільноті планети. Будь-який з членів open-source співтовариства може запропонувати зміни, повідомити про bug'е і винести на обговорення подальший розвиток проекту.

Приємне в open-source проектах — це емоції і відчуття, які виникають від розуміння, що твій проект корисний. Коли кількість скачувань росте вгору, коли ви отримуєте відгуки, коли до проекту приєднуються люди з усього світу і Ви разом робите проект — це те, заради чого варто писати код. У цей момент просте написання коду для вирішення поставлених завдань переростає у вклад в IT-співтовариство.

Про побоювання Студій і Компаній:
Ваша компанія пише код? Ви вважаєте, що написаний код належить тільки Вам та Вашим клієнтам, які за нього заплатили? Якщо Ваша відповідь — «та», підійдіть до Ваших розробникам і попросіть порахувати, скільки рядків коду написано за стінами Вашої компанії третьою стороною, скачено з SourceForge, GitHub, встановлено через NPM, apt-get, aptitude, та інших джерел дистрибуції коду.

Коли мова йде про open-source, багато керівників (не всі, але є такі) вважають що на GitHub лежать цілі проекти, готові до використання і заробляння грошей. Коли Ваші співробітники пропонують опублікуватися на GitHub, вони збираються «злити» весь код, за який розробники отримали зарплату, а хтось інший (нехороший) збере клон Вашого продукту і буде заробляти гроші. Або гірше того, виявить експлойт і буде його таємно використовувати. Це абсолютно не так. По-перше, нікому не потрібен Ваш проект цілком крім Вас і Вашого клієнта, по-друге, — не потрібно викладати проекти цілком. Маленькі шматочки, класи, методи, адаптери тощо, з яких Ваш проект складається, можуть виявитися корисними не тільки Вам. На Ваш внесок IT-співтовариство відповість пошуком і виправленням помилок і вразливостей, доповненням функціоналу і поліпшенням продуктивності. Можливо, Ви знайдете нового співробітника в особі активного контрибьютора.

Open-source проект це:
  1. Живі емоції, спілкування з людьми по всьому світу.
  2. Доступ до накопичених знань і попереднього накопиченому досвіду.
  3. Максимально-вимогливий підхід до написання коду, документації та тестів.
  4. Спільна робота над завданням.
  5. Відкритість перед кінцевими користувачами.





У всесвіті, де люди не навчилися працювати в open-source співтоваристві, немає можливості використовувати попередній накопичений досвід IT-індустрії і акумулювати його. У свою чергу, IT-компанії виділяють велику частину бюджету на платний софт. І в цілях економії на купівлі і підписок на софт — пишуть свої рішення, що викликає зростання штату розробників в десятки разів, готовий виконувати завдання від написання ОС і фреймворків до текстових редакторів, у яких цей код пишеться. Добре що в нашій всесвіту open-source співтовариство активно розвивається, і нам це не загрожує.

Викладайте Ваш код. Викладайте код, написаний в стінах компанії (з угоди всіх керівників). Зробіть внесок у розвиток IT-індустрії. Читайте чужий код. Покращуйте чужий код. Завжди пишіть bug репорти. Задавайте питання власникам проектів і не забувайте відповідати на питання, поставлені Вам. Спасибі.

чи Є у Вас особисті (персональні) Open-Source проекти?

/>
/>


<input type=«radio» id=«vv70737»
class=«radio js-field-data»
name=«variant[]»
value=«70737» />
Так
<input type=«radio» id=«vv70739»
class=«radio js-field-data»
name=«variant[]»
value=«70739» />
Немає

Проголосувало 156 осіб. Утрималося 38 осіб.


Є у Вашій компанії корпоративні Open-Source проекти?

/>
/>

<input type=«radio» id=«vv70741»
class=«radio js-field-data»
name=«variant[]»
value=«70741» />
Так
<input type=«radio» id=«vv70743»
class=«radio js-field-data»
name=«variant[]»
value=«70743» />
Немає

Проголосувало 130 осіб. Утрималося 58 осіб.


Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.