Derleme süresi ekibin zamanıdır: on iki dakikalık bir hat, her küçük değişiklikte on iki dakikalık bir düşünme molası demektir. Geçen çeyrekte biz de aynı duvara tosladık ve süreyi üç kalıpla yarıya indirdik: önbellek, paralel yürütme ve erken çıkış. Hiçbiri sihirli değil; üçü de aynı soruya cevap veriyor — gerçekten gerekmeyen işi neden yapıyoruz?
Önbellek: Aynı işi iki kez yapmayın
Bağımlılık indirmesi, derleme çıktıları, konteyner katmanları — CI'ın en pahalı üç işi çoğu zaman değişmemiş verilerle uğraşır. Paket önbelleği tek başına bile kurulum adımını dakikalar saniyelere indirir. Kritik olan önbellek anahtarını dürüst seçmektir: kilit dosyasına dayanan bir anahtar, her dalda soğuk önbellek acısını bitirir. Aynı mantık derleme çıktılarına ve Docker katmanlarına da uygulanır; değişmeyen modülü yeniden derlememek, monorepo'larda dakikaların dakikasına kazançtır.
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
Paralel: Beklemeyi bölün
Lint, tip denetimi ve birim testleri birbirini beklemiyorsa aynı anda koşmalı. İşleri tek sıraya dizmek yerine bağımsız işlere bölmek, toplam süreyi en yavaş işin süresine indirir. Bölmenin bedeli iyi seçilmiş bir iş bölümüdür: çok konuşan iki adımı tek işte birleştirin, uzun test süitini parçalara ayırıp dağıtın. Kural basittir — iş başına tek sorumluluk, adım başına tek amaç. Dört işe bölünmüş on dakikalık bir süit, iyi dağıtılmışsa üç dakikada biter.
Erken çıkış: Pahalı adımı sona bırakmayın
Hata ısrar kalıptır: yanlış tırnak, bozuk import, eksik ortam değişkeni. Bu hatalar ilk on saniyede yakalanabilecekken on beş dakikalık test turunun sonunda ortaya çıkıyorsa, hat boşuna koşmuş demektir. Ucuz kontrolleri başa alın; lint ve tip denetimi ilk adım olsun, ağır uçtan uca testler sona kalsın. Bir adım başarısız olduğunda kalanını atlamak terbiyesizlik değil, matematiktir.
# Ucuz kontroller önce: hata varsa pahalı adımlar hiç başlamaz
npm run lint || exit 1
npm run typecheck || exit 1
npm test
Üç kalıp bir araya geldiğinde on iki dakikalık hattımız beşe indi. Dakikalar, günde kırk derlemede saatlere dönüşür; saatler ise geliştiricinin akışını korur. İyi CI hattı görünmez olandır: geliştirici beklerken fikrini değiştirmez, bağlamını kaybetmez. Bu üç kalıp, hattınızı o görünmezlik eşiğine taşımak için en az efor en çok getiri getiren ayarlardır — ve en güzeli, hepsi birer öğleden sonralık iş.
Kazanımı korumanın da bir yolu var. Hızlandırdıktan iki ay sonra adımlar sessizce şişmeye başlar: bağımlılık ağacı büyür, süite yavaş bir test sızar, önbellek anahtarı yanlışlıkla genişler. Bu yüzden adım sürelerini haftalık gözden geçiren küçük bir alışkanlık kurun; üç aylık ortalamanın iki katına çıkan adım, hattın değil o adımın sahibinin problemidir. Aynı gözden geçirme, dalı kırmadan önce yavaş adımı silen geliştiricinin de farkına varmanızı sağlar. Hattı bir kez hızlandırmak bir zaferdir; hızlı tutmak ise bir disiplin — ikisi de gerekiyor, çünkü dakikalar geri gelmeye her zaman hazırdır.
Okur Yorumları (0)