JavaRush /Blog Jawa /Random-JV /Pandhuan kanggo pangembang Jawa mangsa ngarep. Perusahaan...
Diana
tingkat

Pandhuan kanggo pangembang Jawa mangsa ngarep. Perusahaan - bagean 1

Diterbitake ing grup
"Aja bangga karo prestasi teknologi sing wis digawe. Kemampuan kanggo numpes planet ora ana apa-apa dibandhingake karo kekuwatan Angkatan." - Darth Vader ing Death Star. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 1

Intro

Mbokmenawa, rong bagéan sabanjuré saka seri artikel sing paling diantisipasi kanggo akeh, lan kanggo alesan apik. Ana apa, ngluwihi cakrawala, ngluwihi Jawa murni? Apa ambegan pangembang Jawa ing saben proyek? Coba iki minangka pandhuan sinau mandiri sing nyata lan lengkap kanggo insinyur back-end rata-rata sing basa pamrograman utama yaiku Jawa. Aku arep kanggo nutupi rata-rata rumah sakit sabisa lan njlèntrèhaké ora mung frameworks paling populer, nanging uga solusi sing dianggep cocog ing wayahe. Alami, ana akeh alat, lan pangerten sing paling penting lan paling apik yaiku dalan sing ora ana. Saben sampeyan ndeleng bagean "Pekerjaan" ing DOU lan nemokake tumpukan teknologi sing terus-terusan bola-bali saka lowongan nganti lowongan. Aku ngerti sing ora bisa njlèntrèhaké kabeh, nanging teka munggah karo framework umum apik, supaya nyoba kanggo tindakake arah iki. Piye wae ing jaman kepungkur, ing salah sawijining proyek, ana rasa isin sing rada menarik, sing, aku mikir, ana lan bola-bali terus-terusan saka wektu kanggo wektu kanggo akeh ing siji wilayah utawa liyane. Tugas kasebut disetel kanggo masang render siji kaca HTML menyang fungsi sing wis rampung mung kanggo nuduhake status entitas individu. Akibaté, rowange mutusaké kanggo masang spring thymeleaf, kang ditarik bagéan saka dependensi inti saka Spring dhewe, nalika ora ana siji digunakake Spring. Lan iki kabeh kanggo siji kaca biasa, sing mung nuduhake status 2-3 entitas. "Aku wis tau ndeleng akeh titik nggunakake loro lightsabers ... iku pamer ing mratelakake panemume" - Obi-Wan Kenobi. Ing sisih siji, pangembang ngrampungake masalah kasebut kanthi cepet, nginstal kerangka kerja sing wis pengalaman nggunakake lan nggabungake proyek kasebut sajrone sawetara jam. Nanging ing sisih liya, program kita wis tambah akeh, mula dadi pitakonan sing gampang: apa dheweke nindakake kanthi bener? Kanggo tugas atom kuwi, nalika ngerti manawa thymeleaf iki / Spring MVC, etc. Ora bakal digunakake ing ngendi wae, luwih becik ora digunakake. Aku tansah kaget karo frasa kaya "Oh! Ya, kita nggunakake Hibernate ing kene! Delengen, kabeh pancen keren, ORM!”, lan nalika ditakoni pitakon logis apa bisa tetep karo JDBC biasa ing kene, dheweke ngangkat bahu. Ana arsitektur biasa, sing kudu prasaja, sing kudu ditangani kanthi trepidation, ora cluttered karo frameworks modern lan super modern. Minangka Obi-Wan ngandika ndhuwur, iki ora luwih saka pamer, sanajan iku perlu kanggo ngerti carane nggunakake. Wong Jawa enom iku, miturutku, sing paling apes - akeh spesifikasi, akeh perpustakaan sing kudu disinaoni. Jawa EE piyambak duwe dokumentasi liwat gendheng. Pitakonan muncul, apa sing kudu ditindakake pamula, apa sing kudu ditindakake sabanjure, apa sing kudu ditindakake sawise Horstmann? Jawaban prasaja: sayangé, ketemu akèh wong. Lan kita bakal miwiti ora karo kerangka bisnis, nanging kanthi prekara sing luwih penting.

Sistem Operasi

Linux

Saliyane Windows lan/utawa Yosemite mulyo, sampeyan kudu ngegetake tangan menyang Linux karo eseman. Kanggo sawetara proyek, cukup dadi pangguna lan ngerti carane nggunakake baris perintah, kanggo wong liya - luwih akeh. Cara sing paling apik? Ana mung ton buku / tutorial ing Internet. Miwiti kanthi nginstal Ubuntu utawa distribusi liyane sing disenengi lan coba gunakake minangka sistem operasi utama kanggo sasi utawa rong wulan sabanjure. Bakal luwih apik yen sampeyan miwiti sinau Java ing Linux kanthi nyusun lan manipulasi file nggunakake terminal. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 2The Linux Command Line dening William Shotts . Waca buku iki ora minangka novel "50 Shades of Grey", nanging minangka kursus interaktif lengkap - bukak terminal lan baleni sawise penulis. Apa sampeyan pengin dhasar lan kepiye cara kerja Linux? Ayo ora njupuk Ilmu Komputer lan kursus sistem operasi - sing ana ing bagean sabanjure. Bukak edx.org lan coba kursus Pengantar Linux sing gampang . Ana uga buku saka seri kasebut ing ndhuwur Cara Kerja Linux: Apa Saben Superuser Kudu Ngerti dening Brian Ward . Publikasi sing cukup digambarake sing menehi perhatian marang jaringan, piranti, lan manajemen sumber daya. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 3Terusna? Ana buku sing apik banget, sing, omong-omong, aku duwe nang endi wae ing kene ... ya (goyangake bledug) ... iki! Unix lan Linux: Pandhuan Administrator Sistem. Evi Nemeth. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 4Manual sing cukup gedhe, diterjemahake kanthi apik. Jujur, aku dhewe ora nguwasani, nanging aku seneng banget karo dhasar administrasi (bagean pisanan). Mesthi, sampeyan ora bisa nglirwakake skrip Shell. Iku luwih apik kanggo nyoba kabeh iki ing laku, nanging saka buku sampeyan bisa ndeleng ing Learning bash Shell: program Unix Shell dening Cameron Newham. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 5Jumlah literatur sing akeh banget babagan Linux / Unix ora bisa dilindhungi kanthi lengkap, utamane ing artikel iki, ing ngendi Linux ana ing latar mburi. Rekan kerjaku, sing mangan asu ing perkara iki, menehi saran babagan sing rada praktis: Download ArchLinux lan nyoba supaya bisa mlaku. Ing proses sampeyan bakal sinau paling aku ora pengin!

Windows

Ing resume programer ana kolom: "Windows pengalaman luwih saka 10 taun." Mesthi wae, aku ngucapke matur nuwun amarga sampeyan wis main counter wiwit umur 10 taun ing Windows, nanging aku njaluk supaya sampeyan ora nggawe bolongan sadurunge wawancara, amarga ing proyek sing sampeyan kerja bareng. IIS, batch / powershell, Gusti Allah ngalang-alangi, pendaptaran, Interview ora bakal angel tenan, lan liyane grin ngelawan wong lungguh. Lida sampeyan uga bakal nampa dosis ngeyek. Apa sampeyan butuh iki? Jawaban kasebut nyaranake dhewe. Sijine Windows bajakan saka torrent lan coba nginstal ing sawetara jinis mesin virtual Windows Server. Sinau ora mung saka sisih pangguna lan instalasi JAVA_HOME. Ing babagan iki, ana pandhuan sing meh lengkap ing wangun buku Mastering Windows Server 2012 R2 dening Mark Minasi . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 6Contone, yen sampeyan nggunakake PowerShell, priksa buku sing apik banget Windows PowerShell in Action dening Manning dening Bruce Payette . Aku ngerti sing ora bisa mbukak liwat 1000 kaca, nanging paling sampeyan bisa tetep karo sampeyan minangka referensi. Ora ana liyane sing dibutuhake, aku mikir. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 7Akibaté, mbayar manungsa waé kanggo kesenjangan ing kawruh nggunakake Windows lan goleki informasi sing kasengsem ing Internet.

Mbangun Tools

Maven

Apa sing paling penting kanggo ngerti ing Maven? Mangkene langkah lan tugas pisanan:
  1. Sinau apa sing ditindakake Maven ing saben fase, sampeyan bisa uga apal. Iki meh 80% sukses lan bakal menehi gambar sing jelas.
  2. Gawe proyek kothak wedhi dhewe kanthi lokal kanthi sistem multi-modul, kanthi manajemen ketergantungan sing jelas. Coba masang perpustakaan pihak katelu, coba gawe soko nggunakake.
  3. Play watara karo profil
  4. Ngerti manajemen plugin lan sinau dhaptar plugin sing paling populer ing situs web resmi.
  5. Jelajahi carane sampeyan bisa nggunakake maven paling apik ing proyek sampeyan. Contone, mbangun paralel bisa nyuda wektu mbangun.
Kanggo nyilem cepet, pindhah menyang versi Rusia saka situs web Apache Maven , goleki sawetara tutorial ing Google. Isih, edisi katelu saka salah sawijining buku utama ing Maven ora bakal dirilis. Nganti saiki iki minangka edisi kapindho Sonatype's Maven: The Definitive Guide . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 8Kanggo tingkat lanjut, nggawe plugin dhewe cocok. Aja kuwatir babagan plugin apa sing kudu digawe, amarga akeh sing wis ana! Coba nggawe sawetara jinis analog, sinau fase minangka loro lan loro.

ANT

Alat iki katon luwih gampang, mula ora akeh sing kudu dipelajari ing kene. Isih ana proyek sing mung ANT minangka alat mbangun. Iki pancen normal: ANT wis mbuktekake dhewe minangka alat mbangun sing prasaja lan langsung ing konteks ngatur tugas atom cilik (tugas semut). Mesthine, ana akeh plugin ing kene, kaya Maven. Kanggo miwiti ANT, tindakake ing ngisor iki:
  • Coba manipulasi file lan folder
  • Ngleksanakake pesenan beda kanggo nglakokaké tugas. Adhedhasar iki, sinau dependensi lan prioritas tugas ing ANT.
  • Mbukak paket lan/utawa arsip zip. Ing tugas, coba muter karo isi arsip lan liya-liyane.
Ora perlu menehi akeh sumber daya kanggo sinau ANT. Kanggo nyilem luwih utawa kurang jero, kaca Apache Ant resmi cukup. ( ant.apache.org ) lan buku Ant in Action dening Steve Loughran . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 9

Gradle

Kanggo kula, Gradle luwih cedhak karo ANT tinimbang Maven, nanging bisa diarani sedulur lanang loro iki. Nduwe siklus urip sing padha karo Maven, lan keluwesan tugas sing padha karo ANT. Inggih, sing paling penting yaiku Gradle ora nggunakake XML lan, luwih-luwih, sampeyan bisa nindakake apa wae sing dikarepake yen sampeyan luwih kenal karo Groovy. Umumé, iku cukup sedhep. Aja wedi nggunakake Ant / Maven / Gradle ing konteks IDE. Piranti kasebut digabungake kanthi rapet menyang Eclipse / IDEA, lan nggunakake alat kasebut ing konteks IDE cukup nyaman.

Integrasi terus-terusan

Teori

Iki minangka program malaikat sing nglindhungi sampeyan supaya ora dipecat. Ing cendhak, iki piranti lunak sing ngawasi owah-owahan ing kode, mbangun lan mbukak tes ditulis kanggo sampeyan. Yen kabeh apik sawise saben commit / gabung, banjur mbangun cemlorot karo cahya ijo / biru sing nyenengake. Sanalika sampeyan break soko, sistem CI bakal langsung laporan. Nanging, teori sethitik - iki klasik! Integrasi Terus-terusan: Ngapikake Kualitas Piranti Lunak lan Ngurangi Risiko dening Paul Duvall . (alias "Integrasi Terus-terusan" ing basa Rusia) Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 10Buku iki malah mbahas nggawe sistem CI sampeyan dhewe. Ayo goleki rong solusi sing paling populer ing wilayah iki.

Jenkins

Jenkins, aka Hudson. Bukak, loropaken, gampang kanggo nggunakake aplikasi. Kanggo luwih kenal karo Jenkins, coba ing ngisor iki:
  1. Download menyang komputer. Instal lan konfigurasi JDK, Maven, ANT lan kabeh sing dibutuhake kanggo proyek kasebut.
  2. Nggawe Proyek pisanan lan nemtokake lokasi proyek, contone, pom.xml utama. Jalanake, priksa manawa sampeyan duwe sawetara jinis tes supaya katon jelas.
  3. Sinau kanggo mbukak proyek kanthi setelan lan opsi sing beda.
  4. Pasang macem-macem plugin lan deleng cara kerjane bebarengan karo proyek sampeyan.
  5. Nggawe pemicu kanggo macem-macem proyek. Nggawe pipa cilik.
  6. Jelajahi DSL lan coba gabungke karo Jenkins.
  7. Nggawe budak saka komputer liyane lan / utawa nggawe mesin biasa kanggo mbangun.
  8. Nggawe mbangun wengi.
Saka buku, mung maca Jenkins: The Definite Guide dening John Ferguson Smart . Pandhuan sing jelas kanthi akeh gambar. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 11

TeamCity

Ya, TeamCity ora gratis, nanging deleng manawa digabungake menyang ekosistem produk JetBrains. Intellij Idea lan TeamCity minangka kesatuan sing apik. Umumé, yen sampeyan wis kenal karo Jenkins, TeamCity ora bakal dadi alas peteng kanggo sampeyan, lan kosok balene. Tinimbang budak - agen, pemicu sing padha lan liya-liyane. Nanging ora kaya Jenkins, TeamCity duwe fitur sing nggumunake kaya, contone, remote run, uga dikenal minangka komitmen sing wis diuji, statistik visual sing luwih akeh lan liya-liyane. Aku seneng banget karo pandhuan pangguna ing YouTube, sing digawe JetBrains dhewe ( Pandhuan pangguna TeamCity (Part 1 saka 9) - Pambuka ). Aku nemokake TeamCity dadi intuisi lan dokumentasi minangka standar sing dhuwur. Nanging yen sampeyan mikir ana buku sing kudu dipriksa, tinggalake ing komentar. Mesthi, aku wis kadhaptar mung bagean cilik saka sistem CI iki, nanging kita duwe kabeh winates ing orane katrangan. Mbokmenawa pandhuan paling apik kanggo sinau yaiku latihan. Aku diinstal ing komputer, dibukak, tabrakan / mulihake mbangun lan banjur turu. Banjur sampeyan bisa nggawa buku rekaman kanthi aman (yen sampeyan pengin :).

Sistem Kontrol Versi

Ora ana gunane ngomong babagan VCS. Iku mung sing kudu, lan tanpa manajemen proyek bakal kaya jaman Mesozoic. Kaya sistem CI, ayo goleki rong solusi sing paling populer: Git lan SVN.

Git

Git kita wis mbuktekake dhewe minangka sistem kontrol versi distribusi sing stabil. Mulai sinau saka kene lan bukak kabeh bab karo Git sing wis dikonfigurasi. Banjur ana seri apik saka tutorial interaktif saka Code School. Ana uga pandhuan singkat saka wong-wong mau sing disebut Try Git: Code School . Saka buku aku bisa menehi rekomendasi Kontrol Versi karo Git dening Jon Loeliger Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 12 Yen sampeyan wis biasa karo penyu (TortoiseSVN, cathetan penulis) lan wedi karo konsol, mesthine sampeyan bisa ngundhuh TortoiseGit analog, nanging, miturut pendapatku, luwih nyenengake lan estetis Solusi kasebut minangka produk saka Atlassian - SourceTreeApp. Sampeyan bisa latihan karo repositori remot, amarga ana cukup layanan host ing Internet. Yen sampeyan pengin, olahraga lokal. ora? Banjur nggawe akun ing GitHub lan bisa ing mode lengkap: nggawe saperangan saka commits, garpu sawetara proyek opensource, apa sawetara merges antarane cabang, lan ing.

SVN

VCS liyane sing padha populer yaiku SVN. Sistem iki ora bisa gumunggung distribusi. Saben wong duwe pendekatan dhewe, pro lan kontra. Priksa manawa sampeyan maca obrolan sing menarik antarane wong anyar lan pangguna SVN . Ana buku gratis saka read-bean.com kanthi terjemahan Rusia. Kursus mini saka TutorialsPoint uga bakal migunani banget . Aja kantun situs web Apache resmi subversion.apache.org . Klien sing paling menarik kanggo aku yaiku TortoiseSVN sing kasebut ing ndhuwur. Antarane buku, siji bisa nyorot: Kontrol Versi karo Subversion dening Michael Pilato . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 13Aku disenengi iku amarga mbayar manungsa waé kanggo administrasi server SVN dhewe. Muga-muga aku ora kantun poin utama.

Piranti tes

Iku apik kanggo ngerti ing proyek kothak wedhi cilik apa tes unit, integrasi lan tes regresi. JUnit Teori tes unit uga diterangake ing buku saka artikel sadurunge. Khususe, Clean Code malah nggambarake junit minangka salah sawijining perpustakaan populer ing wilayah iki. Nanging nalika nerangake JUnit khusus, ana buku cilik sing disebut Praktis Unit Testing karo JUnit lan Mockito dening Tomek Kaszanowski Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 14 Mesthi, ana liyane saka mung JUnit lan Mockito. Ing kene penulis ngenalake Matchers, nawakake conto tes parameterisasi, lan kanthi cepet ngliwati TDD. Ana uga buku sing mentas metu. Iki Pragmatic Unit Testing in Java 8 dening Jeff Langr. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 15 Penulis ngenalaken Hamcrest, njlèntrèhaké Best Practices, lan, mesthi, Jawa 8. Sampeyan bisa kanthi aman maca sawise buku Tomek. Miturut cara, babagan TDD. Aku ora pengin mundhakaken holivar apa iku worth nggunakake wong, apa iku apik utawa ala, apa pelanggan kudu wong. Cukup elinga: kerja ing TDD ora anyar, lan akeh proyek nggunakake metodologi iki, lan kanggo akeh wong iku mung aturan sing ora bisa dibantah. Ing teori, sampeyan bisa maca klasik. Kent Beck - Test Driven Development: Miturut Conto . Sing paling disenengi yaiku babagan pola TDD. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 16Kaget, ana kursus pisanan sing apik - Ayo Muter TDD (200 video!) ing Youtube. Ora kurang menarik diskusi Fowler dhewe bab apa iku worth nggunakake TDD, apa ngrusak desain, lan liya-liyane. Mung elinga iki sapisan lan kanggo kabeh: TDD ora nggawe desain ala, sampeyan nggawe. Yen sampeyan nggunakake BDD luwih (siji ora ngganggu liyane) lan, contone, nggunakake Timun ing project, banjur iki pesawat rada beda. Buku sing apik babagan iki yaiku Manning BDD in Action: Pengembangan sing didorong prilaku kanggo kabeh siklus urip piranti lunak dening John Ferguson Smart . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 17Miturut cara, John Ferguson Smart aktif promosi topik iki kanggo massa. Yen sampeyan Scrum Master utawa PM sing pungkasanipun ora natoni mripate, nanging seneng ndeleng nalika-yen-banjur tes, banjur dadi manawa kanggo tindakake John ing Twitter . Babagan Timun, deleng implementasine Jawa ing situs resmi lan maca buku The Cucumber Book: Behavior-Driven Development dening Matt Wayne . Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 18

perpustakaan pihak katelu

Penting supaya bisa nggunakake perpustakaan populer yen perlu - nyederhanakake urip saben dinane saben pangembang Jawa. Solusi populer kalebu ing ngisor iki: Joda Time. Nawakake kanthi lengkap ngganti Tanggal lan Wektu asli sing ora trep karo JodaTime sing luwih trep. Iki minangka referensi sing apik . Elinga yen sampeyan wis nggunakake Java 8, JodaTime ora bakal mbantu. Kasunyatan iku API DateTime anyar wis rampung diganti perpustakaan iki, lan ing sawetara panggonan malah pinter disalin lan nempel. Miturut artikel penulis dhewe , saben kelas Joda bisa gampang diganti karo analog saka java.time. Google Jambu. Akeh cara, Jawa 8 malah ngganti Jambu. Obyek sing padha, Stream API, Predikat Jawa lan akeh liyane sing menehi saran kanggo ngganti lan ora nggunakake. Aku mbaleni, yen sampeyan ora duwe Jawa 8, ora ana sing luwih apik tinimbang pandhuan iki lan tangan langsung.

Apache Commons

monster iki ora supaya gampang kanggo menehi hasil karo: bab 40 perpustakaan kanggo kabeh kesempatan, saka commons.lang kondhang kanggo xml validasi, saka DBUtils kanggo commons.io . Alamiah, sampeyan ora perlu kanggo njaluk kenalan karo kabeh, nanging buku Cookbook lan tutorial bakal migunani kanggo duwe karo sampeyan. Contone, kanggo ngerti apa Apache Commons, sampeyan bisa ndeleng ing Jakarta Commons Cookbook dening Timothy O'Brein. Pandhuan kanggo pangembang Jawa mangsa ngarep.  Perusahaan - bagean 1 - 19

Kesimpulan

Enterprise dadi jembar sing bakal bodho miwiti ngrembug JavaEE lan frameworks liyane tanpa kabeh sing ngubengi Enterprise iki. Mulane, ing bagean kapindho kita bakal fokus ing saben lapisan arsitektur multitier, nimbang layanan lan ing. Maturnuwun sanget atas perhatiannya. Pungkasan bagean pisanan. Bagean seri sadurunge:
  1. Pandhuan kanggo pangembang Jawa mangsa ngarep. Basa Jawa
  2. Pandhuan kanggo pangembang Jawa mangsa ngarep. Kode elegan
Asli karo DOU
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION