Yazılım mühendisliği 2. sınıf öğrencisiyim. Ders hocalarının anlatım yetisi olmaması ve amaç odaklı değil de araç odaklı bir eğitim stili kullandıkları için 2 aydır sadece javadaki oop özelliklerinin formatlarını ezberleyip durdum this.x = x; i neden yazdığımızı bile bilmiyordum. Ta ki düne kadar. Yeni yeni anlamaya başladım ve daha fazla iyi anlamak için video ararken sizin videonuzu gördüm. 13dkda ek bir bakış açısı kazandırdınız. Teşekkürler.
aslinda ben cok seviyorum , hatta python gibi salt oop üstadi bir dil ile yazilan programlarda neden oop olmadigina kafayi taktim bu aralar. benim gibi oop gicik olup sonrasinda bagimlisi olmak istiyorsaniz tam tersine bu video ilac gibi gelir.Ömer hocam cidden cok iyi niyetli bilgili ve güzel bir insansınız. sizi seviyoruz
Teşekkür ederim o senin güzelliğin :) Python hakkında sana katılıyorum. Aslında insanlar java dilini OOP üstadı zanneder ama bence de python OOP üstadı. Neden diyeceksin, OOP kavramının en sevdiği şeylerden birisi de extreme late-binding işlemidir. Bunun en iyi uygulandığı dil python dilidir.
Bu yorumu tam anlayamadım. Python'un en yaygın kullanılan yorumlayıcısı oop olmayan bir dilde yazıldı (C ile). Python ayrıca ortaya cıktıgı ilk günden beri OOP'i destekler. Dilin dinamik olması ile OOP destekleyip desteklememesi arasında bir bag yok. Video'da bahsedilen OOP'nin temellerinin atıldıgı Smalltalk dinamik bir dil (Dynamically Typed Language)
@@bilalinci4981 inamik Yazılım Dilleri ve OOP: Python gibi dinamik yazılım dilleri, tip bilgisini çalışma zamanında çözer. Bu, tip güvenliği ve statik tip kontrolünün eksikliğine yol açabilir. Ancak, Python'da nesne yönelimli programlama (OOP) konseptleri eksiksiz olarak uygulanmaktadır. OOP ve Python: Python, OOP'nin önemli bir kısmını destekler. Nesneler, sınıflar ve miras gibi temel OOP prensipleri Python'da bulunur ve kullanılabilir. Ancak bazı dillerde bulunan kapsam belirleyicileri gibi bazı özellikler eksik olabilir. OOP'nin Farklı Yorumları: OOP, dilin tasarımına bağlı olarak farklı şekillerde yorumlanabilir. Bu nedenle, bir dilin OOP'ye "tam uyup uymadığı" genellikle biraz belirsiz bir ifadedir. Python'un Avantajları: Python, OOP dışında birçok avantaja sahiptir. Özellikle, hızlı prototipleme, anlaşılabilirlik ve geniş kütüphane desteği gibi özellikler, Python'u diğer dillerden daha uygun hale getirebilir. İhtiyaçlara Bağlılık: Hangi dilin "daha iyi" olduğu, projenin gereksinimlerine bağlıdır. Python, hızlı gelişim ve veri analizi gibi alanlarda genellikle tercih edilirken, OOP özelliklerini daha fazla önemseyen bir projede C++ veya Java gibi diller tercih edilebilir. Sonuç olarak, Python'un dinamik yapısı, OOP'ye tam olarak uymadığı anlamına gelmez. Her dilin kendine özgü avantajları ve dezavantajları vardır ve doğru dil seçimi, projenin gereksinimlerine en iyi şekilde uyum sağlayan dilin belirlenmesiyle ilgilidir
Baştan sona ders niteliğinde değilde "OOP düşünerek kod yazmak" gibi fikirlerim var. Buna ek olarak OOP felsefesini kullanan farklı projeleri anlatmayı düşünüyorum.
tam anlamıyla mükemmel ötesi, kodlamanın ne olduğunu kavramama da aşırı yardımcı oldu. bu videoyu c üzerine çalışırken gördüm, iyi ki bu kanalı keşfetmişim
Otomobil ürettiğini düşün. Parçalarını malzemeyi verdiğinde otomatik üreten ve montajlayan robotlarla bir otomobili bikaç saatte üretmek OOP dir. Oturup her parçayı tornada işleyip, demir tezgahında elle yapmak vs vs şeklinde 1 otomobili 1 yılda üretmek ise spagettidir. Spagetti sevilmez, gereksiz iş yüküdür.
1991'de ortada Windows, fare falan olmayan dönemde Boğaziçi'nde monokrom monitörle DOS altında Smalltalk dersi görüyorduk. Grafik arabirimi, menüleri vardı, o zamana kadar diğer programlama dillerinde satır satır metin giriyorduk. Evvelinde Basic, Assembler, Pascal, C öğrendiğim için Smalltalk çok ilginç gelmişti, hazır kütüphaneden aldığımız bir köpek objesine 30 derece dön, 10 adım git gibi emirler veriyorduk sanki. Açıkçası bunu öğrenip hangi amaçla kullanacağız diye düşünüyordum, kendisini okul sonrası hiç kullanmadım ama ileriki yıllarda icat edilen Actionscript, Javascript gibi birçok dili kolay öğrenmeme faydası olduğunu düşünüyorum.
Evet basit, çünkü OOP amacı, büyük ve karmaşık sistemleri daha küçük, daha yönetilebilir parçalara bölmek ve bu parçalar arasındaki iletişimi organize etmektir. Geri kalan şeyler detaydır.
Bilgisayar mühendisliğini derece ile bitirdiğimde yüksek ortalamama rağmen en düşük dersim OOP'du hala unutamıyorum çok iyi bildiğim bir konuyu hocanın istediği şekilde anlamadığım için ve anlatmadığım için düşük almıştım. Videoyu izlerken aklıma bu geldi, Hayvan sınıfı üretip diğer hayvanlara burdan kalıtım yapmadan anlattığınız için teşekkür ederim. Türkiyede ki çoğu üniversitede yer alan OOP dersinden daha iyi video.
Hocam aydınlanma yaşadım diyebilirim. Herbert Schildt 'i okuduğumda bir çok şey havada kalıyordu ancak şimdi bir çok taş yerine oturdu diye düşünüyorum. Paylaştığınız videonun kıymetini anlatamam. Başarılar dilerim.
20 yıldır Nesne Odaklı Programlama yapıyorum. Bu konuyla ilgili eğitimimi Hollanda'da aldım. Nesne Odaklı Programlama ile ilgili terimleri (Sınıfl ve Miras gibi terimleri) Türkçe olarak ilk kez bu videonuzda duyuyorum, bu çok ilgimi çekti. Bu terimleri normalde İngilizce olarak kullandığım için, bunların karşılığı Class veya Inheritance oluyor genelde. 😊
aslında problem biraz development süreci ile ilgili. örneğin js projelerinde run time anında uygulamanın patlamaması için typescript geliştirildi. typescript çoğunlukla interface lerden ve bunların birbirini inherit etmesi ile kullanılan bir dil. böyleye development süreci oldukça güvenli bir hale geldi ve run time da daha sağlıklı projeler üretebilir olduk. çünkü hangi verinin hangi tiplerle gidip geleceği önceden tanımlı oldu artık
Evet bak bu örnekte iyi oldu. Herkesin farklı kullanımlarının önüne geçip bir standart haline getirmek için bir adım. Böylelikle typescript yazan herkes aynı standarta uyduğundan iletişim problemi en aza iniyor. Teşekkür ediyorum bu güzel örnek için.
Başka bir yazılımcı (frontend developer, backend developer..vs) sizin hangi kodları yazdığınızı yada algoritmanızı bilmek zorunda değil. Ama interface lerinize bakarak "add-find-delete" methodlarını gördüğünde bunları çok rahat bir şekilde "kitaplar.add('yeni kitap') - kitaplar.find('sefiller') - kitaplar.delete('sefiller')" şeklinde kullanabilmelidir. Yani add methodu ne yapıyor find methodu nasıl bir algoritma işliyor bunları bilmek zorunda değildir ama kullanabilmelidir.
Bu yorum güzel oldu :) Aslında bizim nesnelere, sınıflara değil aksiyonlara yani mesajlara odaklanmamız gerektiğinin güzel bir örneği. Mesajı al, mesajı ver. Çünkü nesnenin ne olduğu operasyonu nasıl yaptığı 2. kişi için önemsiz. Bunun bir sonraki seviyesi API çok güzel bir OOP örneği aslında , Alan Kay bakış açısına da çok uyumlu. Yorum için teşekkürler.
Nesne odaklı programlama yerine mesajlaşma veya iletişim kelimesi çok daha anlaşılır bir kelime, içerikleriniz gerçekten çok güzel umarım ilerde şu ösym sınavı cehenneminden kurtulduktan sonra bilgisayar programcılığı kazanarsam bu bilgiler benim çok daha fazla işime yarar.
Teşekkürler, insanın cehennemi bitmez :) Biri biter biri başlar. Önemli olan o cehennemin içinde neler yapabildiğin. Başarılar diliyorum sana. ua-cam.com/users/shortsubmPinL0-zI
nesne odaklı değil mesaj odaklı düşünmek istiyorsanız, OOP yerine ondan çok daha etkin paradigmaları da ele almanızı tavsiye ederim. evet doğru tahmin ettiniz, fonksiyonel programlama...
Bu konu daha iyi anlatılabilse belki o ilk baştaki önyargı hiç olmayacak. Programlamaya yeni başlayan birine "OOP ile karmaşık sistemleri daha yönetilebilir parçalara bölüp bu parçaları haberleştiriyoruz" desek kafasında hiç bir soru işareti kalmaz. Ama sınıf nesne diyerek girince kafalar limon oluyor.
Temel şeyleri öğrendikten sonra tasarım desenlerine bak bence çok faydası olur. Dğğer taraftan OOP boş boş kavramak zor. Bu yüzden bir proje üzerinden örnek kodlara bakmak iyi olabilir.
İlk olarak 1990 larda OOP ile karşılaştık, o zamanlar yazılımlar text ekranlıydı, yazılımcıların neredeyse yarısı bu işi bıraktı, sonraki yaprak dökümü text ten GUI e geçerken oldu, oda zorluydu, o zamanda 1995 ler büyük bir yaprak dökümü yaşandı, sonra internet ve web 2000 ler, mobil 2010 lar şimdide yapay zeka. Hala hayattayız.
Evet duydum. "Yazılım öğrenmeyin artık bu işleri yapay zeka yapacak" demiş. Burdan yaptığım çıkarım şu oldu. Artık yazılım dili öğrenmeyeceğiz, yazılım yapan AI komut dilini öğreneceğiz. Yazılımın tamamen AI'a bırakılması söz konusu olamaz. AI bile olsa operatöre muhtaç bu sistemler.
@@merbekta şu an yazılımla uğraşıyorum. şimdilik insan müdahalesi de gerekiyor. anladığım bu. çünkü bütün bir projeyi ai ile yazmak imkansız hatta birçok küçük parçayı bile. ama bu kadar hızlı gelişen bir durumda bence bu adam haklı. sizce de en azından 30 kişinin yaptığı işi 2 kişi yapacak duruma gelmez mi?
Hocam videonun kaynağı var mıdır daha detaylı öğrenmek isterim. Bir de C'den Java'ya geçince Classların neden kullanıldığını daha iyi anlamış oldum hocam sağolun
Oop gerçek hayatın yazılıma aktarılmasıdır 4 bacağı vardır abstraction inheritence polymorphism ve encapsulation bunlardan en dikkat edilmesi gereken şeylerden bir tanesi abstractiondur abstraction hayatın kendisidir etrafımıza bakarsak kullandığımız eşyalarda vsvs abstractiondan bir sürü örnek görebiliriz
Yazılıma yeni başlayan birine bu yazdıklarını anlatmak mı mantıklı yoksa "OOP amacı karmaşık sistemleri daha yönetilebilir parçalara bölüp bu parçaları haberleştirmektir." demek mi mantıklı ? Biz böyle object,abstraction,class dedikçe ana fikirden uzaklaşmıyor muyuz ?
OOP hayatın ta kendisidir. Sen bir telefon nesnesini eline aldığında tuşlarına, ekranına dokunarak (property, method) bir girdi yaparsın ve akabinde yaptığın girdi doğrultusunda telefon sana bir dönüş yapar yani bir çıktı elde edesin.
Daha önce bir erp sistemi geliştirmiştim oop kullanmadan. Şimdi bir sipariş üzerine tekrar bir fabrikaya erp yazıyorum bu sefer oop kullanarak. Şunu farkettim daha önceki yaptığımı sandığım şeyin erp ile yazılım ile alakası yokmuş 😂 şimdi oop olmadan ajax bile kullanamıyorum 😂
Bakış açısı ne olursa olsun, Nesne Tabanlı Programlama dilininin yapısı ve kurallarının öğrenilmesi gerekiyor. Yeni başlayanlara zor geliyor haliyle. İletişimden ve mesajdan bahsedilmiş ancak UML'den bahsedilmemiş.
oop ın duygusal sebepleri benim için bir şey değiştirmez, çok daha sistematik düzenli ve kaliteli kod için fonksiyonel kod yazarım, veri depolama için structlar ve implemantasyonlar var rustta, özetle rust ın standartları bence gelmiş geçmiş en güzel yazılım standartları, en kısa zamanda en stabil projeyi en güzel şekilde çıkarabileceğiniz başka bir yazılım dili veya standartı yoktur.
Aslında video da tam olarak buna atıfta bulunuyor. OOP kullanmak bir zorunluluk değil. Eğer başka birinin konsepti çok daha iyi ise gidip onu kullanmak lazım. Burada amaç temelinde kodları haberleştirmek, eğer sen böyle daha başarılıysan en iyisi o demektir.
@@merbekta orası öyle ama bence biraz esneklik lazım kişisel düşüncem fonksiyon ağırlıklı kod yazmakta, tabii structlar ve içindeki implemantasyonlar bir nevi oop oluyor ama gerektiğinde kullanılmalı, classların en efektif taraıfını projeden ziyade library kodlamakta olduğunu düşünüyorum
Bu içerik, spagetti sevenler için izlerken hazımsızlık yapabilir. Videonun sonunda vurguladığın nokta, gerçekten önemli. Bana göre bu kavramı (OOP) anlamak için "nesne" kelimesi ile düşününce, kafamda canlandırması daha zor. Farklı bir isim vermek için "object" ismini uygun bulmuşlar. Hepinize şapka çıkartılır,
Kendinize şunu sorun; “OOP neyi, nasıl çözüyor”. Bu sorunun cevabını aramıyor/veremiyorsanız eğer yazılıma çok dar bir perspektiften bakıyorsunuz maalesef.
Bu yaptığınız şeyi çok az kişi yapıyor. "BUNA NEDEN İHTİYACIMIZ VAR?". "Hangi sıkıntı çıktı da bu icat edildi?"... Bu sorulara cevap vermek yazılımcıları bir makine olmaktan çıkarıp yaptıkları işi anlamlandırmasını sağlıyor.
"OOP" sevmemek? Sanki gündelik hayatta nefes almayı sevmemekle eşdeğer anlamda bir şey. OOP sevmiyorum diyen arkadaşlar acilen bakış açınızı değiştirmeniz gerekiyor
Katılmıyorum. Nesne kelimesi harika bir ifade biçimi. Mesaj odaklı demek, Kendi için zilyon şey yapan bir öbeğin hakkını veremez. Oysa bir nesne, kendi içinde zilyon iş yaparken diğerleri ile alış veriş yapabilir. Girdileri ve çıktıları ile karmaşık ağlar halinde çalışan Fabrika-ları örnek vermeme gerek yok sanırım.. Sadece hammade/ürün transferine odaklanarak, fabriklara sadece lojistik eksenli bi isimlendirme yapılabilir mi?
Video tam buraya değiniyor hocam zaten. Eğer bütün başarıyı nesneye yüklüyorsak, evet nesne odaklı diyebiliriz. Oysa OOP amacı nesne üretmek midir ? Eğer nesne üretmekse structure ile bunu çok rahat çözebiliriz. Yok structure bu sorunu çözmüyorsa o zaman amaç nesne üretmek değildir. Structure çözemediği bir şeyler var ki OOP geliştirildi. Fabrika güzel örnek. Fabrikanın amacı nesne üretmek midir yoksa o nesneyi üretebilmek için gerekli olan operasyonları barındırmak ve haberleştirmek midir ? "Girdileri ve çıktıları ile karmaşık ağlar halinde çalışan Fabrika-ları örnek vermeme gerek yok sanırım" şu sözünüz çok güzel destekliyor aslında bu fikri. Siz bu sözünüzle fabrikanın ürettiği ürüne değil sürece,yeteneğe,operasyona atıfta bulundunuz. Bunları haklı çıkmak için söylemiyorum yanlış anlama sadece tartışmak istiyorum. Böyle şeyleri tartışmalıyız ki daha iyilerini ortaya koyabilecek fikirlerimiz olabilsin. Yoksa herkes OOP biliyor tartışmanın bir faydası yok.
Ezbere dayalı değil işin mantığına dayalı olarak çok net anlatmışsınız
kesinlikle katılıyorum. tebrikler ömer kardeşim. ağzına, emeğine sağlık
Bravo. Yıllardır anlatmaya çalıştığımız şeyi abartıdan uzak basit bir şekilde ifade etmişsiniz.
Teşekkürler,
Yazılım mühendisliği 2. sınıf öğrencisiyim. Ders hocalarının anlatım yetisi olmaması ve amaç odaklı değil de araç odaklı bir eğitim stili kullandıkları için 2 aydır sadece javadaki oop özelliklerinin formatlarını ezberleyip durdum this.x = x; i neden yazdığımızı bile bilmiyordum. Ta ki düne kadar. Yeni yeni anlamaya başladım ve daha fazla iyi anlamak için video ararken sizin videonuzu gördüm. 13dkda ek bir bakış açısı kazandırdınız. Teşekkürler.
Guzel, aydinlatici oldu. Simdi daha iyi anladim OOP mantigini. Tessekkur ederim.
aslinda ben cok seviyorum , hatta python gibi salt oop üstadi bir dil ile yazilan programlarda neden oop olmadigina kafayi taktim bu aralar. benim gibi oop gicik olup sonrasinda bagimlisi olmak istiyorsaniz tam tersine bu video ilac gibi gelir.Ömer hocam cidden cok iyi niyetli bilgili ve güzel bir insansınız. sizi seviyoruz
Teşekkür ederim o senin güzelliğin :) Python hakkında sana katılıyorum. Aslında insanlar java dilini OOP üstadı zanneder ama bence de python OOP üstadı. Neden diyeceksin, OOP kavramının en sevdiği şeylerden birisi de extreme late-binding işlemidir. Bunun en iyi uygulandığı dil python dilidir.
@@merbekta gercekten üstad bildiklerimizin üzerine bilmedigimiz bir acidan bildiklerimize tekrar bakmamiza vesile oluyorsun.
@@merbektaöyle olsa bile bence python diğer birçok taraftan kaybediyor. Dinamik bir yazılış tipi olduğundan oop’ye tam uymuyor.
Bu yorumu tam anlayamadım. Python'un en yaygın kullanılan yorumlayıcısı oop olmayan bir dilde yazıldı (C ile). Python ayrıca ortaya cıktıgı ilk günden beri OOP'i destekler. Dilin dinamik olması ile OOP destekleyip desteklememesi arasında bir bag yok. Video'da bahsedilen OOP'nin temellerinin atıldıgı Smalltalk dinamik bir dil (Dynamically Typed Language)
@@bilalinci4981 inamik Yazılım Dilleri ve OOP: Python gibi dinamik yazılım dilleri, tip bilgisini çalışma zamanında çözer. Bu, tip güvenliği ve statik tip kontrolünün eksikliğine yol açabilir. Ancak, Python'da nesne yönelimli programlama (OOP) konseptleri eksiksiz olarak uygulanmaktadır.
OOP ve Python: Python, OOP'nin önemli bir kısmını destekler. Nesneler, sınıflar ve miras gibi temel OOP prensipleri Python'da bulunur ve kullanılabilir. Ancak bazı dillerde bulunan kapsam belirleyicileri gibi bazı özellikler eksik olabilir.
OOP'nin Farklı Yorumları: OOP, dilin tasarımına bağlı olarak farklı şekillerde yorumlanabilir. Bu nedenle, bir dilin OOP'ye "tam uyup uymadığı" genellikle biraz belirsiz bir ifadedir.
Python'un Avantajları: Python, OOP dışında birçok avantaja sahiptir. Özellikle, hızlı prototipleme, anlaşılabilirlik ve geniş kütüphane desteği gibi özellikler, Python'u diğer dillerden daha uygun hale getirebilir.
İhtiyaçlara Bağlılık: Hangi dilin "daha iyi" olduğu, projenin gereksinimlerine bağlıdır. Python, hızlı gelişim ve veri analizi gibi alanlarda genellikle tercih edilirken, OOP özelliklerini daha fazla önemseyen bir projede C++ veya Java gibi diller tercih edilebilir.
Sonuç olarak, Python'un dinamik yapısı, OOP'ye tam olarak uymadığı anlamına gelmez. Her dilin kendine özgü avantajları ve dezavantajları vardır ve doğru dil seçimi, projenin gereksinimlerine en iyi şekilde uyum sağlayan dilin belirlenmesiyle ilgilidir
nesne yönelimli programlama hayatın bizzat kendisidir. hayattan esinlenilmiştir :)
Anlatımınız mükemmel, umarım hep anlatmaya devam edersiniz🙏🏻
Teşekkürler
OOP ancak bu kadar basit kısa ve öz anlatılabilirdi, ağzına sağlık mükemmel.
aslında baştan sona OOP kavramlarını anlatsan super olur çünkü bu video çok net anlaşılır başkası anlatsa bu kadar net temiz anlatamazdı heralde
Baştan sona ders niteliğinde değilde "OOP düşünerek kod yazmak" gibi fikirlerim var. Buna ek olarak OOP felsefesini kullanan farklı projeleri anlatmayı düşünüyorum.
çok anlaşılır anlatım kavramları çok yalın anlatmışsınız. tesekkur.
tam anlamıyla mükemmel ötesi, kodlamanın ne olduğunu kavramama da aşırı yardımcı oldu. bu videoyu c üzerine çalışırken gördüm, iyi ki bu kanalı keşfetmişim
Otomobil ürettiğini düşün. Parçalarını malzemeyi verdiğinde otomatik üreten ve montajlayan robotlarla bir otomobili bikaç saatte üretmek OOP dir. Oturup her parçayı tornada işleyip, demir tezgahında elle yapmak vs vs şeklinde 1 otomobili 1 yılda üretmek ise spagettidir. Spagetti sevilmez, gereksiz iş yüküdür.
Her saniyesi dolu olan sadece bu konuda değil bakış açısı anlamında da farkındalık katan bu sözlere saygılarımı sunarım
Teşekkürler, benden de saygılar sevgiler.
Her zaman oldugu gibi farkini koymussun. Tebrik ederim😊
4 hafta önce oop ye başladık. ve anlamlandıramıyordum. Artık her şey daha berrak :D Teşekkür kardeşim.
yemin ederim bakış açım değişti, çok teşekkürlerr ❤
Teşekkürler
1991'de ortada Windows, fare falan olmayan dönemde Boğaziçi'nde monokrom monitörle DOS altında Smalltalk dersi görüyorduk. Grafik arabirimi, menüleri vardı, o zamana kadar diğer programlama dillerinde satır satır metin giriyorduk. Evvelinde Basic, Assembler, Pascal, C öğrendiğim için Smalltalk çok ilginç gelmişti, hazır kütüphaneden aldığımız bir köpek objesine 30 derece dön, 10 adım git gibi emirler veriyorduk sanki. Açıkçası bunu öğrenip hangi amaçla kullanacağız diye düşünüyordum, kendisini okul sonrası hiç kullanmadım ama ileriki yıllarda icat edilen Actionscript, Javascript gibi birçok dili kolay öğrenmeme faydası olduğunu düşünüyorum.
Son kısımda söylediğiniz açıklamayı düşününce 'Cidden bu kadar basit mi bu olay' dedim :D Çok teşekkürler.
Evet basit, çünkü OOP amacı, büyük ve karmaşık sistemleri daha küçük, daha yönetilebilir parçalara bölmek ve bu parçalar arasındaki iletişimi organize etmektir. Geri kalan şeyler detaydır.
Bilgisayar mühendisliğini derece ile bitirdiğimde yüksek ortalamama rağmen en düşük dersim OOP'du hala unutamıyorum çok iyi bildiğim bir konuyu hocanın istediği şekilde anlamadığım için ve anlatmadığım için düşük almıştım. Videoyu izlerken aklıma bu geldi, Hayvan sınıfı üretip diğer hayvanlara burdan kalıtım yapmadan anlattığınız için teşekkür ederim. Türkiyede ki çoğu üniversitede yer alan OOP dersinden daha iyi video.
Bu içeriği hazırlamamın en büyük sebebi bu aslında. Bu konuyu hayvan sınıfından öteye götürmek. Teşekkürler
Hocam aydınlanma yaşadım diyebilirim. Herbert Schildt 'i okuduğumda bir çok şey havada kalıyordu ancak şimdi bir çok taş yerine oturdu diye düşünüyorum. Paylaştığınız videonun kıymetini anlatamam. Başarılar dilerim.
Yorum için teşekkürler Bektaş faydalı olmasına sevindim :) Fırsat buldukça OOP ilgili farklı konular ele alıcam.
@@merbekta devamını kesinlikle bekliyoruz hocam
20 yıldır Nesne Odaklı Programlama yapıyorum. Bu konuyla ilgili eğitimimi Hollanda'da aldım. Nesne Odaklı Programlama ile ilgili terimleri (Sınıfl ve Miras gibi terimleri) Türkçe olarak ilk kez bu videonuzda duyuyorum, bu çok ilgimi çekti. Bu terimleri normalde İngilizce olarak kullandığım için, bunların karşılığı Class veya Inheritance oluyor genelde. 😊
İlk dersler Unity ile yapılsa çoğu öğrenci bu olayı çok daha iyi anlardı.
Olabilir evet :) O zaman da unity'e odaklanırlardı :)
Gayet açık anlatım, başarılarının devamını diliyorum.
teşekkür ederim artık daha mantıklı geliyor ve kafamda oturdu ama ne yazık ki halen oopden nefret etmekteyim. Bu kanal büyümeli
aslında problem biraz development süreci ile ilgili. örneğin js projelerinde run time anında uygulamanın patlamaması için typescript geliştirildi. typescript çoğunlukla interface lerden ve bunların birbirini inherit etmesi ile kullanılan bir dil.
böyleye development süreci oldukça güvenli bir hale geldi ve run time da daha sağlıklı projeler üretebilir olduk.
çünkü hangi verinin hangi tiplerle gidip geleceği önceden tanımlı oldu artık
Evet bak bu örnekte iyi oldu. Herkesin farklı kullanımlarının önüne geçip bir standart haline getirmek için bir adım. Böylelikle typescript yazan herkes aynı standarta uyduğundan iletişim problemi en aza iniyor. Teşekkür ediyorum bu güzel örnek için.
Hocam kavramlar kafa karışıklığına neden olduğu için gözümde çok fazla büyütüyordum bu konuyu taki bu videoya denk gelene kadar ,muhteşemsiniz...
Faydalı olmasına sevindim :)
Başka bir yazılımcı (frontend developer, backend developer..vs) sizin hangi kodları yazdığınızı yada algoritmanızı bilmek zorunda değil. Ama interface lerinize bakarak "add-find-delete" methodlarını gördüğünde bunları çok rahat bir şekilde "kitaplar.add('yeni kitap') - kitaplar.find('sefiller') - kitaplar.delete('sefiller')" şeklinde kullanabilmelidir. Yani add methodu ne yapıyor find methodu nasıl bir algoritma işliyor bunları bilmek zorunda değildir ama kullanabilmelidir.
Bu yorum güzel oldu :) Aslında bizim nesnelere, sınıflara değil aksiyonlara yani mesajlara odaklanmamız gerektiğinin güzel bir örneği. Mesajı al, mesajı ver. Çünkü nesnenin ne olduğu operasyonu nasıl yaptığı 2. kişi için önemsiz. Bunun bir sonraki seviyesi API çok güzel bir OOP örneği aslında , Alan Kay bakış açısına da çok uyumlu. Yorum için teşekkürler.
ilk defa bir konuyu 2x 'de dinlemedim hoşuma gitti baya
Ben de senin kanaldaki video'yu izledim 2x olmadan. Son haraket pek hoş olmadı ama neyse :)
@@merbekta kusura bakmayın djdjdjfkkfkf tek nefeste bitirmenin Sevinciyle oldu
:)
Nesne odaklı programlama yerine mesajlaşma veya iletişim kelimesi çok daha anlaşılır bir kelime, içerikleriniz gerçekten çok güzel umarım ilerde şu ösym sınavı cehenneminden kurtulduktan sonra bilgisayar programcılığı kazanarsam bu bilgiler benim çok daha fazla işime yarar.
Teşekkürler, insanın cehennemi bitmez :) Biri biter biri başlar. Önemli olan o cehennemin içinde neler yapabildiğin. Başarılar diliyorum sana. ua-cam.com/users/shortsubmPinL0-zI
kafa acayim derken, ruhumu daralttin, sag ol...
Rica ederim ne zaman ruhunu daraltmak isterse gel 😂
nesne odaklı değil mesaj odaklı düşünmek istiyorsanız, OOP yerine ondan çok daha etkin paradigmaları da ele almanızı tavsiye ederim. evet doğru tahmin ettiniz, fonksiyonel programlama...
OOP'yi anlayana kadar kimse sevmez, anladıktan sonra bırakamaz. Birde SOLID'i dahil ettikmi, yeme de yanında yat.
Bu konu daha iyi anlatılabilse belki o ilk baştaki önyargı hiç olmayacak. Programlamaya yeni başlayan birine "OOP ile karmaşık sistemleri daha yönetilebilir parçalara bölüp bu parçaları haberleştiriyoruz" desek kafasında hiç bir soru işareti kalmaz. Ama sınıf nesne diyerek girince kafalar limon oluyor.
@@merbekta aynen, sana katılıyorum. Bu arada kademe kademe ilerleyerek anlatman gerçekten başaırılı.
hocam biz okulda oop görüyoruz ama python anlatılıyor , vizeler yaklaşıyor acaba nasıl çalışırım.
Temel şeyleri öğrendikten sonra tasarım desenlerine bak bence çok faydası olur. Dğğer taraftan OOP boş boş kavramak zor. Bu yüzden bir proje üzerinden örnek kodlara bakmak iyi olabilir.
Çok iyi anlatım, ağzınıza sağlıkk
Temel kodlama hakkında bilginiz var mı? komut setleri ve, çevrimleri ve kayıtçılar gibi..
Teşekkürler
Teşekkürler, evet var.
@@merbekta kaynak vererebilirmisiniz
İlk olarak 1990 larda OOP ile karşılaştık, o zamanlar yazılımlar text ekranlıydı, yazılımcıların neredeyse yarısı bu işi bıraktı, sonraki yaprak dökümü text ten GUI e geçerken oldu, oda zorluydu, o zamanda 1995 ler büyük bir yaprak dökümü yaşandı, sonra internet ve web 2000 ler, mobil 2010 lar şimdide yapay zeka. Hala hayattayız.
Anılarım canlandı yorumu okurken :)
Herkese sonsuz mutluluk dilerim
Teşekkürler Ahmet,
Nvdia ceosunun yeni açıklamasını duydunuz mu hocam?
Evet duydum. "Yazılım öğrenmeyin artık bu işleri yapay zeka yapacak" demiş. Burdan yaptığım çıkarım şu oldu. Artık yazılım dili öğrenmeyeceğiz, yazılım yapan AI komut dilini öğreneceğiz. Yazılımın tamamen AI'a bırakılması söz konusu olamaz. AI bile olsa operatöre muhtaç bu sistemler.
@@merbekta şu an yazılımla uğraşıyorum. şimdilik insan müdahalesi de gerekiyor. anladığım bu. çünkü bütün bir projeyi ai ile yazmak imkansız hatta birçok küçük parçayı bile. ama bu kadar hızlı gelişen bir durumda bence bu adam haklı. sizce de en azından 30 kişinin yaptığı işi 2 kişi yapacak duruma gelmez mi?
Merhaba, Mac'in hangi modelini ve inch'ini kullanıyorsunuz acaba?
macbook air m2 var elimde. Ama bu video arkaplanı için soruyorsan o sadece adobe premiere pro üzerinden bir sahne o kadar.
çok güzel anlatmışsınız 👏👏 keşke bir de callback yapıp fonksiyonel programlamayı da ardan çıkarsaydınız.
Teşekkürler, çok dağıtmak istemedim. Belki başka bir videoda anlatmak iyi olabilir.
Hocam videonun kaynağı var mıdır daha detaylı öğrenmek isterim. Bir de C'den Java'ya geçince Classların neden kullanıldığını daha iyi anlamış oldum hocam sağolun
Şuna göz atabilirsin wiki.c2.com/?AlanKaysDefinitionOfObjectOriented
@@merbektaTeşekkürler
harika anlatmışsınız teşekkürlerrr:D
Oop gerçek hayatın yazılıma aktarılmasıdır 4 bacağı vardır abstraction inheritence polymorphism ve encapsulation bunlardan en dikkat edilmesi gereken şeylerden bir tanesi abstractiondur abstraction hayatın kendisidir etrafımıza bakarsak kullandığımız eşyalarda vsvs abstractiondan bir sürü örnek görebiliriz
Yazılıma yeni başlayan birine bu yazdıklarını anlatmak mı mantıklı yoksa "OOP amacı karmaşık sistemleri daha yönetilebilir parçalara bölüp bu parçaları haberleştirmektir." demek mi mantıklı ? Biz böyle object,abstraction,class dedikçe ana fikirden uzaklaşmıyor muyuz ?
OOP ile ilgili ders videolari gelse çok iyi olur
Ders değilde bu tarz videolar düşünüyorum.
tek kelimeyle müthiş.
hocam merhaba, oop temel mantik, message oriented programing ise bunun mop olmasi gerekmezmi? en azindan benim icin )))
:) Bundan sonra MOP diyoruz o zaman
Hocam udemy kurslariniza ne oldu neden yok
Udemy ile aram bozuk o yüzden.
@@merbekta hocam en iyi ue hocası sizsiniz lütfen geri dönun ya da başka platformda düşünüyormusunuz
Şu an için öyle bir niyetim yok ama olursa haberdar ederim.
Hocam udemy'de kursunuz var mıydı? Sesiniz çok tanıdık geliyor😂
Evet öyle bir hata yaptım :)
Videonun özeti şu: Yazılımlarımı birbirini etkilemeden nasıl daha iyi konuşturabilirim?
👏👏👏
Videonuzu çok beğendim
Teşekkürler
Hocam design patternları anlatır mısın
Bir kaç tanesine değindim, devam edeceğim.
OOP hayatın ta kendisidir. Sen bir telefon nesnesini eline aldığında tuşlarına, ekranına dokunarak (property, method) bir girdi yaparsın ve akabinde yaptığın girdi doğrultusunda telefon sana bir dönüş yapar yani bir çıktı elde edesin.
de loreanı nerden aldın?
app.hb.biz/JDceVXnCUbSb
Düşünen adamları seviyorum
Daha önce bir erp sistemi geliştirmiştim oop kullanmadan. Şimdi bir sipariş üzerine tekrar bir fabrikaya erp yazıyorum bu sefer oop kullanarak. Şunu farkettim daha önceki yaptığımı sandığım şeyin erp ile yazılım ile alakası yokmuş 😂 şimdi oop olmadan ajax bile kullanamıyorum 😂
Evet Özellikle karmaşık sistemlerde çok yardımı oluyor :)
Ben bu sesi nereden tanıyorum diyordum sonra Unreal engine dersleri flash back efektiyle geldi...
Yakalandık
buraya kadar tamamsa dediği yerden sonrasını bilmiyorum zaten sorun ne
Niye nefret edelim? OOP şahane bir şey.
Bakış açısı ne olursa olsun, Nesne Tabanlı Programlama dilininin yapısı ve kurallarının öğrenilmesi gerekiyor. Yeni başlayanlara zor geliyor haliyle. İletişimden ve mesajdan bahsedilmiş ancak UML'den bahsedilmemiş.
OBP Diye girdim OOP çıktı neyse tekrar etmiş olduk .d
Bir harften bir şey olmaz :)
oop ın duygusal sebepleri benim için bir şey değiştirmez, çok daha sistematik düzenli ve kaliteli kod için fonksiyonel kod yazarım, veri depolama için structlar ve implemantasyonlar var rustta, özetle rust ın standartları bence gelmiş geçmiş en güzel yazılım standartları, en kısa zamanda en stabil projeyi en güzel şekilde çıkarabileceğiniz başka bir yazılım dili veya standartı yoktur.
Aslında video da tam olarak buna atıfta bulunuyor. OOP kullanmak bir zorunluluk değil. Eğer başka birinin konsepti çok daha iyi ise gidip onu kullanmak lazım. Burada amaç temelinde kodları haberleştirmek, eğer sen böyle daha başarılıysan en iyisi o demektir.
@@merbekta orası öyle ama bence biraz esneklik lazım kişisel düşüncem fonksiyon ağırlıklı kod yazmakta, tabii structlar ve içindeki implemantasyonlar bir nevi oop oluyor ama gerektiğinde kullanılmalı, classların en efektif taraıfını projeden ziyade library kodlamakta olduğunu düşünüyorum
"Nesne mimarisinde mesajlaşma" denebilir belki. :)
Bu içerik, spagetti sevenler için izlerken hazımsızlık yapabilir. Videonun sonunda vurguladığın nokta, gerçekten önemli. Bana göre bu kavramı (OOP) anlamak için "nesne" kelimesi ile düşününce, kafamda canlandırması daha zor. Farklı bir isim vermek için "object" ismini uygun bulmuşlar. Hepinize şapka çıkartılır,
Kendinize şunu sorun; “OOP neyi, nasıl çözüyor”. Bu sorunun cevabını aramıyor/veremiyorsanız eğer yazılıma çok dar bir perspektiften bakıyorsunuz maalesef.
OOP çok şeyi çözüyor, ancak abartmamak lazım. OOP'nin Golang seviyesinde kalması gayet yeterli bence :D
Bu yaptığınız şeyi çok az kişi yapıyor. "BUNA NEDEN İHTİYACIMIZ VAR?". "Hangi sıkıntı çıktı da bu icat edildi?"... Bu sorulara cevap vermek yazılımcıları bir makine olmaktan çıkarıp yaptıkları işi anlamlandırmasını sağlıyor.
Evet, ezber öğretiler bizi makinalaştırıyor dediğiniz gibi.
Nefet etmiyorum. Aksine felsefesini seviyorum.
"OOP" sevmemek? Sanki gündelik hayatta nefes almayı sevmemekle eşdeğer anlamda bir şey. OOP sevmiyorum diyen arkadaşlar acilen bakış açınızı değiştirmeniz gerekiyor
Ne anlatıyon be abla gözünü seveyim abi
Böyle mi olduk abi şimdi ya
Olmamis. OOP disinda hersey var.
Sağlık olsun.
Şu anlattıkların ders kitaplarında anlatılmıyor 🙂
:) Teşekkür ederim
Oh be beynim açıldı biraz. Bize öğretilen ezber bilgilerden sıkılmışız gerçekten.
Teşekkürler
Abi ai-misin?
O nerden aklına geldi :)
ufkum açıldı
o kadar anlamadım ki
Katılmıyorum. Nesne kelimesi harika bir ifade biçimi. Mesaj odaklı demek, Kendi için zilyon şey yapan bir öbeğin hakkını veremez. Oysa bir nesne, kendi içinde zilyon iş yaparken diğerleri ile alış veriş yapabilir. Girdileri ve çıktıları ile karmaşık ağlar halinde çalışan Fabrika-ları örnek vermeme gerek yok sanırım.. Sadece hammade/ürün transferine odaklanarak, fabriklara sadece lojistik eksenli bi isimlendirme yapılabilir mi?
Video tam buraya değiniyor hocam zaten. Eğer bütün başarıyı nesneye yüklüyorsak, evet nesne odaklı diyebiliriz. Oysa OOP amacı nesne üretmek midir ? Eğer nesne üretmekse structure ile bunu çok rahat çözebiliriz. Yok structure bu sorunu çözmüyorsa o zaman amaç nesne üretmek değildir. Structure çözemediği bir şeyler var ki OOP geliştirildi. Fabrika güzel örnek. Fabrikanın amacı nesne üretmek midir yoksa o nesneyi üretebilmek için gerekli olan operasyonları barındırmak ve haberleştirmek midir ? "Girdileri ve çıktıları ile karmaşık ağlar halinde çalışan Fabrika-ları örnek vermeme gerek yok sanırım" şu sözünüz çok güzel destekliyor aslında bu fikri. Siz bu sözünüzle fabrikanın ürettiği ürüne değil sürece,yeteneğe,operasyona atıfta bulundunuz. Bunları haklı çıkmak için söylemiyorum yanlış anlama sadece tartışmak istiyorum. Böyle şeyleri tartışmalıyız ki daha iyilerini ortaya koyabilecek fikirlerimiz olabilsin. Yoksa herkes OOP biliyor tartışmanın bir faydası yok.
OOP sevmeyenler Matlab kullansın.....
:)
TRDE IS YOK YAZILIMCIYA, KACIN KURTARIN KENDINIZI TRDEN