Выпуск проекта с открытым исходным кодом без смущения [закрыто]

51

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

Несколько лет назад я выпустил небольшой кусочек кода, который в значительной степени был разорван (в критическом смысле) на форуме, где я его выпустил. Хотя кодекс работал, критика была точной, но жестокой. Это побудило меня начать поиск лучших практик для всего, и в конце я чувствую, что это сделало меня намного лучшим разработчиком. Я столько раз перебирал все в своем проекте, пытаясь сделать его идеальным, что потерял счет.

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

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

многообещающий
источник
17
Есть разница между выпуском кода на форуме и выпуском проекта с исходным кодом, доступным для тех, кто заботится. Даже для крупных проектов с открытым исходным кодом, когда многие пользователи и потенциальные разработчики смотрят на код, «я думаю, что у вашего кода есть недостатки X и Y» реакции типа кажутся редкими.
17
Из описания, критика, которую вы получили в то время несколько лет назад, сделала вас лучшим программистом. Так почему вы так боитесь критики на этот раз? Вы чувствуете, что вам больше не нужно становиться лучшим программистом? Если вы хотите поправиться, вы должны отложить свое эго в сторону и сделать несколько ударов.
Пол Томблин
3
Крутая вещь об открытых источниках в том, что, если люди жалуются, вы всегда можете просто попросить их решить проблемы для вас.
черничные
4
Если у вас есть конкретные области сомнений, поднимите их на codereview.stackexchange.com .
фунтовые
12
Кстати, если бы смущение было проблемой, у нас никогда не было бы таких проектов, как Wordpress или Joomla ... Более половины блогов есть на WP, никто, кажется, не заботится о качестве кодовой базы ...
Яннис

Ответы:

35

Если проект не предназначен для разработчиков (например, среда разработки, в этом случае вы ХОТИТЕ, чтобы они критиковали ее, если она заставляет вас учиться еще больше), вам не стоит беспокоиться. Но даже тогда, есть много проектов с открытым исходным кодом, предназначенных для разработчиков, которые являются дерьмом, но люди любят их, потому что они идут к сути (подумайте о Codeigniter, который очень плохо спроектирован, и все же это самая популярная среда php)

Если это приложение для обычных людей, они, вероятно, будут заботиться только о результатах.

HappyDeveloper
источник
3
+1 И критические разработчики могут прислать вам патч! Всегда респектабельно открывать свои знания и усилия миру :)
yati sagade
4
На самом деле любая критика является ценной обратной связью. Даже если это сурово (у вас есть возможность просто смотреть на это как на обратную связь), и это добавляет ценность, а не причина для запугивания. :-) Гордитесь своими усилиями! если это лучшее, что вы можете сделать, с вашим образованием или пониманием, это здорово! Любая последующая обратная связь только поможет вам стать лучшим разработчиком. Честно говоря, вчерашний код всегда будет плохим, пока вы совершенствуетесь и растете.
Роберт Френч
+1 - спасибо. Проект предназначен для разработчиков, но вы хорошо оцените результаты.
Надеюсь,
1
Каждый код отстой, воспринимайте любую критику как ценный опыт обучения. Если кто-то разрывает вас на части неконструктивным образом, игнорируйте их как идиотов, которыми они, безусловно, являются
Дэвид Хейс,
25

У вашего кода есть проблемы. Как и мой. Кто-нибудь еще отвечает на этот вопрос? У их кода тоже есть проблемы.

Если это, скажем, 10 строк или меньше, это неправильно. Возможно трагически так.

Быть разработчиком - значит ПОСТОЯННО мешать себе, ограничивая свои способности и понимание. Может быть, это не так для ВСЕХ разработчиков, но для меня и для тех, кого я знаю, мы постоянно работаем на грани своей компетенции. И ты сталкиваешься с этим снова и снова, потом проводишь хорошие выходные, потом возвращаешься в понедельник и делаешь это снова и снова.

Проработав эту жизнь в течение 15 лет, я остановился на одном факте: вы не ваш код . ВЫ НАПИШИТЕ код. Суждение кодекса не является суждением о вас . У вашего кода есть проблемы, некоторые из которых вы знаете, а некоторые - нет. Обращая на себя внимание, это помогает вам , если только вы не можете чувствовать себя плохо. Плохое самочувствие не улучшает ваш код, оно просто заставляет вас чувствовать себя плохо.

Вы пишете свой код, и вы пишете это так же хорошо, как знаете. Может быть, завтра вы узнаете больше, чем сегодня, но сегодня вы сделали это так же, как знали. Мой совет: напишите сегодняшний код сегодня, а завтра код завтра. Тогда хороших выходных и возвращайтесь в понедельник, чтобы написать код понедельника.

Дэн Рэй
источник
24

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

  1. Люди, которые рассматривают возможность изменения кода, чтобы заставить программу работать немного по-другому для них, перенести ее на другую платформу или как отправную точку для своих собственных программ. Если им не нравится код, они обычно просто не будут использовать код, и вы никогда не услышите их.
  2. Студенты, пытающиеся научиться кодировать на языке, который вы использовали. Они почти никогда не свяжутся с вами, но вы можете иногда получать электронное письмо с вопросом, почему вы сделали что-то одно против другого. (Честно говоря, на самом деле у меня не было ни одного такого письма в течение многих лет. Я думаю, что такие сайты, как StackExchange, могли бы заменить это взаимодействие)
  3. Исследователи безопасности, такие как ребята из OpenBSD, пытаются решить, достаточно ли безопасен ваш инструмент, чтобы включить его в свой дистрибутив. Если это не так, но они все еще хотят включить вашу программу, то они свяжутся с вами, чтобы выяснить, как ее обезопасить. (И если ваша программа станет популярной, я думаю, что она, вероятно, привлечет и исследователей черной шляпы, которые не будут связываться с вами, независимо от того, что они найдут.)

В реальном мире люди действительно не будут читать ваш исходный код по любой другой причине, кроме этих, потому что им просто не нужно. Раньше вы получали такой объем отзывов только потому, что разместили код на форуме, что означало, что вы хотите получить отзыв о коде.

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

Тревор Пауэлл
источник
5

Я действительно не понимаю психологию этого вопроса ... лучше спросить себя: "Что я должен потерять, выпуская это программное обеспечение"?

Даже если ваш проект полон запахов кода, вы должны что-то потерять?

Даже если код ужасный и кто-то тратит время, чтобы написать вам пламенное письмо, угадайте, что, он, вероятно, использовал ваше программное обеспечение достаточно, чтобы захотеть внести в него некоторые изменения и улучшить его.

Вы должны быть рады этому! Примите критику и сделайте свой код лучше, спросите злого парня, который нашел время написать вам. Ему не все равно!

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

Я бы предпочел работать с кем-то, кто готов что-то сделать, признать свои ошибки, исправить их и продолжать, чем с кем-то, кто не хочет ничего делать.

Если вы действительно не хотите выпускать программное обеспечение под своим именем, то выпускайте его под ником. Если это удастся, заявите, что это ваше, если нет, смените ник :)

Танос Папатанасиу
источник
+1 за последнее предложение, люди в музыкальной индустрии делают это все время со своими «экспериментальными» альбомами :)
MattDavey
4

Я твердо верю не только в open source, но и в open development , где люди могут увидеть полную эволюцию вашего кода. От зачарованного прототипа до рабочего кода ... не стоит смущаться. Вы ставите себя там - это требует мужества. Имейте это и гордитесь этим. Никто не совершенен.

Сильванаар
источник
3

Чем дольше я нахожусь в этой игре, тем больше я осознаю, что единственным показателем качества кода является опыт клиента. Если вы пишете функцию, это вызывающая сторона этой функции. Библиотека? Разработчики, которые пишут для этой библиотеки. Рамки? Усыновители этого. Автономный? Человек или демон, который запускает программу.

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

Так что, если критики говорят, что ваш код безобразен, кого это волнует? Если они говорят, что это не работает - это полезная критика (тестирование данных!), Которую вы пытаетесь улучшить в своей программе. Держитесь там, избегайте интернет-троллей и получайте удовольствие от своего проекта!

скоро
источник
2

Я полностью согласен с тем, что говорили другие авторы: даже если ваш код дрянной и не высокого качества - большинству людей просто все равно. Каждый, кто в тот или иной момент погрузился в код OpenSource, мог подумать: «Здесь случился WTF».

Но я не знаю никого, кто был бы готов критиковать кодовую базу проекта просто ради того, чтобы сказать «чувак, ваш код выглядит ужасно!». Мы все были там, и мы все знаем, что любой код, который мы пишем прямо сейчас, покажется нам довольно отстойным всего за несколько минут (мой точно будет).

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

perdian
источник
2

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

Я также заметил, что любой компетентный инженер может разорвать чужой код на части.

Если (1) он проходит тесты и достигает цели без сбоев И (2) вы можете вносить незначительные изменения только с незначительной перезаписью, это хороший код.

Пол Натан
источник
2

Несколько мудрых слов от Рейда Хоффмана, соучредителя LinkedIn:

«Если вас не смущает ваш первый выпуск продукта, вы выпустили слишком поздно».

«Взаимодействие с членами и понимание того, что на самом деле важно, является ключевым моментом… Таким образом, вы получаете минимально жизнеспособный продукт, как только можете».

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

Аллон Гуралнек
источник
1

Кто ты? Вы тот, кого люди знают как бога-программиста, и беспокоитесь, что ваша репутация снизится? Вы тот, кто собирается подать заявку на работу и беспокоится, что работодатель может прочитать эту критику и подумать, что вы плохой программист? Я спрашиваю, почему ты боишься критики по поводу того, как ты облажался. Вы решаете, какие из них являются подлинными комментариями, а какие беспорядочными. Возьмите хорошие как дефекты и исправьте их в следующей версии. Я просто чувствую, что вы беспокоитесь из-за критики. Вы помогаете сообществу open source, что само по себе является очень хорошим делом. Пожалуйста, продолжайте в том же духе.

Маной Р
источник
2
Кто такой бог программист?
Надеюсь,
1
@Hopeful. В ИИТ Бомбейском университете есть один профессор. Ходят слухи, что этот парень пишет программу, компилирует и запускает ее. Нет стадии, известной как перекомпиляция или отладка. Это бог программист.
Маной Р
Хорошо, я уверен, что это не я ... Я одержим отладкой. Это классное чувство, когда что-то работает в первый раз. Даже тогда я все еще проверяю это и пишу тесты для этого.
Надеюсь,
1

Если вы действительно обеспокоены, просто используйте онлайн-псевдоним при выпуске программного обеспечения. Тогда это никак не повлияет на вашу реальную репутацию.

Когда / Если вы получите публичную критику, это приведет к улучшению кода и поможет вам расти как разработчик. Это хорошая вещь.

Я считаю, что для моих проектов наиболее конструктивная критика / предложения направляются в частном порядке, а не в открытом доступе, и даже тогда вы вряд ли получите поток комментариев. Поэтому я рекомендую просто пойти на это!

Удачи.

Стюарт
источник
1

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

Вы также должны сосредоточиться на том, что вы делаете. Почему вас волнует, что вы получаете отрицательный отзыв о своей работе? Если это потому, что вы делаете предположение, что если вас критикуют, то это потому, что код плохой или вы не очень хороши в программировании, это может быть или не быть правдой.

Цель этих усилий - убедиться, что код работает, и вывести как можно лучший код, но из практического опыта не весь коммерческий код также является звездным. Иногда вы получаете плохие требования, иногда у вас нет времени, чтобы сделать это правильно. Иногда разработчики хотят выглядеть гением, заставляя других выглядеть плохо.

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

Если бы я беспокоился о том, что другие думают обо мне, как о программисте, я бы не пошел в поле зрения. Тем не менее, мой первый взгляд на критику кода состоит в том, чтобы попытаться взять его объективно и извлечь из него уроки.


источник