私は現在、ソロのプライマリ開発者として、2人の会社で働いています。私の上司はクライアントを取得し、いくつかのpngデザインテンプレートをモックアップして私に渡します。
このシステムは問題なく動作しており、とても楽しんでいます。
私が取り組んでいるプロジェクトのタイプは、中小規模の企業向けであり、通常、CMSシステムが必要です。ゼロから開発し、カテゴリ、タグ、製品などをクライアントが追加/編集/削除できるようにカスタマイズされたバックエンドを構築し、渡されたデザインテンプレートに従ってフロントエンドに出力します。時が経つにつれ、プロジェクトは複雑になり、ショッピングカート/注文機能やその他の一般的なeコマースタイプの機能が追加されました。
繰り返しますが、このシステムは正常に動作しており、本当に楽しんでいます。
私の問題は、プログラマーとしての個人的な成長です。私は余暇に多くの時間を費やしてプログラミングブログを読んだり、stackexchangeをチェックしたり、推奨プログラミングブックを読んだり(現在は ' The Pragmatic Programmer 'で、これまでのところ非常に良い)、脳のエクササイズ( lumosity.com と khanacademy 数学の問題)、たくさんの身体運動と他の個人的な開発型の活動をしています。
でも、フィードバックが欠けていると感じずにはいられません、批評。私の上司は素晴らしく、私の仕事に関して賞賛を惜しむことはありませんが、残念ながら彼は私のコードをチェックするために忙しいか、正直に言って、私はそれが彼の専門の1つではないと思うのでフィードバックを提供できません。
私が間違っていることと、正しいことを知りたいのです。コントローラにそれほど多くのロジックを入れている場合、コードを十分に変調していますか?.
だから私がやったことは小さな「家族予算」アプリを開発し、私が現在どのように知っているのと同じくらいきれいにそして効果的にそれをやろうとしました。
私が知りたいのは、このアプリを送信できる場所があり、経験豊富な開発者にフィードバックを提供してもらうことです。 'codereview.stackexchange'のような私のコードのサブセクションだけでなく、私が批判したいのはワークフロー全体です。
これは多くの質問があることを知っています。与えられた主なアドバイスは、チーム内の仕事を探すことです。これは確かに後で検討しますが、今のところは、現在の状況を維持したいと思います雇用状況は、あまりにも多くの悪い習慣を開発したくないだけです。
明確にするためにさらに情報を提供できるかどうか、またはこのタイプの質問に適していない場合は、事前にお詫び申し上げます。このコミュニティがよりよく考え抜かれた対応を促進すると感じたので、redditを使用したくありませんでした。
あなたはスキルを向上させるための正しい道を進んでおり、コードの信頼性と企業の準備状況について不確実であることは理解できます。
これはジュニア開発者にとって通常のプロセスであり、いつかロックスターの開発者になるための鍵となるため、改善への関心は非常に重要です。
ベストプラクティスを学ぶためのリファレンスとして、情熱的で好奇心のあるプログラマーのために無料でホストされているオープンソースプロジェクトに参加することをお勧めします。これらは、ベストプラクティスの使用方法とアプリケーション設計の決定方法を理解するのに役立ちます。さらに、自己学習と改善が劇的に促進されるため、オープンソースプロジェクトの開発に参加してみてください。
ソフトウェア開発者向けの地域コミュニティのイベントに参加することもお勧めします。これらのグループのいくつかは communitymegaphone.com にあります。地元のバディプログラマーと話してください。彼らは、同僚を助けても構わないと思っているほとんどの人です。
より多くの経験を積むと、以前のプロジェクト/コードに戻って、どこが間違っていたかを確認できます。後視は美しいものです。 xの前に書いたコード/ドキュメントを見て、どこが間違っていて、どこで改善できるのかを理解したことは知っています。
ブログ、本、SEなどを読むという事実は、あなた自身の個人的な開発の一部としてプログラミングへのより深い洞察を与えるはずであり、試行錯誤とプロジェクトとコードの進化は確かにあなたが再改善。自己批判は非常に良いことです。
そうは言っても、別の開発者の批判的な目を持つことは常に価値を追加し、あなたが考えていなかったかもしれない意見/オプションを提供することができます。コードレビューのためにプロジェクト全体をダンプできる特定のサイトは知りませんが、疑わしいと思われるもののスニペットをcodereview.stackexchangeに入れて閲覧し、コメントしてから、そのフィードバックをボードに載せて適用できます他の適切な場所。
あるいは、いくつかのオープンソースのものを書いて、それをgithub(または同等のもの)に投入することもできます。オープンソースコミュニティは確かにあなたの作品を批評し、彼らが適切と考えるところでそれを改善します。
結局のところ、生産している製品が意図したとおりに機能し、ビジネス要件を満たし、保守可能であれば、あなたは何か正しいことをしています。
概念的なプログラミングの質問、パターンなどについては、これらの質問をいつでもPSEに投稿し、コード実装の問題についてはSOに投稿できます。
ル・ミーは私の意見、いくつかの知恵の言葉、あなたが考えなければならないいくつかの質問を共有します。
経験豊富なプログラマーとして、長年に渡って、最良のコードはシンプル(KISSコンセプト)を参照)であり、他のプログラマーが変更しやすいコードであることがわかりました。
また、コードが混雑しないように十分なスペースを残し(呼吸スペース)、均等に構造化します。変数にはよく知られた命名規則を使用し、理解しやすい名前(別のプログラマが理解できる名前)を付けて、要点が多すぎず、少なすぎないコメントを記述します。
上記に従っている場合、あなたはすでに良い道を進んでいます。
さらに、開発者は建築家のようなものですので、反省すべき非常に重要なことを言います。
そして
しかしながら、
以上のことから、努力と効果、コスト、品質のバランスが良いことを理解してほしい。
そして、反省すべき質問。
私はあなたと同じような状況にあり、5人の会社の唯一のプログラマーとして雇われており、そのうちの1人だけが、開発/追加しているアプリケーションに直接関与しています。幸いなことに、私は最初から何も作成する必要はありませんでしたが、これまでは、前任者が作成したアプリケーションを変更するだけでした。そうすることで、私は彼のコードのどの部分が良かったか、どの部分が悪かったか、そしてどのようにそれらを改善できるかを認識することによって、自分自身をすでに改善したと私は信じています。
コードの読み取りは、独自のコーディングを改善する上で重要な部分です。そのため、何よりも、自分でオープンソースプロジェクトを検索し、コードを読んで理解し、何が良いか、何が悪いか、何が改善できるかを判断することをお勧めします。多分それについてのコードレビューをあなたのブログに書いてください。
乾杯!
チェックアウトすることをお勧めします https://codereview.stackexchange.com/
これは、熟練した専門家からコードやデザインに関するフィードバックを得るのに最適な場所です。
本、ブログ、Stack Overflowに関するQ&Aを引き続きお読みください。もっと社会的な方法で自分を向上させたい場合は、オープンソースプロジェクトに取り組みましょう。 独自のプロジェクトを作成するを意味するのではなく、既存のプロジェクトで作業します。
あなたはこの会社の唯一の開発者なので、いつかは誰かを雇う可能性があると思います。この日、男はあなたのコードを読まなければならないでしょう。ツールに関するドキュメントをすでに書いていますか?あなたの作品が他の人に読まれることを心に留めておくことは、ソロ開発者にとっては良いことであり、あなたがより良いコードを作成するのを助けます。