Git Lanjutan: Monorepo, Submodul dan Aliran Kerja · Pelajaran

Mengoptimumkan Prestasi Binaan dan Pengujian

Gunakan caching, pelaksanaan jauh dan binaan berperingkat untuk mengurangkan masa binaan serta pengujian dengan ketara dalam monorepo besar.

Pelajaran 2 daripada 411 langkah

Mengoptimumkan Prestasi Binaan dan Pengujian ialah pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja merangkumi sejumlah 4 pelajaran.

Binaan Lebih Pantas, Maklum Balas Lebih Cepat

Selamat datang! Dalam repositori tunggal yang besar, masa binaan dan ujian boleh menjadi halangan utama. Gelung maklum balas yang perlahan menjejaskan produktiviti pembangun dan boleh melambatkan keluaran.

Pelajaran ini akan menunjukkan cara mempercepat proses tersebut dengan ketara melalui teknik pengoptimuman lanjutan.

Cabaran Prestasi Repositori Tunggal

Mengapakah repositori tunggal sering menghadapi masalah prestasi?

  • Skala: Satu repositori boleh mengandungi ratusan projek.
  • Kebergantungan antara satu sama lain: Perubahan kecil dalam satu projek mungkin menjejaskan banyak projek lain.
  • CI tradisional: Sering membina semula dan menguji semula semuanya pada setiap komit, yang sangat tidak cekap.

Memperkenalkan Penyimpanan Cache Binaan

Bayangkan komputer anda mengingati output tepat bagi tugas yang baru dilakukannya. Itulah penyimpanan cache binaan!

  • Ia menyimpan hasil (artifak) daripada perintah binaan atau ujian terdahulu.
  • Jika input, seperti kod dan konfigurasi, tidak berubah, ia menggunakan semula output yang disimpan.
  • Hal ini mengelakkan kerja berulang dan menjimatkan banyak masa.

Penyimpanan Cache Setempat dalam Tindakan

Alat repositori tunggal seperti Nx dan Turborepo melaksanakan penyimpanan cache setempat secara automatik. Apabila anda menjalankan perintah, alat tersebut akan menyemak cache setempat terlebih dahulu.

Jika hasil cache wujud untuk input yang sama tepat, hasil itu diambil serta-merta dan bukannya menjalankan semula tugas.

# First run (may be slow)
npm install
nx build my-app

# Second run (instant, cached)
nx build my-app

Mengembangkan Skala dengan Penyimpanan Cache Jauh

Penyimpanan cache setempat sangat berguna untuk pembangun individu, tetapi pasukan memerlukan lebih daripada itu. Penyimpanan cache jauh berkongsi artifak binaan yang dicache ini dengan semua orang!

  • Jika sesuatu projek telah dibina atau diuji oleh rakan sepasukan atau CI, anda boleh memuat turun hasil cache tersebut.
  • Ini bermakna lebih sedikit binaan dari awal untuk seluruh pasukan dan saluran paip CI/CD yang lebih pantas.

Binaan Berperingkat: Perintah Terjejas

Mengapa membina semula keseluruhan aplikasi bahagian hadapan jika anda hanya mengubah API bahagian belakang? Di sinilah binaan berperingkat berguna.

Perintah ini juga dikenali sebagai perintah "terjejas" dan mengenal pasti serta memproses hanya projek yang terkesan oleh perubahan kod terkini anda.

Cara Binaan Berperingkat Berfungsi

Alat repositori tunggal mencipta graf kebergantungan – peta yang menunjukkan hubungan antara semua projek anda.

Apabila anda membuat perubahan, alat tersebut menggunakan graf ini untuk menentukan secara bijak:

  • Projek yang diubah suai secara langsung.
  • Projek lain yang bergantung pada projek yang diubah suai.

Hanya projek "terjejas" ini kemudiannya dibina atau diuji.

# Run tests only for projects affected by recent changes
nx affected:test

# Build only affected libraries
turborepo run build --filter="[HEAD^...]"

Mengagihkan Kerja: Pelaksanaan Jauh

Walaupun dengan penyimpanan cache dan binaan berperingkat, sesetengah tugas memerlukan pengiraan yang sangat berat. Pelaksanaan jauh membantu dengan mengagihkan sebahagian daripada perintah binaan atau ujian kepada beberapa mesin.

Hal ini menukarkan satu tugas yang berjalan lama kepada banyak tugas kecil yang berjalan secara selari dan selesai dengan lebih pantas.

Manfaat Pelaksanaan Jauh

Pelaksanaan jauh meningkatkan prestasi dengan ketara melalui:

  • Pensejajaran: Menjalankan banyak tugas secara serentak.
  • Penskalaan sumber: Memanfaatkan sumber awan atau ladang binaan khusus.
  • Maklum balas lebih pantas: Mendapatkan hasil binaan dan ujian dengan lebih cepat.

Teknik ini amat berkesan untuk set ujian yang besar dan langkah penyusunan yang kompleks.

Uji Pemahaman Anda

Teknik yang manakah memfokuskan penggunaan semula output tugas terdahulu untuk mengelakkan kerja berulang, dengan andaian input tidak berubah?

Imbas Kembali: Optimumkan Repositori Tunggal Anda!

Anda telah mempelajari strategi berkesan untuk mengoptimumkan prestasi binaan dan ujian dalam repositori tunggal:

  • Penyimpanan Cache Binaan: Menyimpan dan menggunakan semula hasil tugas terdahulu, sama ada secara setempat atau jauh.
  • Binaan Berperingkat: Menggunakan graf kebergantungan untuk hanya memproses projek yang terkesan oleh perubahan.
  • Pelaksanaan Jauh: Mengagihkan beban kerja berat kepada beberapa mesin untuk pemprosesan selari.

Penguasaan teknik ini penting untuk mengekalkan produktiviti pembangun dalam mana-mana repositori tunggal yang sedang berkembang.

Percuma untuk bermula

Pelajari Git Lanjutan: Monorepo, Submodul dan Aliran Kerja dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Mengoptimumkan Prestasi Binaan dan Pengujian” percuma?

Ya — teks penuh “Mengoptimumkan Prestasi Binaan dan Pengujian” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja, tingkat taraf kepada CoddyKit PRO. Kursus Git Lanjutan: Monorepo, Submodul dan Aliran Kerja merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mengoptimumkan Prestasi Binaan dan Pengujian”?

Gunakan caching, pelaksanaan jauh dan binaan berperingkat untuk mengurangkan masa binaan serta pengujian dengan ketara dalam monorepo besar. Anda berlatih Git Lanjutan: Monorepo, Submodul dan Aliran Kerja menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Git Lanjutan: Monorepo, Submodul dan Aliran Kerja?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Mengoptimumkan Prestasi Binaan dan Pengujian” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja ini?

Ya. Setiap pelajaran Git Lanjutan: Monorepo, Submodul dan Aliran Kerja menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pemilikan Kod dan Kawalan Akses
  2. Mengoptimumkan Prestasi Binaan dan Pengujian
  3. Strategi Migrasi Monorepo
  4. Pengurusan Kebergantungan dan Pembuatan Versi dalam Monorepo
← Kembali ke Git Lanjutan: Monorepo, Submodul dan Aliran Kerja