Звільнення проекту з відкритим кодом без збентеження [закрито]


51

Я досить довго працював над досить великим проектом з відкритим кодом, і це вже майже момент, коли я хотів би його випустити. Однак я самоучка, і я не знаю нікого, хто міг би адекватно переглянути мій проект.

Кілька років тому я випустив невеликий шматочок коду, який дуже сильно зірвався (в критичному сенсі) на форумі, де я його випустив. Хоча код працював, критика була точною, але жорстокою. Це спонукало мене почати шукати кращі практики для всього, і врешті-решт я відчуваю, що це зробило мене набагато кращим розробником. Я стільки разів перебирав усе, що було в моєму проекті, намагаючись зробити його ідеальним, що втратив кількість.

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

Чи є хтось, хто опинився в подібній ситуації? Я не боюся конструктивної критики, доки вона конструктивна і не просто шахрайство щодо того, як я накрутився. Я знаю, що на StackExchange є сайт з переглядом коду, але він насправді не створений для великих проектів, і я не відчував, що громада є достатньо великою, але щоб отримати хороший відгук, якби я розміщувала частини мого проекту (я спробували з одним файлом). Що я можу зробити, щоб мій проект приніс хоч якусь міру успіху, не збентежившись чи погіршившись у процесі?


17
Існує різниця між випуском коду на форумі та випуском проекту з джерелом, доступним для тих, кому байдуже. Навіть для великих проектів з відкритим кодом, у яких багато користувачів і потенційних розробників розглядають код, "я думаю, що у вашого коду є недоліки X і Y" реакції типу здаються рідкісними.

17
З опису, критика, яку ви отримали в той час кілька років тому, зробила вас кращим програмістом. То чому ви цього разу так боїтесь критики? Чи відчуваєте ви, що вам більше не потрібно ставати кращим програмістом? Якщо ви хочете оздоровитись, ви повинні відкласти своє его вбік і зробити кілька стукань.
Пол Томблін

3
Класна річ у відкритих джерелах - це те, що якщо люди скаржаться, ви завжди можете просто попросити їх вирішити проблеми.
blueberryfields

4
Якщо у вас є конкретні сфери сумнівів, поставте їх на codereview.stackexchange.com .
pdr

12
До речі, якби збентеження було проблемою, у нас ніколи не було таких проектів, як Wordpress чи Joomla ... Більше половини блогів там є на WP, але, схоже, ніхто не піклується про якість кодової бази ...
yannis

Відповіді:


35

Якщо проект не призначений для розробників (наприклад: рамки розробки; в цьому випадку ви хочете, щоб вони критикували його, якщо це змусить вас навчитися ще більше), вам не слід турбуватися. Але навіть тоді існує багато проектів з відкритим кодом, призначених для розробників, які мають лайно, але люди їх люблять, бо вони досягають суті (подумайте про Codeigniter, який дуже погано архітектурний, і все-таки це найпопулярніший фреймворк)

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


3
+1 І критичні розробники можуть насправді надіслати вам виправлення! Завжди поважно відкривати свої знання та зусилля світові :)
yati sagade

4
Дійсно будь-яка критика є цінним відгуком. Навіть якщо це суворо (ви маєте можливість просто дивитися на це як на зворотній зв'язок), і це значення не додає залякування. :-) Пишайтеся своїми зусиллями! якщо це найкраще, що ви можете зробити, зі своєю освітою чи розумінням цього ВЕЛИКО! Будь-яка зворотний зв'язок, що випливає, послужить вам лише для того, щоб стати кращим розробником. Чесно кажучи, вчорашній код завжди буде смоктати, поки ви вдосконалюєтесь та зростаєте.
Роберт Француз

+1 - Дякую Проект призначений для розробників, але ви добре зазначаєте результати.
Сподіваємось

1
Код кожного відстійний, будь-яку критику сприймайте як цінний досвід навчання. Якщо хтось розриває вас неконструктивним шляхом, ігноруйте їх як ідіотів, якими вони є,
Девід Хейз

25

У вашому коді проблеми. Так само і моє. Хтось ще відповів на це запитання? Їх код теж має проблеми.

Якщо, скажімо, це 10 рядків чи менше, це хибно. Можливо, трагічно.

Бути розробником - це КОНСТАТЕННО збивати себе в межах своїх можливостей та розуміння. Це може бути не таким для ВСІХ розробників, але для мене і для тих, кого я знаю, ми працюємо прямо на межі нашої компетенції майже весь час. І ви стикаєтеся з цим знову і знову, потім приємні вихідні, потім повертайтеся в понеділок і робіть це знову і знову і знову.

Пропрацювавши це життя протягом 15 років, я вирішив це один факт: ти не твій код . Ви ЗАПИСИТИ код. Судження кодексу НЕ судить вас . У вашому коді є проблеми, деякі ви знаєте про них, а деякі - ні. Повідомлення про це вам допоможе , якщо все, що ви можете зробити, це погано почуватись. Відчуття поганості не покращує ваш код, це просто змушує вас почувати себе погано.

Ви пишете свій код, і ви пишете його так само, як ви знаєте, як. Можливо, завтра ти дізнаєшся більше, ніж ти сьогодні, але сьогодні ти зробив це так, як ти знав. Моя порада: пишіть код сьогодні сьогодні, а завтра - код завтра. Тоді приємні вихідні та повертайся в понеділок, щоб написати код понеділка.


24

Як правило, відкриті програми містять три групи людей, які дивляться на вихідний код.

  1. Люди, які розглядають можливість зміни коду, щоб змусити програму працювати трохи по-іншому, перенести його на іншу платформу або як стрибкоподібну точку для власних програм. Якщо їм код не подобається, вони зазвичай просто не користуватимуться кодом, і ви їх ніколи не почуєте.
  2. Студенти, намагаючись навчитися кодувати мовою, якою ви користувались. Вони майже ніколи не зв’язуватимуться з вами, але ви можете час від часу отримувати електронний лист із запитом, чому ви зробили щось проти одного. (Справедливо кажучи, я фактично не мав жодної з цих електронних листів протягом багатьох років. Я думаю, що такі веб-сайти, як StackExchange, можливо, замінили цю взаємодію)
  3. Дослідники з безпеки, такі як хлопці з OpenBSD, намагаються вирішити, чи ваш інструмент достатньо безпечний, щоб бути включеним у їх розповсюдження. Якщо це не так, але вони все ще хочуть включити вашу програму, вони зв’язуватимуться, щоб знайти спосіб її захистити. (І якщо ваша програма стане популярною, я гадаю, що, мабуть, це приверне і дослідників чорних капелюхів, які не зв’яжуться з вами незалежно від того, що вони знайдуть.)

У реальному світі люди дійсно не будуть читати ваш вихідний код з будь-якої іншої причини, ніж ця, тому що їм просто не потрібно. Ви раніше отримували такий обсяг відгуків, оскільки ви розмістили код на форумі, що означало, що ви хочете отримувати відгуки про код.

Я не думаю, що вам дійсно не потрібно турбуватися про потік зловживань; Єдині люди, які взагалі можуть з вами зв’язатися, - це люди, які хочуть додати функції або виправити помилки, які вже переглядали базу коду і не кричали за пагорбами. ;)


5

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

Навіть якщо ваш проект сповнений запахів коду, чи потрібно щось втрачати?

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

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

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

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

Якщо вам справді не зручно випускати програмне забезпечення під своїм ім’ям, тоді випустіть його під ніком. Якщо вам це вдасться, вимагайте його як свого, якщо не міняйте прізвисько :)


+1 за останнє речення, люди з музичної індустрії роблять це постійно зі своїми "експериментальними" альбомами :)
MattDavey

4

Я твердо вірю не просто у відкритий код, але і у відкритий розвиток , де люди можуть бачити повну еволюцію вашого коду. Від прототипу з волоссям до робочого коду ... вас ніколи не повинно бентежити. Ви ставите себе там - це забирає кишки. Володійте ним і пишайтеся цим. Ніхто не ідеальний.


3

Чим довше я був у цій грі, тим більше я зрозумів, що єдиний показник якості коду - це досвід клієнта. Якщо ви пишете функцію, це викликає цю функцію. Бібліотека? Чорти, які пишуть для цієї бібліотеки. Рамка? Усиновники його. Самостійний? Людина або демон, який запускає програму.

Хороший код має свою чесноту, не зрозумійте мене неправильно, але коли це сказано і зроблено, єдиний захід - це чи працює? Я бачив безліч чистих кодів, які є баггітним безладом, і безліч сатанічно занедбаних кодів, які є абсолютно надійними (плюс хороший чистий і поганий негарний теж :))

Тож, якщо критики кажуть, що ваш код некрасивий, кого це хвилює. Якщо вони кажуть, що це не працює - це корисна критика (тестування даних!), Яку ви прагнете покращити свою програму. Повiртесь там, уникайте популяризацiї тролей в iнтернеті та розважайтесь над своїм проектом!


2

Я повністю погоджуюся з тим, що сказали інші афіші: Навіть якщо ваш код шалений і не якісний - більшість людей просто не хвилює. Кожен, хто занурився в той чи інший код OpenSource, може, подумав собі "WTF сталося тут".

Але я не знаю нікого там з мотивацією критикувати кодову базу проекту лише заради того, щоб сказати "чувак, ваш код виглядає жахливо!". Ми всі були там, і всі ми знаємо, що будь-який код, який ми зараз пишемо, здасться нам дуже кульгавим лише за декілька таксів (моє, безумовно, буде).

Тож не хвилюйтеся так багато - людям просто доводиться набагато краще займатися у вільний час, ніж виправляти код проектів OpenSource.


2

Справжній код завжди гниє і забруднюється, плескається разом і підтримується приблизно тимчасово. Утилізація обмежується документуванням спеціальних справ та спеціальних констант. Існує невідповідність імпедансу між чистим кодом та реальним світом.

Я також помітив, що будь-який компетентний інженер може зірвати чужий код.

Якщо (1) він проходить тести і виконує мету без провалу AND (2), ви можете внести незначні зміни лише з незначним перезаписом, це добре код.


2

Деякі мудрі слова від Рейда Хофмана, співзасновника LinkedIn:

"Якщо ви не збентежили свій перший випуск продукту, ви вийшли занадто пізно".

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

Я думаю, що це особливо стосується проектів з відкритим кодом, де чудова ідея з перспективним початком спонукає людей до участі та участі. Щось так відшліфоване, що змушує вас надягати сонцезахисні окуляри, може не викликати таких почуттів. Але найголовніше, що потрібно звільнити на ранніх термінах, - це зруйнувати всі ваші заздалегідь уявлення про те, що слід робити, і почати рухатися в правильному напрямку.


1

Хто ти? Ви хтось, кого люди знають як бога-програміста, і переживаєте, що ваша репутація зійде? Ви той, хто збирається подати заявку на роботу і переживає, що роботодавець може прочитати ці критики і вважаєте, що ви поганий програміст? Я запитую, чому ти боїшся критики щодо того, як ти накручуєшся. Ви вирішуєте, які справжні коментарі, а які - ренти. Візьміть хороші як дефекти та виправте їх у наступній версії. Я просто відчуваю, що ти непотрібно переживаєш критику. Ви допомагаєте спільноті з відкритим кодом, що саме по собі є дуже хорошою справою. Будь ласка, продовжуйте гарну роботу.


2
Що таке бог-програміст?
Сподіваємось

1
@Hopeful. В університеті IIT Бомбея є один професор. Ходять чутки, що цей хлопець пише програму, складає її та виконує. Немає стадії, відомої як перекомпіляція чи налагодження. Це Божий програміст.
Manoj R

Гаразд, я майже впевнений, що це не я ... Я нав'язливий щодо налагодження. Холодне відчуття, коли щось просто працює з першого разу. Навіть тоді я все ще тестую його і пишу на нього тести.
Сподіваємось

1

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

Коли / якщо ви отримаєте публічну критику, це призведе до вдосконалення коду і допоможе вам розвиватися як розробник. Це гарна річ.

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

Удачі.


1

Немає нічого поганого в самонавчанні саме по собі. Ви не можете бути ізольованими, а огляди експертних кодів можуть допомогти у цьому.

Вам також потрібно зосередитись на тому, що ви робите. Чому вас хвилює, якщо ви отримуєте негативні відгуки про свою роботу? Якщо ви робите припущення, що якщо ви ставитесь до критики, це тому, що код поганий або ви не вмієте програмувати, це може бути, а може і не бути правдою.

Мета цих зусиль - переконатися, що код працює, і якнайкраще отримати найкращий код, але, з практичного досвіду, не весь комерційний код є зоряним. Іноді ви отримуєте погані вимоги, іноді не встигаєте це зробити правильно. Іноді розробники хочуть сприйматись як геній, змушуючи інших виглядати погано.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.