JavaRush /Java Blog /Random-ID /Panduan untuk pengembang Java masa depan. Perusahaan - ba...
Diana
Level 41

Panduan untuk pengembang Java masa depan. Perusahaan - bagian 1

Dipublikasikan di grup Random-ID
“Jangan terlalu bangga dengan pencapaian teknologi yang telah Anda bangun. Kemampuan untuk menghancurkan sebuah planet tidak ada bandingannya dengan kekuatan Force." - Darth Vader di Death Star. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 1

Pendahuluan

Mungkin, dua bagian berikutnya dari rangkaian artikel adalah yang paling dinantikan banyak orang, dan untuk alasan yang bagus. Apa yang ada di luar cakrawala, di luar Jawa murni? Apa yang dihirup oleh pengembang Java dalam setiap proyek? Anggap ini sebagai panduan belajar mandiri yang nyata dan lengkap untuk semua teknisi back-end rata-rata yang bahasa pemrograman utamanya adalah Java. Saya bermaksud untuk membahas rata-rata rumah sakit sebanyak mungkin dan menjelaskan tidak hanya kerangka kerja yang paling populer, namun juga solusi yang dianggap relevan saat ini. Tentu saja, ada banyak alat, dan memahami mana yang paling penting dan terbaik adalah jalan menuju ke mana-mana. Anda masing-masing melihat bagian “Pekerjaan” di DOU dan menemukan setumpuk teknologi yang terus diulang dari lowongan ke lowongan. Saya memahami bahwa tidak mungkin untuk menggambarkan semuanya, tetapi membuat kerangka umum tidak masalah, jadi mari kita coba ikuti arahan ini. Entah bagaimana di masa lalu, di salah satu proyek, terjadi rasa malu yang cukup menarik, yang menurut saya telah dan berulang terus-menerus dari waktu ke waktu bagi banyak orang di satu bidang atau lainnya. Tugasnya ditetapkan untuk melampirkan render satu halaman HTML ke fungsionalitas yang telah selesai hanya untuk menunjukkan status masing-masing entitas. Akibatnya, rekan saya memutuskan untuk melampirkan spring thymeleaf, yang menarik sebagian dari dependensi inti Spring itu sendiri, ketika tidak ada yang menggunakan Spring. Dan ini semua untuk satu halaman biasa, yang hanya menampilkan status 2-3 entitas. "Saya belum pernah melihat gunanya menggunakan dua lightsaber...menurut saya ini adalah sebuah pamer" - Obi-Wan Kenobi. Di satu sisi, pengembang memecahkan masalah secepat mungkin, memasang kerangka kerja yang ia punya pengalaman menggunakannya dan mengintegrasikannya ke dalam proyek dalam hitungan jam. Namun di sisi lain, program kami semakin besar, sehingga pertanyaan sederhananya adalah: apakah ia melakukan hal yang benar? Untuk tugas atom seperti itu, ketika Anda mengetahui dengan pasti bahwa thymeleaf/Spring MVC, dll. lebih besar. Itu tidak akan digunakan dimanapun, lebih baik tidak digunakan sama sekali. Saya selalu terkejut dengan ungkapan seperti “Oh! Ya, kami menggunakan Hibernate di sini! Lihat, semuanya keren, ORM!”, dan ketika ditanya pertanyaan logis apakah mungkin bertahan dengan JDBC reguler di sini, mereka mengangkat bahu. Ada arsitektur biasa, yang harus sederhana, yang harus diperlakukan dengan gentar, tidak berantakan dengan kerangka yang modis dan super modern. Seperti yang dikatakan Obi-Wan di atas, ini tidak lebih dari sekadar pamer, meskipun cara menggunakannya perlu diketahui. Javaist muda menurut saya yang paling sial dari semuanya - begitu banyak spesifikasinya, begitu banyak perpustakaan yang perlu dipelajari. Java EE sendiri memiliki dokumentasi yang lengkap. Timbul pertanyaan, apa yang harus dilakukan seorang pemula, apa yang harus dia pelajari selanjutnya, apa yang harus dia lakukan setelah Horstmann? Jawaban sederhananya: sayangnya, bertemu banyak orang. Dan kita akan memulai bukan dengan kerangka bisnis, tetapi dengan hal-hal yang lebih penting dan duniawi.

Sistem operasi

Linux

Selain Windows dan/atau Yosemite yang nyaman, Anda perlu memperluas tangan Anda ke Linux sambil tersenyum. Untuk beberapa proyek, cukup menjadi pengguna dan mengetahui cara menggunakan baris perintah, untuk proyek lain - lebih banyak lagi. Cara mana yang terbaik? Ada banyak sekali buku/tutorial di Internet. Mulailah dengan menginstal Ubuntu atau distribusi lain yang Anda suka dan coba gunakan sebagai sistem operasi utama Anda untuk satu atau dua bulan ke depan. Akan jauh lebih baik jika Anda mulai mempelajari Java di Linux dengan mengkompilasi dan memanipulasi file menggunakan terminal. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 2Baris Perintah Linux oleh William Shotts . Bacalah buku ini bukan sebagai novel “50 Shades of Grey”, tetapi sebagai kursus interaktif lengkap - buka terminal dan ulangi setelah penulisnya. Apakah Anda menginginkan dasar-dasarnya dan bagaimana cara kerja Linux? Mari kita tidak mengambil kursus Ilmu Komputer dan sistem operasi - itu ada di bagian selanjutnya. Kunjungi edx.org dan coba kursus Pengantar Linux yang mudah . Ada juga buku dari seri How Linux Works: What Every Superuser Should Know yang disebutkan di atas oleh Brian Ward . Publikasi bergambar cukup yang memperhatikan jaringan, perangkat, dan manajemen sumber daya. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 3Teruskan? Ada sebuah buku yang sangat bagus, yang, omong-omong, saya miliki di suatu tempat di sini... ya (mengguncang debu)... ini dia! Unix dan Linux: Panduan Administrator Sistem. Evi Nemeth. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 4Manual yang cukup besar, diterjemahkan dengan baik. Sejujurnya saya pribadi belum menguasainya, tapi saya sangat menyukai dasar-dasar administrasi (bagian pertama). Tentu saja, Anda tidak dapat mengabaikan skrip Shell. Lebih baik mencoba semua ini dalam praktik, tetapi dari buku Anda dapat melihat Mempelajari bash Shell: Pemrograman Unix Shell oleh Cameron Newham. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 5Literatur mengenai Linux/Unix yang jumlahnya sangat banyak tidak dapat dibahas secara penuh, terutama dalam artikel ini, dimana Linux berada di latar belakang. Rekan kerja saya, yang sangat memahami masalah ini, menyarankan hal yang praktis: Unduh ArchLinux dan coba aktifkan dan jalankan. Dalam prosesnya Anda akan belajar hal paling yang tidak saya inginkan!

jendela

Ada kolom di resume programmer: "Pengalaman Windows lebih dari 10 tahun." Tentu saja, saya mengucapkan selamat kepada Anda atas kenyataan bahwa Anda telah bermain counter sejak Anda berusia 10 tahun di Windows, tetapi saya meminta Anda untuk tidak menggali lubang terlebih dahulu saat wawancara, karena pada proyek tempat Anda bekerja sama dengan erat. IIS, batch/powershell, amit-amit, registrasi, wawancara tidak akan terlalu sulit, dan selain itu seringai di hadapan orang yang duduk. Lida kamu juga akan menerima dosis penghinaan. Apakah Anda memerlukan ini? Jawabannya muncul dengan sendirinya. Singkirkan Windows bajakan Anda dari torrent dan coba instal di beberapa jenis mesin virtual Windows Server. Pelajari tidak hanya dari sisi pengguna dan instalasi JAVA_HOME saja. Berkaitan dengan hal tersebut, ada panduan yang hampir lengkap dalam bentuk buku Mastering Windows Server 2012 R2 karya Mark Minasi . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 6Misalnya, jika Anda menggunakan PowerShell, lihat buku bagus Windows PowerShell in Action oleh Manning oleh Bruce Payette . Saya memahami bahwa tidak mungkin melewati 1000 halaman, tetapi setidaknya Anda dapat menyimpannya sebagai referensi. Tidak ada lagi yang diperlukan, menurut saya. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 7Oleh karena itu, perhatikan kesenjangan pengetahuan Anda tentang penggunaan Windows dan carilah informasi yang Anda minati di Internet.

Membangun Alat

Maven

Apa hal paling penting untuk dipahami di Maven? Berikut adalah langkah dan tugas pertama:
  1. Pelajari apa yang dilakukan Maven di setiap fase, Anda bahkan dapat menghafalnya. Ini hampir 80% sukses dan akan memberi Anda gambaran yang jelas.
  2. Buat proyek sandbox Anda sendiri secara lokal dengan sistem multi-modul, dengan manajemen ketergantungan eksplisit. Coba lampirkan perpustakaan pihak ketiga, coba buat sesuatu dengan menggunakannya.
  3. Bermain-main dengan profil
  4. Pahami manajemen plugin dan pelajari daftar plugin terpopuler di situs resminya.
  5. Jelajahi cara terbaik untuk menggunakan pakar dalam proyek Anda. Misalnya, pembangunan paralel dapat mengurangi waktu pembangunan secara signifikan.
Untuk penjelasan singkat, kunjungi situs web Apache Maven versi Rusia , cari beberapa tutorial di Google. Namun edisi ketiga dari salah satu buku utama Maven tidak akan dirilis. Sejauh ini merupakan edisi kedua dari Sonatype's Maven: The Definitive Guide . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 8Untuk tingkat mahir, membuat plugin sendiri cocok. Jangan khawatir plugin seperti apa yang perlu Anda buat, karena sudah banyak yang ada! Cobalah untuk membuat semacam analogi, pelajari fase-fasenya sebagai dua dan dua.

SEMUT

Alat ini terlihat jauh lebih mudah, jadi tidak banyak yang bisa dipelajari di sini. Masih ada proyek di mana ANT adalah satu-satunya alat pembangunan. Ini benar-benar normal: ANT telah membuktikan dirinya sebagai alat pembangunan yang sederhana dan lugas dalam konteks mengelola tugas-tugas atom kecil (tugas semut). Tentu saja ada banyak plugin di sini, sama seperti Maven. Untuk memulai dengan ANT, lakukan hal berikut:
  • Coba manipulasi file dan folder
  • Menerapkan perintah berbeda untuk melaksanakan tugas. Berdasarkan hal tersebut, pelajari ketergantungan dan prioritas tugas di ANT.
  • Buka kemasan dan/atau arsip zip. Dalam tugas, coba mainkan isi arsip dan sebagainya.
Tidak perlu menawarkan banyak sumber daya untuk mempelajari ANT. Untuk menyelami lebih dalam, halaman resmi Apache Ant sudah cukup. ( ant.apache.org ) dan buku Ant in Action oleh Steve Loughran . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 9

Gradle

Bagi saya, Gradle lebih mirip dengan ANT daripada Maven, tetapi Gradle dapat sepenuhnya disebut sebagai saudara tiri dari kedua orang ini. Ia memiliki siklus hidup yang mirip dengan Maven, dan fleksibilitas tugas yang sama dengan ANT. Yang paling penting adalah Gradle tidak menggunakan XML dan, terlebih lagi, Anda dapat melakukan apa pun yang Anda inginkan dengannya jika Anda kurang lebih familiar dengan Groovy. Secara umum, hal yang cukup enak. Jangan takut untuk menggunakan Ant/Maven/Gradle dalam konteks IDE Anda. Alat-alat ini terintegrasi erat ke dalam Eclipse/IDEA, dan menggunakan alat-alat ini dalam konteks IDE cukup nyaman.

Integrasi Berkelanjutan

Teori

Ini adalah program malaikat yang melindungi Anda dari pemecatan. Singkatnya, ini adalah perangkat lunak yang memantau perubahan kode, membuat dan menjalankan pengujian yang ditulis untuk Anda. Jika semuanya baik-baik saja setelah setiap komit/penggabungan, maka build akan bersinar dengan cahaya hijau/biru yang menyenangkan. Segera setelah Anda memecahkan sesuatu, sistem CI akan segera melaporkannya. Namun, sedikit teori - ini klasik! Integrasi Berkelanjutan: Meningkatkan Kualitas Perangkat Lunak dan Mengurangi Risiko oleh Paul Duvall . (alias “Integrasi Berkelanjutan” dalam bahasa Rusia) Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 10Buku ini bahkan membahas pembuatan sistem CI Anda sendiri. Mari kita lihat dua solusi paling populer di bidang ini.

Jenkins

Jenkins, alias Hudson. Aplikasi terbuka, ramah, mudah digunakan. Untuk lebih mengenal Jenkins, coba yang berikut ini:
  1. Unduh ke komputer Anda. Instal dan konfigurasikan JDK, Maven, ANT dan semua yang Anda perlukan untuk proyek ini.
  2. Buat Job pertama dan tentukan lokasi proyek Anda, misalnya pom.xml utama. Jalankan, pastikan ada semacam tes agar terlihat jelas.
  3. Pelajari cara menjalankan proyek Anda dengan pengaturan dan opsi berbeda.
  4. Lampirkan plugin yang berbeda dan lihat cara kerjanya bersama dengan proyek Anda.
  5. Bangun pemicu untuk pekerjaan yang berbeda. Buat saluran pipa kecil.
  6. Jelajahi DSL dan coba integrasikan dengan Jenkins.
  7. Siapkan budak dari komputer lain dan/atau jadikan mesin biasa untuk menjalankan build.
  8. Buat bangunan malam.
Dari buku, baca saja Jenkins: The Definite Guide karya John Ferguson Smart . Panduan yang jelas dengan banyak tangkapan layar. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 11

Kota Tim

Ya, TeamCity tidak gratis, tapi lihat seberapa baik integrasinya ke dalam ekosistem produk JetBrains. Intellij Idea dan TeamCity adalah perpaduan yang hebat. Secara umum, jika Anda sudah familiar dengan Jenkins, TeamCity tidak akan menjadi hutan gelap bagi Anda, dan sebaliknya. Alih-alih agen budak, pemicu yang sama dan seterusnya. Namun tidak seperti Jenkins, TeamCity menawarkan fitur-fitur luar biasa seperti, misalnya, pengoperasian jarak jauh, juga dikenal sebagai komit yang telah diuji sebelumnya, lebih banyak statistik visual, dan banyak lagi. Saya sangat menyukai panduan pengguna di YouTube, yang dibuat oleh JetBrains sendiri ( Panduan Pengguna TeamCity (Bagian 1 dari 9) - Pendahuluan ). Menurut saya TeamCity intuitif dan dokumentasinya berstandar tinggi. Namun jika menurut Anda ada buku yang layak untuk dibaca, silakan tinggalkan di komentar. Tentu saja, saya hanya mencantumkan sebagian kecil dari sistem CI ini, tetapi cakupan semuanya terbatas. Mungkin panduan terbaik untuk belajar adalah latihan. Saya menginstalnya di komputer saya, meluncurkannya, membuat crash/memulihkan build dan pergi tidur. Dan kemudian Anda dapat dengan aman membawakan saya buku rekor (jika Anda mau :).

Sistem Kontrol Versi

Tidak ada gunanya berbicara banyak tentang VCS. Itu hanyalah sesuatu yang seharusnya terjadi, dan tanpanya manajemen proyek akan seperti era Mesozoikum. Mirip dengan sistem CI, mari kita lihat dua solusi paling populer: Git dan SVN.

Git

Git kami telah membuktikan dirinya sebagai sistem kontrol versi terdistribusi yang stabil. Mulailah belajar dari sini dan pelajari semua bab dengan Git yang sudah dikonfigurasi. Lalu ada serangkaian tutorial interaktif yang luar biasa dari Code School. Ada juga panduan singkat dari mereka yang berjudul Try Git: Code School . Dari buku saya dapat merekomendasikan Kontrol Versi dengan Git oleh Jon Loeliger Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 12 Jika Anda sudah terbiasa dengan turtle (TortoiseSVN, catatan penulis) dan takut dengan konsol, tentu saja Anda dapat mengunduh analognya TortoiseGit, tetapi menurut saya, jauh lebih menyenangkan dan estetis Solusinya adalah produk dari Atlassian - SourceTreeApp. Anda dapat berlatih dengan repositori jarak jauh, karena terdapat cukup banyak layanan host di Internet. Jika Anda mau, latihlah secara lokal. TIDAK? Kemudian buat akun di GitHub dan bekerja dalam mode penuh: buat beberapa komitmen, buat beberapa proyek sumber terbuka, lakukan beberapa penggabungan antar cabang, dan seterusnya.

SVN

VCS lain yang sama populernya adalah SVN. Sistem ini tidak bisa membanggakan distribusi. Masing-masing dari mereka memiliki pendekatannya sendiri, pro dan kontranya sendiri. Pastikan untuk membaca percakapan menarik antara pemula dan pengguna SVN . Ada buku gratis dari read-bean.com dengan terjemahan bahasa Rusia. Kursus mini dari TutorialsPoint juga akan sangat berguna . Jangan lewatkan situs web resmi Apache subversion.apache.org . Klien yang paling menarik bagi saya adalah TortoiseSVN yang disebutkan di atas. Di antara buku-buku tersebut, kita dapat menyoroti: Kontrol Versi dengan Subversi oleh Michael Pilato . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 13Saya menyukainya karena memperhatikan administrasi server SVN itu sendiri. Saya harap saya tidak melewatkan poin utama.

Alat pengujian

Sebaiknya pahami dalam proyek sandbox kecil Anda apa itu pengujian unit, pengujian integrasi, dan regresi. JUnit Teori unit test dijelaskan dengan baik di buku-buku dari artikel sebelumnya. Secara khusus, Clean Code bahkan menggambarkan junit sebagai salah satu perpustakaan populer di area ini. Namun jika membahas JUnit secara khusus, ada buku kecil yang bagus berjudul Pengujian Unit Praktis dengan JUnit dan Mockito oleh Tomek Kaszanowski Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 14 . Tentu saja, ada lebih dari sekadar JUnit dan Mockito. Di sini penulis memperkenalkan Matchers, menawarkan contoh pengujian berparameter, dan menjelaskan secara singkat TDD. Ada juga buku yang terbit baru-baru ini. Ini adalah Pengujian Unit Pragmatis di Java 8 oleh Jeff Langr Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 15 Penulis memperkenalkan Hamcrest, menjelaskan Praktik Terbaik, dan, tentu saja, Java 8. Anda dapat membaca dengan aman setelah buku Tomek. Ngomong-ngomong, tentang TDD. Saya tidak ingin mempermasalahkan apakah produk tersebut layak digunakan, baik atau buruk, apakah pelanggan membutuhkannya. Ingat saja: bekerja di TDD bukanlah hal baru, dan banyak proyek menggunakan metodologi ini, dan bagi banyak orang ini adalah satu-satunya aturan yang tidak dapat disangkal. Secara teori, Anda bisa membaca buku klasik. Kent Beck - Pengembangan Berbasis Uji: Dengan Contoh . Yang paling saya sukai adalah bagian tentang pola TDD. Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 16Anehnya, ada kursus orang pertama yang bagus - Ayo Mainkan TDD (200 video!) di Youtube. Yang tak kalah menarik adalah pembahasan Fowler sendiri tentang layak atau tidaknya menggunakan TDD, apakah merusak desain, dan sejenisnya. Ingatlah ini sekali dan untuk selamanya: TDD tidak menciptakan desain yang buruk, Andalah yang menciptakannya. Jika Anda lebih banyak menggunakan BDD (yang satu tidak mengganggu yang lain) dan, misalnya, menggunakan Mentimun pada sebuah proyek, maka ini adalah bidang yang sedikit berbeda. Buku bagus mengenai hal ini adalah Manning BDD in Action: Pengembangan berbasis perilaku untuk seluruh siklus hidup perangkat lunak oleh John Ferguson Smart . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 17Omong-omong, John Ferguson Smart secara aktif mempromosikan topik ini kepada massa. Jika Anda seorang Scrum Master atau PM yang pada akhirnya tidak menyakiti matanya, namun senang melihat tes kapan-jika-maka, maka pastikan untuk mengikuti John di Twitter . Mengenai Mentimun, lihat implementasi Java di situs resminya dan baca buku The Cucumber Book: Behavior-Driven Development oleh Matt Wayne . Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 18

perpustakaan pihak ketiga

Penting untuk dapat menggunakan perpustakaan populer jika diperlukan - perpustakaan ini menyederhanakan kehidupan sehari-hari setiap pengembang Java. Solusi populer meliputi yang berikut: Joda Time. Menawarkan untuk sepenuhnya mengganti Tanggal dan Waktu asli yang tidak nyaman dengan JodaTime yang lebih nyaman. Inilah satu referensi yang bagus . Perlu diketahui jika Anda sudah menggunakan Java 8, maka JodaTime tidak akan banyak membantu. Faktanya adalah DateTime API yang baru telah sepenuhnya menggantikan perpustakaan ini, dan di beberapa tempat bahkan disalin dan ditempel dengan cerdik. Menurut artikel penulis sendiri , setiap kelas Joda dapat dengan mudah diganti dengan analog dari java.time. Google Jambu Biji. Dalam banyak hal, Java 8 bahkan menggantikan Guava. Objek yang sama, Stream API, Java Predicate dan banyak hal lainnya menyarankan untuk menggantinya dan tidak menggunakannya sama sekali. Saya ulangi, jika Anda tidak memiliki Java 8, tidak ada yang lebih baik dari panduan ini dan tangan langsung Anda.

Apache Umum

Monster ini tidak mudah untuk ditangani: sekitar 40 perpustakaan untuk semua kesempatan, dari validasi commons.lang hingga xml yang terkenal, dari DBUtils hingga commons.io . Tentu saja, Anda tidak perlu mengetahui semuanya, tetapi buku masak dan tutorial akan berguna untuk Anda bawa. Misalnya, untuk memahami apa itu Apache Commons, Anda dapat membaca Jakarta Commons Cookbook karya Timothy O'Brein Panduan untuk pengembang Java masa depan.  Perusahaan - bagian 1 - 19

Kesimpulan

Perusahaan sangat luas sehingga sangatlah bodoh untuk mulai mendiskusikan JavaEE dan kerangka kerja lainnya tanpa segala sesuatu yang mengelilingi Perusahaan ini. Oleh karena itu, pada bagian kedua kita akan fokus pada setiap lapisan arsitektur multitier, mempertimbangkan layanan, dan sebagainya. Terima kasih banyak atas perhatiannya. Akhir dari bagian pertama. Bagian sebelumnya dari seri ini:
  1. Panduan untuk pengembang Java masa depan. Dasar-Dasar Jawa
  2. Panduan untuk pengembang Java masa depan. Kode yang elegan
Asli dengan DOU
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION