Rumah  >  Artikel  >  Java  >  Mencelup ke dalam Projek Java

Mencelup ke dalam Projek Java

Patricia Arquette
Patricia Arquetteasal
2024-11-03 09:05:30155semak imbas

Untuk sumbangan Hacktoberfest terakhir saya, saya telah mengusahakan projek yang dipanggil Bytechef. Bytechef ialah penyepaduan API kod rendah dan platform automasi aliran kerja. Ia membolehkan anda berinteraksi dengan senarai besar perkhidmatan yang disokong melalui API mereka dengan menambah dan menyambungkan pelbagai komponen untuk mencipta aliran kawalan yang boleh menggunakan respons daripada API.

Dipping Into a Java Project bytechefhq / bytechef

Penyepaduan API sumber terbuka, kod rendah, platform automasi aliran kerja & aliran kerja. Integrasikan organisasi anda atau produk SaaS anda dengan mana-mana API pihak ketiga

Dipping Into a Java Project

Platform automasi aliran kerja dan penyepaduan API

Laman Web - Dokumentasi - Discord - Twitter

Dipping Into a Java Project Dipping Into a Java Project

KEMASKINI: ByteChef sedang dalam pembangunan aktif. Kami berada di peringkat alfa, dan beberapa ciri mungkin hilang atau dilumpuhkan.

Dipping Into a Java Project

Apakah itu ByteChef?

ByteChef ialah sumber terbuka, kod rendah, penyepaduan API boleh dilanjutkan dan platform automasi aliran kerja. ByteChef boleh membantu anda sebagai:

  • Penyelesaian automasi yang membolehkan anda menyepadukan dan membina aliran kerja automasi merentas apl SaaS, API dalaman dan pangkalan data anda.
  • Penyelesaian terbenam yang disasarkan secara eksplisit untuk produk SaaS, membolehkan pelanggan anda menyepadukan aplikasi yang mereka gunakan dengan produk anda.

Ciri Utama

  • Editor Aliran Kerja UI Intuitif: bina dan gambarkan aliran kerja melalui editor UI dengan menyeret dan melepaskan komponen serta menentukan hubungannya.
  • Aliran Kerja Didorong Peristiwa & Berjadual: mengautomasikan aliran kerja dipacu peristiwa berjadual dan masa nyata melalui definisi pencetus mudah.
  • Kawalan aliran berbilang: gunakan julat pelbagai kawalan aliran seperti keadaan, suis, gelung, setiap satu, selari, dsb.
  • Kod Terbina Dalam…
Lihat di GitHub

Tugas saya ialah menambah ciri baharu pada komponen untuk perkhidmatan pangkalan data yang dipanggil Baserow. Ciri yang perlu saya usahakan ialah "tindakan" (iaitu fungsi komponen) yang membenarkan komponen mengemas kini baris dalam pangkalan data.

Baserow - Kemas kini tindakan Baris #1645

Dipping Into a Java Project
monikakuster disiarkan pada

Laksanakan tindakan Baris Kemas Kini untuk komponen Baserow untuk membenarkan pengguna mengubah suai baris tertentu dalam jadual dalam pangkalan data Baserow mereka.

Sifat tindakan:

  • id jadual - id jadual yang anda ingin kemas kini barisnya
  • id baris - id baris yang ingin anda kemas kini
  • nama_bidang_pengguna - Boolean yang menunjukkan sama ada nama medan yang dikembalikan oleh titik akhir ini hendaklah nama sebenar medan
  • medan - peta medan dan nilai baharunya untuk jadual. Sifat ini menentukan data yang akan dikemas kini dalam baris, membenarkan pengguna menukar berbilang medan dalam satu operasi.

Output:

  • baris - objek baris dikemas kini yang mengandungi semua medan data dan nilai yang dikaitkan dengan baris dalam jadual yang ditentukan

Rujukan Dokumentasi: https://baserow.io/api-docs

</div>
<div class="gh-btn-container"><a class="gh-btn" href="https://github.com/bytechefhq/bytechef/issues/1645">View on GitHub</a></div>


Saya telah menggunakan Java dengan sangat minima sebelum mendaftar untuk isu ini. Saya hanya pernah melakukan program JavaFX kecil sebagai sebahagian daripada kursus sekolah, tetapi saya ingin mengetahui lebih lanjut. Saya telah mempelajari sedikit sebanyak pada masa saya sendiri jadi saya mempunyai beberapa tahap kebiasaan dengan konsep seperti pakej, pengubah suai akses, kebergantungan dan Gradle, yang merupakan alat binaan yang digunakan oleh projek itu. Mengetahui perkara ini pasti menjadikan ia lebih kurang menakutkan untuk menyertai projek ini. Saya memahami struktur projek kerana saya telah mengetahui cara projek Gradle terdiri daripada subprojek dan subpakej masing-masing dengan konfigurasi binaan yang berbeza.

Rakan sekelas saya Arina menyedari kami berdua sedang mengerjakan projek yang sama, dan dia cukup baik hati memberi saya beberapa petunjuk dengan memautkan kepada dokumentasi pembangun untuk menambahkan komponen dan kepada tindakan yang telah ditentukan untuk komponen itu, yang bermaksud saya tidak perlu melihat sendiri repositori untuk mencari fail/direktori yang berkaitan. Tetapi jika saya terpaksa, saya akan menggunakan git grep, carian kod GitHub atau carian IntelliJ. Saya menggunakan git blame untuk menyemak sejarah komponen yang akan saya kerjakan dan melihat bahawa semuanya telah dibangunkan dalam satu komit.

Dokumen penyumbang projek sangat mudah diikuti dengan arahan terperinci yang dibentangkan langkah demi langkah. Tetapi projek itu nampaknya sangat muda - saya perhatikan beberapa fail README yang baru sahaja berkata // TODO.

Saya cuba menyusun dan menjalankan program sebelum saya membuat perubahan untuk melihat cara ia berfungsi, tetapi ia adalah proses yang kasar. Berikut ialah imbasan nota yang saya ambil:

Dipping Into a Java Project

Selepas ia selesai menyusun (telah mengambil masa lebih sejam), saya menjalankannya supaya saya boleh menyemak komponen sedia ada. Saya cuba membuat akaun untuk menggunakan klien tetapi ia tidak membenarkan saya, jadi saya kembali ke dokumen penyumbang dan mendapati bahawa ia disertakan dengan akaun pentadbir yang boleh digunakan untuk pembangunan, yang saya fikir dicipta apabila anda menjalankan docker -karang.

Setelah saya log masuk, saya cuba membuat komponen Baserow, tetapi pelanggan agak perlahan jadi saya secara tidak sengaja membuat pendua. Apabila saya cuba memadamkannya, pelanggan membeku, jadi saya menekan muat semula, dan mula mendapat ralat pelayan dan pelanggan tamat masa. Saya cuba memulakan semula pelayan dan pelanggan tetapi ia mengambil masa yang lama - pada pandangan saya ia akan mengambil masa sejam lagi. Selepas menunggu kira-kira 16 minit, saya memanggilnya semalam dan memutuskan untuk mengusahakannya kemudian.

4 hari kemudian

Saya takut untuk kembali ke projek ini dan terpaksa berhadapan dengan masa penyusunan selama sejam tetapi dengan Hacktoberfest semakin hampir tamat saya tidak mempunyai banyak pilihan. Jadi bayangkan saya terkejut apabila projek dibina tanpa ralat dan siap dan berjalan dalam masa kurang daripada lima minit. Apa yang berubah? Saya tidak tahu.

Jadi saya melompat pada pelanggan dan menemui komponen Baserow.

Dipping Into a Java Project
Rajah - Komponen Baserow dan tindakan sedia ada padanya

Untuk menambah tindakan Buat Baris, saya perlu melihat dokumentasi API Baserow, yang dipautkan kepada saya oleh penyelenggara. Saya terpaksa membuat akaun Baserow untuk melihat dokumen yang saya fikir agak ganjil tetapi ia juga bukan masalah besar.

Jadi saya menguji tindakan sedia ada, "Buat Baris", dan menghadapi pepijat di mana seluruh halaman bertukar menjadi mesej ralat. Saya fikir saya telah memasukkan nilai yang tidak dijangka tetapi saya kemudiannya mendapati pepijat ini telah dijejaki oleh isu berasingan yang tidak berkaitan dengan saya.

Pada percubaan ujian berikutnya, tindakan Cipta Baris berjaya, jadi saya memutuskan bahawa ia adalah calon yang baik untuk mengkaji untuk mencuba dan memahami cara tindakan dibuat. Saya mengikuti bersama dengan merujuk silang isu, tindakan sedia ada dan dokumen penyumbang.

Saya mengetahui bahawa tindakan dibuat dengan mentakrifkan parameter input yang diperlukan, skema output dan kaedah yang menentukan proses sebenar tindakan yang dilakukan.

Dalam tindakan Buat Baris, saya melihat terdapat kaedah untuk mendapatkan medan untuk baris jadual, yang digunakan untuk mentakrifkan parameter input. Saya sedar saya boleh menggunakan ini dalam tindakan saya, tetapi ia dinamakan seolah-olah ia hanya bertujuan untuk digunakan untuk tindakan Buat Baris. Saya fikir ia masuk akal untuk digunakan, jadi saya terus menggunakannya dan memutuskan untuk memberitahu penyelenggara.

Apabila membaca dokumen API Baserow, saya mengetahui bahawa untuk mengemas kini baris anda menggunakan kaedah HTTP yang dipanggil "PATCH", yang saya tidak tahu kewujudannya. PATCH adalah seperti PUT tetapi bukannya menggantikan sumber, ia mengubah sebahagiannya. Perkara yang menarik.

Jadi saya perlu menulis tindakan saya, dan saya dapat mengangkat hampir keseluruhan kod daripada tindakan sedia ada. Saya hanya perlu membuat sedikit pelarasan pada parameter yang diterimanya (saya menambah ID baris untuk mengenal pasti baris untuk dikemas kini), skema output dan kaedah yang dipanggil (menukar titik akhir dan kaedah HTTP). Untuk membenarkan ID baris saya perlu menambah pemalar pada fail dalam pemalar/ subdirektori yang mengandungi semua pemalar yang berkaitan dengan komponen Baserow.

Saya perasan semua fail kod sumber sedia ada mempunyai pengepala lesen, jadi saya menyalinnya ke dalam fail saya juga. Saya mengatur import saya, memformatkan kod saya dan sudah tiba masanya untuk mengujinya secara manual.

Pada ketika ini saya perasan perihalan untuk tindakan Buat Baris (yang sudah wujud) adalah salah - ia mengatakan ia mencipta baris dalam pangkalan data sampel dalam Baserow yang dirujuk dengan nama dan bukannya hanya mengatakan anda boleh mencipta sebaris. Saya membuat nota untuk menyebut perkara ini kepada penyelenggara juga:

Dipping Into a Java Project
Rajah - Penerangan yang salah untuk komponen Cipta Baris

Tindakan saya muncul dalam diri pelanggan dan secara visual semuanya kelihatan baik:

Tajuk dan penerangan dipaparkan:
Dipping Into a Java Project

Sifat (iaitu parameter input) muncul:

Dipping Into a Java Project

Aliran kerja berjalan dengan jayanya dan saya menerima respons yang berjaya:

Dipping Into a Java Project

Dan jadual telah dikemas kini dalam akaun Baserow saya:

Dipping Into a Java Project

Saya berpuas hati dengan perubahan saya jadi saya meneruskan dan menjalankan pemformat dan ujian, tetapi ujian gagal, kerana salah satu ujian menjangkakan Komponen Baserow hanya mempunyai satu tindakan padanya. Saya mengemas kini ujian untuk menampung tindakan baharu saya, dan menjalankan skrip yang menjana dokumentasi secara automatik untuk komponen tersebut. Semasa menjalankan semula ujian, mereka lulus, tetapi saya masih perlu menambah ujian unit untuk tindakan saya. Saya melihat ujian unit untuk komponen sedia ada dan dibiarkan menggaru kepala. Saya memutuskan bahawa saya telah mencapai kemajuan yang baik, jadi saya memanggilnya sehari, membuka draf PR dan memberitahu penyelenggara tahu tentang isu yang saya perhatikan.

Keesokan harinya

Walaupun ujian sedia ada kelihatan menakutkan, saya tidak mempunyai banyak pilihan selain menambah satu untuk tindakan saya juga, jadi saya kembali dan cuba memahami apa yang berlaku dalam ujian sedia ada. Saya melihat sedikit perpustakaan ujian yang digunakan - JUnit Jupiter dan Mockito. Saya cuba memecahkannya sedikit demi sedikit dan menggunakan LLM untuk membantu saya memahami perkara yang berlaku pada setiap baris. Tetapi sejujurnya, saya masih mempunyai pemahaman yang samar-samar tentang apa yang sedang berlaku. Saya tahu saya mengejek API Baserow dan memanggil kaedah tindakan saya padanya, tetapi itu adalah tahap pemahaman saya.

Nampaknya, ia sudah cukup bagus. Saya menandai PR saya sedia untuk semakan, dan penyelenggara menerima perubahan saya! Mereka memberikan beberapa maklum balas - saya terlupa mengikuti beberapa bahagian aliran penyumbang walaupun saya telah membacanya. Untuk kali seterusnya, saya harus menyemak dokumen penyumbang sebelum membuat permintaan tarik.

Buat tindakan Baris Kemas Kini untuk komponen Baserow #1656

Dipping Into a Java Project
uday-rana disiarkan pada

Penerangan

Membetulkan #1645

Jenis perubahan

  • Ciri baharu (perubahan tidak pecah yang menambah fungsi)
  • Perubahan ini memerlukan kemas kini dokumentasi

Bagaimana Ini Telah Diuji?

  • Diuji dengan ujian definisi BaserowComponentHandler, yang dikemas kini untuk menampung tindakan baharu.
  • Tindakan yang diuji secara manual melalui pelanggan:

Dipping Into a Java Project

Dipping Into a Java Project

Dipping Into a Java Project

Senarai semak:

  • [x] Kod saya mengikut garis panduan gaya projek ini
  • [x] Saya telah melakukan semakan kendiri kod saya sendiri
  • [ ] Saya telah mengulas kod saya, terutamanya dalam kawasan yang sukar difahami
    • Tiada ulasan yang dianggap perlu kerana tindakan sedia ada tidak termasuk ulasan sama ada
  • [x] Saya telah membuat perubahan yang sepadan pada dokumentasi
  • [x] Perubahan saya tidak menjana amaran baharu
  • [x] Saya telah menambah ujian yang membuktikan pembetulan saya berkesan atau ciri saya berfungsi
  • [x] Ujian unit baharu dan sedia ada lulus secara setempat dengan perubahan saya
Lihat di GitHub

Saya mendapati persediaan awal dan menulis ujian adalah bahagian yang paling menakutkan dalam isu ini. Sebenarnya menambah ciri adalah mudah berbanding. Tetapi perkara yang saya dapati sangat menarik tentang isu ini ialah saya dapat menyumbang kepada projek dalam bahasa yang saya tidak begitu faham, terima kasih kepada dokumen yang diselenggara dengan baik dan kod yang mudah difahami.

Dan itu adalah PR terakhir saya untuk Hacktoberfest 2024! Catatan ringkasan akan datang tidak lama lagi!

Atas ialah kandungan terperinci Mencelup ke dalam Projek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn