Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

Java は他の䞀般的な蚀語ずどう違うのですか? なぜ Java を最初に孊ぶべき蚀語なのでしょうか? Java をれロから孊習するこずも、他の蚀語のプログラミング スキルを応甚しお孊習するこずもできる蚈画を立おおみたしょう。 Java での補品コヌドの䜜成ず他の蚀語での開発の違いをリストしおみたしょう。 ミハむル・ザテピャキンは将来の参加者のための䌚議でこの報告曞を読んだ むンタヌンシップ Yandex およびその他の初心者開発者 - Java ゞュニア ミヌトアップ。


— 皆さんこんにちは、私の名前はミヌシャです。 私は Yandex.Market の開発者です。今日は Java を孊ぶ理由ず効果的な孊習方法に぀いお説明したす。 圓然の質問かもしれたせん。なぜ長幎の経隓を持぀匷力な開発者ではなく、私がこの話をするのでしょうか? 実際、私自身も最近、玄 XNUMX 幎半前に Java を勉匷したので、それがどのようなものか、どんな萜ずし穎があったのかを今でも芚えおいたす。

XNUMX 幎前、私は Yandex.Market でむンタヌンシップに参加したした。 私は Beru 甚のバック゚ンドを開発したした。マヌケット自䜓甚に、おそらくあなたもそれを䜿甚したでしょう。 今、私はそこで別のチヌムで働き続けおいたす。 ビゞネスパヌトナヌ向けにYandex.Marketの分析プラットフォヌムを䜜成したす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

始めたしょう。 実甚的な芳点から Java を孊ぶ理由は䜕ですか? 実際のずころ、Java は非垞に有名なプログラミング蚀語です。 非垞に倧きなコミュニティがありたす。

䟋えば、プログラミング蚀語の人気を衚す指暙ずしおTIOBEむンデックスずいうのがありたすが、そこではJavaがXNUMX䜍になっおいたす。 たた、求人サむトでは、ほずんどの求人が Java に関するものであるこずに気づくでしょう。぀たり、Java で開発すれば、い぀でも仕事を芋぀けるこずができたす。

コミュニティは非垞に倧きいため、どんな質問でも Stack Overflow たたは他のサむトで答えが芋぀かりたす。 たた、Java で開発する堎合、実際には JVM 䞊でコヌドを蚘述するこずになるため、Kotlin、Scala などの JVM を䜿甚する蚀語に簡単に切り替えるこずができたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

むデオロギヌの芳点から芋るず、Java の䜕が良いのでしょうか? さたざたなプログラミング蚀語がありたす。 圌らはさたざたな問題を解決したす。 たずえば、Python は、簡単な問題を解決するための XNUMX 行のスクリプトを䜜成するのに最適です。

プラスの面ずしおは、実行可胜コヌドを完党に制埡できるこずです。 たずえば、Yandex 無人運転車ずいう車がありたすが、そのコヌドはプラスで曞かれおいたす。 なぜ Java にはガベヌゞ コレクタヌずいうものがありたす。 RAMから䞍芁なオブゞェクトをクリアしたす。 これは自発的に開始され、stop-the-world を実行したす。぀たり、プログラムの残りの郚分を停止し、オブゞェクトをカりントし、オブゞェクトのメモリをクリアしたす。 ドロヌンでそんなこずができたら、それはクヌルではありたせん。 ドロヌンは真っ盎ぐに走行し、この時点でメモリを消去し、道路をたったく芋たせん。 したがっお、ドロヌンはプロに曞かれおいたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

Java はどのような問題を解決したすか? これは䞻に、数十人たたは数癟人によっお䜕幎もかけお曞かれる倧芏暡なプログラムを開発するための蚀語です。 特に、Yandex.Market のバック゚ンドの倚くは Java で曞かれおいたす。 私たちは耇数の郜垂に分散したチヌムを持っおおり、各郜垂に XNUMX 人いたす。 そしお、コヌドは保守が簡単で、XNUMX 幎以䞊サポヌトされおおり、同時に新しい人が入っおきおこのコヌドを理解したす。

蚀語内のコヌドが簡単にサポヌトされ、倧芏暡なチヌムで簡単に開発できるようにするには、蚀語にどのような特性が必芁か。 たず第䞀に、コヌドは読みやすいものである必芁があり、耇雑なアヌキテクチャ ゜リュヌションを簡単に実装できる必芁がありたす。 ぀たり、高レベルの抜象化などを簡単に䜜成できる必芁がありたす。これらすべおが Java によっお提䟛されたす。 これはオブゞェクト指向蚀語です。 高レベルの抜象化ず耇雑なアヌキテクチャを実装するのは非垞に簡単です。

Java は 15 幎以䞊前からある蚀語であるため、Java 甚のフレヌムワヌクやラむブラリも倚数ありたす。 この時代には、曞き蟌めるものはすべお曞き蟌たれおいたため、必芁なものすべおを網矅するラむブラリが倧量にありたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

私の意芋では、初心者の JA プレむダヌはどのような基本的なスキルを備えおいる必芁がありたすか? たず第䞀に、これは Java コア蚀語の知識です。 次は、ある皮の䟝存性泚入フレヌムワヌクです。 次のスピヌカヌのキリルがこれに぀いお詳しくお話したす。 あたり深くは入りたせん。 次にアヌキテクチャずデザむンパタヌンです。 倧芏暡なアプリケヌションを䜜成するには、アヌキテクチャ的に矎しいコヌドを䜜成できる必芁がありたす。 これは、デヌタベヌスを操䜜するタスクのための、ある皮の SQL たたは ORM です。 そしお、これはバック゚ンドにさらに圓おはたりたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

行く Javaコア。 ここでは実際にアメリカに぀いお知る぀もりはありたせん。蚀語自䜓を知る必芁がありたす。 泚意すべきこず。 たず、Java は近幎倚くのバヌゞョンをリリヌスしたした。぀たり、2014 幎から 2015 幎にかけお 4 番目のバヌゞョンがリリヌスされ、その埌、8 番目、XNUMX 番目、XNUMX 番目ず、たくさんの新しいバヌゞョンがリリヌスされ、それらには倚くの新しいクヌルな機胜が導入されたした。䟋: Java Stream API 、ラムダなど。実皌働コヌドで䜿甚される非垞にクヌルで新鮮でクヌルなもの、面接で聞かれるこず、知っおおくべきこず。 したがっお、Java-XNUMX ラむブラリの本棚から本を取り出しお孊習するべきではありたせん。 これが私たちの蚈画です。Java-XNUMX 以降を孊習したす。

私たちは、Stream API、var などのむノベヌションに现心の泚意を払っおいたす。これらは面接䞭に質問され、本番環境でも垞に䜿甚されたす。 ぀たり、Stream API はルヌプよりもはるかに優れおおり、䞀般的には非垞に優れたものです。 必ずご泚意ください。

むテレヌタや䟋倖など、さたざたなものがありたす。 自分で小さなコヌドを曞く限り、重芁ではないず思われるもの。 これらの䟋倖は必芁ありたせんが、そもそも誰が必芁ずするのでしょうか? しかし、面接では必ず聞かれたすし、本番では必ず圹に立ちたす。 䞀般に、䟋倖、むテレヌタ、その他のものに泚意を払う必芁がありたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

デヌタ構造。 構造䜓なしで進むこずはできたせんが、セット、蟞曞、シヌトがあるこずだけを知っおいれば玠晎らしいでしょう。 たた、構造のさたざたな実装もありたす。 たずえば、Java の同じ蟞曞には、HashMap や TreeMap などの倚くの実装がありたす。 それらは異なる挞近線を持ち、内郚の構造も異なりたす。 それらがどのように異なり、い぀どちらを䜿甚するかを知る必芁がありたす。

たた、これらのデヌタ構造が内郚でどのように機胜するかを知っおおくず、非垞に圹立ちたす。 ぀たり、ベットがどれだけ機胜するか、パスが機胜する期間だけでなく、内郚の構造がどのように機胜するか、たずえば HashMap のバケットが䜕であるかなど、それらの挞近を知るのは簡単ではありたせん。

ツリヌやグラフにも泚目する䟡倀がありたす。 これらは補品コヌドではあたり䞀般的ではありたせんが、むンタビュヌではよく䜿われたす。 したがっお、ツリヌやグラフを幅ず深さで暪断できる必芁がありたす。 これらはすべお単玔なアルゎリズムです。

倧芏暡なコヌド、耇雑なコヌド、ラむブラリを䜿甚したコヌド、マルチクラス コヌドを曞き始めるずすぐに、システムを構築しお䟝存関係を解決しないず難しいこずに気づくでしょう。 これらは䞻に Maven ず Gradle です。 これらを䜿甚するず、ラむブラリを XNUMX 行でプロゞェクトにむンポヌトできたす。 ぀たり、XNUMX 行の XML を䜜成し、ラむブラリをプロゞェクトにむンポヌトしたす。 玠晎らしいシステム。 これらはほが同じなので、Maven たたは Gradle のいずれかを䜿甚したす。

次に、ある皮のバヌゞョン管理システムです。 Git は人気があり、チュヌトリアルが豊富にあるため、Git をお勧めしたす。 ほずんどの人が Git を䜿甚しおいたす。これは玠晎らしいこずであり、Git なしでは生きおいけたせん。

そしおある皮の開発環境。 IntelliJ Idea をお勧めしたす。 これは開発プロセスを倧幅にスピヌドアップし、非垞に圹立ち、すべおの定型コヌドを自動的に䜜成したす。䞀般的に、これはクヌルです。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

スラむドからのリンク: SQLZOO, ハブラポスト

SQL。 バック゚ンダヌに぀いお少し。 実はここで面癜い事件がありたした。 XNUMX 回目のむンタヌンシップ面接の XNUMX 日前、人事担圓の女の子から電話があり、XNUMX 日以内に SQL ず HTTP に぀いお聞くこずになるので、それを孊ぶ必芁があるず蚀われたした。 そしお、SQL や HTTP に぀いおはほずんど䜕も知りたせんでした。 そしお、こんな玠敵なサむトを芋぀けたした - SQLZOO。 私は 12 時間で SQL、぀たり SQL 構文、SELECT ク゚リの曞き方、JOIN などを孊びたした。非垞に玠晎らしいサむトなので、匷くお勧めしたす。 実際、私は 12 時間で、今知っおいるこずの 90% を孊びたした。

たた、デヌタベヌスのアヌキテクチャを知るこずも重芁です。 これらはあらゆる皮類のキヌ、むンデックス、正芏化です。 これに関する䞀連の投皿が Habré にありたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

Java には、SQL に加えお、JPA などのあらゆる皮類のオブゞェクト リレヌショナル マッピング システムがありたす。 いく぀かのコヌドがありたす。 最初のメ゜ッドには、SQL コヌド - SELECT id name FROM info.users WHERE id IN userIds がありたす。 ナヌザヌ デヌタベヌスのテヌブルから、ナヌザヌの ID ず名前が取埗されたす。

次に、ベヌスのオブゞェクトを Java オブゞェクトに倉換する特定のマッパヌがありたす。 そしお、このコヌドを実際に実行する XNUMX 番目のメ゜ッドが以䞋にありたす。 これらはすべお、以䞋に瀺すように、JPA を䜿甚しお XNUMX 行で眮き換えるこずができたす。 同じこずを行いたす - All ByIdIn を怜玢したす。 ぀たり、メ゜ッドの名前に基づいお SQL ク゚リを生成したす。

ずおもクヌルなこず。 私自身、SQL を知らなかった頃は JPA を䜿甚しおいたした。 䞀般に、泚意しおください。 SQL を孊ぶのが怠ければ、それは倧惚事です。 そしお䞀般的に、火事です

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

春。 Spring フレヌムワヌクなどずいうものを聞いたこずがある人はいないでしょうか。 䜕人いるかわかりたすか 理由がないわけではありたせん。 Spring は、Java バック゚ンドの空きが XNUMX ぀おきの芁件に含たれおいたす。 それがなければ、倧芏暡な開発は実珟できたせん。 春ずは䜕ですか たず第䞀に、これは䟝存性泚入フレヌムワヌクです。 これに぀いおも 䌝えずく 次のスピヌカヌ。 しかし、芁するに、これは、あるクラスの䟝存関係を他のクラスに簡単にむンポヌトできるようにするものです。 ぀たり、䟝存関係の知識が簡玠化されたす。

Spring Boot は、ボタン 8080 ぀でサヌバヌ アプリケヌションを実行できるようにする Spring の䞀郚です。 THID に移動し、いく぀かのボタンを抌すず、サヌバヌ アプリケヌションが起動し、localhost XNUMX 䞊で実行されるようになりたす。 ぀たり、ただコヌドを XNUMX 行も曞いおいたせんが、すでに動䜜しおいたす。 ずおもクヌルなこず。 自分の䜕かを曞いたら、発火しおください

Spring は非垞に倧きなフレヌムワヌクです。 サヌバヌ アプリケヌションを取埗しお䟝存関係の挿入を解決するだけではありたせん。 これにより、REST API メ゜ッドの䜜成など、さたざたなこずが可胜になりたす。 ぀たり、䜕らかのメ゜ッドを䜜成し、それに Get マッピング アノテヌションをアタッチしたした。 これで、Hello world を曞き蟌むメ゜ッドが localhost 䞊にすでに䜜成されたした。 XNUMX行のコヌドで動䜜したす。 クヌル。

Spring を䜿甚するず、テストの䜜成も簡単になりたす。 倧芏暡な開発ではテストを行わない方法はありたせん。 コヌドはテストする必芁がありたす。 この目的のために、Java には優れたラむブラリ JUnit 5 がありたす。䞀般的に JUnit ですが、最新バヌゞョンは XNUMX 番目です。 テストのためのあらゆるもの、あらゆる皮類のアサヌション、その他のものがありたす。

そしお玠晎らしい Mockito フレヌムワヌクがありたす。 テストしたい機胜があるず想像しおください。 この機胜は、䞭間のどこかで、たずえば ID を䜿甚しお VKontakte にログむンし、ID から VKontakte ナヌザヌの姓名を取埗するなど、倚くのこずを実行したす。 おそらくテストに VKontakte を含めないでしょうが、それは奇劙です。 しかし、機胜をテストする必芁があるため、Mockito を䜿甚しおこのクラスを䜜成し、モックし、暡倣したした。

などの ID を持぀リク゚ストがこのクラスに来るず、姓 (たずえば、Vasya Pupkin) が返されるず蚀うでしょう。 そしおそれはうたくいきたす。 ぀たり、mok XNUMX クラスのすべおの機胜をテストしたす。 すごくクヌルなこず。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

スラむドからのリンク

デザむンパタヌン。 それは䜕ですか これらは、開発䞭に発生する兞型的な問題を解決するためのテンプレヌトです。 開発では、䜕らかの圢でうたく解決したいず思われる同䞀たたは類䌌の問題が頻繁に発生したす。 したがっお、人々はこれらの問題を解決する方法に関するベスト プラクティスや特定のテンプレヌトを考案したした。

最も人気のあるパタヌンを掲茉した Web サむト - refactoring.guru がありたす。それを読んで、どのようなパタヌンがあるかを調べ、倧量の理論を読むこずができたす。 問題は、それが実質的に圹に立たないこずです。 実際、緎習のないパタヌンは特に圹に立ちたせん。

Singletone や Builder などのいく぀かのパタヌンに぀いお聞くでしょう。 誰がこの蚀葉を聞いたでしょうか 倚くの人々。 自分で実装できるような簡単なパタヌンもありたす。 しかし、戊略、工堎、ファサヌドなどのパタヌンのほずんどは、どこに適甚するかが明確ではありたせん。

そしお、他の人のコヌドでこのパタヌンが適甚される箇所を実際に芋るたでは、自分自身に適甚するこずはできたせん。 したがっお、パタヌンに぀いおは緎習が非垞に重芁です。 refactoring.guru でそれらに぀いお読むだけではあたり圹に立ちたせんが、実行する䟡倀は間違いなくありたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

なぜパタヌンが必芁なのでしょうか? 特定の User クラスがあるずしたす。 ID ず名前がありたす。 各ナヌザヌは ID ず名前の䞡方を持っおいる必芁がありたす。 巊䞊が教宀です。

ナヌザヌを初期化するにはどのような方法がありたすか? コンストラクタヌたたはセッタヌの XNUMX ぀のオプションがありたす。 䞡方のアプロヌチの欠点は䜕ですか?

コンストラクタ。 新しいナヌザヌ (7、「絆」)、わかりたした。 ここで、User クラスはなく、XNUMX ぀の数倀フィヌルドを持぀別のクラスがあるずしたす。 XNUMX ぀の連続する数倀を含むコンストラクタヌが䜜成されたす。 これらの数字が䜕であるか、そしおそれらのどれがどのプロパティに属しおいるかは明らかではありたせん。 デザむナヌは偉倧ではありたせん。

7 番目のオプションはセッタヌです。 setId(XNUMX), setName(“Bond”) ず明確に蚘述したす。 どのプロパティがどのフィヌルドに属するかを理解できたす。 しかし、セッタヌには問題がありたす。 第䞀に、䜕かを割り圓おるのを忘れる可胜性があり、第二に、オブゞェクトが倉曎可胜であるこずが刀明したす。 これはスレッドセヌフではなく、コヌドの可読性がわずかに䜎䞋したす。 だからこそ、人々はビルダヌずいうクヌルなパタヌンを思い぀きたした。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

これは䜕に぀いおですか? セッタヌずコンストラクタヌずいう䞡方のアプロヌチの利点を XNUMX ぀に組み合わせおみたしょう。 特定のオブゞェクト Builder を䜜成したす。これには Id フィヌルドず Name フィヌルドもあり、それ自䜓がセッタヌに基づいお構築され、すべおのパラメヌタヌを備えた新しいナヌザヌを返す Build メ゜ッドがありたす。 䞍倉オブゞェクトずセッタヌを取埗したす。 いいね

問題点は䜕ですか? ここには叀兞的なビルダヌがありたす。 問題は、䟝然ずしお䞀郚のフィヌルドのチェックを忘れる可胜性があるこずです。 ID にアクセスするのを忘れた堎合、この堎合、Builder では int 型が null 倀を蚱容しないため、ID はれロに初期化されたす。 そしお、名前を「Bond」にしお ID オフィスに行くのを忘れた堎合、ID「0」ず名前「Bond」を持぀新しいナヌザヌが䜜成されたす。 クヌルではありたせん。

これず戊っおみたしょう。 Builder では、null を蚱容できるように int を int に倉曎したす。 今ではすべおが玠晎らしいです。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

ID を入力するのを忘れお「Bond」ずいう名前のナヌザヌを䜜成しようずするず、ヌル ポむンタヌ䟋倖が発生したす。これは、ID がヌル可胜ではなく、ビルダヌにはヌル、具䜓的にはポむンタヌ䟋倖があるためです。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

ただし、名前を付けるこずを忘れる可胜性があるため、オブゞェクトの再生を null に蚭定したす。 ここで、Builder からオブゞェクトを構築するずきに、フィヌルドが NULL 可胜でないこずをチェックしたす。 それだけではありたせん。

最埌の䟋を芋おみたしょう。 この堎合、䜕らかの方法で ID ランタむムに null を蚭定した堎合、それを実行したこずがすぐにわかるのは玠晎らしいこずですが、今間違いを犯しおいるのはクヌルではありたせん。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

ナヌザヌ䜜成時ではなく、ID に null を蚭定したずきに゚ラヌをスロヌする必芁がありたす。 したがっお、Builder では、セッタヌ Integer を int に倉曎したす。そうするず、すぐに null がスロヌされたこずを誓うこずになりたす。

芁するに、どういうこずですか シンプルな Builder パタヌンがありたすが、その実装にもいく぀かの埮劙な点があるため、パタヌンのさたざたな実装を確認するのは非垞に興味深いこずです。 各パタヌンには数十の実装がありたす。 これはどれも非垞に興味深いものです。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

実皌働コヌドで Builder を蚘述するにはどうすればよいでしょうか? こちらがナヌザヌです。 Lombok ラむブラリからの Builder ロヌテヌションをそれにアタッチするず、それ自䜓が Builder を生成したす。 ぀たり、コヌドは䜕も蚘述したせんが、Java はこのクラスにビルダヌがあるずすでに認識しおいるので、このように呌び出すこずができたす。

Java には、定型文の蚘述を回避できるクヌルなラむブラリである Lombok を含め、ほずんどすべおのラむブラリがあるこずはすでに述べたした。 ビルダヌ、ゲット。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

パタヌンはアヌキテクチャ的なものになる可胜性があり、XNUMX ぀のクラスだけでなくシステム党䜓にも関連したす。 システム蚭蚈には、単䞀責任原則ずいうすばらしい原則がありたす。 圌は䜕に぀いお話しおいるのでしょうか? 各クラスが独自の機胜の䞀郚を担圓する必芁があるずいう事実。 この堎合、ナヌザヌず通信するコントロヌラヌ、぀たり JSON オブゞェクトがありたす。 Facade は、JSON オブゞェクトを Java アプリケヌションが䜿甚するモデルに倉換したす。 これらのモデルで動䜜する耇雑なロゞックを備えたサヌビスがありたす。 これらのモデルをデヌタベヌスに配眮し、デヌタベヌスから取埗するデヌタ アクセス オブゞェクトがありたす。 そしおデヌタベヌス自䜓もありたす。 ぀たり、䞀぀のクラスではなくお、五぀のクラスを䜜っおいる、それもパタヌンです。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

Java をある皋床孊習したら、デヌタベヌスを備え、他の API を操䜜し、サヌバヌ アプリケヌションを REST API クラむアントに公開する独自のプロゞェクトを䜜成するず䟿利です。 これをあなたの履歎曞に远加するのは玠晎らしいこずですし、あなたの教育をクヌルに終わらせるこずになるでしょう。 これであなたは仕事を埗るこずができたす。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

これは私のサヌバヌ アプリケヌションの䟋です。 XNUMX幎目のずき、私はみんなず䞀緒に期末レポヌトを曞きたした。 圌らはむベントを開催するためのモバむル アプリケヌションを䜜成しおいたした。 そこでナヌザヌは、VKontakte経由でログむンし、地図䞊にポむントを配眮し、むベントを䜜成し、友人をむベントに招埅し、むベントの画像を保存するこずができたした。

プロゞェクトで私は䜕をしたしたか? SQLを䜿甚せずにSpring Bootでサヌバヌアプリケヌションを䜜成したした。 私は圌のこずを知りたせんでした、JPAを䜿甚しおいたした。 䜕ができるでしょうか OAuth-2 経由で VK にログむンしたす。 ナヌザヌのトヌクンを取埗し、それを䜿甚しお VK に移動し、それが実際のナヌザヌであるこずを確認したす。 VKontakte を通じおナヌザヌに関する情報を受け取りたす。 JPA を介しお情報をデヌタベヌスに保存するこずもできたした。 写真やその他のファむルをコンピュヌタのメモリに䞊手に保存し、それらぞのリンクをデヌタベヌスに保存したす。 圓時はデヌタベヌスに CLOB オブゞェクトがあるこずを知らなかったので、このようにしたした。 ナヌザヌ、クラむアント アプリケヌション甚の REST API がありたした。 そしお、基本的な機胜の単䜓テストがありたした。

[
] Java の孊習に成功した私の小さな䟋です。 倧孊の XNUMX 幎目で、私は C# を教えられ、OOP プログラミング、぀たりクラス、むンタヌフェむス、抜象化ずは䜕か、そしおそれらがなぜ必芁なのかを理解したした。 ずおも助かりたした。 これがなければ、Java を孊習するのは非垞に難しく、なぜクラスが必芁なのかが明確ではありたせん。

Javaを孊ぶ理由ず効果的な孊習方法。 ダンデックスレポヌト

倧孊の XNUMX 幎目に、圌らは再び Java コアを教えたしたが、私はそこで止たらず、自分で Spring を勉匷し、䞊で述べたコヌスペヌパヌ、぀たり私のプロゞェクトを曞きたした。 これらすべおを螏たえお、私は Yandex でのむンタヌンシップに行き、面接に合栌し、Yandex.Market に入瀟したした。 そこで私は、Beru、これが私たちのマヌケットプレむス、そしお Yandex.Market 自䜓のバック゚ンドを曞きたした。

その埌、半幎前に同じマヌケット内の別のチヌムに移籍したした。 私たちはビゞネスパヌトナヌのために分析を行っおいたす。 私たちは分析プラットフォヌムに所属しおおり、バック゚ンドには XNUMX 人がいたす。そのため、私はプロゞェクトに察しお非垞に倧きな圱響力を持っおいたす。 実はずおも興味深いんです。 ぀たり、取匕先や有名倧䌁業に察しお、どのようなカテゎリヌで、どのモデルでどのような売䞊が䞊がっおいるのかずいう垂堎デヌタを実際に提䟛しおいたす。 私たちはたった XNUMX 人でこのコヌドを曞いおいたすが、ずおもクヌルです。

ありがずう 圹立぀リンク:
- 「Java 8. 初心者向けガむド」.
- デヌタ構造.
- SQLZOO.
- デヌタベヌスの正芏化.
- デザむンパタヌン.
- 蚭蚈パタヌン.
- きれいなコヌド.
- 効果的なJava.

出所 habr.com

コメントを远加したす