Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Bagaimanakah Java berbeza daripada bahasa popular lain? Mengapakah Java harus menjadi bahasa pertama yang perlu dipelajari? Mari buat rancangan yang akan membantu anda mempelajari Java dari awal dan dengan menggunakan kemahiran pengaturcaraan dalam bahasa lain. Mari kita senaraikan perbezaan antara mencipta kod pengeluaran dalam Java dan membangunkan dalam bahasa lain. Mikhail Zatepyakin membaca laporan ini pada mesyuarat untuk peserta masa depan latihan amali Yandex dan pembangun permulaan lain - pertemuan Java Junior.


β€” Hello semua, nama saya Misha. Saya seorang pembangun dari Yandex.Market, dan hari ini saya akan memberitahu anda sebab untuk mempelajari Java dan cara melakukannya dengan berkesan. Anda mungkin bertanya soalan yang munasabah: mengapa saya akan menceritakan kisah ini, dan bukan pembangun yang kuat dengan pengalaman bertahun-tahun? Hakikatnya saya sendiri belajar Java baru-baru ini, kira-kira setahun setengah yang lalu, jadi saya masih ingat bagaimana keadaannya dan apakah perangkap yang ada.

Setahun yang lalu saya mendapat latihan di Yandex.Market. Saya membangunkan bahagian belakang untuk Beru, untuk Pasaran itu sendiri, anda mungkin menggunakannya. Sekarang saya terus bekerja di sana, dalam pasukan yang berbeza. Kami mencipta platform analisis untuk Yandex.Market untuk rakan kongsi perniagaan.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Mari kita mulakan. Mengapa belajar Java dari sudut pandangan praktikal? Hakikatnya Java adalah bahasa pengaturcaraan yang sangat terkenal. Ia mempunyai komuniti yang sangat besar.

Contohnya, terdapat indeks TIOBE, indeks populariti bahasa pengaturcaraan yang popular, dan Java berada di kedudukan pertama di sana. Juga, di tapak kerja, anda mungkin akan perasan bahawa kebanyakan kekosongan adalah mengenai Java, iaitu, dengan membangun di Jawa, anda sentiasa boleh mencari pekerjaan.

Memandangkan komuniti adalah sangat besar, sebarang soalan yang anda ada akan menemui jawapan pada beberapa Stack Overflow atau tapak lain. Selain itu, apabila membangun di Java, anda sebenarnya menulis kod pada JVM, jadi anda boleh dengan mudah beralih ke Kotlin, Scala dan bahasa lain yang menggunakan JVM.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Apakah kebaikan Java dari sudut pandangan ideologi? Terdapat bahasa pengaturcaraan yang berbeza. Mereka menyelesaikan masalah yang berbeza, anda tahu itu. Sebagai contoh, Python bagus untuk menulis skrip satu baris untuk menyelesaikan masalah cepat.

Di sisi positifnya, anda boleh mengawal sepenuhnya kod boleh laku. Sebagai contoh, kami mempunyai kereta, kereta tanpa pemandu Yandex, kod mereka ditulis dalam tambah. kenapa? Java mempunyai perkara sedemikian - Pengumpul Sampah. Ia membersihkan RAM daripada objek yang tidak diperlukan. Perkara ini bermula secara spontan dan melakukan stop-the-world, iaitu, ia menghentikan seluruh program dan pergi untuk mengira objek, memori jelas objek. Jika perkara sedemikian berfungsi dalam dron, ia tidak bagus. Drone anda akan memandu lurus, pada masa ini membersihkan ingatannya dan tidak melihat jalan langsung. Oleh itu, dron itu ditulis pada pro.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Apakah masalah yang diselesaikan oleh Java? Ia terutamanya bahasa untuk membangunkan program besar yang ditulis selama bertahun-tahun, oleh berpuluh-puluh atau ratusan orang. Khususnya, banyak bahagian belakang dalam Yandex.Market ditulis dalam Java. Kami mempunyai pasukan yang diedarkan di beberapa bandar, sepuluh orang setiap satu. Dan kod ini mudah diselenggara, ia telah disokong selama sepuluh tahun atau lebih, dan pada masa yang sama orang baru datang dan memahami kod ini.

Apakah ciri-ciri yang perlu ada pada sesuatu bahasa supaya kod di dalamnya mudah disokong dan supaya ia boleh dibangunkan dengan mudah dalam pasukan yang besar. Pertama sekali, ia mestilah kod yang boleh dibaca, dan ia sepatutnya mudah untuk melaksanakan penyelesaian seni bina yang kompleks. Iaitu, ia sepatutnya mudah untuk menulis abstraksi peringkat tinggi, dll. Semua ini adalah apa yang Java sediakan kepada kita. Ini adalah bahasa berorientasikan objek. Sangat mudah untuk melaksanakan abstraksi peringkat tinggi dan seni bina yang kompleks.

Terdapat juga banyak rangka kerja dan perpustakaan untuk Java, kerana bahasa itu berusia lebih daripada 15 tahun. Pada masa ini, semua yang boleh ditulis telah ditulis di atasnya, jadi terdapat banyak perpustakaan untuk semua yang anda perlukan.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Apakah kemahiran asas, pada pendapat saya, yang perlu dimiliki oleh pemain JA yang baru bermula? Pertama sekali, ini adalah pengetahuan tentang bahasa teras Java. Seterusnya ialah beberapa jenis rangka kerja Suntikan Ketergantungan. Penceramah seterusnya, Kirill, akan bercakap tentang perkara ini dengan lebih lengkap. Saya tidak akan pergi terlalu dalam. Seterusnya ialah seni bina dan corak reka bentuk. Kita perlu dapat menulis kod seni bina yang indah untuk menulis aplikasi yang besar. Dan ini adalah sejenis SQL atau ORM untuk tugasan bekerja dengan pangkalan data. Dan ini lebih banyak digunakan pada bahagian belakang.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Pergi! teras Java. Saya tidak akan benar-benar menemui Amerika di sini-anda perlu mengetahui bahasa itu sendiri. Apa yang perlu anda perhatikan. Pertama, Java telah mengeluarkan banyak versi dalam beberapa tahun kebelakangan ini, iaitu, pada 2014-2015, versi ketujuh dikeluarkan, kemudian versi kelapan, kesembilan, kesepuluh, banyak versi baharu, dan banyak perkara menarik baru diperkenalkan di dalamnya. , sebagai contoh, Java Stream API , lambda, dsb. Perkara yang sangat keren, segar, keren yang digunakan dalam kod pengeluaran, perkara yang mereka tanyakan dalam temu bual dan yang perlu anda ketahui. Oleh itu, anda tidak seharusnya mengambil buku dari rak di perpustakaan Java-4 dan pergi mempelajarinya. Ini ialah rancangan kami: kami belajar Java-8 atau lebih tinggi.

Kami memberi perhatian yang teliti kepada inovasi seperti Stream API, var, dsb. Ia ditanya semasa temu bual dan sentiasa digunakan dalam pengeluaran. Iaitu, API Strim jauh lebih sejuk daripada gelung, secara umum, perkara yang sangat keren. Pastikan anda memberi perhatian.

Dan terdapat pelbagai perkara seperti iterator, Pengecualian dan sebagainya. Perkara yang kelihatan tidak penting kepada anda selagi anda menulis beberapa kod kecil sendiri. Anda tidak memerlukan Pengecualian ini, siapa pula yang memerlukannya? Tetapi mereka pasti akan ditanya semasa temuduga, mereka pasti akan berguna kepada anda dalam pengeluaran. Secara umum, anda harus memberi perhatian kepada Pengecualian, iterator dan perkara lain.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Struktur data. Anda tidak boleh pergi tanpa struktur, tetapi ia akan menjadi bagus jika anda tidak hanya mengetahui bahawa terdapat set, kamus dan helaian. Dan juga pelaksanaan struktur yang berbeza. Sebagai contoh, kamus yang sama dalam Java mempunyai banyak pelaksanaan, termasuk HashMap dan TreeMap. Mereka mempunyai asimptotik yang berbeza, mereka berstruktur secara berbeza di dalam. Anda perlu tahu bagaimana ia berbeza dan bila hendak menggunakan yang mana satu.

Ia juga akan menjadi sangat keren jika anda tahu cara struktur data ini berfungsi secara dalaman. Iaitu, bukan mudah untuk mengetahui asimptotik mereka - berapa banyak pertaruhan berfungsi, berapa lama hantaran berfungsi, tetapi cara struktur berfungsi di dalam - contohnya, apakah baldi dalam HashMap.

Ia juga bernilai memberi perhatian kepada pokok dan graf. Ini adalah perkara yang tidak begitu biasa dalam kod pengeluaran, tetapi ia popular dalam temu bual. Sehubungan itu, anda perlu dapat melintasi pokok, graf secara lebar dan dalam. Ini semua adalah algoritma mudah.

Sebaik sahaja anda mula menulis sebarang kod besar, kompleks, menggunakan perpustakaan, kod berbilang kelas, anda akan menyedari bahawa sukar untuk anda tanpa membina sistem dan menyelesaikan kebergantungan. Ini terutamanya Maven dan Gradle. Mereka membenarkan anda mengimport perpustakaan ke dalam projek anda dalam satu baris. Iaitu, anda menulis xml satu baris dan mengimport perpustakaan ke dalam projek. Sistem yang hebat. Ia lebih kurang sama, gunakan sama ada - Maven atau Gradle.

Seterusnya - sejenis sistem kawalan versi. Saya mengesyorkan Git kerana ia popular dan terdapat banyak tutorial. Hampir semua orang menggunakan Git, ia adalah perkara yang menarik, anda tidak boleh hidup tanpanya.

Dan beberapa jenis persekitaran pembangunan. Saya mengesyorkan IntelliJ Idea. Ia sangat mempercepatkan proses pembangunan, banyak membantu anda, menulis semua kod boilerplate untuk anda, secara umum, ia bagus.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Pautan dari slaid: SQLZOO, habrapost

SQL. Sedikit mengenai backenders. Sebenarnya ada kes lucu di sini. Dua hari sebelum temu duga latihan kedua saya, seorang gadis HR menelefon saya dan berkata bahawa dalam dua hari mereka akan bertanya kepada saya tentang SQL dan HTTP, saya perlu mempelajarinya. Dan saya hampir tidak tahu tentang SQL atau HTTP. Dan saya menemui tapak yang hebat ini - SQLZOO. Saya belajar SQL mengenainya dalam 12 jam, maksud saya, sintaks SQL, cara menulis pertanyaan PILIH, JOIN, dll. Tapak yang sangat bagus, saya sangat mengesyorkannya. Malah, dalam masa 12 jam saya belajar 90% daripada apa yang saya tahu sekarang.

Dan ia juga bagus untuk mengetahui seni bina pangkalan data. Ini adalah semua jenis kunci, indeks, normalisasi. Terdapat satu siri siaran tentang ini di HabrΓ©.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Di Jawa, sebagai tambahan kepada SQL, terdapat pelbagai jenis sistem pemetaan hubungan Objek seperti JPA. Terdapat beberapa kod. Dalam kaedah pertama terdapat beberapa kod SQL - PILIH nama id DARI info.users WHERE id IN userIds. Daripada pangkalan data pengguna, dari jadual, ID dan nama mereka diperolehi.

Seterusnya, terdapat pemeta tertentu yang menukar objek dari pangkalan menjadi objek Java. Dan terdapat kaedah ketiga di bawah yang sebenarnya melaksanakan kod ini. Semua ini boleh diganti menggunakan JPA dengan satu baris, yang ditulis di bawah. Ia melakukan perkara yang sama - cari All ByIdIn. Iaitu, berdasarkan nama kaedah, ia menghasilkan pertanyaan SQL untuk anda.

Perkara yang sangat keren. Saya sendiri, apabila saya tidak tahu SQL, menggunakan JPA. Secara umum, perhatikan. Jika anda terlalu malas untuk belajar SQL, ia adalah bencana. Dan, secara umum, api!

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Musim bunga. Siapa yang pernah mendengar perkara seperti rangka kerja Spring? Adakah anda melihat berapa ramai daripada anda? Bukan tanpa sebab. Spring disertakan dalam keperluan setiap kekosongan bahagian belakang Java kedua. Tanpa itu, tidak ada tempat dalam pembangunan besar. Apa itu Spring? Pertama sekali, ini ialah rangka kerja Suntikan Ketergantungan. Tentang ini juga akan memberitahu penceramah seterusnya. Tetapi secara ringkasnya, ini adalah perkara yang membolehkan anda memudahkan untuk mengimport kebergantungan sesetengah kelas kepada yang lain. Iaitu, pengetahuan tentang kebergantungan dipermudahkan.

Spring Boot ialah sekeping Spring yang membolehkan anda menjalankan aplikasi pelayan anda dengan satu butang. Anda pergi ke THID, tekan beberapa butang, dan kini anda mempunyai aplikasi pelayan anda dan berjalan pada localhost 8080. Iaitu, anda belum menulis satu baris kod lagi, tetapi ia sudah berfungsi. Perkara yang sangat keren. Jika anda menulis sesuatu sendiri, api!

Musim bunga adalah rangka kerja yang sangat besar. Ia bukan sahaja mengambil aplikasi pelayan anda dan menyelesaikan Suntikan Ketergantungan. Ia membolehkan anda melakukan banyak perkara, termasuk mencipta kaedah REST API. Iaitu, anda menulis beberapa kaedah dan melampirkan anotasi pemetaan Dapatkan padanya. Dan kini anda sudah mempunyai beberapa kaedah pada localhost yang menulis Hello world kepada anda. Dua baris kod dan ia berfungsi. Barang sejuk.

Spring juga memudahkan ujian menulis. Tidak ada cara tanpa ujian dalam pembangunan besar. Kod itu perlu diuji. Untuk tujuan ini, Java mempunyai perpustakaan yang keren JUnit 5. Dan JUnit secara umum, tetapi versi terkini adalah yang kelima. Terdapat segala-galanya untuk ujian, pelbagai dakwaan dan lain-lain.

Dan terdapat rangka kerja Mockito yang hebat. Bayangkan anda mempunyai beberapa fungsi yang ingin anda uji. Fungsi ini melakukan banyak perkara, termasuk, di suatu tempat di tengah, ia log masuk ke VKontakte dengan ID anda, sebagai contoh, dan menerima nama pertama dan terakhir pengguna VKontakte daripada ID. Anda mungkin tidak akan memasukkan VKontakte dalam ujian, itu pelik. Tetapi anda perlu menguji kefungsian, jadi anda membuat kelas ini, menggunakan Mockito, mok, menirunya.

Anda akan mengatakan bahawa apabila permintaan datang ke kelas ini dengan ID ini dan ini, ia mengembalikan beberapa nama keluarga, contohnya, Vasya Pupkin. Dan ia akan berfungsi. Iaitu, anda akan menguji semua fungsi untuk mok satu kelas. Perkara yang sangat keren.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Pautan dari slaid

Corak reka bentuk. Apa ini? Ini adalah templat untuk menyelesaikan masalah biasa yang timbul dalam pembangunan. Dalam pembangunan, masalah yang sama atau serupa sering timbul bahawa ia akan menjadi bagus untuk diselesaikan dengan baik. Oleh itu, orang ramai menghasilkan amalan terbaik, templat tertentu, tentang cara menyelesaikan masalah ini.

Terdapat laman web dengan corak yang paling popular - refactoring.guru, anda boleh membacanya, mengetahui corak yang ada, membaca sekumpulan teori. Masalahnya ialah ia boleh dikatakan tidak berguna. Malah, corak tanpa latihan tidak begitu berguna.

Anda akan mendengar tentang beberapa corak seperti Singletone atau Builder. Siapa yang mendengar kata-kata ini? Banyak orang. Terdapat corak mudah yang boleh anda laksanakan sendiri. Tetapi kebanyakan corak: strategi, kilang, fasad - tidak jelas di mana untuk menerapkannya.

Dan sehingga anda melihat dalam amalan dalam kod orang lain tempat yang corak ini digunakan, anda tidak akan dapat menerapkannya sendiri. Oleh itu, amalan sangat penting dengan corak. Dan hanya membaca tentang mereka di refactoring.guru tidak sangat membantu, tetapi ia pasti berbaloi untuk dilakukan.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Mengapa corak diperlukan? Katakan anda mempunyai kelas Pengguna tertentu. Ia mempunyai Id dan Nama. Setiap Pengguna mesti mempunyai kedua-dua Id dan Nama. Kiri atas ialah bilik darjah.

Apakah cara untuk memulakan Pengguna? Terdapat dua pilihan - sama ada pembina atau penetap. Apakah kelemahan kedua-dua pendekatan?

Pembina. Pengguna baharu (7, "Bond"), okey. Sekarang katakan bahawa kami tidak mempunyai kelas Pengguna, tetapi kelas lain, dengan tujuh medan angka. Anda akan mempunyai pembina yang mengandungi tujuh nombor berturut-turut. Tidak jelas apakah nombor-nombor ini dan yang mana antaranya milik harta yang mana. Perekanya tidak hebat.

Pilihan kedua ialah setter. Anda menulis dengan jelas: setId(7), setName("Bond"). Anda faham harta mana yang tergolong dalam bidang mana. Tetapi setter mempunyai masalah. Pertama, anda mungkin terlupa untuk menetapkan sesuatu, dan kedua, objek anda ternyata boleh berubah. Ini bukan thread selamat dan sedikit mengurangkan kebolehbacaan kod. Itulah sebabnya orang ramai menghasilkan corak yang menarik - Builder.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

tentang apa ini? Mari cuba gabungkan kelebihan kedua-dua pendekatanβ€”penetap dan pembinaβ€”dalam satu. Kami membuat objek tertentu, Builder, yang juga akan mempunyai medan Id dan Name, yang dengan sendirinya akan dibina berdasarkan penetap, dan yang akan mempunyai kaedah Bina yang mengembalikan anda Pengguna baharu dengan semua parameter. Kami mendapat objek tidak berubah dan penetap. Sejuk!

Apakah masalahnya? Di sini kita mempunyai Pembina klasik. Masalahnya ialah kita masih boleh lupa untuk menyemak dalam beberapa bidang. Dan jika kita terlupa untuk melawat ID, dalam kes ini dalam Builder ia dimulakan kepada sifar, kerana jenis int tidak boleh dibatalkan. Dan jika kami membuat Nama "Bond" dan terlupa melawat pejabat ID, kami akan mempunyai Pengguna baharu dengan id "0" dan nama "Bond". Tidak sejuk.

Mari kita cuba melawan ini. Dalam Builder kita akan menukar int kepada int supaya ia boleh dibatalkan. Sekarang semuanya hebat.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Jika kami cuba mencipta Pengguna dengan nama "Bond", terlupa untuk meletakkan IDnya, kami akan mendapat pengecualian penuding nol, kerana ID itu tidak boleh dibatalkan, dan Pembina mempunyai pengecualian penuding nol, khususnya.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Tetapi kita masih boleh lupa untuk meletakkan nama, jadi kita menetapkan ulang tayang objek kepada null. Sekarang, apabila kita membina objek kita daripada Builder, ia menyemak bahawa medan itu tidak boleh dibatalkan. Dan bukan itu sahaja.

Mari kita lihat contoh terakhir. Dalam kes ini, jika entah bagaimana kami meletakkan null dalam masa jalan ID, adalah bagus untuk segera mengetahui bahawa anda telah melakukannya dan tidaklah bagus bahawa anda membuat kesilapan sekarang.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Anda perlu membuang ralat bukan pada saat penciptaan Pengguna, tetapi apabila anda menetapkan null kepada ID. Oleh itu, dalam Builder kita akan menukar penetap Integer kepada int, dan dia akan segera bersumpah bahawa mereka membuang nol.

Pendek kata, apa gunanya? Terdapat corak Builder yang mudah, tetapi walaupun pelaksanaannya mempunyai beberapa kehalusan, jadi sangat menarik untuk melihat pelaksanaan corak yang berbeza. Setiap corak mempunyai berpuluh-puluh pelaksanaan. Ini semua sangat menarik.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Bagaimanakah kita menulis Builder dalam kod pengeluaran? Inilah Pengguna kami. Kami melampirkan putaran Builder dari perpustakaan Lombok kepadanya, dan ia sendiri menjana Builder untuk kami. Iaitu, kami tidak menulis sebarang kod, tetapi Java sudah menganggap bahawa kelas ini mempunyai Builder, dan kami boleh memanggilnya seperti ini.

Saya telah mengatakan bahawa Java mempunyai perpustakaan untuk hampir segala-galanya, termasuk Lombok, perpustakaan hebat yang membolehkan anda mengelak daripada menulis boilerplate. Pembina, DAPATKAN.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Corak boleh menjadi seni bina - berkaitan bukan sahaja kepada satu kelas, tetapi kepada sistem secara keseluruhan. Terdapat prinsip hebat dalam reka bentuk sistem: Prinsip Tanggungjawab Tunggal. Apa yang dia cakap? Hakikat bahawa setiap kelas mesti bertanggungjawab untuk beberapa fungsinya sendiri. Dalam kes ini, kami mempunyai Pengawal yang berkomunikasi dengan pengguna, objek JSON. Terdapat Facade, yang menukar objek JSON kepada model yang kemudiannya akan berfungsi dengan aplikasi Java. Terdapat Perkhidmatan yang mempunyai logik kompleks yang berfungsi dengan model ini. Terdapat Objek Akses Data yang meletakkan model ini ke dalam pangkalan data dan mendapatkannya daripada pangkalan data. Dan terdapat pangkalan data itu sendiri. Dalam erti kata lain, ia bukan semua dalam satu kelas, tetapi kami membuat lima kelas yang berbeza, dan itu adalah corak lain.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Sebaik sahaja anda telah mempelajari Java lebih kurang, adalah bagus untuk menulis projek anda sendiri yang akan mempunyai pangkalan data, berfungsi dengan API lain dan mendedahkan aplikasi pelayan anda kepada klien API REST. Ini akan menjadi perkara yang bagus untuk ditambahkan pada resume anda, ia akan menjadi penamat yang menarik untuk pendidikan anda. Dengan ini anda boleh pergi dan mendapatkan pekerjaan.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Berikut adalah contoh aplikasi pelayan saya. Pada tahun kedua saya, saya menulis kertas penggal dengan lelaki. Mereka sedang menulis aplikasi mudah alih untuk menganjurkan acara. Di sana, pengguna boleh log masuk melalui VKontakte, meletakkan titik pada peta, mencipta acara, menjemput rakan mereka kepada mereka, menyimpan imej acara, dll.

Apa yang saya lakukan dalam projek itu? Menulis aplikasi pelayan dalam Spring Boot tanpa menggunakan SQL. Saya tidak mengenalinya, saya menggunakan JPA. Apa yang boleh dilakukannya? Log masuk ke VK melalui OAuth-2. Ambil token pengguna, pergi ke VK dengannya, periksa sama ada ia adalah pengguna sebenar. Terima maklumat tentang pengguna melalui VKontakte. Ia dapat menyimpan maklumat dalam pangkalan data, juga melalui JPA. Simpan gambar dan fail lain dengan mahir dalam memori komputer, dan simpan pautan kepadanya dalam pangkalan data. Pada masa itu saya tidak tahu bahawa terdapat objek CLOB dalam pangkalan data, jadi saya melakukannya dengan cara ini. Terdapat API REST untuk pengguna, aplikasi klien. Dan terdapat ujian unit untuk kefungsian asas.

[…] Contoh kecil pembelajaran Java saya yang berjaya. Pada tahun pertama saya di universiti, saya telah diajar C# dan diberi pemahaman tentang pengaturcaraan OOP - apakah kelas, antara muka, abstraksi dan mengapa ia diperlukan. Ia banyak membantu saya. Tanpa ini, mempelajari Java agak sukar; tidak jelas mengapa kelas diperlukan.

Mengapa belajar Java dan cara melakukannya dengan berkesan. Laporan Yandex

Pada tahun kedua saya di universiti, mereka sekali lagi mengajar teras Java, tetapi saya tidak berhenti di situ, saya pergi belajar Spring sendiri dan menulis kertas kursus, projek saya, yang saya nyatakan di atas. Dan dengan semua ini, saya pergi untuk latihan di Yandex, lulus temu duga, dan masuk ke Yandex.Market. Di sana saya menulis bahagian belakang untuk Beru, ini adalah pasaran kami, dan untuk Yandex.Market itu sendiri.

Selepas itu, enam bulan lalu, saya berpindah ke pasukan lain dalam Pasaran yang sama. Kami melakukan analisis untuk rakan kongsi perniagaan. Kami berada dalam platform analisis, terdapat tiga daripada kami di bahagian belakang, jadi saya mempunyai pengaruh yang sangat besar pada projek itu. Ia sangat menarik, sebenarnya. Iaitu, kami sebenarnya menyediakan data di pasaran - apakah jualan, dalam kategori apa, dalam model apa, untuk rakan kongsi perniagaan, syarikat besar terkenal. Dan kami hanya bertiga, kami menulis kod ini, dan ia sangat keren.

Terima kasih! Pautan berguna:
- "Java 8. Panduan Pemula".
- Struktur Data.
- SQLZOO.
- Normalisasi Pangkalan Data.
- Corak Rekaan.
- Corak Reka Bentuk.
- Kod Bersih.
- Java yang berkesan.

Sumber: www.habr.com

Tambah komen