-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
untuk Devkit, Fitur-fitur bahasa pemrograman yang dibutuhkan antara lain :
- Mendukung Asynchronous
- Mendukung database sqllite maupun mysql/mariadb
- Bisa melakukan SSH
- Mendukung Interaksi dengan Windows System
- Mendukung Scheduling.
- Mendukung Selenium untuk membuat auto login.
Dari Kebutuhan diatas bahasa pemogramann yang cocok adalah python.
kenapa php tidak terpilih, alasannya antara lain
- Asynchronous Programming: PHP tidak mendukung asynchronous secara native. Meskipun ada pustaka seperti Swoole atau ReactPHP yang memungkinkan pemrograman async, integrasinya lebih kompleks dan tidak sebaik dukungan async bawaan di Python dengan FastAPI atau Node.js.
- Integrasi dengan Selenium: PHP bisa digunakan untuk memanggil Selenium, tetapi ini tidak umum dan akan memerlukan skrip eksternal. Biasanya, bahasa seperti Python lebih disarankan untuk otomatisasi browser karena memiliki dukungan lebih baik untuk Selenium.
- SSH: PHP bisa melakukan koneksi SSH dengan pustaka seperti phpseclib, tetapi ini tidak semudah dan sefleksibel pustaka SSH di Python seperti Paramiko.
- Dukungan Cross-platform: Meskipun PHP bisa berjalan di Windows dan Linux, interaksi dengan sistem operasi khusus (seperti membuka aplikasi di Windows atau melakukan operasi latar belakang) bisa terbatas dibandingkan Python.
dari kekurangan php sangat tidak direkomendasikan. untuk itu python lebih cocok untuk kebutuhan ini.
python memiliki banyak framework, salah satunya adalah FastAPI.
Kelebihan FAstAPI antara lain :
- Asynchronous Support: FastAPI mendukung asynchronous secara native, membuatnya cepat dan efisien dalam menangani banyak permintaan secara paralel.
- Database: Gunakan ORM async seperti Tortoise ORM atau SQLAlchemy untuk koneksi ke MySQL atau SQLite.
- SSH: Untuk koneksi SSH, gunakan pustaka Paramiko.
- Interaksi dengan Windows System: Dengan menggunakan pustaka subprocess atau os, Anda dapat membuka aplikasi dan menjalankan command.
- Scheduling: Gunakan pustaka seperti APScheduler untuk menambahkan dan mengelola schedule task di dalam aplikasi.
untuk frontend dipilih javascript menggunakan vue 3.
kelebihannya antara lain :
- Komunikasi API yang Mudah: Vue 3 dapat berkomunikasi langsung dengan FastAPI melalui AJAX (menggunakan axios atau fetch) untuk mengambil dan mengirim data, sehingga memungkinkan pembuatan aplikasi Single-Page Application (SPA) yang cepat dan interaktif.
- Pengelolaan State: Vue memiliki opsi pengelolaan state seperti Vuex atau Pinia, yang mempermudah sinkronisasi data antara komponen, memungkinkan aplikasi frontend yang lebih terstruktur dan efisien.
- Frontend-Backend Separation: Dengan menggunakan Vue 3 di frontend dan FastAPI di backend, aplikasi Anda dapat diatur dengan arsitektur frontend-backend yang terpisah. Ini membuat pengembangan lebih modular dan memungkinkan Anda mengembangkan dan mengelola frontend secara independen dari backend.
- Routing yang Lancar: Vue Router mempermudah pembuatan dan pengelolaan rute frontend untuk SPA, menjadikan navigasi aplikasi lebih cepat dan mulus tanpa perlu reload halaman dari server.
alasan kenapa tidak dipakainya laravel :
- Tumpang Tindih Fungsi Backend: Laravel dirancang untuk mengelola tugas backend (seperti autentikasi, pengelolaan data, validasi, dan logika bisnis). Jika backend sudah ditangani oleh FastAPI, Laravel akan menjadi berlebihan karena fungsi-fungsi backend sudah ditangani FastAPI.
- Kompleksitas dan Overhead: Laravel menggunakan server-side rendering, yang membuatnya kurang ideal sebagai frontend. Laravel memerlukan server PHP, konfigurasi Blade templates, dan routing tambahan yang dapat memperlambat dan mempersulit arsitektur aplikasi jika hanya digunakan untuk frontend.
- Tidak Optimal untuk SPA: Vue 3 lebih fleksibel dan efisien untuk membuat Single-Page Application (SPA) atau aplikasi frontend interaktif. Laravel bisa membuat SPA dengan tambahan pustaka seperti Inertia.js, tetapi itu masih bukan use case utama Laravel. Vue 3 langsung bekerja dengan API FastAPI melalui AJAX atau GraphQL tanpa perlu layer tambahan.
- Ekosistem Frontend Modern: Vue 3 memiliki ekosistem dan alat khusus frontend, seperti Vue Router dan Pinia (atau Vuex). Alat ini dirancang khusus untuk mengelola tampilan, state, dan routing aplikasi SPA dengan cara yang efisien, sedangkan Laravel tidak memiliki fitur serupa untuk pengembangan frontend murni.
Metadata
Metadata
Assignees
Labels
No labels