JavaRush /Blog Jawa /Random-JV /Kepiye tes wawancara dadi perpustakaan sumber terbuka

Kepiye tes wawancara dadi perpustakaan sumber terbuka

Diterbitake ing grup
Halo kabeh, komunitas JavaRush! Sedikit tentang diriku sendiri: Aku wis kerja dadi Java Software Engineer wiwit musim semi 2016. Aku seneng teka ing kene lan ngrampungake masalah sing ora dakrampungake sajrone sinau. Dina iki aku bakal ngandhani babagan perpustakaan - Perbandingan Gambar . Iki minangka perpustakaan open source sing kasedhiya kanggo umum ing GitHub . Kepiye tugas tes wawancara dadi perpustakaan sumber terbuka - 1Tujuwan saka artikel iki yaiku kanggo ngandhani yen nggawe produk open source ora mung mbuwang wektu, ora! Iki minangka pengalaman sugih sing digambar saka macem-macem sisi, nalika sampeyan duwe kontrol kabeh proses pangembangan, nalika sampeyan kudu nyelidiki saben rinci. Open Source punika donya watara sampeyan. Aku ora guyon, nalika ana perpustakaan iki, aku komunikasi karo wong saka macem-macem negara, kayata Amerika Serikat, India, China, Mesir, Rusia, Jerman, Ukraina, Swedia, New Zealand, Norwegia. Yaiku, iki minangka pengalaman nyata ing pembangunan bebarengan, nemokake kompromi, mriksa kode, lan liya-liyane. Iki minangka pambuka, saiki ayo miwiti kanthi urutan:

Tes. Wiwit Agustus 2017

Iku kabeh diwiwiti kanthi kasunyatan yen aku duwe wawancara karo salah sawijining perusahaan, ing ngendi langkah pisanan yaiku nulis tugas tes. Tugas kasebut yaiku nulis kode sing bakal mbandhingake rong gambar kanthi ukuran sing padha, golek bedane, klompok lan tarik persegi panjang. Ana gambar pisanan:
Kepiye tugas tes wawancara dadi perpustakaan sumber terbuka - 2
Ana gambar kapindho:
Kepiye tugas tes wawancara dadi perpustakaan sumber terbuka - 3
Sampeyan kudu nemokake beda lan bunder kaya ing ngisor iki:
Kepiye tugas tes wawancara dadi perpustakaan sumber terbuka - 4
Kaya sing sampeyan ngerteni, ana bedane ing kolom Jeneng pangguna , sing dibunderake kanthi segitiga abang. Katrangan luwih rinci babagan tugas . Aku mutusake yen aku pengin nindakake ora mung kanthi bener saka sudut pandang fungsional, nanging uga apik, supaya ora isin. Kanggo nindakake iki, aku mutusake yen aku bakal nerbitake iki minangka proyek ing GitHub . Aku wis suwe kepengin sinau GitHub lan entuk pengalaman nggarap. Sawise dipikir cepet, aku nemokake manawa bakal luwih apik kanggo nambah layanan pihak katelu kanggo nganalisa kualitas kode, ngasilake jangkoan kode kanthi tes, lsp. Nambahake alat ing ngisor iki:
  • Codacy - kualitas kode. Iku pancene worth mbayar manungsa waé kanggo.

  • Travis CI minangka alat CI (integrasi terus-terusan) sing mbangun proyek, nganakake tes lan ngandhani manawa proyek kasebut sukses dibangun. Contone, yen salah sawijining tes ora lulus amarga owah-owahan anyar, mula bakal ujar manawa proyek kasebut gagal lan bakal menehi warna abang.

  • Coveralls minangka alat sing nuduhake persentase kode sampeyan sing diliputi tes.

  • BetterCode Hub minangka alat liyane kanggo nganalisa kualitas kode. A bab banget migunani sing ora mung bakal pitutur marang kowe apa ala, nanging uga njlèntrèhaké kok lan menehi link menyang buku ngendi sampeyan bisa gain kawruh bab iku.

Saben layanan kasebut nduweni lencana dhewe kanthi asil data, kayata proyek jangkoan kode. Lan badge iki bisa ditambahake ing gambaran utama proyek - file README. Tugas wis siap - Aku dikirim kanggo review. Sawise review, aku langsung, saka memori seger, nggawe Masalah Github kanggo saben komentar , sing banjur bakal mbantu aku nambah proyek iki. Ora ana tugas perbaikan saka majikan, mula aku lali babagan proyek kasebut ...

Path Pustaka. Juli 2018

Logo

Ing sawijining wektu, aku nemokake manawa wong asring ngunjungi proyekku, lan iki kedadeyan saben dina. Aku gumun karo iki, lan luwih kaget amarga kira-kira setaun sabanjure ana MASALAH digawe, sing ditulis manawa desainer grafis tartamtu nawakake aku nggawe logo kanggo proyekku. Dheweke ujar manawa dheweke seneng nindakake iki kanggo produk Opensource lan bakal ditindakake kanthi gratis. Kita miwiti kolaborasi. Sawetara opsi diusulake, nanging pungkasane kita mutusake:
Kepiye tugas tes wawancara dadi perpustakaan sumber terbuka - 5
Aku isih enom lan ora kenal karo komunitas opensource, lan nyatane tawaran kaya ngono pancen ora nyenengake lan aku takon, kenapa dheweke nindakake iki? Kanggo kang mangsuli: "Lolz oh, mung sabab aku tresna contributing kanggo mbukak proyèk sumber. Jenis bab gol urip ... "( Jeksa Agung bisa ngetokake dhewe kene ). Nalika iku aku pisanan felt carane gedhe iku nalika wong beda nemokake sampeyan liwat proyèk open source lan nawakake kuwi menarik!

Cacat sisih pisanan

Aku ngeweruhi sing pangembang tartamtu saka China digawe Jeksa Agung bisa ngetokake kanggo kula , kang diterangake yen dheweke wis ketemu cacat ing karya perpustakaan, yen sampeyan nggunakake gambar gedhe, sampeyan njaluk StackOverflowError . Wong lanang mutusake kanggo njupuk kauntungan lan nemokake kesalahan. Lan aku ora mung nemokake. lan uga nulis babagan dheweke. Iki minangka langkah anyar ing pangembangan perpustakaan. Kajaba iku, aku ora duwe solusi. Ing titik tartamtu, salah sawijining penguji saka Rusia ngusulake solusi. Nanging mentahan lan ora digawe kanthi bener lan aku ora nampa. Lan nalika wektune nerbitake perpustakaan ing Maven Central, perlu kanggo ngatasi masalah iki, aku ora pengin nerbitake. Kajaba iku, ana cacat liyane sing ora nate dakwenehi lan uga nyebabake rasa ora nyaman.

Panggunaan Command Line. Autumn 2018

Tahap pangembangan sabanjure yaiku komunikasi karo wong Swedia (Renato Athaydes), sing pengin nggunakake perpustakaan liwat baris printah lan iki perlu kanggo nggawe sawetara owah-owahan lan tambahan. Aku maneh gumun lan kaget karo iki. Sawise desainer grafis nulis marang aku, kagetku rada kurang, nanging isih dhuwur banget. Pikiran manawa ana wong sing mbutuhake kodeku ngisi perasaan sing luar biasa. Dheweke nggawe owah-owahan sing dibutuhake lan nyiapake kode kasebut. Aku nindakake review kode, yaiku, aku ndeleng owah-owahan, ana komentar sing diganti lan owah-owahan wis ana ing perpustakaan. Aku ditetepake owah-owahan iki minangka versi v2.0. Langkah sabanjure kanggo nambah perpustakaan kanggo Maven Central - gudang tengah, saka ngendi sampeyan bisa ngundhuh kanggo proyek sembarang lan digunakake minangka katergantungan. Ing wektu iku, aku ora ngerti carane nindakake iki, malah mbatalake, supaya aku ngandika sibuk lan takon kanggo nindakake kabeh langkah sing perlu kanggo nyetel project. Nanging iki ternyata ora cukup lan sing paling menarik yaiku nyiyapake sambungan karo Maven Central. Iki pain alam bébas, kang aku ora bisa nindakake pisanan, lan iku mung ing 15. April aku bisa nerbitaké project ing Maven Central. Ora gampang, nanging kaya sing dikandhakake wong liya, "saben wong sing pengin nerbitake kode Jawa bakal ngalami iki." Sadurunge nerbitake perpustakaan, pungkasane aku nemokake apa lan kepiye carane cacat sing wis suwe saya suwe lan ngrilis versi anyar v2.0.2 , ing ngendi aku matur nuwun marang kabeh wong sing mbantu aku, nerangake apa lan kepiye carane aku nindakake. .

Publishing kanggo Maven Central. Spring 2019

Kanggo nerbitake perpustakaan kanthi bener, sampeyan kudu ngerti babagan versi lan cara nyetel versi kanthi bener. Aku bakal tetep ing skema iki:
  • XX.YY.BBBB , ngendi XX nganyari versi utama sing entails owah-owahan sing ora kompatibel karo sadurunge (contone, ngganti asil bali ing cara);
  • YY minangka nganyari cilik - owah-owahan internal utawa ekspansi sing ora ngganti BBBB - iki minangka cacat sing wis didandani.
  • Contone, versi 2.0.2 tegese versi utama 2, ora ana nganyari cilik, lan ana rong nganyari kanggo cacat.
Sabanjure, penting kanggo nemtokake cara nyetel groupId lan artifactId kanthi bener . Padha kudu dipilih sapisan lan digunakake luwih. Lan padha nggawe paket sing kode disimpen. Ana: ua.comparison.image Saiki: com.github.romankh3.image.comparison Lan iki jelas luwih apik, amarga kabeh wong ngerti yen iki minangka proyek saka GitHub lan bisa ditemokake saka wong kanthi julukan romankh3. Nalika aku kabeh iki, Aku dirilis v2.1.0 versi anyar .

Komunikasi karo Swedia. Mei 2019

Sawise aku nerbitake perpustakaan, wong Swedia liyane (Mika Kytöläinen) ngirim email marang aku lan njaluk kancane supaya ngganti perpustakaanku. Dheweke ujar manawa dheweke pancen butuh iki lan dheweke bakal seneng banget yen kita nindakake lan nindakake kanthi cepet. Mesthi, aku ora nglawan owah-owahan sing dibutuhake. Dheweke disaranake nambah konfigurasi kekandelan baris sing ndudohke persegi dowo. Kaya, kanggo sing duwe sesanti miskin, iki bakal dadi owah-owahan migunani. Disiapake kode . Duwe ditambahaké sawetara owah-owahan liyane, Aku dirilis v2.2.0 versi

Komunikasi karo wong Jerman. Mei 2019

Sawise iki, siji wong Jerman nggawe masalah sing ujar manawa dheweke pengin digunakake kanggo tes, nanging ora ana fungsi. Dheweke nggawe akeh usulan-usulan sing menarik banget, dheweke menehi saran supaya ora mung ngasilake gambar sing diasilake kanthi asil minangka asil perbandingan, bali sakumpulan data: apa sing dibandhingake, asil (yen perlu) lan negara sing ana. bakal MATCH, MISMATCH, SIZE_MISMATCH. Malah nggawe owah-owahan. Nanging dheweke ora nggatekake kode sadurunge lan digawe kanthi cepet. Aku nolak wong-wong mau lan nawani kanggo nindakake kaya sing dakkarepake. Senadyan iki, dheweke nanggapi luwih akeh lan aku mutusake yen aku bakal nindakake dhewe lan ngeculake versi anyar. Ing wektu sing padha, Mika Kytöläinen ngusulake fungsi liyane sing menarik - nambah area sing ora bakal kalebu ing perbandingan kasebut. Iki kasus nyata. Lan kabeh iki dirilis ing v3.0.0

Gunakake ing proyek nyata

Ing pungkasan Mei, penguji otomatis saka Kyiv nulis marang aku, sing dadi kasengsem ing perpustakaan lan pengin digunakake ing proyek nyata sing ngasilake dhuwit. Iku terobosan! Nggunakake nang endi wae ing pet-proyek iku siji bab, nanging nggunakake ing project nyata prakara temen beda. We rembugan apa lan cara kerjane. Aplikasi kasebut menarik banget: ing aplikasi kasebut, dheweke duwe cek sing dicithak lan kudu dipriksa manawa cek kasebut digawe miturut cithakan tartamtu lan ora owah. Nanging ana masalah sing bagean kayata tanggal lan wektu tansah diganti lan kudu digatèkaké. Kita wis nambahake fungsi kanggo nglirwakake sawetara wilayah, nanging isih mentahan kanggo panggunaan nyata lan kita isih kerja bareng sajrone pirang-pirang minggu babagan iki. Asil ana release saka versi v3.1.1

Nggoleki Niche

Sawise iku, aku nyadari yen niche nyata kanggo perpustakaanku digunakake ing tes. Kanggo nindakake iki, aku mutusake kanggo golek sawetara jinis forum kanggo penguji lan nulis kanggo wong-wong mau babagan iki supaya entuk umpan balik lan nambah ketenaran. Aku nemokake forum basa Rusia lan nerbitake artikel ing kana: Organisasi gambar testing - comparison of two similar . Ing aku nampa saran nyata ing kode lan fungsi, kang Applied lan dirilis v3.2.0 versi anyar , lan banjur v.3.3.0 .

Saiki

Perpustakaan saiki duwe 60 bintang ing Github lan duwe 33 garpu. Aku iki kelangan banget, considering sing aku ora ningkataké ing sembarang cara kajaba artikel ing forum kanggo automators. Matur nuwun kanggo kabeh sing maca nganti pungkasan. Bener dadi artikel sing luwih dawa tinimbang sing dakkarepake. Artikel babagan carane nerbitake perpustakaan menyang Maven Central. Yen sampeyan duwe apa-apa kanggo nambah, nulis! Yen sampeyan duwe saran kanggo nambah perpustakaan, nulis! Aku bakal maca kabeh lan nyawisake wektu sing tepat. Sapa wae sing seneng karo artikel kasebut lan nemokake migunani - menehi rating lan tulis ing komentar. Uga, langganan akun github romankh3 Deleng uga artikelku liyane:
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION