かなり大規模なオープンソースプロジェクトを自分でかなり長い間取り組んでおり、リリースしたい段階に近づいています。しかし、私は独学で自分のプロジェクトを適切にレビューできる人を本当に知りません。
数年前に、私はそれをリリースしたフォーラムで(批判的な意味で)ほとんど引き裂かれた小さなコードをリリースしました。コードは機能しましたが、批判は正確ですが残忍です。それがきっかけで、すべてのベストプラクティスを探し始めるようになり、最終的には自分がはるかに優れた開発者になったと感じています。私は自分のプロジェクトのすべてを何度も調べてきたので、何度も何度も完璧にしようとして、数を失いました。
私は自分のプロジェクトを信じており、それは多くの人々を助ける可能性があると思います。私はそれを使って面白い方法でいくつかのクールなことをしたような気がします。それでも、私は独学で学んでいるので、自分の自己教育にどのようなギャップがあるのか疑問に思わずにはいられません。私のコードが前回分解された方法は、繰り返したいものではありません。無数の時間を注ぎ込んだプロジェクトをリリースすることに対する私の2つの最大の恐怖は、自己教育のために明らかに明白なことを逃したため、またはさらに悪いことに、クリケットの音にリリースするために、完全に恥ずかしいと思います。
同じような状況にあった人はいますか?私は建設的な批判を恐れていません。建設的な批判であり、私が台無しにした方法についての怒りだけではありません。 StackExchangeにコードレビューサイトがあることは知っていますが、それは実際には大規模なプロジェクト用に設定されていないため、プロジェクトの一部を投稿する場合、コミュニティにはまだ十分な規模があるため、十分なフィードバックを得ることができませんでした(私は1つのファイルで試した)。プロセスで恥ずかしい思いをせずに、プロジェクトを少なくともある程度成功させるにはどうすればよいですか?
プロジェクトが開発者向けである場合を除いて(例:開発フレームワーク。この場合、さらに学習を深めるために開発フレームワークに批判を求めます)、心配する必要はありません。しかし、それでも、がらくたな開発者向けのオープンソースプロジェクトはたくさんありますが、人々はそれらがポイントに行くのでそれらを愛しています(Codeigniterは考えられません。
それが普通の人間のためのアプリケーションであるならば、彼らはおそらく結果だけを気にするでしょう。
コードに問題があります。私もそうです。この質問に答える人はいますか?彼らのコードにも問題があります。
たとえば、10行以下でなければ、欠陥があります。たぶん悲劇的なほど。
開発者になることは、常に自分の能力と理解の限界に打ち勝つことです。すべての開発者にとってこれはそうではないかもしれませんが、私と私が知っている開発者にとって、私たちは常にコンピテンシーのエッジでほとんど常に作業しています。そして、あなたは何度も何度もそれに直面し、それから素敵な週末を過ごし、月曜日に戻ってそれを何度も繰り返します。
15年間その人生を歩んできたので、私が解決したのは、次の1つの事実ですあなたはあなたのコードではありません。あなたはコードを書きます。コードの判断はあなたの判断ではありません。コードには問題があります。知っているものもあれば、そうでないものもあります。それがあなたの注意を引いたことあなたを助けます、それについてあなたができるすべてが悪い感じでない限り。気分が悪くてもコードは改善されませんが、気分が悪くなるだけです。
あなたはあなたのコードを書いて、あなたはそれをあなたと同様にあなたが知っているのと同様に書いています。たぶん明日はあなたが今日よりも多くを知っているでしょうが、今日あなたはそれをあなたが知っていたのと同様にやった。私のアドバイスは、今日のコードを今日、明日のコードを明日書くことです。それから素敵な週末を過ごし、月曜日に戻って月曜日のコードを書いてください。
一般的な経験則として、オープンソースプログラムには、ソースコードを見る3つのグループの人々がいます。
現実の世界では、人々は単に必要としないので、これら以外の理由でソースコードを読むことはありません。コードについてのフィードバックを受け取りたいという意味のフォーラムにコードを投稿したので、あなたは以前にそのような大量のフィードバックを得ました。
私はあなたが虐待の急流について本当に心配する必要があるとは思いません。あなたに連絡する可能性が高いのは、機能を追加したりバグを修正したりするだけで、すでにコードベースを閲覧していて、丘を求めて叫んでいない人だけです。 ;)
私は本当にこの質問の背後にある心理学を理解していません...自分自身に尋ねるより良い質問は、「このソフトウェアをリリースすることで何を失う必要があるのでしょうか」でしょう。
プロジェクトがコードのにおいでいっぱいの場合でも、何かを失う必要がありますか?
コードがひどいもので、誰かがあなたに炎のメールを書くのに時間をかけたとしても、おそらく、彼はおそらくあなたのソフトウェアに十分な変更を加えて改善したいと思うでしょう。
あなたはそれについて幸せであるべきです!批判を受け入れてコードを改善し、時間をかけて書いた怒っている人に聞いてください。彼は気にしています!
しばらくすると、フレームメールは停止し、人々はあなたのソフトウェアを使い続けるでしょう。あなたはあなたの過ちから学び、あなたの教育に存在していた知らなかったギャップはもうありません。
私はむしろ、何かをしたい人と一緒に働き、間違いを認め、修正するして、何もしない人よりも続けていきたいです。
自分の名前でソフトウェアをリリースすることに本当に不安がある場合は、ニックネームでソフトウェアをリリースしてください。それが成功した場合は、自分のものとして主張し、そうでない場合はニックネームを変更してください
私はオープンソースだけでなく、人々があなたのコードの完全な進化を見ることができるopen developmentを信じています。頭が痛いプロトタイプから実際のコードまで...恥ずかしいことはありません。あなたはそこに自分を出している-それは根性がかかります。それを所有し、それを誇りに思う。誰も完璧ではありません。
このゲームに長く携わるほど、コード品質の唯一の尺度はクライアントエクスペリエンスであることを理解するようになりました。関数を記述している場合、それはその関数の呼び出し元です。図書館?そのライブラリを書く開発者。基本構想?それの採用者。スタンドアロン?プログラムを起動する人またはデーモン。
素敵なコードには長所がありますが、誤解しないでください。しかし、それが言われて完了したときの唯一の対策は「機能するか」です。私はバグの多い混乱であるクリーンなコードをたくさん見ました、そして完全に信頼できるサタン的に混乱したコードをたくさん見ました(それに加えて、クリーンで醜い醜い:))
だから、批評家があなたのコードが醜いと言っても、誰も気にしない。彼らがそれがうまくいかないと彼らが言うなら、それはあなたがあなたのプログラムを改善しようと努める有用な批判(テストデータ!)です。そこにぶら下がって、インターネットのトロールの人口を避け、プロジェクトを楽しんでください!
LinkedInの共同創設者であるリードホフマンからの賢明な言葉:
「最初の製品リリースに戸惑いなければ、リリースは遅すぎます。」
「メンバーとのエンゲージメントを獲得し、実際に何が重要であるかを確認することが完全に重要です...したがって、できるだけ早く、実行可能な最小限の製品を手に入れることができます。」
これはオープンソースプロジェクトに特に当てはまると思います。有望なスタートで素晴らしいアイデアを持っていると、人々が貢献して参加するように促されます。とても洗練されているのでサングラスをかけても、そのような気持ちを呼び起こすことはできません。しかし、早期リリースについて最も重要なことは、何をすべきかについてのすべての先入観を打ち砕き、正しい方向に進み始めることです。
他の投稿者の発言に強く同意します。たとえあなたのコードが安っぽくて高品質でなくても、ほとんどの人は気にしません。オープンソースコードに一度でも飛び込んできた人なら誰でも、「ここでWTFが起こった」と考えたことがあるかもしれません。
しかし、プロジェクトのコードベースを批判するためにmotivationを使って「おい、あなたのコードはひどいように見える!」と言っているだけの人はいない。私たちは皆そこに行っており、私たちが今書いているすべてのコードは、ほんのわずかな手数料で自分にとってはかなり不自由なように見えることを知っています(間違いなく私はそうします)。
ですから、それほど心配する必要はありません。人々は、オープンソースプロジェクトのコードを一気に選ぶよりも、余暇にできることがたくさんあるだけです。
実際のコードは常に腐敗しており、ダーティであり、一緒にスラップされ、ほぼアドホックな方法で維持されます。クリーンアップは、特殊なケースと特殊な定数の文書化に限定されています。クリーンなコードと現実の世界との間にはインピーダンスのミスマッチがあります。
また、有能なエンジニアならだれでも他の人のコードを引き裂くことができることに気づきました。
(1)テストに合格し、失敗せずに目的を達成した場合(2)マイナーな書き換えのみでマイナーな変更を行える場合、それは優れたコードです。
あなたは誰?あなたは神のプログラマーとして人々が知っている誰かであり、あなたの評判が下がることを心配していますか?あなたは仕事に応募しようとしていて、雇用主がこれらの批判を読んで、あなたが悪いプログラマーだと思うのではないかと心配していますか?私が尋ねているのは、なぜあなたはあなたが台無しにする方法についての批判を恐れているのですか?あなたは本物のコメントであり、どれが暴言であるかを決定するようになります。良いものを欠陥として取り、次のバージョンで修正します。私はあなたが批判について不必要に心配しているように感じています。あなたはオープンソースコミュニティを支援しています。それ自体が非常に大きな理由です。今後ともよろしくお願いいたします。
本当に心配な場合は、ソフトウェアをリリースするときにオンラインの仮名を使用してください。その場合、それが実際の評判に影響を与える方法はありません。
When/Ifあなたは世間からの批判を受けています。それはコードの改善につながり、開発者として成長するのに役立ちます。それは良いことです。
私のプロジェクトでは、最も建設的な批判/提案が公に放送されるのではなく、私的に送られていることがわかります。したがって、私はそれのために行くことをお勧めします!
幸運を。
自己学習自体には何の問題もありません。孤立することはできません。ピアコードレビューが役立ちます。
また、自分がやっていることに集中する必要があります。自分の仕事について否定的なフィードバックを受けても、なぜ気にかけるのですか?それがあなたが批評を得た場合、それはコードが悪い、またはプログラミングが得意ではない、と仮定しているためである場合、それは本当かもしれないし、そうでないかもしれません。
努力の目的は、コードが機能することを確認し、可能な限り最高のコードを入手することですが、実際の経験から、市販されているすべての商用コードが優れているわけでもありません。要件が悪い場合もあれば、正しく実行する時間がない場合もあります。時々、開発者は他の人を悪く見せることによって天才として出会いたいです。
特に真の規律と努力が必要な場合は、間違いをせずに学ぶことができるとは思いません。それが簡単だったら、誰もがそうするでしょう。確立されたベストプラクティスを使用して、間違いをマイナーなものに限定するようにしてください。私はそれが常に可能であるとは限らないことを理解しています!
他の人がプログラマーだと思っていることを心配していたら、そもそもフィールドに入っていなかっただろう。とは言っても、コードに対する批判に対する私の最初の見方は、それを客観的に捉え、そこから学ぶことです。