Yeni bir projeyi klonladığınızda ilk deneyiminiz nasıl oluyor? Klonladınız, README dosyasını açtınız, ekranı aşağı kaydırarak "Geliştirme" bölümünü bulmaya çalıştınız ve ardından hangi paket yöneticisini kullanmanız gerektiğini ya da hangi komutla testleri çalıştırabileceğinizi çözmeye çalıştınız. Peki ya bunu her seferinde farklı bir proje için yapmak zorunda kaldığınızda? Developer olmak, her seferinde README okumakla geçen saatler demek olabiliyor.
İşte tam da bu soruna kalıcı bir çözüm olarak geliştirilen Rex, proje dosyalarını tarayarak doğru komutları otomatik olarak çalıştıran bir CLI aracı. Kurulum gerektirmeyen ve sadece proje dizinine girip komut yazmanız yeterli olan bu araç, artık README okumanın sonunu getiriyor.
README okuma travmasını bitiren araç: Rex
Rex’in çalışma prensibi oldukça basit. Proje dizinine girip aşağıdaki gibi bir komut yazdığınızda:
git clone
cd proje
rex testRex, proje dizinindeki dosyaları inceleyerek hangi teknoloji yığınıyla karşı karşıya olduğunu anlıyor ve otomatik olarak doğru komutu çalıştırıyor. Örneğin:
go.moddosyası varsa Go projesi olarak algılar vego test ./...komutunu çalıştırır.package.jsonvepnpm-lock.yamlvarsa Node.js projesiyle karşı karşıya olduğunuzu anlar vepnpm testkomutunu tetikler.Cargo.tomldosyası varsa Rust projesi olarak algılar vecargo testkomutunu çalıştırır.pyproject.tomlveuv.lockvarsa Python projesiyle karşı karşıya olduğunuzu anlar veuv run pytestkomutunu çalıştırır.
Bu şekilde, 12 farklı ekosistem ve paket yöneticisini otomatik olarak algılayan Rex, projenin gereksinimlerine göre en uygun komutu seçiyor.
Monorepo destekleyen otomatik komut motoru
Monorepo projelerinde çalışırken, her alt proje farklı bir teknoloji yığınına sahip olabiliyor. Rex, monorepo yapısındaki alt dizinleri otomatik olarak algılayarak doğru komutları çalıştırabiliyor. Örneğin:
rex my-monorepoKomutunu çalıştırdığınızda, Rex aşağıdaki gibi bir çıktı verebilir:
workspace
3 alt proje algılandı:
packages/api (Node.js + pnpm)
packages/web (Node.js + pnpm)
services/auth (Go)Böylece, her alt proje için doğru komutları otomatik olarak çalıştırabilirsiniz.
Tüm projelerde tutarlı komut deneyimi
Rex’in en büyük avantajlarından biri, tüm projelerde aynı komutları kullanabilme imkanı sunması. Her ne kadar projeler farklı teknolojilerle inşa edilmiş olsa da, rex test, rex run, rex build gibi komutlar her yerde aynı şekilde çalışıyor. Bu sayede, farklı projeler arasında geçiş yaparken yaşanan komut karmaşasından kurtulabiliyorsunuz.
Rex’in desteklediği komutlar şunlar:
rex test– Testleri çalıştırırrex run– Uygulamayı ya da geliştirme sunucusunu başlatırrex build– Projeyi derlerrex deps– Bağımlılıkları yüklerrex clean– Derleme dosyalarını temizlerrex fresh– Temizleme, bağımlılık yükleme ve derlemeyi sırayla gerçekleştirirrex fmt– Kodu biçimlendirirrex lint– Kodu denetlerrex clone– Depoyu klonlar, bağımlılıkları yükler ve projeyi kullanıma hazır hale getirirrex init– Ekibiniz içinrex.tomldosyasını oluştururrex doctor– Ortam sorunlarını teşhis eder
Ekibinizle birlikte kullanabileceğiniz Rex.toml
Rex, sadece bireysel kullanım için değil, aynı zamanda ekiplerle birlikte çalışırken de büyük kolaylık sağlıyor. rex init komutunu çalıştırarak projenizin gereksinimlerine göre otomatik olarak bir rex.toml dosyası oluşturabilirsiniz. Bu dosyayı projenize ekleyerek, tüm ekip üyelerinin aynı komutları kullanmasını sağlayabilirsiniz.
Örneğin:
rex initKomutunu çalıştırdığınızda, Rex aşağıdaki gibi bir rex.toml dosyası oluşturabilir:
[commands]
test = "go test ./..."
run = "go run ./cmd/server"
build = "go build ./..."
deps = "go mod download"
fmt = "gofmt -w ."
lint = "go vet ./..."Bu dosyayı projenize ekleyerek, herhangi bir ekip üyesi rex test, rex run gibi komutları çalıştırdığında, projeye özel olarak tanımlanmış komutlar otomatik olarak kullanılır.
.env dosyalarını otomatik yükleme
Rex, komutları çalıştırmadan önce proje dizinindeki .env dosyalarını otomatik olarak yükler. Bu sayede, ortam değişkenlerini elle yüklemek zorunda kalmazsınız. Hem geliştirme hem de CI ortamlarında sorunsuz bir şekilde kullanılabilir.
Teknik özellikler ve avantajlar
Rex, geliştirilirken dikkat edilen birkaç önemli özelliğe sahip:
- Tek bir ikili dosya olarak sunulmakta, herhangi bir çalışma zamanı ya da bağımlılık gerektirmemekte
- Go dilinde geliştirilmiş olup, çoklu platform desteği sunmakta
- Komutların çalıştırılması 50 milisaniyeden daha kısa sürede tamamlanmakta
- Çevrimdışı olarak tamamen çalışabilmekte ve ağ çağrıları yapmamakta
- Doğru çıkış kodlarıyla birlikte gelmekte ve CI ortamlarında da sorunsuz çalışmakta
- Bash, Zsh ve Fish için kabuk tamamlamaları desteklenmekte
- Apache 2.0 lisansı altında yayınlanmakta
Rex’in sunduğu avantajlar sadece bireysel kullanıcılarla sınırlı değil. CI/CD borularında da sorunsuz bir şekilde çalışabilen Rex, geliştirme sürecini hızlandırırken aynı zamanda hataları minimize ediyor.
Rex’i yüklemek için basit adımlar
Rex’i yüklemek oldukça kolay. İşletim sisteminize göre aşağıdaki yöntemlerden birini kullanabilirsiniz:
- Homebrew (macOS/Linux):
brew tap rexrun-dev/tap
brew install rex- Go kurulumu:
go install rexrun.dev/rex/cmd/rex@latest- İkili dosyayı indirme:
GitHub’daki sürümler sayfasından uygun ikili dosyayı indirerek kullanabilirsiniz.
Sonuç: README’siz geleceğe doğru
Geliştiriciler olarak, her seferinde README okumak zorunda kalmaktan kurtulmak artık mümkün. Rex, projeleri klonlar klonlamaz doğru komutları otomatik olarak çalıştırarak, zaman kaybını minimize ediyor ve geliştirme sürecini hızlandırıyor. Monorepo projelerinde, farklı teknoloji yığınlarında ve çoklu paket yöneticilerinde bile tutarlı bir deneyim sunan Rex, geliştirme dünyasında devrim yaratma potansiyeline sahip.
Eğer siz de README okuma travmasını yaşamaktan yoruldunuzsa, Rex’i deneyin ve geliştirme sürecinizi kolaylaştırın.
Yapay zeka özeti
Rex CLI, projeyi klonlar klonlamaz doğru komutları otomatik algılayan ve çalıştıran bir araçtır. README okuma ihtiyacını sonlandırırken, 12 farklı ekosistemi destekler ve monorepo projelerinde sorunsuz çalışır.