Forum: Ders Arası RSS
Kodları dosyalara bölmek
Birden fazla kod dosyası oluşturmak
zafer #1
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Kodları dosyalara bölmek
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.
https://github.com/zafer06 - depo
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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%2Ft…

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
zafer #3
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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.
https://github.com/zafer06 - depo
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
zafer:
çok utandım doğrusu

Olur mu öyle şey! :)

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
zafer #5
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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.
https://github.com/zafer06 - depo
acehreli (Moderatör) #6
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
zafer #7
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
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.
https://github.com/zafer06 - depo
acehreli (Moderatör) #8
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
zafer #9
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli on 2011-10-02, 09:08:
  • "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
https://github.com/zafer06 - depo
acehreli (Moderatör) #10
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Teşekkürler. Öne alacağım ve öyle basit bir not düşeceğim.

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 00:29:04 (UTC -08:00)