Programlama Paradigmaları - Prosedürel, Fonksiyonel ve Nesne Yönelimli

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 28

  • @ahmetbcakici
    @ahmetbcakici  3 роки тому +5

    Arkadaşlar videoda kulaklık takmış olmama rağmen ne yazık ki seçili mikrofon olarak bilgisayar mikrofonu kalmış. Umarım bu sizi çok rahatsız etmez. Başka eleştiriniz olursa hiç çekinmeden paylaşırsanız çok sevinirim, sevgiler.

  • @zzz6162
    @zzz6162 3 роки тому +8

    Sesin için ayrı eğitimin için ayrı dinliyorum hocam :D

  • @enesayyildiz2132
    @enesayyildiz2132 3 роки тому +8

    Radyocu olucakmışsın abi son anda yazılıma dönmüşsün.Tam bir radyocu ses tonu :)

  • @ertugrulcetin9136
    @ertugrulcetin9136 3 роки тому +1

    Öncelikle zaman ayırıp community'e destek vermeye çalıştığın için kutlarım, motivasyonun yüksek belli ki. Bu bahsettiğin 3 paradigmanın her biri kendi başına çok geniş bir konuya sahip, bu alanlarda ciddi bir tecrübe sahibi olmadan basite indirgeyip insanların anlayacağı dilden anlatmak gerçekten çok zor. Bu tarz videolar bence dolaylı olarak topluluğa karşı bir sorumluluk üsleniyorlar ve insanlar direkt doğru olarak kabul ediyor onun için çok dikkatli olmak lazım. 3 paradigmanın da anlatımında eksiklikler vardı, benim dikkatimi en çok fonksiyonel taraf çekti, uygulama ve anlatımda oldukça hatalar/eksiklikler var. Önerim Haskell, Lisp tarzı dillerde bir süre projeler geliştirip olayı iyice kavrayıp bu tarz anlatımlar yapmak hem senin açından hem bu videoyu izleyenler açısından çok daha sağlıklı olacaktır.

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому +1

      Selamlar Ertuğrul abi, vakit ayırıp geri bildirim verdiğin için ve güzel sözlerin için teşekkür ederim.
      Bence de her türlü kaynağın, tüketenine karşı ciddi bir sorumluluğu mevcut. Video, baskılı kitap gibi kolay şekilde geri alınamayacak içerikler için daha dikkat etmek gerekiyor tabii. Ben de bu yüzden hassas davranmaya çalışıyorum. Mesela çok da hakim olmadığım bir konu üzerinde içerik üreteceksem muhtemelen kendim sıfırdan bir şey yapmak yerine yabancı kaynakları mümkün olduğunca az müdahaleler ile türkçeleştirmeyi tercih ediyorum ve o kaynakların linklerini de belirtiyorum.
      Eksiklikler olması konusunda çok hak veriyorum. Zaten videonun başlığı ve süresini ele alınca eksik olduğu çok sırıtacaktır ki bu üç paradigma hakkında 30 dakikada kim ne anlatabilsin?
      Ciddi hatalı bulduğun kısımları biraz daha net belirtirsen hem ben kendim öğrenmiş ve hatamı düzeltmiş olurum hem de arkadaşlar görerek o bilginin doğrusunu öğrenmiş olur. Ayrıca uygulamada da hata görüyorsan GitHub linkini açıklamaya bırakmıştım. Oradan da yine PR atılması mümkün. Tekrardan teşekkürler, sevgiler 🤗

    • @alimahmoodi
      @alimahmoodi 2 роки тому

      aslinda fonction nal kisimi procedural yapisidi basdan asa function lari yaidi ve calistirdi buda sonuna kader procedural.
      aslinda F() lar F() lar icine paslanmasi gerekiyordu yani F()ni gezdirerek isi yapmasi gerekiyordu. eyvallah zaman koydun anlatin ama boyle isleri illa yailimsal olarak gostermene gerek yok teorik olarak sadece anlatib ve derinine inseydin daha iyi ola bilirdi. f() yazilim yapmak icin yillarca tecrubiye sahip olmak gerek ayni zaman procedural - OOP yede burdaki ornekler sadece kafa karistirib ve yanlis yullara surukliye bilir

  • @sistemofe
    @sistemofe 3 роки тому

    hocam maşAllah çok akıcı gidiyor. Devamını bekleriz.

    • @sistemofe
      @sistemofe 3 роки тому

      bu arada Vim mi kullanıyorsunuz hocam tam anlayamadım @Ahmet Buğra Çakıcı

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому

      @@sistemofe Bu videoda VSCode kullandım editör olarak, teşekkürler yorum için.

  • @kaanersoy1877
    @kaanersoy1877 3 роки тому

    Güzel bir içerik olmuş eline sağlık 😎EDIT: Script tagi özellikle mi head içinde? Neden bu şekilde yaptın?

  • @emredikmen276
    @emredikmen276 3 роки тому +1

    Design patterns üzerine de video çeker misiniz teşekkürler

  • @enesdurmusoglu440
    @enesdurmusoglu440 3 роки тому +1

    Başarılı bir video

  •  3 роки тому

    Nesne yönelimli ve nesne tabanlı programlama paradigmaları farklı şeyler. en.wikipedia.org/wiki/Object-based_language buradan da bakabileceğiniz gibi, Object-Oriented Programming ile Object-Based şeklinde ayırmışlar. Video başlığınızda "Nesne Yönelimli" yazmalıydı.

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому

      Çok teşekkürler, düzelttim. 👍

  • @lelouchvibritannia7286
    @lelouchvibritannia7286 3 роки тому

    Teşekkürler

  • @anilsnl
    @anilsnl 3 роки тому

    Dark mode daha rahat oluyir thems olarak

  • @realazashiro
    @realazashiro 3 роки тому +1

    OOP göstermek için js kullanmak ne kadar doğru bilemedim 🤔 Yoksa güzel video olmuş

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому +3

      Aslında söylediğin şey doğru fakat burada biraz daha maksadım bunların aralarındaki farkı kabaca göstermekti ve anlaşıldığını düşünüyorum. Sadece OOP'i ele almış olsam yine JS kullanarak olmaz değildi fakat bi JAVA bi C# tercih etmek daha mantıklı olurdu, teşekkürler yorum için :)

    • @eraykaratay9266
      @eraykaratay9266 3 роки тому +2

      Javascript hızlıca bir bakınca "functional" gibi gözükebilir ama aslında object oriented denebilir. Kolayca test etmek için bir değişkeni referans olarak başka bir fonksiyona geçirmek denenebilir. Değişkeni referans olarak geçirmek için önce bir obje içine yerleştirirsin sonra o objeyi fonksiyona geçirirsin. Obje argüman olarak fonksiyona geçtiği için kopyalanmış olur ama obje aslında içindeki değişkenlerin referanslarına sahip olduğundan dolayı içindeki bütün değişkenler kopyalanmaz, sadece referansları kopyalanır. Bu şekilde değişkeni referans olarak geçirebilirsin. Yani bu açıdan bakınca da C# ve Java kadar object oriented gözüküyor. Ama classları değerlendirecek olursak durumlar farklı bundan dolayı C# ve Java gibi dillere "class-based object oriented", javascripte "prototype-based object oriented" diyebiliriz.

    • @mertcankose5079
      @mertcankose5079 3 роки тому

      @@eraykaratay9266 👌

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому +1

      @@eraykaratay9266 Eray eline sağlık, güzel yazmışsın. Ayrıca konuyla alakalı şu linki de bırakmak isterim kendim araştırırken denk geldim:
      stackoverflow.com/questions/3962604/is-javascript-a-functional-programming-language

    • @realazashiro
      @realazashiro 3 роки тому

      @@eraykaratay9266 Doğrudur ama yinede en detaylı şekilde OOP göstermenin yolu Java veya C# ki zaten videonun amacı kabaca göstermek.

  • @omerilhanl7981
    @omerilhanl7981 3 роки тому +1

    Eleştiriye açık olduğunu düşünerek yorum yapmak istiyorum.
    -Procedural programming için yorumların doğru uygulaman da doğru denebilir. Eksikler olsa da genel kanı anlamında gayet yeterli olmuş.
    -Object orianted programming için yorumların biraz eksik kalmış uygulamanda da bazı eksiklerin vardı bunları tabi Js ile yapabilirmisin bir js'ci olmadığımdan yorum yapmıyorum. Öncelikle oop için inheritance-abstraction-polymorphism-encapsulation 4'lüsünü uygulaman gerekirdi.
    -Functional programming için tanım anlamında yorumların doğru ama uygulaman yanlış olmuş, functional programming'den ziyade procedural programming'i function'lar aracılığıyla gerçekleştirmişsin. Aslında yaptığın şey bir nevi ilk uygulamandaki kod bloklarını method extract yöntemiyle yeniden organize etmek diyebilirim. Functional programming için biraz daha çalışıp uygulamalar yaparsan senin için daha iyi olur.
    Sana tavsiyem bir konu için birden fazla makaleden faydalan. Özellikle medium ve stackoverflow'u karıştır baya. Konu'nun artıları ve eksileri gibi requirement'larını da gözden kaçırma. Aynı konu için 1 yada 2 gün değil 1 yada 2 hafta harcaman gerekiyorsa harca. Bir yerden sonra öğrenme hızın da artacaktır, ama öğrenme hızın yavaşken (herhangi) bi konu için 1 ya da 2 gün gibi kısa zamanlar ayırırsan bu çoğunlukla yeterli olmicaktır. Eksik yada yanlış yorumladığım yada karşı geldiiğin noktalar varsa eleştirebilirsin.

    • @eraykaratay9266
      @eraykaratay9266 3 роки тому

      Functional programming hatalı olmuş ama nerelerinin hatalı olduğunu yazmamışsın. Ekleme yapayım.
      Aslında kodu yeniden kullanılabilir yapacak küçük ama en önemli kısmı eksik kalmış. "connectForm" fonksiyonuna "handlerFunction" gibi bir argüman eklenilmesi ve onun "form.addEventListener" fonksiyonuna geçirilmesi gerekiyor.
      Bir de videodaki örnek sanki şuradaki örneğe çok benziyor: ua-cam.com/video/aoE-92Ac4zE/v-deo.html

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому +1

      @Omer İlhanli
      Cok tesekkur ederim vakit ayirip geri bildirimde bulundugun icin.
      - OOP konusunda 4'unu de uygulamam gerektigine cok katilmiyorum. Sadece OOP'yi dedigin kavramlarla ve fazlasiyla beraber JAVA ile ele aldigim ve 1 yil kadar once hazirlamis oldugum bir kurs vardi, kanalda bulabilirsin. Burada bilerek onlara girerek anlatmayi maksat edindigim konudan uzaklasacak kadar detaylandirmak ve uzatmak istememistim.
      - Functional programming konusunda uygulamamda gordugun yanlislar icin aciklamadaki GitHub linkinden Pull Request gonderebilirsen cok sevinirim.
      - Son dedigin tavsiyeyi uyguluyorum acikcasi fakat bazi seyleri kendi tercihimle biraz daha ustun koru gectigim dogrudur. Tesekkur ediyorum tekrardan, umarim bundan sonra biraz daha dikkatli olacagim :)

    • @ahmetbcakici
      @ahmetbcakici  3 роки тому +1

      @@eraykaratay9266 cok tesekkurler yorum icin ve aslinda attigin videoyu kendim seyrettikten sonra bu videoyu yapma karari almistim. Dogrudan ceviri yaptigim blog postlara falan kaynaklarin linklerini koyuyordum fakat video konusunda kararsiz kalmistim. Fakat aciklamaya ekledim iyi oldu soyledigin, bundan sonrakilerde de eklesem daha yerinde olacagi kanaatine vardim. 👍