Thread overview
Kodları dosyalara bölmek
Sep 23, 2011
zafer
Sep 23, 2011
zafer
Sep 23, 2011
zafer
Sep 25, 2011
zafer
Oct 03, 2011
zafer
September 23, 2011

Merhaba,

Tek bir dosyada olan kodlarımı (main.d) daha kolay yönetmek amacıyla main.d ve islem.d isimli iki dosyaya bölmeye çalıştım ama işlem dosyasını main.d dosyası içine bir türlü ekleyemedim. Kısaca öğrenmek istediklerim.

module ve import -> nedir? nasıl tanımlanır? nerede ne için kullanılır?

Bu konularda her türlü yardımı bekliyorum.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 23, 2011

Anahtar sözcükler için tam bir listem yok ama şu sayfada aramak bazen işe yarıyor:

http://ddili.org/ders/d/index.html

import ve module sözcüklerine karşılık şu bölümü görüyorum:

http://ddili.org/ders/d/moduller.html

Bir örnek olarak şu projeyi gösterebilirim:

http://code.google.com/p/super-zeka/source/browse/#svn%2Ftrunk

Ama aslında çok kolay:

  • Her modülün başına dosyanın .d'siz hali yazılır. Örneğin main.d'nin başına
module main;
  • Her modül kullandığı modülleri ekler:
import std.stdio;  // <-- standart modül
import super_zeka; // <-- bu projenin bir modülü
  • Derleme satırına hepsi yazılır:

'dmd main.d super_zeka.d ... -ofsuper_zeka -w'

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 23, 2011

Alıntı (acehreli):

>

import ve module sözcüklerine karşılık şu bölümü görüyorum:

http://ddili.org/ders/d/moduller.html

Ali

Kusuruma bakma Ali. Ben dersaneyi konu sırasına göre takip ediyorum. Sonrasını çok merak etmeme rağmen sıranın bozulmaması için ileriki konulara bakmadan sıradaki konudan devam ediyorum. Sen söyledikten sonra konunun detaylı anlatımını dersanede gördüm ve çok utandım doğrusu. :blush:

Bu noktada küçük bir öneri sunmak isterim. Dersanede akış ve sıralama bence gayet güzel ama modül ve kütüphane bölümü bence biraz daha ön sırada bir yere alınmalı, herşey için eline sağlık.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 23, 2011

Dersaneden henüz menun olamadım Ali :) o sebeble tam içeriği bilmiyorum, dolayısıyla modül konusunun sırası hakkında bir fikrim yok. Sana yardımı olursa şöyle bir durum var. Örneğin dosyaları ayırmaya ihtiyaç duyduğum zaman modül konusu hakkında bilgi istedim. Sanırım temel konuların sonunda olabilir veya modül konusu olduğu yerde kalır ve başlangıçtaki bölümlerin birisinde basitçe nasıl tanımlandığı anlatılır gibi bişeyde olabilir.

Diğer değişikliklerle ilgili bölümleri hiç okumadım. Yanlış yönlendirmek istemem.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 23, 2011

Alıntı (zafer):

>

çok utandım doğrusu

Olur mu öyle şey! :)

Alıntı:

>

Dersanede akış ve sıralama bence gayet güzel ama modül ve kütüphane bölümü bence biraz daha ön sırada bir yere alınmalı

Alırım. O derste geçen 'class' yerine 'struct' kullanmak gerekecek. Acaba Yapılar bölümünden hemen sonra mı olsa?

Aslında benzer iki değişiklik daha düşünüyordum:

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 24, 2011

Alıntı (zafer):

>

Sana yardımı olursa şöyle bir durum var. Örneğin dosyaları ayırmaya ihtiyaç duyduğum zaman modül konusu hakkında bilgi istedim.

Böyle uyarılar çok yararlı oluyor. Hangi bilginin hangi noktada gerektiğini bilmek önemli. Lütfen farkına vardıkça duyurmaya devam! :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

September 25, 2011

Alıntı (acehreli):

>

Böyle uyarılar çok yararlı oluyor. Hangi bilginin hangi noktada gerektiğini bilmek önemli. Lütfen farkına vardıkça duyurmaya devam!

Böyle durumlara rastladıkça "Ders arası" forumumda duyurmaya çalışırım. Kolay gelsin.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 02, 2011

Bu bölümü daha önceye alırken küçük bir sorunla karşılaştım.

Bölümde class kullanmış olduğum için daha önceye alabilmek için bütün class'ları struct yaptım. Herşey yolunda gibi görünürken "Modüllerdeki tanımların programa dahil edilmesi" altında gösterilen bağlama hatasının artık oluşmadığını gördüm:

http://ddili.org/ders/d/moduller.html

class'la kullanılan new, programın oluşturulması sırasında kedi.d ve kopek.d'nin dmd satırına yazılmalarını gerektiriyor. struct kullanıldığında ise gerekmiyor. Belki struct'ın üye işlevleri olsa bağlama hatası görülür ama bu bölümü taşımak istediğim noktada bırakın üye işlevleri daha normal işlevleri bile göstermemişim. :) (Programın farklı dosyalara bölünmelerinin anlamlı olabilmesi için hiç olmazsa struct'ı görmüş olmalıyız diye düşündüğüm için Yapılar'dan hemen sonrayı düşünmüştüm.)

Aklıma iki seçenek geliyor:

  • "Bu kadar basit programda gerekmiyor ama normalde bütün dosyaları dmd satırına yazmanız gerekir" demek

  • struct'ı bağlama hatası oluşturacak kadar karmaşıklaştırmak ama "bu olanakları ilerideki bölümlerde göreceğiz" demek

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 03, 2011

Alıntı (acehreli:1317568095):

>
  • "Bu kadar basit programda gerekmiyor ama normalde bütün dosyaları dmd satırına yazmanız gerekir" demek

Bu daha iyi bir seçenek gibi geliyor. Yeni öğrenen birisinin karşısına daha karışık bir yapı çıkarmak bana pek doğru gelmedi ama iş bu noktaya gelincede bu sefer bunuda yapmayıp olduğu gibi bırakmanın daha doğru olabileceği şüphesi oluştu bende, neticede kodu iki dosyaya bölmek birazda bende varolan programcılık alt yapısından kaynaklanıyor. İşlemleri bölüp parçalamaya ve anlamlı dosyalara ayırmaya alışık olduğum için otomatikman böyle bir durum ortaya çıktı. Yoksa bu işte yeni olan birisi zaten bunları tek bir dosyaya doldurup yola devam edecektir.

Neticede bu kitap öncelikle yeni başlayanlara hedef alıyorsa belkide böylesi daha iyi, zaten bende sorumun cevabını forumda aldım ve tarihe bir not düştük, öğrenmek isteyen biraz araştırsın yahu :-D

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 03, 2011

Teşekkürler. Öne alacağım ve öyle basit bir not düşeceğim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]