ホームページ  >  記事  >  Java  >  Java プログラマーとして成長するための鍵

Java プログラマーとして成長するための鍵

大家讲道理
大家讲道理オリジナル
2017-08-19 14:05:571284ブラウズ

プロジェクトにはJavaが使用されています! Java の主な応用分野はエンタープライズ レベルのプロジェクト開発です。エンタープライズレベルのプロジェクト開発に携わりたい場合は、次の点をマスターする必要があります:
1. プロジェクト開発の基本的な手順をマスターする
2. 強力なオブジェクト指向分析および設計スキルを習得する
3. ユースケース主導型をマスターするアーキテクチャ中心の主流の開発手法

一生のうちにいくつかのコード実装スキルを習得するだけで満足したい人はいません。他人が何を達成すべきかを教えてくれますが、あなたは他人の要件を達成するためにコードスタッキングを使用します。プロジェクト全体の観点から考えることを学ばなければなりません。プロジェクトマネージャーであれば、考え方を学ばなければなりません。建築家なら考え方を学ばなければなりません。特定の問題領域の分析方法をマスターする必要があります。

基礎知識について: これらの名詞または知識ポイントを見て、1 つ、2 つ、3 つ、または 4 つ言えるかどうかを確認できます。

JavaSE
----基本的な構文、データ型、演算子など: int、long、Integer、Long、if、else、for、while
----オブジェクト指向: クラス、オブジェクト、インスタンス、状態、動作、フィールド、メソッド、新規、可視性 (アクセス制御)、属性、プロパティ、パッケージ、インポート、静的変数、クラス変数、インスタンス変数、ヒープ、メソッド領域、スタック、GC (ガベージ コレクション)、オーバーライド、オーバーロード、オブジェクト変換 (キャスト)、ポリモーフィズム、this、スーパー
----例外処理: コンパイル時エラーと実行時エラーの違いを理解する、Exception、RuntimeException、チェック例外、未チェック例外、try、catch、finally、throw new XXXException、XXXException のスロー、例外処理の基本原則
----配列とコレクション: 配列の定義と使用、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator
- ---よく使用されるクラス: String、intern、定数プール、StringBuffer、java.util.Date、SimpleDateFormat、Regex (正規表現)
----反映メカニズム: Class、Method、Field、invoke、newInstance、BeanUtils (Apache) -commons)、PropertyUtils (apache-commons)
----入力ストリームと出力ストリーム:InputStream、OutputStream、Reader、Writer、アダプター設計パターンと元のストリーム クラス、デコレーター設計パターンとパッケージング フロー クラス、オブジェクトのシリアル化と逆シリアル化
- ---マルチスレッド: スレッド、実行可能、スリープ、待機、通知、同期、ロック

サーブレットと JSP
----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute( )、request.getAttribute()、request.getSession()、ServletContext、フィルター、web.xml、tomcat、転送とリダイレクト、http プロトコルのステートレスな性質、cookie 、JSP スコープ オブジェクト、

HTML と JavaScript
----一般的な Web ページのタグ、Web ページに JavaScript を導入する方法、および JavaScript の基本的な構文と使用法を理解できる必要があります

上記は、Java をさらに学習するために必要な基本的な知識です。特にいくつかの専門用語や名詞が自分の父親を見るのと同じくらい親しみやすいと感じたら、それはあなたが Java の基本的な知識に精通していることを意味します。

次は SSH です:
初心者にとって、これら 3 つの主要なフレームワークは謎が多すぎて、最も重要な知識であるようです。しかし、長年の Java 開発経験を持つ専門技術者や Java が得意な人にとっては、これら 3 つの主要なフレームワークにはあまり興味がありません。それらは重要ではないでしょうか?

今では多くの企業がこの3大フレームワークを活用しているため、この3大フレームワークを使いこなすことが採用の前提条件と考えている企業も多いです。これら 3 つの主要なフレームワークを使用していない大企業が多くあることは否定できません。これらの企業は長年の開発を経て、ある程度の技術を蓄積し、独自の技術フレームワーク体系を形成しています。この3つの大きな枠組みは非常に重要とも言えるし、重要ではないとも言える。

重要な理由は、これらの 3 つの主要なフレームワークには、JavaEE 開発における一般的な問題に対する優れたソリューションが含まれているため、これらのフレームワークを学習することで、その概要を理解できるということです。テクノロジーの頂点にいる才能ある人々が問題について何を考えているのか、そして問題を解決するためにどのような設計アイデアを使用しているのかを知ることができます。では、あなたはプロジェクト開発の経験があまりないのですが、どのような経験がありますか?経験とは、どのような問題に遭遇する可能性があるか、問題ごとにどのような解決策があるか、特定の状況ではどの解決策がより優れているか、どの方法があまり良くないかなどを知っていることを意味します。プロジェクトにまったく参加したことがない場合、どのような問題が発生するかわかりません。これらの問題は多くの場合非常に重大です。これをうまく解決しないと、プログラムの安定性や拡張性などに影響を及ぼします。 3 つの主要なフレームワークは、将来発生する可能性のある問題とその解決策を初心者に理解させるのに役立ちます。

これら 3 つの主要なフレームワークがなぜ重要であるかを理解すると、これら 3 つの主要なフレームワークが重要ではないと言える理由も理解できます。多くのプロジェクトを開発し、さまざまな問題に遭遇し、自分の技術スキルに頼ってそれらの問題を 1 つずつ解決してきた人たちの目には、3 つの主要なフレームワーク (N 個のフレームワークがあるのですか? 笑) はすべて雲に見えます。

あなたはどんな人ですか?プロジェクト開発の経験があまりない場合、3 つの主要なフレームワークは非常に重要です。さらに、このことから、これら 3 つのフレームワークを学習する方法もわかります。 3 つの主要なフレームワークの学習では、問題を示し、自分自身の積極的な思考を引き起こすことに重点を置いています。自分のアイデアはばかげているかもしれませんが、結局のところ、それは自分自身のアイデアです。偉い人が何を考えているか分からないのに、自分の考えが愚かだとどうやってわかるのでしょう?アイデアのぶつかり合いの中で、少しずつ自分を高めていきます!したがって、3 つの主要なフレームワークを学習した後は、いくつかのアクション、いくつかのサービス、およびいくつかのマッピング ファイルだけを確認する必要はありません。 struts2 に大量のインターセプタがあることだけを知っているだけではなく、大量の jar パッケージが表示されているだけではありません...

大量の jar パッケージをコピーして一連の構成ファイルを定義する方法を知っているだけであれば、 、3 つの主要な SSH フレームワークは実行でき、機能します。では、非常に悲しいのは、3 つの主要なフレームワークの本質をまだ習得していないことです。次の質問に答えてください:

Struts2:
リクエストごとにアクション オブジェクトを作成する必要があるのはなぜですか?
modelDriven インターセプターの構成において、refreshModelBeforeResult はどのような問題を解決しますか?
web.xml で構成された StrutsPrepareAndExecuteFilter がすべてのリクエストをフィルターするのはなぜですか?
ValueStackについて教えてください。
Struts2 は MVC デザイン パターンをどのように実装しますか?

Spring:
Spring を使用する理由は何ですか?
IOC/DIについてお話しいただけますか?
宣言的トランザクション管理とは何ですか?宣言型トランザクション管理を使用する理由は何ですか? Spring は宣言型トランザクション管理をどのように実装するのでしょうか?
Spring と Hibernate を統合し、トランザクション管理機能を定義する場合、追加、削除、更新操作以外のメソッド、つまり主にクエリ タスクを実行するメソッドを読み取り専用として定義する必要があるのはなぜですか?

Hibernate:
OR マッピングについての理解を共有していただけますか?
Hibernate は大規模なプロジェクトには適しておらず、パフォーマンスに問題があると多くの人が言いますが、どう理解していますか?
なぜ Hibernate はデータベース識別子を定義する必要があるのですか?
なぜ Hibernate はエンティティ クラスに hashCode メソッドと等しいメソッドを実装することを推奨しているのですか?
Hibernate エンティティ クラスのデータベース識別子とデータベースの主キーの間の関係についての理解について話してください。
Hibernate アソシエーション マッピングとデータベースの外部キーの関係についての理解について話してください。
session.save() メソッドが呼び出されるとき、hibernate は確実に insert ステートメントを発行しますか?あなたの理解を話してください
session.update() メソッドが呼び出されたとき、hibernate は確実に update ステートメントを発行しますか?理解について話してください
次の名詞、概念、または使用法について話してください: Lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size
configured Lazy=” "true " 必ず遅延読み込みを実装しますか?
Hibernate の「N+1」問題について話してください
Hibernate のベスト プラクティスについて話してください。

上記は SSH における重要な質問のすべてではありませんが、SSH フレームワークを柔軟に使用できるかどうかをテストできます。これらの問題を深く理解し、適切な実践的なプロジェクトトレーニングを組み合わせることで、あなたは徐々に専門家になれるでしょう。

最後に、プロジェクト開発能力:
Java を学習しているか他のテクノロジーを学習しているかに関係なく、基本的な目的は顧客に価値を生み出すことです。そうしないと、テクノロジーが進歩し更新されるにつれて、あなたが苦労して学んだことはすぐに時代遅れになってしまいます。したがって、テクノロジーの核心は、テクノロジーを使用して価値のある成果を生み出すことです。言い換えれば、顧客が必要とするものは何であれ、テクノロジーを使用して顧客が必要とするものを作成する必要があります。企業がさまざまな福利厚生条件であなたを引き留めようと頑張るのは、あなたが会社に非常に高い福利厚生をもたらすことができるからです!では、企業が活用できるものは何でしょうか?会社はあなたのどの能力を最も評価しますか?

プロジェクトを実行するには多くの能力が必要ですが、その中で最も核心的で基本的なのはモデリング能力です(現在最も主流なのはオブジェクト指向モデリングです!)。モデリング能力とは何ですか?

面接の質問をします:
保険会社の保険カード管理モジュール: 営業担当者は保険カード情報 (保険カードの番号、カード番号、回収日) を受け取り、それを顧客に直接販売します。販売完了後、保険会社システムに保険証情報(販売員情報、購入者情報、保険証購入枚数、カード番号など)を入力し、お客様が保険会社ホームページにログインして保険証を有効化します。 (保険カード番号、アクティベーションパスワード、被保険者情報、受取人情報) を記入する必要があります

要件は次のとおりです: このモジュールがあなたに渡されたら、どうしますか?どのような問題を解決しようとしていますか?絵を描いて、あなたのアイデアが何であるかを説明してもらえますか?

これは単なる面接の質問です。簡単な文章しかないので、いわゆるモデリングで解決する必要がある問題を皆さんに感じてもらうためにここに置きました。ビジネス現場には課題がたくさん!おそらく、数十ページまたは数百ページの要件文書で特定のビジネス分野の問題を明確に説明でき、それを実装するのがあなたの責任です。

ある企業が勤怠管理システムを開発したいと考えており、それを既存の人事システムと接続する必要があります。あなたは主な技術責任者です。では、どのような仕事をしていますか?

ある ERP プロジェクトでは、スケジュール管理モジュールを実装したいと考えていますが、それを完了するにはどうすればよいですか?

プロジェクトマネージャーがあなたに与えた情報が少なすぎる(ほんの数文)と文句を言わないでください。また、顧客がニーズを明確に説明しなかったことについても文句を言わないでください...あなたの価値はすべての問題を整理することにあります欲しい情報を様々な手段を使って入手し、ある考え方に従ってまとめ、決められた時間内に一つずつ解決していきます

Java の学習は、戦車戦、ネットワーク スピードスター、CMS、DRP、または OA ほど単純ではないことを認識する必要があります。これらの技術的な詳細にこだわる必要はありません (もちろん必要ですが、やめてください)。 CRUD型のプロジェクト要件を実現するために(これは基礎中の基礎ですが)、満足しないでください。常に目の前に目標があり、努力する必要があります。追いつくために!

将来的には、より複雑な要件に直面することになります。学習プロジェクトの唯一の目的は、要件を実装に変換する方法、要件を分析する方法、概念モデルを構築する方法、およびさまざまな要件間の関係を整理する方法を学ぶことです。コンセプト、設計方法、設計を実装するための適切なテクノロジの選択方法、実装のテスト方法、および遭遇するさまざまな問題 (パフォーマンス、需要の変化など) の解決方法。実際に数年間社内で開発に携わっていただければ、きっと私に同意していただけるはずです!

Javaを使った仕事を見つけるために必要なのはプロジェクトの経験ですプロジェクトの経験とは、プロジェクト開発の基本的なプロセスを理解し、プロジェクトの分析方法を理解し、プロジェクトの設計アイデアを理解し、プロジェクトの実装スキルを理解し、プロジェクトのテスト方法を理解することを意味します。 、のさまざまな問題の解決策を理解します。 ! !

それでは、自分の目標を知る時期が来ました!

以上がJava プログラマーとして成長するための鍵の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。