folder Tahribat.com Forumları
linefolder Programlama Genel
linefolder Nasil Daha Iyi Bir Yazilimci Olabilirim



Nasil Daha Iyi Bir Yazilimci Olabilirim

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    Benim için bu sorunun tek cevabı: DİSİPLİN :) ve bende olmayan birşey. Eğer iyi bir yazılım disiplin yoksa pattern de, solid de bilseniz hikaye oluyor.

    Benim gibi 2 gündür düşündüğün ve aklına gelen fonksiyonu test için hızlıca  temp açıp, değişkenlere, sınıflara, fonsiyonlara "asd, zxc, a1, b1" gibi abuk subuk isimler verirsen ve gaza gelip iç içe yazdıkça yazarsan ertesi gün baktığında "ben ne yapmışım yaa" diyip kalırsın.

    Ama solid uymakta beni aşırı yavaşlatıyor, Tembelik yaratıcılık ve hız getiriyor ama kurumsalda hiçbir takım sizinle çalışmak istemeyecek veya takım arkadaşların seni kovacaktır. Disiplin şart!

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Biri de çıkıp demiyor ki "kardeşim design pattern diye bahsettiğimiz şey şudur"


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    NoktaliVirgul bunu yazdı

    Biri de çıkıp demiyor ki "kardeşim design pattern diye bahsettiğimiz şey şudur"

    kusura bakma hocam orta ve ileri seviye yazilimcilar icin yazmistim, temel kavramlari aciklama geregi duymamistim :) Bununla ilgili güzel bir kac makale buldum.

    https://medium.com/@tugrulbayrak/design-patterns-tasarim-kaliplari-3da2018eb9c5

    https://medium.com/@mrpehlivan/tasar%C4%B1m-kal%C4%B1plar%C4%B1-e8aee8a711e2

     

    Söyle 3 lü bir set

    https://medium.com/kodcular/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-1-yarat%C4%B1m-%C3%B6r%C3%BCnt%C3%BCleri-creational-d60f85643941

    https://medium.com/bili%C5%9Fim-hareketi/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-2-yap%C4%B1sal-%C3%B6r%C3%BCnt%C3%BCler-structural-ee0227e93216

    https://medium.com/nafidurmus/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-3-davran%C4%B1%C5%9F-%C3%B6r%C3%BCnt%C3%BCleri-behavioral-4f644d78f704

     

    Bu arada makalelerde gecen Gang of Four 4'lü cete ya da bana göre mahserin 4 atlisi :) 'nin yazdigi kitap da liste (Design Patterns: Elements of Reusable Object-Oriented Software)

     

    Bu bittikten sonra katmanli mimarilerle ilgili makalelere göz atabilirsin. Medium makalaleri genelde iyi oluyor.


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek
    unbalanced bunu yazdı
    NoktaliVirgul bunu yazdı

    Biri de çıkıp demiyor ki "kardeşim design pattern diye bahsettiğimiz şey şudur"

    kusura bakma hocam orta ve ileri seviye yazilimcilar icin yazmistim, temel kavramlari aciklama geregi duymamistim :) Bununla ilgili güzel bir kac makale buldum.

    https://medium.com/@tugrulbayrak/design-patterns-tasarim-kaliplari-3da2018eb9c5

    https://medium.com/@mrpehlivan/tasar%C4%B1m-kal%C4%B1plar%C4%B1-e8aee8a711e2

     

    Söyle 3 lü bir set

    https://medium.com/kodcular/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-1-yarat%C4%B1m-%C3%B6r%C3%BCnt%C3%BCleri-creational-d60f85643941

    https://medium.com/bili%C5%9Fim-hareketi/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-2-yap%C4%B1sal-%C3%B6r%C3%BCnt%C3%BCler-structural-ee0227e93216

    https://medium.com/nafidurmus/design-patterns-tasar%C4%B1m-kal%C4%B1plar%C4%B1-3-davran%C4%B1%C5%9F-%C3%B6r%C3%BCnt%C3%BCleri-behavioral-4f644d78f704

     

    Bu arada makalelerde gecen Gang of Four 4'lü cete ya da bana göre mahserin 4 atlisi :) 'nin yazdigi kitap da liste (Design Patterns: Elements of Reusable Object-Oriented Software)

     

    Bu bittikten sonra katmanli mimarilerle ilgili makalelere göz atabilirsin. Medium makalaleri genelde iyi oluyor.

    Linkler için teşekkür ederim, feyvırıtlarıma attım.

    Ancak sanırım çok üst düzey bir yazılımcı olduğum için tam anlayamadım :) Anladığım kadarıyla objeye yönelik kodlamalarda kullanılan farklı yaklaşımlar. Ancak ben çok object oriented kod yazmadığım için şimdiye kadar ihtiyaç duymamış olabilirim. Belkide kendi bulduğum çözümler o kalıplardan birine benziyordur.

    Son 3 linkteki yazıyı beğendim. Kafam boş bir zamanda okuyup ben hangisine benzer kod yazıyorum bulmaya çalışacağım.


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    NoktaliVirgul bunu yazdı

    Linkler için teşekkür ederim, feyvırıtlarıma attım.

    Ancak sanırım çok üst düzey bir yazılımcı olduğum için tam anlayamadım :) Anladığım kadarıyla objeye yönelik kodlamalarda kullanılan farklı yaklaşımlar. Ancak ben çok object oriented kod yazmadığım için şimdiye kadar ihtiyaç duymamış olabilirim. Belkide kendi bulduğum çözümler o kalıplardan birine benziyordur.

    Son 3 linkteki yazıyı beğendim. Kafam boş bir zamanda okuyup ben hangisine benzer kod yazıyorum bulmaya çalışacağım.

    Dediklerini dogru anladiysam design patternlar dedigin gibi olmayabilir hocam. Design patternlerin ortaya cikis amaci, bir problemi efektif olarak cözmeye yönelik yapilar. Mesela basitce söyle örnek vereyim, singleton design pattern icin. Bir tane sinifin var ve bu siniftan instance'lar yaratiyorsun, ama sürekli bu siniftan bir instance yaratmak yerine, bir tane yaratip her yerde kullanmak istiyorsun. 

    bunu nasil yapabilirsin? Bir public static degisken tanimlayip onun her yerde kullanabilirsin ancak bir sefer o class'dan bir instance yaratman lazim.. Ancak pek hos bir yöntem olmayabilir bu. O yüzden birileri singleton design pattern isimli bir yapi olusturmus. Efektif olarak söyle cözülebilir demis (singleton pattern'in de birden fazla uygulama cesidi var, thread-safe icin ama onlar baska bir sey)

      class Singleton
    
      {
        private static Singleton _instance;
     
        // Constructor is 'protected'
    
        protected Singleton()
        {
        }
     
        public static Singleton Instance()
        {
          // Uses lazy initialization.
    
          // Note: this is not thread safe.
    
          if (_instance == null)
          {
            _instance = new Singleton();
          }
     
          return _instance;
        }
      }

     

    üstteki örnekten gidersen.. Sinifimizin ismi Singlaton.. Bana bu siniftan bir öge lazim diyelim

    var öge = new Singleton() yerine

    Singleton.Instance() diyerek ben bir öge istiyorum. Bu metodu ilk calistirdigimda, local degisken olan _instance null durumda. if ile bunu kontrol ettiriyor, null oldugu icin bu siniftan bir eleman yaratiyor ve artik _instance ögemiz singleton sinifindan yaratilmis oluyor. ve bana bu _instance ögesini geri veriyor..

    Programim her hangi bir yerinde ne zaman Singleton.Instance() metodunu cagiridgimda ayni _instance ögesini bana geri dönderecek. 2. ya da daha fazlaki cagirislarimda _instance artik null olmadigi icin tekrar new Singleton() kurucu metodunu cagirmadan bana daha önce olusturmus oldugu ögeyi verecek.

    Bunun ne avantaji olabilir.. Mesela lazim olan öge'nin sinifi cok karmasik bir yapiya sahip ve bellekte büyük yer kapliyor, sürekli new Sinif() diyerek bellegi isgal etmis oluyorsun (ayrica dispose etmis olmayi düsünmen lazim ya da GC nin calisacagini gözönüne alman lazim). Sürekli ayni siniftan yeni instance'lar olusturmak yerine, bir seferde olusturmak ve onu her yerde kullanabilmek icin bu tarz bir yol izleniyor.

    Bu sadece bir design pattern ve oldukca popüler. Ancak bu demek degil ki programinin %100 ü böyle.. Ihtiyac duydugun yerler olabilir...  Ilgili pattern icin buraya bakabilirsin https://www.dofactory.com/net/singleton-design-pattern

    Ikinci olarak mesela database islemleri yapiyorsu, nasil bir pattern kullanabilirsin? repository design pattern.. 

    Bu pattern'i CRUD islemleri icin kullanabilirsin.. 

    https://codewithshadman.com/repository-pattern-csharp/

    Bir cok yazilimci her database tablosu icin bir repository class'i olusturuyor gereksiz yere, oysa Generic repository kullanarak, her tablo icin bir class olusturmak yerine, tek class ile generic ögeler vererek yapilabiliniyor. Yani 10 tablosu olan bir db icin adam 1000 satir kod yaziyorsa, generic repository kullanarak, belki 50 satirda ayni isi yapabilirsin.. 

    Bunun gibi örnekler cogaltilabilir.. Karisik yazdiysam kusura bakma :) Umarim biraz da olsa anlasilmistir.

    kolay gelsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alkolikkarga
    alkolikkarga's avatar
    Kayıt Tarihi: 28/Haziran/2015
    Erkek

    Güzel konu takip.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Gizem
    sLeymN
    sLeymN's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    http://www.pratikprogramci.com/urun/design-patterns/

    bence her yazılımcıyım diyen kişinin hatmetmesi gereken bir kitap


    Cehennemin dibine kadar yolum var daha.. || Nasılsa her yalnız kendine sürgündür Asmera unutma.