Geliştirme yaklaşımım
Bugün CrowFORGE'un V1.1 geliştirme sürecinde, günlük yazılım üretimini doğrudan etkileyen bir dizi yeniliği tamamladım. Çalışmalarımı dosya ve bellek yönetimi, Python ortamları, kaynak kodun korunması, Git işlemleri ve uygulamanın öğrenilmesi üzerinde yoğunlaştırdım. İlk sürüm adayındaki geliştirmeleri, kullanım sırasında tespit ettiğimiz sorunlara yönelik RC2 düzeltmeleriyle birleştirdim. Amacım, kullanıcıların projelerini daha anlaşılır adımlarla oluşturabildiği, karşılaştığı sorunun nedenini görebildiği ve yaptığı değişiklikleri takip edebildiği bir geliştirme ortamı sunmak.
CrowFORGE'un ürün yönünü ve geliştirme önceliklerini belirlerken gerçek kullanım deneyimini esas alıyorum. Teknik uygulama, kod inceleme ve doğrulama çalışmalarını Codex desteğiyle yürütüyorum. Mevcut React ve TypeScript arayüzü, Electron masaüstü katmanı ve CodeMirror editör altyapısı üzerinde çalışırken bir özelliğin arayüzde görünmesinden başlayıp dosya sisteminde ürettiği sonuca kadar bütün akışı değerlendiriyorum. Bugünkü güncellemelerin önemli bir bölümü de bu katmanlar arasındaki davranışların tutarlı hâle getirilmesinden oluştu.
Dosya ve bellek yönetimi
Dosya yönetiminde ilk olarak, bazı açma işlemlerinin hâlâ kullandığı eski 1 MB dosya ve 5 MB toplam içerik sınırını düzelttim. Yerel dosya işlemlerini ortak bir sınır tanımına bağladım: RC2'de UTF-8 bayt hesabıyla düzenlenebilir bir metin dosyası 20 MB'a, uygulamadaki bütün projelerde belleğe yüklenen metinlerin toplamı 100 MB'a kadar destekleniyor. Bu toplam, proje klasörünün diskte kapladığı alanı ifade etmiyor. Klasör açıldığında önce dosya kataloğu görüntüleniyor; içerikler kullanıcı ilgili dosyayı seçtiğinde okunuyor. Mevcut katalog kapasitesi proje başına 20.000 dosya, açık çalışma alanı kapasitesi ise 30 proje olarak korunuyor.
Bellek kullanımını düzenlemek için temiz ve kapatılmış yerel dosyaların içeriklerini gerektiğinde bellekten çıkaran bir mekanizma ekledim. Kaydedilmemiş düzenlemeler, cihaz taslakları, açık sekmeler ve ikinci editörde kullanılan belgeler korunuyor. Birden fazla dosya seçildiğinde ilk dosyanın açılması, diğerlerinin dosya ağacında kalması da bu akışla uyumlu hâle getirildi. Eşzamanlı okumalarda, geçmişten içerik getirirken ve yedek içe aktarırken toplam metin bütçesinin dikkate alınmasını sağladım. Böylece sınır kontrolünü uygulamanın farklı bölümlerinde birbiriyle çelişen kurallar olmaktan çıkardım.
Büyük belgeler için ayrıca hafif editör modu geliştirdim. Belge iki milyon UTF-16 birimini aştığında minimap, satır kaydırma, dil ayrıştırması ve dil sunucusu işlemleri duraklatılıyor; düzenleme, arama ve kaydetme kullanılabilir kalıyor. Küçük bir belgeye geçildiğinde kişisel ayarlar yeniden uygulanıyor. Normal düzenleme akışında belge boyutunu her tuşta baştan hesaplamak yerine değişen metin üzerinden güncelliyoruz. Kaydedilmemiş durum kontrollerinde önbellek kullanılması, yazarken Matrix ve marka animasyonlarının kısa süre duraklaması da çalışma alanındaki gereksiz yükü azaltmak için yaptığım iyileştirmeler arasında.
Kodun korunması ve kurtarma
Dosya sisteminde özellikle üzerinde durduğum bir konu, dışarıdan değiştirilen içeriğin korunmasıydı. Yenileme sırasında okunan bir dosyanın, editör o içeriği kabul etmeden kaydetme karşılaştırmasının temelini değiştirebildiği bir durum tespit ettik. Okuma ve kabul işlemlerini iki aşamaya ayırarak düzelttim. Önce içerik okunuyor; editör tarafından benimsendiğinde ve disk durumu hâlâ uygunsa karşılaştırma temeli güncelleniyor. Boyut nedeniyle reddedilen bir okumanın veya eşzamanlı düzenleme yüzünden kullanılmayan bir yanıtın, daha sonraki kaydetmede dış değişikliğin üzerine yazılmasına izin vermemesi için bu davranışı ayrı testlerle doğruladık.
V1.1 ile eklediğim yerel çalışma kurtarma ve dosya geçmişi, bu yaklaşımın devamını oluşturuyor. Açık çalışmalar düzenli olarak uygulamanın veri alanına kaydediliyor; kapanışta son kurtarma işleminin tamamlanması bekleniyor. Kayıtların bütünlüğü denetleniyor ve son kayıt okunamazsa önceki sağlam kayıt değerlendiriliyor. Dosya geçmişinde ise değiştirilerek kaydedilen içeriğin önceki sürümü tutuluyor. Kullanıcı sürümleri yan yana karşılaştırabiliyor; geri aldığı içerik önce editöre geliyor ve Kaydet komutu verilene kadar diskteki dosya değişmiyor. Geçmiş kayıtlarının sayısı ve toplam büyüklüğü sınırlandırılarak kontrolsüz disk tüketimi önleniyor.
Çalışma yedeklerini de yeni dosya sınırlarıyla uyumlu hâle getirdim. Proje içerikleri sırayla okunuyor, bütünlük doğrulaması yapılıyor ve eski JSON yedekleriyle uyumluluk korunuyor. İçe aktarılan projeler yeni kimliklerle ayrı cihaz taslakları olarak açılıyor; mevcut projelerin üzerine yazılmıyor. Bu mekanizma metin çalışmalarını korumaya yönelik. Görselleri, modelleri ve diğer ikili varlıkları içeren proje klasörünün ayrıca yedeklenmesi gerektiğini eğitimde ve sürüm notlarında açıkça belirttim.
Python ortamları ve kütüphaneler
Python tarafındaki en kapsamlı yeniliklerden biri Proje Doktoru oldu. Seçilen yorumlayıcıyı, sanal ortamı ve desteklenen requirements.txt ile pyproject.toml bağımlılık bildirimlerini denetleyen bir akış ekledim. Kullanıcı eksik veya uyumsuz bileşenleri görebiliyor; önerilen işlemin hangi ortamda uygulanacağını inceleyebiliyor. İşlem onaylandığında raporun, ortamın ve ilgili proje bildirimlerinin değişmediği yeniden kontrol ediliyor. Denetim sırasında proje uygulaması veya derleme betiği çalıştırılmıyor; dinamik ve desteklenmeyen bağımlılık tanımları raporda belirtiliyor.
RC2'de Python keşfini de güçlendirdim. Windows başlatıcısı, PATH girdileri, standart kurulum konumları ve elle seçilen yorumlayıcı daha tutarlı değerlendiriliyor. Özellikle elle seçilen Python'un sanal ortam oluşturma aşamasında kullanılmamasına neden olan hatayı giderdim. Python, venv, ensurepip ve pip eksiklikleri artık ayrı ayrı gösteriliyor. Kullanıcı yorumlayıcı seçebiliyor, ortamı yeniden denetleyebiliyor, proje sanal ortamı oluşturabiliyor ve uygun ortamda pip onarımı yapabiliyor. Python bilgisayarda yoksa resmî kurulum sayfasına yönlendirme sunuluyor; kurulumdan sonra yeniden kontrol yapılabiliyor.
Kütüphane ekranını da bu ortam yönetimine bağladım. Hedef proje ve Python yolu görünür hâle geldi; paket arama sonuçları ile kurulu paketlerin durumu ayrıldı. PyPI varsayılan depo olarak seçildi ve gerekli ön koşullar sağlanmadığında kurulum düğmelerinin yanıltıcı biçimde etkin görünmesi düzeltildi. Çevrimdışı örneklerin seçilen ortama kurulması ve sonucun raporlanması doğrulandı. C# paketlerinde .NET SDK gereksinimi, C++ tarafında ise kaynak paketini projeye eklemek ile onu derleyebilmek arasındaki adımlar açıklığa kavuşturuldu. Seçili örnek kütüphaneler uygulamayla geliyor; diğer paketler ihtiyaç oldukça ilgili depolardan kuruluyor. Python, .NET SDK ve C++ derleyicisi işletim sisteminde ayrıca bulunmalı.
İlk proje ve uygulamalı eğitim
Yeni başlayan bir kullanıcının ilk projede karşılaştığı belirsizliği azaltmak için dört adımlı proje sihirbazı hazırladım. Kullanıcı önce dilini ve proje adını belirliyor, ardından konumu seçiyor, çalışma ortamını kontrol ediyor ve ilk kullanım adımlarına geçiyor. Python öncelikli olmak üzere JavaScript, TypeScript, Web, C# ve C++ seçenekleri sunuluyor. Bilgisayardaki proje klasörü ile cihaz taslağının farkı gösteriliyor. Eksik araçlar sonradan yapılandırılabiliyor; proje oluşturmak, kodun veya paket kurulumunun kendiliğinden çalıştırılmasına yol açmıyor.
Bu sihirbazı, programın tamamını kapsayan bir eğitim merkeziyle destekledim. F1 veya Yardım menüsünden açılan eğitim; Türkçe ve İngilizce olarak 11 bölüm, 37 uygulama adımı ve 5 soruluk değerlendirme içeriyor. Dosya ağacı, sekmeler, editör, arama, Python ortamları, paketler, terminal, testler, hata ayıklama, C#/C++ araçları, Git, geçmiş, yedekleme ve kişiselleştirme aynı öğrenme akışında ele alınıyor. Her adımda yapılacak işlem, beklenen sonuç ve sorun yaşanırsa kontrol edilecek nokta yer alıyor. Son bölümde küçük bir Python uygulaması, test ve requests alıştırması yapılıyor. İlerleme, kullanıcının işaretlediği kontrol listeleri üzerinden cihazda saklanıyor. Aynı içeriğin uygulamadan bağımsız okunabilen HTML ve Markdown rehberlerini de hazırladım. HTML rehberleri internet bağlantısı olmadan okunabiliyor; resmî dış kaynak bağlantıları ise internet gerektiriyor.
Git ve günlük çalışma akışı
Kaynak kodun takibi için Git karşılaştırmasını geliştirdim. Çalışma dosyalarındaki değişiklikler, commit için hazırlanmış değişiklikler ve çakışmalar daha açık biçimde incelenebiliyor. Önceki ve sonraki içerik satır düzeyinde karşılaştırılıyor; tek dosya hazırlama ve hazırlıktan çıkarma işlemleri kullanılabiliyor. Çakışmalarda ortak başlangıç, mevcut taraf ve gelen tarafın incelenmesi, kullanıcının vereceği kararı destekliyor. Uzun dosyalarda gezinmek için eklediğim Ctrl+Shift+O yapı araması da fonksiyon ve sınıf adlarından ilgili konuma ulaşmayı sağlıyor. Bu özellik uygun dil sunucusu veya desteklenen yerel sözdizimi yapısını kullanıyor.
Günlük çalışma düzeninde başlangıç ve gelişmiş görünüm seçenekleri, aranabilir ayarlar ve belirli komutlar için seçilebilir klavye kısayolları ekledim. Dosya paneli, alt panel, bölünmüş görünüm ve çalıştırma profili tercihleri proje bazında hatırlanıyor. Çalıştırmayı yeniden başlatırken önce mevcut görevin çıkışı bekleniyor. Python ortamı değiştiğinde açık terminalin eski ortamı kullanabileceği bildiriliyor ve yeni terminal açma seçeneği sunuluyor. Bilinen ortam, derleyici ve erişim hataları ilgili denetim noktasına yönlendiriliyor. Türkçe ve İngilizce desteğini yeni panellere genişlettim; yapılandırılmamış hesap ve AI girişlerini ana çalışma alanında gizleyerek arayüzü sadeleştirdim. Belge değişiminde durum çubuğunun yeni dosyanın gerçek imleç konumunu göstermesini de düzelttim.
Bu geliştirmeleri mevcut beş tema, kristal logo, minimap, bölünmüş editör ve önizleme sekmeleri üzerine ekledim. Bunlar önceki sürümün temel özellikleriydi; bugünkü çalışma, bu temeli daha tutarlı ve anlaşılır bir kullanım akışıyla tamamladı. CrowFORGE'un ücretsiz sunulması yönündeki kararım devam ediyor. Yerel geliştirme araçlarını kullanmak için hesap veya abonelik gerekmiyor.
Doğrulama ve sonraki adımlar
Doğrulama tarafında, son kurulum denetimleriyle birlikte 26 test grubu başarıyla tamamlandı. Linux x64 üzerinde gerçek Electron penceresinde 11 arayüz kontrolü geçti; bu kontrollerden biri eksik Python durumunu kontrollü örnek verisiyle sınadı. Dosya okuma ve kaydetme, büyük düzenlemelerin yeniden açılışta korunması, proje sihirbazı, gerçek sanal ortam oluşturma, çevrimdışı paket kurulumu ve eğitim ilerlemesi değerlendirildi. Windows x64 ve ARM64 Setup dosyaları ile Linux x64 ve ARM64 arşivleri hazırlandı. Paket içerikleri, işlemci mimarileri, Windows simge ve metadata alanları, derlenmiş KVKK sayfaları, arşiv bütünlüğü ve SHA256 değerleri kontrol edildi. Paket incelemesinde tespit edilen gereksiz geçici dosyayı da çıkararak Windows x64 kurulumu temiz çıktıyla yeniden oluşturdum.
Güncel sürümü 1.1.0-rc.2 olarak hazırladım. Windows üzerinde gerçek kurulum ve Defender kabul testleri ile ARM64 donanımındaki çalıştırma doğrulaması henüz tamamlanmadı; kod imzalama sertifikası da beklemede. C# ve C++ harici hata ayıklayıcı bağlantıları deneysel durumunu koruyor. Bu sürümde hesap, bulut, AI ve otomatik güncelleme hizmetlerini etkinleştirmedim. Mevcut kullanıcılar çalışmalarını kaydedip yedekledikten ve uygulamayı kapattıktan sonra uygun Setup dosyasıyla güncelleme yapabilir. Bundan sonraki geliştirme önceliklerimi de gerçek projelerdeki kullanım sonuçlarına göre belirleyeceğim: çalışma ortamının anlaşılması, kodun korunması ve kullanıcının bir sonraki adımı açıkça görebilmesi CrowFORGE üzerindeki çalışmalarımın merkezinde kalacak.

