• 24-06-2008, 11:26:22
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Sayın moderasyon, bu başlık lütfen hem bu meselenin "bilgi ekseninde tartışılması" hem de teklif verenlere fikir vermesi itibariyle buraya yapıştrılsın. Önemli bir konudur, basit projenin büyük projeden farkını anlatır.

    Büyük bir proje yaptırıldığnda (örn. sosyal ağ, oyun) çeşitli standartlara ve teknik yaklaşımlara dikkat etmek önemlidir. Bunun çeşitli sebepleri vardır birincisi yazdığınız kod ileride çok büyük yerlere gidebilir, şirketleşebilir ve/veya başkaları tarafından geliştirilebilir. 5 sene sonra projeyi geliştirecek kişi kodu kendi yazmış gibi bulmalıdır. Modüler, takım çalışmasına yatkın, katmanlı ve profösyonel olmalıdır. (kod, yazılım, script forumdaki kullanımı sebebiyle aynı paralellikte kullanılacaktır)

    Büyük bir sistemi yazdırırken şunları arayınız:

    1. Neden ve hangi kapsamda OOP kullanılacağının ispatını ve cevabını isteyin.
    Nesne tabanlı programlama konusunda bilgi (Object Oriented): Şu çağda bu şarttır. Düz kodla herşey yapılabilir ama olay kanser hücresine döner, uzun vadede kod okunamaz ve dolanık hale gelir. Ayrıca nesne tabanlı kod yazmak $db diye nesne belirleyip ona SQL göndermek değildir. Bu OOP'u yanlış anlamaktır sadece.

    2. Modüler yazılım geliştirme konusunda ispat
    Kod modüller tabanında ayrıştırılmış olmalı ve servis bu şekilde dağılmalıdır. Bir pattern bu konuda yardımcı olabilir. Popüler Framework'ler de bu konuda yardımcı olabilir. Daha Fazlası için Kiss bölümünü okuyunuz.

    3. Drupal Joomla Smarty XTemplate gibi kullanımların zorunluluk ispatını isteyin
    Bazı teknolojilerin nerede kullanılıp nerede kullanılmayacağını iyi bilmek gerekir. Drupal ve Joomla gibi sistemler bazı yerlerde kullanılmamalıdır, amaçları sınırlıdır. Ayrıca bu sistemlerle kodlatılan sistemin ileride sadece bunları bilenlerce devam ettirileceği akıldan çıkarılmamalıdır. Smarty, XTemplate ve benzeri sistemler için de bu geçerlidir, yeri vardır, yeri olmadığı zaman vardır

    4. Kodlar (php, asp...) ve arabirim (html, css) birbirinden temiz bir şekilde ayrılmış olmalıdır Bunun ispatını isteyiniz. Uzun vadede içiçe geçmiş kod yığınları değişimleri ve geliştirmeleri can sıkıcı hale getirebilir. Tüm bunlar performans ispatlı şekilde yapılsın.

    5. ORM yararlıdır: Kod içinde SQL gözükmemesi iyi birşeydir.
    Sözgelimi
    mysql_query("select name from users where id=5");
    demektense:
    $u = new users(5);  $u->getName();
    demek kodun modüleritesi açısından hayli yararlıdır. İşte buna ORM (object relational mapping) denir.

    6. Kendini tekrar etmediğinin ispatını isteyin Yapılabilecek en büyük hatalardan birisi yazılımcının yazdığı şeyi copy-paste'lerle yapmasıdır. Birbirine benzeyen kodlar bir kere (class, fonksiyon, vb düzeyinde) yazılmalı, kullaınldığı her yerden çok kez çağırılmalıdır. Bir değişiklik yapılacağında tek yerden yapılmalıdır. Aynı şey HTML, CSS gibi temellerde de geçerlidir.

    7. Kiss (keep it simple stupid) Yapacağı şeyi basit, aptal ama güçlü interface'lerle ifade etsin. Unix standartlarına uyacağının garantisini isteyin.
    unix philosophy

    8. Düzenli yazılım Tab kullanımından kodun düzenine, standart bir şekilde yazılsın. Görünümü makarna koda dönmesin. Bir sonraki yazılımcı eliyle koymuş gibi bulsun.
  • 24-06-2008, 11:30:03
    #2
    Üyeliği durduruldu
    ORM daha tam gelişmedi. Bence ilerde önemli olabilir.
  • 24-06-2008, 11:30:54
    #3
    Mantığını anladım ama kullandığın kelimeler bana biraz yabancı geldi yinede teşekkürler
  • 24-06-2008, 11:54:27
    #4
    5. madde günümüzde gereksiz.
    1., 2., 4. ve 7. madde için verilen işin fiyatına göredir. kimse 3-5 kuruş için uğraşmaz. Söyler misin buradaki komik rakamlar için sen uğraşır mısın?
    8. madde ise çok gereksiz. Bazen özel olarak kodlar (müşteri talebi doğrultusunda) sıkıştırılır.

    şimdi bunları buraya yazmak kolaydır, güzeldir. ama uygulamak? Burada seçeceğim bir konuyu bana anlaşılan fiyat ile bu belirttiğin maddelerde yazabilecek misin merak ediyorum?
  • 24-06-2008, 12:02:46
    #5
    SrcnCkr adlı üyeden alıntı: mesajı görüntüle
    5. madde günümüzde gereksiz.
    1., 2., 4. ve 7. madde için verilen işin fiyatına göredir. kimse 3-5 kuruş için uğraşmaz. Söyler misin buradaki komik rakamlar için sen uğraşır mısın?
    8. madde ise çok gereksiz. Bazen özel olarak kodlar (müşteri talebi doğrultusunda) sıkıştırılır.
    şimdi bunları buraya yazmak kolaydır, güzeldir. ama uygulamak? Burada seçeceğim bir konuyu bana anlaşılan fiyat ile bu belirttiğin maddelerde yazabilecek misin merak ediyorum?
    Birincisi geniş sistemlerden bahsettim zaten. Geniş bir sistem min. 2000 bütçeli veya daha fazla sistemlerdir.
    İkincisi, bir kere bunlara uyduğun zaman yazılmıcı olarak zaten bir süre sonra kod yazman daha kolay hale geliyor

    ORM bu çağda gereksizdir demek hatadır. Bütün profösyonel framework'ler ORM üstüne duruyor. Yurt dışında ORM hayli popülerdir. Zaten yazılımcı açısından da ziyandır her seferinde SQL yazmak, küçük hataları ayıklayana kadar her seferinde zaman kaybedersin. ORM performans proof değildir, sözgelimi çok karmaşık bir JOIN - SQL düz yazılabilir, ancak bu %90ı ORM'e oturtulabilecek

    Java dünyasında hibernation ORM gibi kavramlar sık kullanılır, PHP'de daha yeni kavramlardır.
  • 24-06-2008, 12:04:46
    #6
    ORM konusunda Propel ve Doctrine profösyonel araçlar. Benim yazdığım bir sistem de var http://www.easyorm.com ancak şu anda basit düzeyde geliştiriyorum ve PHP5 henüz yok. Birkaç haftaya umarım daha gelişmiş bir araç ortaya koyacağım.
  • 24-06-2008, 12:09:31
    #7
    iyi de sen yurt dışında popüler diyorsun. ben yurt dışında dönen piyasayıda çok iyi biliyorum. bizim ite kaka 2000ytl'ye aldığımız işi adamlar tek teklifle belkide pazarlıksız havada 6000$'a alabiliyorlar.

    css galerilerini geziyorum. adamların sitelerine ağzım açık bakıyorum. bizim geliştiriciye vermeye kıyamadığımız paranın belkide iki katını grafiker için harcıyorlar. geliştiriye verdikleride cabası. Açıkça bu yazdıklarında sadece fikir sahibi olduğum ama kullanacak kadar bilgim olmayan bir tek ORM var. Müşteri'nin tavrına görede bir çoğunu göreceli uygularım. Adam bana sıkı pazarlık yapıyorsa bende ücretine göre iş çıkarırım. Her halukarda 4, 6 ve 8. maddelere uyarım ama ORM dışında kalanları dediğim gibi göreceli yaklaşırım.

    Bu durumdan vicdanımda oldukça rahat. sence haksız mıyım? ben haklı olduğumu düşünüyorum. Çok değil daha dün gece verdiğim rakama uçuk bir rakam önerdi müşteri. neredeyse verdiğim fiyatın %70 aşağı bir ücreti (utanmasa bedava yap diyecek derecede) önerdi. anlaşmadım, ama anlaşsaydımda eminim ki 2 saatte bitirilecek şekilde kod yazardım.
  • 24-06-2008, 12:11:03
    #8
    gentleRain adlı üyeden alıntı: mesajı görüntüle
    ORM konusunda Propel ve Doctrine profösyonel araçlar. Benim yazdığım bir sistem de var http://www.easyorm.com ancak şu anda basit düzeyde geliştiriyorum ve PHP5 henüz yok. Birkaç haftaya umarım daha gelişmiş bir araç ortaya koyacağım.
    Türkçe değil?
    Ayrıca ORM'un bize extrası nedir? Yani sadece SQL kodları görünmesin diye yapılacak değil ya?
  • 24-06-2008, 12:22:33
    #9
    SrcnCkr adlı üyeden alıntı: mesajı görüntüle
    Türkçe değil?
    Ayrıca ORM'un bize extrası nedir? Yani sadece SQL kodları görünmesin diye yapılacak değil ya?
    ORM ile kodlama sürem 1/3 azaldı diyebilirim. Her seferinde yeniden yeniden
    mysql_query, sonra yeniden mysql_fetch_assoc/array vs vs yapmaktan bunalmadın mı? ORM'in varoluş sebebi DRY'dir. Kendini tekrar etme felsefesi.

    Bunun dışında çift katmanlı ORM kullanımı da vardır. Birinci katmanda veri çekimi için standart metodlar kullanılırken ikinci katmanda spesifik metodlar belirtilir, mesela user::getUserAvatar() gibi.

    Haklısın bir türkçe arabirim koymam gerek. Türkçe yazılım konusunda devasa bir ihtiyaç var farkındayım beki benim bunu kapatmam gerek, ingilizce ve türkçe aynı anda hakim az insan var biraz da bizim görevimiz.

    Yurt dışındaki fiyatları biliyorum. Buradaki internet kullanıcısı mail, gazete ve dating dışında birşey bilmediği için internetin hacmi yok. Böyle olunca sistemler ciddi beklentilerle inşaa edilmiyor. Böyle olunca da bize önerilen paralar 2000in altında oluyor. O konuda haklısın.

    Eğer yurt dışndaki gibi trilyon şeye meraklı kullanıcı olsa trafik ciddi miktarda olur, kullanıcı hareketi ve reklam faaliyetleri olur, işin hacmi olur inan o paraları sen de alırsın.