Satu File Ini Memperbaiki Environment Dev Saya (Devbox)
BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00readme Anda membohongi Anda, katanya pengaturan butuh lima menit, lalu node salah, python salah
00:00:07postgres hilang, docker butuh waktu lama, dan sekarang kita debugging sebelum mulai
00:00:13lingkungan pengembangan Anda tidak boleh ada di readme, seharusnya ada di git, itulah gunanya devbox
00:00:20satu file json devbox, satu perintah devbox shell, lingkungan yang sama untuk setiap developer tanpa instalasi global
00:00:28dan tidak perlu pengetahuan nix, biarkan saya tunjukkan
00:00:30awalnya devbox terlihat terlalu sederhana, Anda membuat devbox json, lalu mencantumkan peralatan yang dibutuhkan proyek
00:00:42node, go, python, postgres, apa pun yang sebenarnya dibutuhkan stack Anda, lalu Anda commit file itu, maka orang lain bisa
00:00:50menjalankan devbox shell dan mereka mendapatkan lingkungan yang sama dengan Anda, versi, alat, skrip yang sama, tanpa instalasi
00:00:58global, tanpa "tolong instal delapan hal ini dulu", tanpa state homebrew dari tahun lalu, pengaturan Anda
00:01:03berhenti hidup di ingatan seseorang, tapi mulai hidup di repo Anda, itu terdengar kecil, tapi jika Anda pernah
00:01:09kehilangan setengah hari untuk debugging pengaturan lokal yang rusak, Anda tahu ini tidak kecil, jika Anda menikmati
00:01:16alat koding untuk mempercepat alur kerja Anda, pastikan untuk subscribe, kami punya video baru setiap saat
00:01:20sekarang kita mulai dari sini, saya akan mulai dengan proyek kosong, saya akan membuat folder baru
00:01:25kita sebut devbox demo, kita masuk ke folder tersebut, dan saat sudah punya devbox, yang perlu dilakukan hanya menjalankan
00:01:31devbox init, devbox membuat file bernama devbox json, saat ini isinya hampir kosong, hanya boilerplate
00:01:39yang diberikan devbox, sekarang mari tambahkan alat yang sebenarnya dibutuhkan proyek ini, untuk menambah alat kita bisa
00:01:45membuat devbox add dan saya akan menginstal hal-hal seperti go, node.js, dan python, nah ini bagian
00:01:52pentingnya, saya tidak menginstal ini secara global, saya tidak mengubah node sistem, saya tidak menyentuh sistem
00:02:00saya dengan python, alat-alat ini milik proyek ini sekarang, saat saya menjalankan devbox shell dan saya berada dalam lingkungan
00:02:09proyek yang bersih, sekarang setelah berada di lingkungan ini, Anda bisa memeriksa versinya, go version, node
00:02:14version, python version, ya saya bisa memeriksa semuanya untuk memastikan semuanya berjalan, nah itu hasil besarnya
00:02:19proyek meminta alat spesifik, devbox memberikan alat tersebut, sekarang mari tambahkan skrip dan di dalam devbox
00:02:27json kita bisa mendefinisikan tes dan saya hanya akan meng-echo "menjalankan tes" dan saya akan mendapatkan node
00:02:34dan versi go saat Anda menjalankan devbox run test, dan sekarang perintah yang sama berfungsi untuk siapa pun yang menggunakan repo ini
00:02:42skrip yang sama, alat yang sama, lingkungan yang sama, sekarang lihat apa yang terjadi saat saya keluar, Anda bisa menjalankan exit
00:02:48Anda akan meninggalkan lingkungan itu dan saya kembali ke lingkungan mesin normal saya, jadi itu sangat
00:02:53sederhana bukan? jadi apa yang sebenarnya dilakukan devbox? nah, devbox menggunakan nix di dasarnya, nix hebat karena
00:03:00ia dibuat untuk reproduktibilitas, alih-alih mengatakan "instal apa pun yang terbaru hari ini"
00:03:06ia bisa mematok (pin) alat tepat yang dibutuhkan proyek Anda, nah itu bagian bagusnya, bagian sulitnya adalah
00:03:12bahwa nix terasa seperti dunia yang benar-benar baru, ada banyak konsep yang hebat tapi tidak begitu
00:03:18ramah saat yang Anda inginkan hanyalah versi node yang tepat, devbox menunjukkan kepada kita sesuatu yang berbeda
00:03:23di sini ia berkata "bagaimana jika kita tetap mempertahankan reproduktibilitas tapi membuat alur kerjanya terasa normal?", jadi daripada
00:03:29menulis ekspresi nix, Anda bisa menggunakan perintah seperti devbox add, devbox search, shell, run, services, semua
00:03:37perintah ini jauh lebih sederhana dan proyek Anda mendapatkan dua file penting, Anda mendapatkan file json dan
00:03:44lock file, anggap devbox json sebagai apa yang dibutuhkan lingkungan kita, anggap devbox lock file sebagai pin untuk mematok
00:03:52tepat apa yang Anda dapatkan, Anda commit keduanya, sekarang lingkungan Anda bukan hanya paragraf di file readme
00:03:58itu adalah bagian dari proyek yang sebenarnya, devbox bekerja di mac os, linux, dan wsl, bisa terintegrasi dengan vs code, bisa
00:04:06mendefinisikan skrip, bisa mengelola layanan seperti database, dan saat Anda butuh, ia bisa mengekspor ke hal seperti
00:04:12docker, dev containers, dan alur kerja ci, nilai dari ini bukan sekadar alat keren, melainkan alat yang sangat sederhana, nilainya
00:04:19menurut saya adalah waktu, masalah pertama adalah readme, bukan? readme bisa menulis apa saja, bisa
00:04:26menulis "hei instal node 18" tapi aplikasinya sudah berubah dan benar-benar butuh node 20, masalah kedua
00:04:32yang terbantu oleh ini adalah onboarding, ini hari pertama Anda bekerja, seharusnya mudah untuk memulai
00:04:37kita tahu kenyataannya tidak begitu, bukan? jadi Anda tidak perlu bertanya "versi node mana yang saya butuhkan?", Anda tidak perlu
00:04:43menghubungi seseorang "hei versi python berapa yang kita pakai?", "apa saya benar-benar perlu postgres secara lokal?" dan kenapa
00:04:48ini hanya berfungsi untuk si timmy kecil di sana? mereka seharusnya hanya perlu melakukan clone repo, masuk ke shell,
00:04:52dan menjalankan proyeknya, jika ada yang rusak setidaknya semua orang memulai dari lingkungan yang sama, masalahnya
00:04:58adalah polusi global, mencoba peralatan seharusnya tidak merusak laptop Anda, Anda ingin go 1.22 untuk repo ini Anda menambahkannya,
00:05:06Anda ingin node 20 di sini tapi yang lain di tempat lain, oke tidak masalah, alat-alat tersebut hidup bersama proyek, sistem Anda
00:05:13tetap lebih bersih dengan devbox, definisi lingkungan Anda bisa dibagikan antara pengembangan lokal
00:05:18dan otomatisasi, apakah itu memperbaiki setiap masalah ci? tidak, tidak akan, tapi itu menghilangkan sebagian besar masalah
00:05:26bodoh dan masalah bodoh adalah yang paling menyakiti kita, mereka sederhana tapi kita selalu mengalaminya sepanjang
00:05:32waktu, terakhir di sini ada docker, alur kerja docker lokal yang berat, lebih spesifiknya, docker masih hebat, sejauh ini jika
00:05:40Anda perlu kontainer gunakanlah kontainer, tapi banyak tim menggunakan docker secara lokal karena mereka tidak punya cara yang lebih baik
00:05:46untuk mengelola alat, sekarang apa yang bagus di sini adalah alur kerjanya sangat sederhana, devbox add, shell, run, Anda
00:05:52tidak harus belajar terlalu banyak, lingkungan menjadi bagian nyata dari proyek Anda, file nyata
00:05:57di repo, saat semua orang menggunakan versi dan skrip yang sama, debugging menjadi lebih mudah, tapi itu hebat
00:06:03super sederhana, apa yang akan mengganggu Anda adalah, yah, unduhan nix pertama kali, itu butuh waktu lama untuk mengunduh
00:06:09tidak apa-apa, itu hanya pertama kalinya, oke json sederhana tapi bisa jadi jelek seperti yang kita tahu jika kita menambah terlalu banyak
00:06:15hal ke dalamnya, untuk skrip dasar tidak masalah, untuk logika pengaturan yang kompleks jangan menjejalkan perintah shell raksasa ke json
00:06:22cukup masukkan logikanya ke file sh, lalu panggil dari devbox, dan terakhir devbox bukan ide cloud penuh
00:06:30jika Anda butuh koding berbasis browser, url pratinjau instan, Anda mungkin masih menginginkan sesuatu seperti codespaces
00:06:36devbox paling baik untuk reproduktibilitas lokal dan ci, devbox tidak akan menyelesaikan setiap masalah pengembangan
00:06:42tapi bisa menyelesaikan yang paling membuat kita kesal, yaitu hanya membuat proyek bisa
00:06:46berjalan, jadi bisa dicoba, terutama jika proyek Anda memiliki lebih dari satu bahasa atau lebih dari
00:06:51satu alat cli, jika Anda menikmati alat koding seperti ini pastikan untuk subscribe ke saluran better stack, kami
00:06:56akan bertemu Anda di video lain.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video