February 13, 2011

Alıntı (Kadir Can):

>

Ben ne yapayım proje için?

Bu konuda Can'ın fikrini bekleyelim ama ben senin için anladıklarımı şurada yazmıştım:

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

Ali

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

February 13, 2011

Alıntı (canalpay):

>

Evet düzeltilmiş anlamında kullanıyorum.

"fixed" ve "corrected" bir bozukluğu düzeltme anlamı taşıyorlar. Bir bozukluk olmadığı için ikisi de olmaz.

Alıntı:

>

decode olabilir o ne bileyim sanki daha karmaşık bir şeyi çözüyormuş gibi geliyor. Birde bunun tersi encode işlevide olması gerekiyor diye düşünüyorum.

"decode" uygundur. "encode" işini de başka taraf (tarayıcı, değil mi?) hallediyor.

Alıntı:

>

Library dizininde herhangi bir modülde ben sınıf düşünmüyorum. Hepsi işlev olacak ve basit basit kullanılacak.

Basitlik konusuna kesinlikle katılıyorum. Bazı nesne yönelimli programcı anlayışlarının tersine, ben işlevlerin önce geldiklerini düşünürüm.

Ama orada duramayız. Sınıfları ve yapıları hoş oldukları için kullanmıyoruz. Sınıf veya yapı gerekene kadar işlev, gerektikten sonra sınıf veya yapı...

Alıntı:

>

Header işlevini Ali Bey siz yazar mısınız?

Bu işlev başlığı üretip örneğin bir string olarak mı döndürecek, yoksa doğrudan stdio'ya mı yazacak?

Alıntı:

>

Gereksizce her modülü çağırmaya gerek yok. İllaki bir modülde toplayacağız. Ya sınıf yazıp yapacağız ki ben öyle istemiyorum, ya takma ad kullanacağız ya da tek modülde toplayacağız. Sonuncusu bana en mantıklısı geliyor.

Benim D modülleri konusunda fazla deneyimim yok. Ama herhalde ikisinin ortasında bir yerde buluşmak gerek.

Ali

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

February 14, 2011

Alıntı:

>

Bu işlev başlığı üretip örneğin bir string olarak mı döndürecek, yoksa doğrudan stdio'ya mı yazacak?

Belki işlevsel programlamaya uygun değil ancak stdio kullanılarak yazılacak.

Alıntı:

>

Benim D modülleri konusunda fazla deneyimim yok. Ama herhalde ikisinin ortasında bir yerde buluşmak gerek.

Benim anladığım D'ciler daha çok tek modülde toplamayı seviyor. 40 satır bile olmayan bir kod parçaları için modül tanımlamak doğru değildir bence. Heleki şu biçimde çağırmak library.post.post() zaten bir kere post demiyor muyuz? Ancak ayrı ayrı yazılmasınında importlar için fazla satır yazımından başka zararıda yok.

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

February 14, 2011

Şimdi düşündüm,tek modül fikri iyi gibi.

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

February 14, 2011

Alıntı:

>

Şimdi düşündüm,tek modül fikri iyi gibi.

Sağol katıldığın için. Çünkü yaptım bile :-P

Yeni modülümüz: envVar. Daha iyi bir ad önerinizi bekliyorum.

Modül : https://github.com/canalpay/turna/blob/master/library/envVar.d

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

February 14, 2011

Alıntı:

>

Onun başka bir sakıncası da çıktının yarım kalma olasılığı. CGI programı hata kodu döndürünce Apache herhalde çıktıyı kullanmıyordur ama sayfayı oluşturan parçaların bütünlüğünden emin olunmadan çıktının yazılmaya başlaması doğru değil.

Web programlama dünyasına hoşgeldiniz :-P Sanırım siz hiç sayfanın yarısı çalışan yarısındada hatalar veren sitelere denk gelmediniz :-D

Ama dediğinizi baştan sona düşününce ne kadar haklı olduğunuzu anladım. Yapılan bir yanlışa destek çıkmanın ona diretmenin anlamı yok. Ancak bunu nasıl yapabiliriz onu anlamadım. O da sizden olsun o zaman :-)

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

February 14, 2011

Alıntı:

>

Belki bu konularda deneyimli olduğum için bana çok açık geliyor ama HTML belgelerinin düzenini bire bir D olanakları olarak ifade etmekten başka bir şey yapmıyorum. Özellikle en baştaki BaşlıkSatırı'na dikkatinizi çekerim: başlık satırları o kadar basit değil mi?

Basitmiş.

Ben bir an o sayfa içine daha başka öğeleride katacağımızı düşündüm.

Alıntı:

>

Sayfayı bu şekilde soyut olarak oluşturduktan sonra yapılması gereken tek şey, sayfa.toString() (veya başka isimli bir üye işlev) çağırmak olacak. En sonunda bütün sayfa oluşmuş olacak. O noktaya gelene kadar bir hata atılmış olsa programda hiçbir yan etkimiz olmadığı için temiz olarak ama hata koduyla sonlanacağız. Apache de kullanıcıya "bir hata oldu" diyecek.

Çok güzel. Güzel güzel hata yakalama kodları ve mesajlarıda ekledik mi tadından yenmez :-)

Ancak bu örneğe göre helpers'daki html kodlarıda library'ye mi eklenmeli? Helpers belki javascript gibi css gibi şeyler için olabilir.

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

February 14, 2011

Alıntı (canalpay):

>

Belki işlevsel programlamaya uygun değil ancak stdio kullanılarak yazılacak.

Onun başka bir sakıncası da çıktının yarım kalma olasılığı. CGI programı hata kodu döndürünce Apache herhalde çıktıyı kullanmıyordur ama sayfayı oluşturan parçaların bütünlüğünden emin olunmadan çıktının yazılmaya başlaması doğru değil.

Her zaman olduğu gibi itiraz etmiyorum ama doğrusunun Sayfa türünde bir nesne oluşturmak ve en sonunda ona "kendini HTML düzeninde göster" demek olduğunu söylüyorum.

Başlık satırlarından birisinin sayfa oluşturulmaya başlandıktan sonra gerektiğini düşünün. Eğer stdout'a yazmışsak başlık çoktan elimizden uçup gitmiştir. Bir başlık satırı değişkeni eklemek veya çıkartmak artık olanaksızdır.

Ali

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

February 14, 2011

Alıntı (canalpay):

>

Ancak bunu nasıl yapabiliriz onu anlamadım. O da sizden olsun o zaman :-)

Elimizde ne olduğuna ve ne oluşturmaya çalıştığımıza bakacağız.

Başlığın düzeni şu:

'isim: değişken0=değer0; değişken1=değer1; değersiz-değişken'

Ben o satıra bakınca şunları görüyorum: satırın ismi var ve değişkenleri var. D'ye geçirelim:

struct BaşlıkSatırı
{
   string isim;
   BaşlıkDeğişkeni[] değişkenler;
}

struct BaşlıkDeğişkeni
{
   string isim;
   string değer;
}

Üye işlevlerini yazmadım ama o yapılar başlık satırını modellemiyor mu? Başlığın ismi ve değişkenleri var; değişkenlerin isimleri ve değerleri var...

Onların üzerine de Sayfa oluşturulabilir. Bir HTML belgesinin yapısı şu değil mi:

class Sayfa
{
   BaşlıkSatırı[] başlıkSatırları;
   XmlElemanı içerik;
}

Evet, ismi "html" olan tek XML elemanından oluşur. (Onun da üye işlevlerini yazmadım.)

HTML sayfa düzenindeki "body", o tek elemanın alt elemanıdır. Yani XML elemanları başka XML elemanları içerebilirler. Demek ki XmlElemanını o şekilde yazmalıyız:

class TekEleman : Eleman
{
   string etiket;
   string değer;
   Nitelik[] nitelikler;
   Eleman[] altElemanlar;
}

Belki bu konularda deneyimli olduğum için bana çok açık geliyor ama HTML belgelerinin düzenini bire bir D olanakları olarak ifade etmekten başka bir şey yapmıyorum. Özellikle en baştaki BaşlıkSatırı'na dikkatinizi çekerim: başlık satırları o kadar basit değil mi?

Sayfayı bu şekilde soyut olarak oluşturduktan sonra yapılması gereken tek şey, sayfa.toString() (veya başka isimli bir üye işlev) çağırmak olacak. En sonunda bütün sayfa oluşmuş olacak. O noktaya gelene kadar bir hata atılmış olsa programda hiçbir yan etkimiz olmadığı için temiz olarak ama hata koduyla sonlanacağız. Apache de kullanıcıya "bir hata oldu" diyecek.

Doğrusu, programcılığın en zevkli yanlarından birisi bu soyutlamaları kurabilmek. Bunları yapı taşları olarak oturtunca programın daha sonradan değiştirilmesi de çok kolay oluyor. O da ayrı bir zevk. :)

Ali

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

February 14, 2011

Alıntı (canalpay):

>

Ancak bu örneğe göre helpers'daki html kodlarıda library'ye mi eklenmeli? Helpers belki javascript gibi css gibi şeyler için olabilir.

Evet, sayfayı oluştururken XML düzeninde elemanlar oluşturmak gerekecek. Kütüphanenin buna ihtiyacı var. Kadir Can bunu halletmeye çalışıyor.

Ali

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