戸惑うことなくオープンソースプロジェクトをリリースする[クローズ]


51

私はかなり長い間、かなり大きなオープンソースプロジェクトに独力で取り組んできましたが、それをリリースしたいところに近づいています。しかし、私は独学であり、プロジェクトを適切にレビューできる人を本当に知りません。

数年前、私はそれをリリースしたフォーラムで(重大な意味で)ほぼばらばらになった小さなコードをリリースしていました。コードは機能しましたが、批判は正確ではありましたが、残忍でした。それがきっかけで、あらゆるもののベストプラクティスの検索を開始し、最終的には自分がはるかに優れた開発者になったと感じています。私は数え切れないほど完璧にしようとして何度もプロジェクトのすべてを調べてきました。

私は自分のプロジェクトを信じており、多くの人々を助ける可能性を秘めていると思いますし、それで面白い方法でいくつかのクールなことをやったと感じています。それでも、私は独学なので、私の自己教育にはどのようなギャップがあるのだろうと思わずにはいられません。前回私のコードがばらばらにされた方法は、繰り返したくないものです。数え切れないほどの時間を費やしてきたプロジェクトをリリースすることに対する2つの最大の恐怖は、独学や、さらに悪いことに、クリケットの音でリリースしたために、特許的に明らかなものを見逃したため、まったく恥ずかしいと思います。

同様の状況にあった人はいますか?私は建設的な批判を恐れていませんが、それが建設的なものであり、私がいかに失敗したかについての暴言ではありません。StackExchangeにコードレビューサイトがあることは知っていますが、大規模なプロジェクトにはあまり設定されておらず、プロジェクトの断片の一部を投稿する場合、コミュニティがまだ十分なフィードバックを得ることができるとは感じませんでした(私は1つのファイルで試してみました)。恥ずかしさやプロセスに没頭することなく、少なくともある程度の成功をプロジェクトに与えるにはどうすればよいですか?


17
フォーラムでコードを公開することと、気になる人が利用できるソースを使用してプロジェクトを公開することには違いがあります。多くのユーザーと潜在的な開発者がコードを見ている大規模なオープンソースプロジェクトであっても、「コードにXとYの欠陥があると思います」というタイプの反応はまれであるようです。

17
説明から、数年前にあなたが得た批判はあなたをより良いプログラマーにした。では、なぜ今度は批判を恐れるのですか?優れたプログラマーになる必要はもうないと感じていますか?もっと良くしたいなら、自我を脇に置いて数回ノックする必要があります。
ポール

3
オープンソーシングの優れた点は、人々が苦情を申し立てた場合、問題を解決するようにいつでも依頼できることです。
ブルーベリーフィールズ

4
特定の疑わしい領域がある場合は、codereview.stackexchange.comでそれらを提起してください
pdr

12
embarrasementが問題だった場合WPにある外ところで、我々はWordpressのか、Joomlaのようなプロジェクト...半分以上のブログを持っていたことはない、誰もがコードベースの品質の世話をするようです...
ヤニス

回答:


35

プロジェクトが開発者を対象としない限り(例:開発フレームワーク。この場合、さらに学ぶようになれば批判することを望みます)、心配する必要はありません。しかしそれでも、デベロッパー向けのオープンソースプロジェクトはたくさんありますが、人々は彼らがポイントに行くので彼らを愛しています(非常に貧弱なアーキテクチャでありながら最も人気のあるPHPフレームワークであるCodeigniterを考えてください)

それが通常の人間のためのアプリケーションである場合、彼らはおそらく結果だけを気にします。


3
+1そして、重要な開発者は実際にあなたにパッチを送るかもしれません!あなたの知識と努力を世界に公開することは常に立派です:)
ヤティサガデ

4
批判は本当に貴重なフィードバックです。たとえそれが過酷(フィードバックとして見るだけの能力を持っている)であり、それが付加価値であるとしても、威圧される理由ではありません。:-)あなたの努力を誇りに思ってください!あなたができること、あなたの教育、またはそれを理解することが最善であるなら!以下のフィードバックは、より良い開発者になるために役立つだけです。正直に言って、昨日コードは、あなたが改善し成長している限り、常にひどいものになります。
ロバートフランス語

+1-ありがとう。このプロジェクトは開発者向けですが、結果については良い点を示します。
希望に満ちた

1
みんなのコードはうんざりしているので、批判を価値ある学習体験と考えてください。誰かが非建設的な方法であなたを引き裂くなら、彼らは確かに馬鹿であるとしてそれらを無視します
デビッドヘイズ

25

コードに問題があります。私もそうです。この質問に答えている人はいますか?彼らのコードにも問題があります。

たとえば10行以下でなければ、欠陥があります。悲劇的にそうかもしれません。

開発者になることは、常に自分の能力と理解の限界に打ち勝つことです。これはすべての開発者にとってはそうではないかもしれませんが、私にとっても私が知っている開発者にとっても、私たちはほとんど常にコンピテンシーの端で働いています。そして、あなたは何度も何度もそれに直面し、それから素敵な週末を過ごし、それから月曜日に戻って何度も何度もそれをします。

15年間その人生を過ごしてきたので、私が決めたのはこの1つの事実です。あなたはあなたのコードではありません。あなたはコードを書きます。コードの判断はあなたの判断ではありません。あなたのコードには問題があり、知っているものもあれば、そうでないものもあります。それがあなたの注意引いたことは、あなたがそれについてあなたができるすべてが悪いと感じない限り、あなたを助けます。気分が悪くてもコードは改善されませんが、気分が悪くなるだけです。

あなたはあなたのコードを書き、あなたはそれをあなたがどのように知っているのと同じように書きます。明日は今日よりも多くを知っているかもしれませんが、今日はあなたが知っていたのと同じようにそれをしました。私のアドバイスは、今日のコードを今日、明日のコードを明日書くことです。その後、素敵な週末を過ごして、月曜日に戻って月曜日のコードを書きましょう。


24

一般的な経験則として、オープンソースプログラムには、ソースコードを見る3つのグループがあります。

  1. プログラムをわずかに異なる動作にしたり、別のプラットフォームに移植したり、独自のプログラムの出発点としてコードを変更することを検討している人々。彼らがコードを好まない場合、彼らは通常、コードを使用しないだけであり、あなたは彼らから話を聞くことは決してないでしょう。
  2. 使用した言語でコーディングする方法を学ぼうとする学生。これらはあなたに連絡することはほとんどありませんが、時折何らかの方法で何かをした理由を尋ねる電子メールを受け取ることがあります。(公平を期すために、私はこれらの電子メールを実際に長年持っていませんでした。StackExchangeのようなWebサイトがこのやり取りに取って代わったと思います)
  3. OpenBSDのスタッフなどのセキュリティ研究者は、あなたのツールがディストリビューションに含まれるのに十分なほど安全かどうかを判断しようとしています。そうではないが、あなたのプログラムを含めたい場合、彼らはそれを保護する方法を見つけるために連絡します。(そして、もしあなたのプログラムが人気を博したら、恐らくブラックハットの研究者も引き付けるでしょう。彼らは何を見つけてもあなたに連絡しないでしょう。)

現実の世界では、人々はこれらの理由以外の理由でソースコードを読むことはありません。なぜなら単に必要がないからです。フォーラムにコードを投稿したため、以前はそのようなフィードバックを大量に受け取っていました。これは、コードに関するフィードバックを受け取りたいということを暗示しています。

虐待の激流について本当に心配する必要はないと思います。あなたに連絡する可能性が高いのは、機能を追加したりバグを修正したい人だけです。彼らはすでにコードベースを閲覧しており、丘を求めて叫んではいません。;)


5

私は本当にこの質問の背後に心理学を持っていません...自分自身に尋ねるより良い質問は、「このソフトウェアをリリースすることで失うものは何ですか」です

あなたのプロジェクトがコードのにおいでいっぱいであっても、何かを失う必要がありますか?

コードがひどくて、誰かがあなたにフレームメールを書くのに時間をかけたとしても、彼がおそらくあなたのソフトウェアを使って、それを変更して改善したいと思うでしょう。

あなたはそれについて幸せになるはずです!批判を受け入れてコードを改善し、時間をかけて書いてくれた怒っている人に聞いてください。彼は気にしています!

しばらくすると、フレームメールは停止し、人々はあなたのソフトウェアを使い続けます。あなたはあなたの間違いから学び、あなたの教育に存在していると知らなかったギャップはもうありません。

私は、何かをする気がない人よりも、何かをする気があり、間違いを認め、修正し、進み続けると一緒に仕事をしたいです。

自分の名前でソフトウェアをリリースすることに不安がある場合は、ニックネームでリリースしてください。それがあなた自身のものとして主張することに成功した場合、あなたのニックネームを変更しない場合:)


最後の文の+1、音楽業界の人々は「実験的」アルバムでこれを常にしています:)
MattDavey

4

私は、オープンソースだけでなく、人々があなたのコードの完全な進化を見ることができるオープン開発を固く信じています。髪の毛のついたプロトタイプから動作するコードまで...あなたは恥ずかしくないはずです。あなたはそこに自分を置いています-それは勇気がかかります。それを所有し、誇りに思う。誰も完璧ではありません。


3

このゲームに長く携わるほど、コード品質の唯一の尺度はクライアントエクスペリエンスであることに気付くようになりました。関数を記述している場合、それはその関数の呼び出し元です。図書館?そのライブラリのために書いている開発者。基本構想?それの採用者。スタンドアロンですか?プログラムを起動する人またはデーモン。

素敵なコードには長所がありますが、誤解しないでください。しかし、それが言われ、実行されたときの唯一の手段は「機能しますか?」です。私はバグのある混乱であるきれいなコードをたくさん見てきました、そして完全に信頼できる多くの悪魔的に混乱したコードを見ました

だから、批評家があなたのコードがいと言ったら、誰が気にします。彼らがそれがうまくいかないと言うなら、それはあなたがあなたのプログラムを改善しようとする有用な批判(テストデータ!)です。そこに固執し、インターネットのトロルの人口を避け、あなたのプロジェクトを楽しんでください!


2

私は他のポスターが言ったことに強く同意します:あなたのコードが安っぽくて高品質ではないとしても-ほとんどの人は単に気にしません。一度か他の時点でOpenSourceコードに飛び込んだ人は誰でも、「ここでWTFが起こった」と思ったかもしれません。

しかし、「おい、あなたのコードはひどいようだ!」と言うためだけに、プロジェクトのコードベースを批判する動機を知っている人はいません。私たちは皆そこにいましたが、今書いているコードはほんのわずかな苦労で自分にとってはかなり不格好に見えることを知っています(私は間違いなくそうするでしょう)。

だから、それほど心配しないでください-人々は、オープンソースプロジェクトのコードを細かく選ぶよりも、暇なときにやることのほうがずっといいのです。


2

実際のコードは常に腐敗して汚れており、一緒に平手打ちされ、ほぼアドホックな方法で維持されています。クリーンアップは、特別なケースと特別な定数の文書化に限定されています。クリーンなコードと現実の世界との間にはインピーダンスの不一致があります。

また、有能なエンジニアなら誰でも他の人のコードを引き裂くことができることに気づきました。

(1)テストに合格し、失敗せずに目的を達成し、かつ(2)わずかな書き換えのみでマイナーな変更を加えることができる場合、それは良いコードです。


2

LinkedInの共同創設者であるReid Hoffmanからの賢明な言葉:

「最初の製品リリースに恥ずかしさがなければ、リリースが遅すぎます。」

「メンバーとのエンゲージメントを獲得し、実際に重要なことを確認することは完全に重要です。そのため、できるだけ早く最小の実行可能な製品を入手できます。」

これは、オープンソースプロジェクトに特に当てはまると思います。そこでは、有望なスタートを切る素晴らしいアイデアを持ち、人々が貢献し、参加することを奨励しています。サングラスをかけられるほど洗練されたものは、そのような感情を呼び起こさないかもしれません。しかし、早期リリースに関して最も重要なことは、何をすべきかについての先入観をすべて打ち砕き、正しい方向に進むことです。


1

あなたは誰?あなたは人々が神のプログラマーとして知っている人で、あなたの評判が落ちるのではないかと心配していますか?あなたは、雇用主がこれらの批判を読んで、あなたが悪いプログラマーであると思うかもしれないという仕事と心配に応募するつもりですか?私が尋ねているのは、どうしてあなたが失敗するかについての批判を恐れているのかということです。どれが本物のコメントで、どれが暴言であるかを決めることができます。良いものを欠陥として取り、次のバージョンで修正します。私はあなたが批判について不必要に心配していると感じています。あなたはオープンソースコミュニティを支援しています、それ自体が非常に良い理由です。良い仕事を続けてください。


2
神プログラマーとは何ですか?
希望に満ちた

1
@Hopeful。IITボンベイ大学には1人の教授がいます。噂によると、この男はプログラムを作成し、コンパイルして実行します。再コンパイルまたはデバッグとして知られる段階はありません。これは神プログラマーです。
マノジR

さて、私はそれが私ではないと確信しています...デバッグに執着しています。しかし、何かが初めて機能するときは、それはクールな気持ちです。それでも、私はそれをまだテストし、テストを書いています。
希望に満ちた

1

本当に心配な場合は、ソフトウェアをリリースするときにオンラインの仮名を使用してください。そして、それが実際の評判に影響する方法はありません。

世論の批判を受けた場合、それはコードの改善につながり、開発者として成長するのに役立ちます。それは良いことです。

私のプロジェクトでは、ほとんどの建設的な批判/提案は、公に放送されるのではなく、個人的に送信されます。したがって、私はそれだけに行くことをお勧めします!

幸運を。


1

独学でそれ自体に問題はありません。あなたは孤立することはできませんし、ピアコードレビューはそれを助けることができます。

また、あなたがしていることに集中する必要があります。仕事について否定的なフィードバックを得るのに、どうして気にしますか?批判を受けたのは、コードが悪いか、プログラミングが苦手だという仮定をしているからだとすれば、それは真実かもしれません。

この取り組みの目的は、コードが機能することを確認し、可能な限り最高のコードを取得することですが、実際の経験から、そこにあるすべての商用コードも優れているわけではありません。時々、あなたは悪い要求を受け取り、時にはあなたはそれを正しくする時間がない。開発者は、他の人の見た目を悪くすることで、天才として出くわすことがあります。

特に本当の規律と努力が必要な場合は、間違いを犯さずに学習できるとは思いません。それが簡単だったら、誰もがやっているでしょう。確立されたベストプラクティスを使用して、ミスをマイナーなミスに限定するようにしてください。それが常に可能であるとは限りません!

他の人が私をプログラマーだと思っていることを心配していたら、そもそもこの分野に進まなかっただろう。そうは言っても、コードに対する批判に対する私の最初の取り組みは、コードを客観的に取り上げ、そこから学ぶことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.