JavaRush /Blog Jawa /Random-JV /Sawijining dina ing urip pangembang Jawa. Bagean 1
alex8894
tingkat
Санкт-Петербург

Sawijining dina ing urip pangembang Jawa. Bagean 1

Diterbitake ing grup
Salam, kanca-kanca sing dikasihi! Sawise publikasi " 20+ Years Later ", sawetara sing maca njaluk kelanjutane crita kasebut. Apa maneh sing bisa dakkandhakake? Iku misale jek sing aku wis kebak dijamin topik ngowahi "bearded enikey" menyang pangembang Jawa. Sampeyan bisa nggawe sawetara kesimpulan ora luwih awal tinimbang sawise setahun kerja. Banjur aku mutusake kanggo nggambarake kepiye dina kerja sing khas. Ing potongan "Sawijining dina ing urip pangembang Jawa." Nalika aku isih enom, aku seneng turu. Nalika aku enikey, aku kelakon turu nganti awan lan teka kerja jam telu, utawa malah jam setengah telu. Saben-saben aku nanggapi panjaluk periodik manajemen kanggo "teka kaya wong liya," yaiku, jam 9, kanthi cara sing padha saben-saben-padha ngomong, aku kudu nggarap komputer nalika aku ora ngganggu sapa wae. Iku muter. Nanging kanthi umur, ketoke, ana sing owah ing awak, lan saiki aku luwih "lark" tinimbang "burung hantu wengi". Mulane saiki aku teka kerja dhisik (utawa salah siji sing pisanan). Dina iki aku pisanan, lan aku duwe setengah jam utawa jam kasepen nganti liyane, kurang "manuk awal" nyekel. Dina iki wektu kanggo ngrancang. Aku berkembang ing Linux Mint. Aku seneng tombol Start, andhap asor lan elegan, ora kaya kothak iki. Manajer desktop Cinnamon ora kakehan karo efek visual, nanging babagan polesan rada kalah karo MacOS, sing mesthi standar ing perkara iki. Iku gampang kanggo mbandhingaké, ana Mac ing meja sabanjuré, desainer UX digunakake konco. Aku uga meh ora keluhan babagan OS dhewe: kerjane kanthi cepet lan stabil banget, aku mung reboot kaping telu sajrone wektu iki - nalika aku mateni komputer sajrone preian dawa. Bener, uga mbukak meh langsung, malah layar cipratan ora duwe wektu kanggo katon, amarga kabeh komputer pangembang dilengkapi karo drive SSD. Kaping pisanan, aku mbukak klien email Thunderbird, surat teka ing kana kanthi informasi babagan owah-owahan ing kaca sing narik kawigaten ing wiki (ana setelan lan spesifikasi), nanging sing paling penting yaiku kabar saka tracker. Apa kedadeyan sing menarik kanggo kita? Oh, dheweke bali saka nyoba fitur sing wis rampung wingi, kayane nemokake bug. Inggih, inggih punika. Aku kudu ndandani sanalika bisa, mungkin aku bakal duwe wektu sadurunge tester teka lan dheweke bakal langsung ndeleng koreksi sadurunge dheweke entuk "konstruksi sing durung rampung". Sing pisanan kanggo dina iki. Dadi, iki babagan "konstruksi sing durung rampung", sing daktulis sajrone sprint pungkasan. Kayane wektu iki dheweke kasil nahan kabeh bunderan nerakaorane tumrap sekolah saka testing lan dina iki, mbokmenawa, iku kudu digabung menyang cabang utama project. Nanging sing bakal teka mengko, sawise nedha awan. Malah dina iki kita kudu bisa ing devops lan nganyari ngadeg saka cabang kang pembangunan saiki lagi ditindakake, kita kudu nuduhake fungsi anyar. "Kanthi kekuwatan gedhe tanggung jawab gedhe," printah sudo nampilake bebaya sadurunge menehi hak istimewa root. Ing terjemahanku sing rada longgar, ukara iki kaya mangkene: "luwih akeh sing bisa ditindakake, luwih akeh sing kudu ditindakake." Mula, ora nggumunake, yen aku sing duwe "cap administrator", asring nampa tugas "wates". Inggih, ayo miwiti. Wingi aku nggarap fitur liyane, lan saiki aku kudu bali menyang cabang sing ana bug. Pangguna Windows biasane seneng kabeh jinis cangkang grafis lan nggunakake Turtle (TortoiseGit), nanging kanggo aku luwih gampang lan luwih akrab liwat baris perintah. Umumé, baris printah ing Linux minangka karya cilik, luar biasa wicaksana lan kuat, utamané ing kombinasi karo Midnight Commander. Kita ngalih, saiki kita kudu mbangun maneh proyek kasebut. Aku ngetik printah gradle resik bokong. Aku ora ngerti apa printah iki Originally dimaksudaké dening penulis gradle utawa digawe dening kasempatan, nanging mung ngresiki lan mbangun maneh project (bokong cendhak kanggo ngumpul, lan ora apa pisanan nerangake atine). Ing javarush, gradle kasebut mung sedhela, minangka "lan sistem mbangun liyane." Ya, gradle ora duwe kaluwihan tinimbang maven kanggo ngrakit proyek pendidikan. Umume tutorial lan cara-cara ing internet uga nggunakake maven. Muncul lan popularitas gradle sing saya tambah akeh amarga tambah cepet ing kerumitan bangunan proyek modern. Proyèk kang aku melu kasusun saka sawetara rolas komponen, ngendi backend ditulis ing Jawa, frontend ing Javascript, lan tes ing Python. Miturut cara, saiki, ngrakit proyek Javascript minangka proses sing kapisah lan rumit, sing malah duwe jeneng - Alur Kerja Web, lan wit dependensi ana meh kaya ing Jawa. Inggih, paling sampeyan ora perlu kanggo ngumpul komponen Python, uga, meh ora perlu ... Sawise perakitan lan diluncurake (sing uga non-trivial), sampeyan kudu ngunggahake lan initialize karo data test kabeh lingkungan karo relasional. lan database NoSql, antrian pesen lan cache ing memori. Banjur kabeh iki kudu dirakit maneh lan mbukak ing server CI, lan banjur disebarake nggunakake ansible. Ing wektu sing padha, pangembangan utamane ditindakake ing Windows, lan "pertempuran", demo, tes lan server pra-prod liyane, mesthi, ing Linux. Aku ora mbayangno carane bisa ngleksanakake kuwi ing maven, nanging cukup apik ing gradle. Kasunyatane yaiku file mbangun gradle ditulis ing Groovy. Iku basa banget lucu, padha ngandika iku salib antarane Jawa lan Ruby, nanging aku ora ngerti Ruby, nanging aku ngerti Javascript sethitik, lan akeh mbangun saka uga bisa. Pencipta gradle wis ngleksanakake API sing ing kasus-kasus prasaja file mbangun katon cukup deklaratif (lan, miturut pendapatku, luwih gampang diwaca tinimbang pom.xml Maven), nanging yen sampeyan butuh sing luwih rumit, kabeh declarativeness iki dibuwak, variabel, fungsi, kelas katon - ing tembung, kabeh fitur Groovy, kang, dening cara, bisa disusun lan kaleksanan ing JVM padha kode Jawa. Majelis kasebut dhewe, kaya sing wis dakcritakake, yaiku platform lintas, nanging sesambungan karo lingkungan, mula kudu dipriksa ing Windows uga. Kanggo nindakake iki, aku wis nginstal Windows ing mesin virtual. KVM maju kanthi cepet, lan yen sistem tamu dikonfigurasi kanthi bener, virtualisasi meh ora katon. Ya, rempah-rempah saiki ndhukung loro monitor, resolusi layar disetel kanthi otomatis, lan driver piranti paravirtualized meh ora nyebabake mundhut kinerja. Kadhangkala aku mikir yen aku ora ngrasakake bedane antarane rong platform kasebut. Nanging, Jawa minangka alat sing nggumunake sing ndadekake rong jagad sing beda-beda lan, kadhangkala, malah jagad sing musuhan luwih cedhak - jagad piranti lunak kepemilikan, retak, keygens lan serials,epitomized dening Windows lan donya mbukak sistem Linux. Dadi, proyek kasebut dirakit, kita miwiti (mesthi, uga liwat gradle) lan deleng. Inggih, ya, isin ing jenggot abu-abu, aku ora ngleksanakake salah sawijining syarat produksi, iki, ditulis kanthi ireng lan putih ing wiki. Ing pakaryan sadurunge, aku nemoni kahanan iki kanthi rutin lan tansah bingung kepiye pangembang bisa ora kejawab kabeh paragraf saka spesifikasi kasebut. Ya, gampang! Aku mikir babagan iki, fokus ing masalah liyane - lan ana bug. Mung ing kene, amarga sawetara tahap tes, dheweke bakal kejiret, nanging ing papan sadurunge - uga, apa wae sing kedadeyan. Begjanipun, karya ing kene ora bakal suwe. Aku ngluncurake Idea Ultimate, sing minangka salah sawijining produk sing dibayar kanggo pangembangan. Ing asas, sampeyan bisa njaluk dening karo Community Edition, nanging sampeyan cepet njaluk digunakake kanggo iku apik, contone, integrasi karo Spring. Sampeyan uga kudu sawetara terminal kanggo log, browser kanggo frontend lan wiki, terminal liyane karo baris printah, kabeh gerakane, blinks ... Umumé, gambar ing layar loro monitor wiwit njupuk medeni. katon, kaya sing ditampilake ing film-film murah, nggambarake kerja keras peretas. Nanging iki isih suntingan, nanging aku elinga nalika aku kudu mundhakaken lan ngatur kluster failover - pitu terminal windows, mergo ing sudhut layar, ing kabeh windows - sawetara nomer lan gambar saka ascii grafis ... Nanging Aku digress sethitik saka karya, lan wektu liwati. ... Phew, uga, kayane aku nindakake kabeh sing dibutuhake lan, kayane, aku ora ngrusak apa wae sing wis ditindakake sadurunge. Aku nambah komentar kanggo fitur lan ngirim thread kanggo testing. Aku nyoba kanggo nulis ing liyane rinci apa persis aku utawa diganti kanggo menakake karya tester. Ing proyek sadurunge, aku pancene ora kejawab panjelasan kasebut nalika aku kudu mriksa dandan sing ditampa saka pangembang. Sauntara iku, esuk lancar dadi awan, wong-wong mau alon-alon munggah. Rauh bakal ana stand up meeting, utawa ing pendapat kita, stand-up. Nyatane, dina kerja kudu diwiwiti, lan kanggo umume "burung hantu wengi" iki meh kedadeyan. Stand-up tumindak minangka wates kanggo teka ing karya sabisa; telat kanggo iku banget pundung. Inggih, kanggo kula iku kaya break. Dadi, ayo padha ngadeg. Ing stand-up, kaya biasane, para pangembang nyritakake apa sing ditindakake wingi lan apa sing bakal ditindakake dina iki, para penguji ngandhani apa sing dites lan asil apa, lan para panggedhe, jelas, apa sing bakal ditindakake sabanjure, masalah apa sing muncul lan apa sing kudu diwenehi perhatian khusus. Tim kita disebarake sacara geografis, lan pelengkap lengkap mung bisa dideleng ing stand-up (ing TV, mesthi), lan uga, bisa uga, ing acara perusahaan umum kaping pindho saben taun. Sajrone stand-up, aku kerep duwe pikiran sing bener-bener diciptakake supaya para pangembang ora santai. Nalika saben dina sampeyan kudu nuduhake kemajuan ing karya, lan ora ing laporan kertas sing mung boss sampeyan bakal maca, nanging ing ngarepe kanca-kanca, ora bakal nyoba kanggo nindakake liyane, duwe apa-apa kanggo ngomong. Mesthine, ana "proyek konstruksi jangka panjang", sing nganti pirang-pirang dina berturut-turut sampeyan mbaleni "wingi aku nindakake iki, lan dina iki aku bakal terus nindakake," nanging sanajan ana sawetara tugas penting sing terus-terusan. kecepit ing. Ing cendhak, nyata Pangembang koboi tansah duwe pitutur marang kanca-kancane. Ing stand-up aku dijaluk nganyari kanthi cepet, mula saiki aku bakal nindakake. Nalika cabang utama proyek kasebut diterbitake, nganyari digawe dening admin, nanging saiki kita kudu nerbitake fitur sing durung rampung, lan ing wektu sing padha sawetara masalah mesthi bakal muncul sing ora bisa diatasi dening admin. Stand dumunung ing pusat data, akses menyang mung bisa liwat ssh, mesthi, ora ana cangkang grafis - dadi mung baris printah, mung hardcore! Nganyari dhewe otomatis lan lancar, nanging sawise nganyari salah sawijining komponen ora diwiwiti. Aku ndeleng log kanthi printah sing kurang, kanthi cara kasebut, nduweni fungsi sing trep banget: yen sampeyan menet Shift-F, bakal terus nampilake isi file saiki, sing cocog kanggo log. Lan apa iki ... aneh? Layar wutuh tandha pitakon dipisahake karo koma. Layar kapindho, katelu, sepuluh ... Pira iku? Oh, wis rampung, ternyata dadi stacktrace. Ana sing nulis pitakon SQL karo operator IN kanggo milih cathetan sing dikarepake saka dhaptar, lan nggawe parameter kanggo saben unsur dhaptar. Kabeh bisa digunakake nganti dhaptar kasebut ngemot luwih saka 32767 unsur, sawise server SQL pungkasane ora sabar. Sampeyan kudu nulis laporan bug babagan iki, nanging iki ora ana hubungane karo masalah karo komponen sing ora bisa digunakake. Ayo katon luwih. Saiki iku cetha yen migrasi struktur database kanggo versi anyar ora liwat, misale jek sing penulis fitur diganti soko ing migrasi, lan kene, ing ngadeg, ana versi sadurungé. Sampeyan kudu mbaleni owah-owahan struktur kanthi manual, liwat sarana konsol server SQL. Kepiye carane nulis printah ing DML kanggo mbusak lapangan? indeks? tabel? Katon kaya ngono. Aku miwiti maneh komponen, migrasi dadi apik ... kabeh apik. Wis wayahe mangan awan, cuacane apik tenan. "Bola kuning padhang sing ora obah ing langit lan medeni wong kutha dadi Srengenge." Meh dina panas pisanan ing taun. Aku malah ora pengin ninggalake dalan, nanging aku kudu - wektu kanggo gabung wis nyedhak. Diterusake
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION