Baekjoon için bir JavaScript/TypeScript framework’ü geliştiriyorum
(github.com/lumirlumir)Merhaba!
Baekjoon algoritma problemlerini JavaScript ve TypeScript ile çözerken hissettiğim çeşitli rahatsızlıkları gidermek için, bananass adlı Baekjoon’a özel açık kaynaklı bir JavaScript/TypeScript framework’ü geliştiriyorum.
Lisans yıllarımda sorunları çoğunlukla C++ ile çözdüğüm için Baekjoon ortamı bana çok rahatsız edici gelmiyordu. Ancak frontend geliştiricisi olarak çalışırken problemleri JavaScript ve TypeScript ile çözmek istemeye başladım; işe koyulunca da her seferinde karmaşık girdi işleme, güncel sözdizimi kısıtları ve test edememe gibi büyük küçük pek çok sınırlamayla karşılaştım.
Bu yüzden bu rahatsızlıkları iyileştirmek adına, Next.js’in uygulama yaklaşımından ve boj-cli projesindeki çeşitli CLI komutlarından ilham alarak, JavaScript ekosistemine uygun yalın ve sezgisel bir algoritma çözüm ortamını doğrudan kendim oluşturmak istedim.
React, ESLint, Next.js gibi çeşitli frontend açık kaynak projelerine bizzat katkı yaparken edindiğim deneyimlere dayanarak bunu olabildiğince detaylı hazırlıyorum ve JavaScript/TypeScript kullanıcıları için gerçekten faydalı bir araç olmasını istiyorum.
Şu ana kadar hayata geçirdiğim başlıca özellikler şunlar:
- JavaScript ve TypeScript desteği.
- ESM (
ECMAScript Module) ve CommonJS modül sistemi desteği. - Baekjoon’un Node.js ortamından bağımsız olarak
ES16/ES2025gibi güncel sözdizimi desteği. - Kullanıcı tanımlı modüller ve
lodashgibi harici kütüphaneleri içe aktarma desteği. - Programmers’daki gibi tek bir
solutionfonksiyonuyla başlama desteği. - Test case yazma ve çalıştırma desteği.
create-bananassile başlama desteği.fsmodülü kullanarak daha hızlı girdi/çıktı desteği.- Kullanım kolaylığı için çeşitli CLI komutları desteği.
- Yerleşik ESLint ve Prettier desteği.
Şu anda resmi sürüm öncesinde test kodları ve dokümantasyon üzerinde çalışıyorum; yakında beta sürümünü yayımlamayı planlıyorum.
Eğer JavaScript veya TypeScript ile Baekjoon problemleri çözerken yaşadığınız rahatsızlıklar ya da “şöyle bir özellik olsa iyi olurdu” dediğiniz fikirler varsa, GitHub issue veya discussions üzerinden ya da bu yazıya yorum olarak rahatça paylaşabilirsiniz!
Küçük fikirler bile gerçekten çok yardımcı oluyor! Mümkün olduğunca aktif biçimde yansıtıp birlikte daha iyi bir problem çözme ortamı oluşturmak istiyorum.
Proje bağlantıları
-
Resmî dokümantasyon: https://bananass.lumir.page
Henüz yorum yok.