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.
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
Platform automasi aliran kerja dan penyepaduan API
Laman Web - Dokumentasi - Discord - Twitter
KEMASKINI: ByteChef sedang dalam pembangunan aktif. Kami berada di peringkat alfa, dan beberapa ciri mungkin hilang atau dilumpuhkan.
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…
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

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
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:
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.
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:
Rajah - Penerangan yang salah untuk komponen Cipta Baris
Tindakan saya muncul dalam diri pelanggan dan secara visual semuanya kelihatan baik:
Tajuk dan penerangan dipaparkan:
Sifat (iaitu parameter input) muncul:
Aliran kerja berjalan dengan jayanya dan saya menerima respons yang berjaya:
Dan jadual telah dikemas kini dalam akaun Baserow saya:
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

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:
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
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!

Javaispopularforcross-platformdesktopapplicationsduetoits "writeOnce, runanywhere" falsafah.1) itusesBytecodethatrunsonanyjvm-equippedplatform.2) LibrariesLikeswingandjavafxhelpcreatenativeS.3) ITseShipBareSivaryS

Alasan untuk menulis kod khusus platform di Java termasuk akses kepada ciri sistem operasi tertentu, berinteraksi dengan perkakasan tertentu, dan mengoptimumkan prestasi. 1) Gunakan JNA atau JNI untuk mengakses Windows Registry; 2) Berinteraksi dengan pemandu perkakasan khusus Linux melalui JNI; 3) Gunakan logam untuk mengoptimumkan prestasi permainan pada macOS melalui JNI. Walau bagaimanapun, menulis kod khusus platform boleh menjejaskan mudah alih kod, meningkatkan kerumitan, dan berpotensi menimbulkan risiko overhead dan keselamatan.

Java akan meningkatkan lagi kemerdekaan platform melalui aplikasi awan asli, penempatan pelbagai platform dan interoperabilitas silang bahasa. 1) Aplikasi asli awan akan menggunakan GraalVM dan Quarkus untuk meningkatkan kelajuan permulaan. 2) Java akan diperluaskan ke peranti tertanam, peranti mudah alih dan komputer kuantum. 3) Melalui Graalvm, Java akan mengintegrasikan dengan lancar dengan bahasa seperti Python dan JavaScript untuk meningkatkan interoperabilitas silang bahasa.

Sistem taip kuat Java memastikan kemerdekaan platform melalui keselamatan jenis, penukaran jenis bersatu dan polimorfisme. 1) Jenis Keselamatan Melakukan pemeriksaan jenis pada masa penyusunan untuk mengelakkan kesilapan runtime; 2) peraturan penukaran jenis bersatu adalah konsisten di semua platform; 3) Polimorfisme dan mekanisme antara muka membuat kod berkelakuan secara konsisten pada platform yang berbeza.

JNI akan memusnahkan kemerdekaan platform Java. 1) JNI memerlukan perpustakaan tempatan untuk platform tertentu, 2) Kod tempatan perlu disusun dan dihubungkan pada platform sasaran, 3) versi sistem operasi atau JVM yang berbeza mungkin memerlukan versi perpustakaan tempatan yang berbeza, 4) Kod tempatan boleh memperkenalkan kelemahan keselamatan atau menyebabkan kemalangan program.

Teknologi yang muncul menimbulkan ancaman dan meningkatkan kemerdekaan platform Java. 1) Teknologi pengkomputeran awan dan kontena seperti Docker meningkatkan kemerdekaan platform Java, tetapi perlu dioptimumkan untuk menyesuaikan diri dengan persekitaran awan yang berbeza. 2) WebAssembly menyusun kod Java melalui GraalVM, memperluaskan kemerdekaan platformnya, tetapi ia perlu bersaing dengan bahasa lain untuk prestasi.

Pelaksanaan JVM yang berbeza dapat memberikan kemerdekaan platform, tetapi prestasi mereka sedikit berbeza. 1. OracleHotspot dan OpenJDKJVM melakukan sama seperti kemerdekaan platform, tetapi OpenJDK mungkin memerlukan konfigurasi tambahan. 2. IBMJ9JVM melakukan pengoptimuman pada sistem operasi tertentu. 3. Graalvm menyokong pelbagai bahasa dan memerlukan konfigurasi tambahan. 4. AzulzingJVM memerlukan pelarasan platform tertentu.

Kemerdekaan platform mengurangkan kos pembangunan dan memendekkan masa pembangunan dengan menjalankan set kod yang sama pada pelbagai sistem operasi. Khususnya, ia ditunjukkan sebagai: 1. Mengurangkan masa pembangunan, hanya satu set kod yang diperlukan; 2. Mengurangkan kos penyelenggaraan dan menyatukan proses ujian; 3. Penyebaran cepat dan kerjasama pasukan untuk memudahkan proses penempatan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
