3

私は現在プログラミングを学んでいて、CS のクラスを受講していないので、基本的には下から始めています。私は何年にもわたってコードをまとめてきましたが、より大きなプロジェクトに取り組むために必要な基本的な概念を十分に理解していませんでした。オブジェクト指向は明白なものであり、その概念のいくつかを理解し始めていると感じています。次に、MVC、UML、SCRUM、SOLID など、話題や方法論がたくさんあります。私はこれらの多くを見てきましたが、ほとんどの説明にはある程度の理解が必要なようで、いつも困惑しています。他の概念。

このことを「正しい」方法で学びたいのですが、どこから始めればよいですか?

ソフトウェア アーキテクチャ/設計/開発のすべての基盤を理解するために理解する必要がある包括的な構造は何ですか?

私は何が欠けていますか?

基礎をクリアするまで待つことができ、また待つべき構成要素や概念はありますか?

4

12 に答える 12

4

緩い結合、高い凝集度。

そして本に関しては、CodeCompleteは少なくともあるレベルでほとんどすべてをカバーしています。

于 2009-06-26T08:11:37.007 に答える
2

ソフトウェア開発は巨大な分野であり、あまりにも早く取りすぎないように注意する必要があります。関数型プログラミングの方向に進むつもりでない限り、オブジェクト指向の設計とプログラミングを取り巻く概念を完全に理解することから始めることをお勧めします。これが基礎となるはずです。

それをよく理解すれば、デザインパターンをよりよく理解し、いつ使用するかを感じることができるようになります。

快適に感じる言語が見つかるまで、いくつかの言語を試してみることをお勧めします。個人的に私のお気に入りの言語は、非常に純粋なオブジェクト指向言語であるAdaですが、ビジネスの世界では、まだ多くの問題があるC#で作業していますが、これらはより活気のある雇用市場がそれを上回っています。

プロジェクト管理について心配する前に開発スキルにもっと集中する必要があるので、この段階ではスクラムについてあまり心配しません。

最も重要なことは、できるだけ多くのコードを処理し、多くの優れたリファレンスソリューションをダウンロードして、理解できるまでコードを処理し、開発の傾向を監視することです。

実行可能であれば、いくつかの開発者会議にも参加することを検討することをお勧めします。これらは非常に刺激的である可能性があるためです。

于 2009-06-26T08:20:01.950 に答える
2

ACRONYMS(あなたがリストしたものを含む)とMethodologies(tm)から離れてください。少なくとも最初は。

良い本を読んでください。これから始めましょう:PragmaticProgrammer。おそらくCormenらによるアルゴリズムの紹介から、アルゴリズムとデータ構造を学びます。

たくさんのコードを書いてください。練習は何よりも重要です。

于 2009-06-26T08:29:55.173 に答える
1

単体テストでソフトウェアをテストする方法。それができると、他のすべての問題の 90% が自動的に解決されます。

テストの方法がわかれば、設計などの高度なトピックから始めることができます。

于 2009-06-26T08:41:17.710 に答える
0

Grady Boochetal。による「ObjectOrientedAnalysisandDesignwithApplications」をお勧めします。最新のeditoinには、MVC、UML(彼が発明した)を含むOOADの概念の詳細な説明、およびソフトウェア開発のプロセス全体を管理する方法に関する議論が含まれています。この本の第2部では、5つのサンプルシステムを開発することにより、これらすべてを例示しています(コアから直交する場合もあります)。

于 2009-06-26T08:18:40.250 に答える
0

基本的なデータ構造アルゴリズム、およびアルゴリズム分析を調査した場合、適切な基盤が得られます。

于 2009-06-26T08:21:46.687 に答える
0

もう1つの良い方法は、もちろんGoFによるデザインパターンです。これにより、緩い結合、コードの効率的なカプセル化と再利用の方法などがわかります。

于 2009-06-26T08:22:17.513 に答える
0

アルゴリズムの部分に関係することについては、特定のプログラミング言語に縛られていない本を取り上げてください。私のお気に入りはTHコーメンらによるアルゴリズム入門です。それはいくつかの点で少し理論的になりますが、彼らが特定のことを証明していて、それを信じるように頼むだけではないとき、私は特にそれが好きです。

于 2009-06-26T08:25:34.980 に答える
0

最新の汎用言語を使用している場合は、パターンを把握することをお勧めします(MVCまたはModel-View-Controllerがその1つです)。「4人組」の本は必読です。少なくともいくつか調べて参考にしてください。 クリック感

リファクタリングは、あなたの武器にあるべきもう一つの概念です。この主題に関するMartinFowlerの本は非常に読みやすく、前述のパターンをよりよく理解するのに役立ち、UMLについての少しの説明も含まれています。

複数のハイパーリンクを投稿できないので...

アマゾンで検索:リファクタリング、既存のコードのデザインの改善

デザインを伝達したい場合、UML(統一モデリング言語)は多くの人にとって選択される「ツール」です。ただし、UMLは大きくて扱いにくいですが、Martin Fowlerは(再び)それを本質的なものにまで煮詰めることができました。

アマゾンで検索:UML Distilled(最新のものを入手してください)

SCRUMは、ソフトウェア開発グループを管理するために使用される多くの方法の1つですが、始めたばかりのときや自分で学習することにはあまりメリットがないと思います。特に詳細ではありません。

それが役に立てば幸い...

PS:SOLIDまだ聞いたことがないので、他の誰かがそこであなたを助けなければなりません。

于 2009-06-26T08:27:40.343 に答える
0

このように自分の質問に答えるのはちょっとばかげている気がします.. :) しかし、コードの書き方を学ぶために見つけた貴重なリソースの 1 つは、http: //www.projecteuler.net のオイラー プロジェクトです。

これは基本的に、独自のソリューションを記述して解決する数学の問題の集まりです。特定の問題に対する答えが見つかったら、その問題のフォーラムにアクセスして、さまざまな解決策について話し合うことができます。a) 課題を解決すること、b) 他の人々のアプローチについて読むこと、c) そこにはいくつのプログラミング言語が存在するかについて、私がどれだけ多くを学んでいるかに驚きました! :)

問題は簡単に始まり (解いた人の数でわかります)、徐々に難しい問題へと進んでいきます。

現在、私は問題 #3 に取り組んでおり、前の 2 つを解決しています... レベルに関係なく、それらから始めることをお勧めします!

于 2009-06-29T06:05:34.690 に答える