Alıntı (canalpay):
> Alıntı (acehreli):
> Herhalde yanlış anlıyorum ama "fixed" onların immutable olduklarını mı söylüyor.
Yok ingilizcem o kadar da kötü değil :-P Şu diziyi :
hayvan=at&derece=Orta&sevilen+hayvan=ğüşçü&ikinci+d%C3%BC%C4%9Fme=Ba%C5%9Fka+D%C3%BC%C4%9Fme
İstediğim biçime getiriyor. Bana göre düzeltiyor.
"Corrected" anlamında kullanıyorsun yani. Hiç aklıma gelmemişti. :) Aslında bir bozukluk olmadığına göre başka yerde de duyduğumuz gibi "decoded" denebilir.
Alıntı:
> Onun içinde bool türünde bir parametre daha koyarız.
O konuda da genel bir önerim var. Çalıştığım yerlerde de işlevin davranışını belirlemek için bool değişkenler kullanılıyor. Örneğin bizdeki bir işlevin parametresi büyükHarfÖnemli_mi gibi bir şey.
O tür parametreler işlevin çağrıldığı noktaların anlaşılmalarını güçleştiriyorlar. Abartarak:
birİşlev("merhaba", 42, true, false, true);
O true ve false'ların ne anlama geldiklerini hatırlamak çok güç. O yüzden ben ve başka arkadaşlar enum kullanılmasını öneririz. İsimlerinin uzun olduklarını bilerek:
birİşlev("merhaba", 42, BüyükKüçükFarkı.önemli, BirdenFazlaBulunsun.evet, BaşkaBirAyar.hayır);
Alıntı:
> Bol parametreli işlevleri ben çok severim ancak bu bir yanlışmış.(3 parametre fazla değil ama :-))
Temelde bir yanlışlık yok ama bir noktadan sonra aynı grup parametreleri birden fazla işleve gönderildiği farkedilince o grup parametrenin aslında tek bir tür olmaları gerektiği anlaşılıyor.
Cookie örneğine dönersek, parametreleri o şekilde gruplamak kodun anlaşılmasına da yarıyor. Artık ayrı parametrelerin birlikte cookie anlamına geldiklerini bilmek zorunda değiliz; türleri bunu söylüyor zaten. Gibi...
Alıntı:
> Buda herhalde programı mikro saniye bazında yavaşlatır.(Webte bunu önemseyenler var :-P ).
Web çatısı için tabii ki çok önemli olabilir ama yanlış algoritmalar seçilmediği sürece bu tür yavaşlıklara sonradan eğilmek gerekir. Ancak ve ancak ölçtükten sonra.
Alıntı:
> Alıntı:
> Ayrıca ";" ayracı yalnızca cookie için değil: HTML belgelerinin bütün başlık değişkenleri için geçerli. Şimdilik cookie'den başka şeyle ilgilenmiyoruz ama akılda tutmakta yarar var.
Ad önerisi? Belki aynı biçimde hepsi için ayrıca takma ad kullanmak daha iyi olur.
HeaderVariable veya HeaderLine olabilir. Bir kere o tanımlanırsa, Cookie onu kullanabilir. Hiç derlemeden:
class HeaderLine
{
string name;
string[string] values;
/* İsmi olmadan olmaz */
this(const(char)[] name)
{
this.name = name.idup;
}
/* ... addValue(), vs. */
}
class Cookie : HeaderLine
{
/* Kendi üye değişkenlerine gerek bile yok */
this()
{
super("Set-Cookie");
}
}
Yani "Cookie bir HeaderLine'dır" diyoruz. Sonra cookie.addValue("bir şey", "değeri") yapılabilir.
Veya Cookie, senin önceki işlevindeki parametreleri kurucu parametreleri olarak şart koşar ve hepsini addValue()'yu çağırarak kurar. Böylece elimizde kullanıma hazır bir HeaderLine oluşur:
class Cookie : HeaderLine
{
/* Kendi üye değişkenlerine gerek bile yok */
this(string data,
long expiresIn = 0,
string path = null,
string domain = null,
bool httpOnly = false)
{
super("Set-Cookie");
/* Burada üst sınıfın addValue()'sunu her değer için çağırabilir */
}
}
Eğer HeaderLine.toString() de yazılmışsa cookie.toString() denerek satır oluşturulabilir.
Bunların hepsi tartışmaya açık. Sonuçta "öyle de olur böyle de"... :) Aklıma gelenleri yazıyorum.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]