"import" hakkında - Ddili Forum
import edilen dosyalarda kullanılan değişkenlerin durumu
zafer 2011-09-26, 07:46 #1
Konu adı: "import" hakkında
Elimde şöyle bir yapı var. "main.d" ve "islem.d" isimli iki dosyadan oluşan bir projem var. Programın temeli main.d dosyası üzerine kurulu islem.d dosyası ise dosyalama ile ilgili gerekli işlemleri yapan yardımcı kodları içeriyor. Bu durumda bende
diyerek islem.d dosyasını main.d dosyası içine ekledim ve islem.d dosyasındaki işlemleri kullanmaya başladım. Buraya kadar bir sorun yok. Ardından bu sefer main.d içinde tanımladığım bir metodu islem.d dosyası içinde kullanmam gerekti bende aynı şekilde bu sefer islem.d dosyası içinde main.d dosyasının tanımını yaptım,
Ancak bu biraz tuhaf oldu gibi yani main.d içine islem.d dosyasını aldım tamam ama tekrar islem.d içindede main.d dosyasını çağırdım burada bir sorun var mı? Doğru kullanım bu mudur? Konu hakkında daha fazla bilgisi olan var mı?
acehreli (Moderatör) 2011-09-26, 11:54 #2
islem.d dosyasını main.d dosyası içine ekledim ... bu sefer islem.d dosyası içinde main.d dosyasının
Bu, kaçınılması gereken bir durumdur. Alt düzey işlemler içeren islem.d'nin üst düzey main.d'yi kullanması yanlış olur. Buna 'cyclic dependency' deniyor.
Bir çözüm, main.d'nin içindeki ortak kodu main.d'den başka bir dosyada tanımlamaktır. Duruma göre ya islem.d olabilir, ya da kavramsal olarak ondan daha alt düzey bir modül.
Öte yandan, burada D'nin modül kavramının bir yararını görüyoruz. C ve C++ gibi başlık dosyası eklenen dillerde başlık dosyalarını #ifndef/#endif'ler arasına almak ve eklenme sıralarına dikkat etmek gerekir.
Modüllerde öyle sorunlar yok. Her modül "ben şu modülleri kullanıyorum" der ve derleyici gerisini halleder.
zafer 2011-09-26, 23:56 #3
Bu ciddi bir sorun olmasına rağmen böyle bir kullanımda derleyici herhangi bir uyarı veya hata mesajı vermdi. Böyle bir mesaj verse daha doğru olmaz mıydı?
Sanırım bu gibi durumlar tamamen bizim dikkatimize kalmış durumda, küçük projelerde sorun olmaz ama bir sürü dosyanın olduğu büyük projelerde çok tehlikeli durumlar oluşabilir diye düşünüyorum. Umarım bu durumu daha güzel bir çözüm bulurlar. Mesela ben diğer dillerdeki tecrübemden dolayı bu tuhaflığı hissetmemiş olsam kullanımda hiç bir sorun görünmüyordu.
acehreli (Moderatör) 2011-09-27, 00:09 #4
Bu ciddi bir sorun olmasına rağmen böyle bir kullanımda derleyici herhangi bir uyarı veya hata mesajı vermdi.
Yanlış derken, derleyicinin karışacağı kadar ciddi bir sorun değil aslında. Genellikle tasarım daha iyi düşünülebilir ve bağımlılık olabildiğince yukarıdan aşağıya doğru kurulabilir.
zafer 2011-09-27, 01:11 #5
Amann Ali sende D derleyicisine hiç toz kondurmuyorsun
acehreli (Moderatör) 2011-09-27, 01:17 #6
Gerçekten, bir derleme hatası değil yani.
Şu an: 2017-11-18, 07:33:18 (UTC -08:00)