September 04, 2009

ddili.org'un oturduğu hosting firmasının (HostGator) svn sürücüsü çalıştırmaya izin vermediğini öğrendim ve uğraşmaktan kurtulduğuma da sevindim. :)

Tamam o zaman; github.com'a gittim ve deneme amacıyla 'trii' isimli bir proje oluşturdum. Herşey yolunda gitmiş gibi göründü, ve sanki bilgisayarımda oluşturduğum üç deneme dosyasını projeye başarıyla ekledim. Ama neredeler? (README, deneme.d, ve deneme2.d)

http://github.com/acehreli/trii

index.html dosyası var ama nasıl yani? Ben projeye eklemedim ki... :)

Hmmm... Çalışmaması bir yana, arayüzünü pek anladığımı da söyleyemem... (?) Anlayabilen var mı?

github'dan her an vazgeçebilirim. :D

Ali

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

September 04, 2009

Hiç olmazsa Google Code oldu:

http://code.google.com/p/trileri/

Orada People'ın altına isim eklemem gerekiyor herhalde. Siz katılmayı dener misiniz; bakalım bana bir bilgi mi gelecek...

Ali

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

September 04, 2009

Ekledim... Şimdi şunlar gerekiyor:

  • kodlama ilkeleri: 4 boşluk içerletme, küme parantezlerinin yeri, değişken isimlerinin küçük harfle başlaması, vs.

  • geliştirme ilkeleri: her fonksiyonun önce birim testinin yazılacağı, kod eklenmeden önce en az birisi tarafından inceleneceği, vs.

  • projenin tasarım belgesi

  • vs.

Ali

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

September 04, 2009

github'da projenin ismini trii koymuştum: "Türkçe i ve ı"nın kısası... :)

Google Code'da zaten trii diye bir proje bulunca bozuldum ve ismini çok hızlı bir kararla "Türkçe i'leri"nin kısaltması olarak trileri yaptım. Bence Türkçe'nin standart kısaltması tr olduğu için bu isim aslında Türkçe sayılır. :)

trileri aynı zamanda komik bir şekilde "Türk İleri!" gibi de oluyor ama bunu kimseye söylemeyelim... ;)

Ali

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

September 04, 2009

Gerçekten svn'de büyütecek bir şey yok. Ama aslında konsoldan çalışmak daha rahat olmasına karşın ben windowsta gui ortamında bunu yapmaya karar verdim. Proje için neredeyse bütün hazırlıkları yaptım. Cmd ile elle derleyeceğim. Kod yazmak için Geany kullanacağım. Svn'yi hazırladım. Cmd'nin Türkçe çıktı verememe işini hallettim. dmd'yi windows'un yoluna ekledim. Geride bir kaç pürüz kalmıştır ama pek bir şey kalmadı gibi.

Şimdi size soru sormaya başlıyorum.

module hello;
import std.stdio;
import std.cstream;
import std.string;
void main(){}
string toUpperG(string giriş) {
	string I="I";
	string İ="İ";
	string i="i";
	string ı="ı";
	giriş=replace(giriş , ı , I);
	giriş=replace(giriş , i , İ);
	string giriş_son;
	giriş_son=toupper(giriş);
	return giriş_son;
}

İlk olarak sormak istediğim oraya main koymadan işlem yapamayacak mıyız? İlla mainde işimiz olmasada o kodları koyacak mıyız(Benim bildiğim o main olmazsa program da olmuyormuş. Onu silip derlediğimde bunun doğru olduğuna kara verdim :-) ) ? Yoksa toUpperG fonksiyonunu main'emi koyacağız. Harelde o main boş kalmayacaktır. Nerede hatam varda o main'i boş bırakmak zorunda kalıyorum. Yoksa boş kalması doğal mı(Bana değil gibi geliyor) ?

Bir diğer sorum module hello; satırını en başa yazdık. Harelde böylece hello adlı bir modülümüz oldu. Ben bunu hello.d diye kaydettim. Deneme adlı yeni bir d projesi yazıyorum ve buna dahil etmek istiyorum. Bunun içinde import hello; diyorum. Ve toUpperG fonksiyonunu çağırıyorum. dmd deneme.d diye derliyorum. Ve teorik olarak sonunda muradıma eriyorum. Ama bir dakka, hemencecik hata veriyor. Buna göre nerede hata yaptığımı belirtebilir misiniz. En başından beri hatalıysam nasıl yapmam gerektiğini söyleyebilirmisiniz.

Alıntı:

>

Bunlar sağlam geliştirme takımlarının ilkeleri; ben uydurmuyorum. :)

Yok zaten mantıklı düşününce böyle olması gerekiyor. Ama bizim bu kadar denetçi olacağımızı düşünemedim.
Alıntı:

>
  • Kod, programcı derlediğinde birim testlerden geçecek (dmd -unittest ...)

Acaba bu unittest nasıl bir şeydir. Ne yapar ki biz böyle test ediyoruz. Harelde unittest o an çalışması gerekmeyen kodları da kontrol ediyordur. Birde unit testten nasıl geçireceğiz. dmd -unittest projeAdı.d şeklinde mi?

Geleneksel soru yazarak saçmalama festivalim devam ediyor. :-)

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

September 04, 2009

Alıntı:

>

Tamamen şaka yaparak: Benim yazdıklarımı okumadığını farketmiş oldum... ;)

İk önce o sayfayı defalarca okudum. Hatta module'yide orada gördüm. Ama açıkcası yazdığınız koddan olsun anlatmaya çalıştığınız şeylerden olsun hiç bir şey anlamadım.
Harelde gece gece anlama özürlü oldum. Nasıl yapılacağı hakkında anlatımlı basit bir örnek istersem sizi çok mu yorarım.

Ayrıca assert mi ne var o ne demek.

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

September 04, 2009

Alıntı (canalpay):

>

Ayrıca assert mi ne var o ne demek.

Assert programcının kendi hatalarını yakalamak için kullandığı bir olanak. assert sözcüğü programcılıkta 'söylemek' 'ileri sürmek' 'iddia etmek' anlamında kullanılıyor. Programlarımızı yazarken belirli varsayımlarda bulunur. Bir işlevi çağırdığımızda bazı ön koşulların doğru olduğunu düşünürüz. İşte 'assert'i denenmesine gerek bile olmayan, var olduğundan emin olduğumuz durumlarda kullanırız.

Oradaki örneklerde örneğin 'A' karakterinin küçüğünün 'a' olduğundan eminim diyoruz. Yani bir nevi otokontrol mekanizması gibi bir şey.

Bu arada beni de projeye ekleyebilirmisiniz lütfen :)

Ali bey de hep ben cevap yazana kadar mesajı yazmış oluyor =)

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

September 04, 2009

Alıntı:

>

Ali bey de hep ben cevap yazana kadar mesajı yazmış oluyor =)
Aynı şeyi sende bana yapıyorsun. :-)

Siz burada yazarken bende biraz araştırdım. Evet biraz unittest'i anladım ama bu yazılar çok iyi oldu. Çok güzel olmuş elinize sağlık.

Gerçekten bu unit test olsun bu assert olsun çok çok güzel şeylermiş. İnsan bu kodları görünce ve sizi görünce bu zamana kadar boş yaşadı sanıyor ( Doğrusu yaşım sizinkinden çok daha genç :-D ). Ben ise böyle bir şey olsa bunları teker teker denerdim :-)

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

September 04, 2009

svn'de büyütecek hiçbir şey yok. :) Ben günlük olarak yalnızca şu komutları kullanıyorum:

  • 'svn update': projenin son halini benim klasörüme getirir

  • 'svn st -q': hangi dosyalarda değişiklik yaptığımı gösterir

  • 'svn diff': bütün değişiklikleri gösterir

  • 'svn commit': çalışmamı depoya yerleştirir

Onların dışındaki olanakları kırk yılda bir kullanılır. svn'in görsel istemci programları olduğunu da biliyorum ama benim çalıştığım ortamlarda herkes (herkes :) ) komut satırını kullanıyor.

Programı bozma konusunda da endişen olmasın; çünkü proje ilkeleri gereği, depoya kod göndermeden önce şunların sağlanması şart:

  • Kod, programcı derlediğinde birim testlerden geçecek (dmd -unittest ...)

  • Projenin diğer üyeleri kodu inceleyecekler (code review) ve gerekirse önerilerde bulunacaklar

Kod ancak ondan sonra 'svn commit' edilecek. Bunlar sağlam geliştirme takımlarının ilkeleri; ben uydurmuyorum. :)

Bu belgeleri yazmak için biraz daha zamana ihtiyacım var... :)

Ali

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

September 04, 2009

Sorularının çoğunun yanıtı şurada var:

http://ddili.org/forum/post/322

Tamamen şaka yaparak: Benim yazdıklarımı okumadığını farketmiş oldum... ;)

Yani hello.d yanında bir de deneme.d olacak ve ikisini birlikte derleyeceksin. main, deneme.d'nin içinde olacak.

Aslında projeyi hepimiz ayrı ayrı "dmd ..." yazarak derlemeyeceğiz. Komut satırında 'make' yazacağız ve derleyicileri çağırma işini make halledecek. Bunu yapan Makefile da projenin bir parçası olacak.

Ali

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