Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, İbrahim Çelik Bilek tarafından sunulan yaklaşık iki saatlik bir JavaScript programlama dili eğitim dersidir. Eğitmen, 2009 yılında Türkiye'nin ilk JavaScript kitaplarından birini yazan ve şu anda C, C++, Java, Linux programlama ve kripto algoritmaları üzerinde çalışan bir programcıdır.
- Video, JavaScript programlama dilinin temel konularından başlayarak ileri seviye konularına kadar kapsamlı bir eğitim sunmaktadır. İçerikte JavaScript'in ne olduğu, çalışma prensipleri, veri türleri, operatörler, program kontrol ifadeleri, döngüler, fonksiyonlar, nesne yönelimli programlama (OOP) prensipleri, prototip yapısı ve kalıtım kavramları gibi konular ele alınmaktadır. Eğitmen, her konuyu örneklerle açıklamakta ve kitap içeriğini desteklemektedir.
- Eğitim, web geliştirme araçları ve teknolojileri hakkında bilgiler de içermekte olup, Firefox, Firebug gibi tarayıcı araçları, HTML5, DOM (Document Object Model), olay akışı, zamanlayıcılar, formlar ve çerezler gibi konular da ele alınmaktadır. Video, JavaScript'in diğer programlama dilleriyle (C, C++, Java) karşılaştırması ve JavaScript'in özellikle ES5.9 versiyonundaki sınırsız yapıcı metotlar (constructor) konusuyla da devam etmektedir.
- 00:01JavaScript Kitabı Video Dersi Tanıtımı
- İbrahim Çelik Bilek, JavaScript kitabı için oluşturduğu video dersi tanıtıyor.
- Ekran ikiye ayrılmış: bir tarafta kodlama sitesi, diğer tarafta kitabın içindekiler bölümü bulunuyor.
- Kitabın tüm konu başlıklarını video derste ele almak zaman ve medya kapasitesi kısıtlaması nedeniyle imkansız.
- 00:36İçindekiler Özetleri ve Konu Seçimi
- İlk olarak kitabın içindekiler sayfası üzerinden her bölümle ilgili kısa özet bilgileri verilecek.
- Daha sonra konu başlıklarından biri seçilerek ayrıntılı bilgiler sunulacak.
- PDF üzerinden takip edilebileceği gibi, kodlar tekrar yazılarak pratik yapılabilir.
- 01:29JavaScript Nedir?
- JavaScript, client tarafında (istenmiş tarafında) browser'ın sandbox'ında çalışan sözdizimi kuralları (syntax) olan bir programlama dilidir.
- JavaScript web sayfasını içerik, sunum ve etkileşim olmak üzere üç bölümden oluştuğunu düşünürsek, etkileşim için kullanılır.
- Programlanabilir web belgesi üzerinde programlanabilir alanlar oluşturmak için JavaScript kullanılır.
- 03:08Web Teknolojilerinin Standardizasyonu
- HTML, CSS ve JavaScript birbirlerinin alanına müdahale etmemeli, her biri kendi alanında kullanılmalıdır.
- HTML beş'in getirdiği en önemli şey standardizasyondur ve teknolojilerin kendi alanlarında kullanılmasını eşleyen beş standardize etmeye çalışmıştır.
- HTML, CSS ve JavaScript'in hepsi W3C tarafından yayınlanan spesifikasyonlardan takip edilebilir ve web tarayıcıları bu spesifikasyona uymaktadır.
- 04:55JavaScript'in Standardı
- JavaScript'in bir spesifikasyonu ve standardı vardır.
- ECMAScript 2015 (ES6) sürümü ile standardı belirlenmiştir.
- Chrome gibi birçok tarayıcı ES5'i büyük ölçüde, ES6'ı kısmen desteklemektedir.
- 06:49JavaScript ve Document Object Model
- JavaScript ile beraber Document Object Model (DOM) adı verilen belge nesne modeli bulunur.
- Bir browser iki bileşenden oluşur: layout engine ve JavaScript engine.
- Layout engine içeriğin ekran görüntüsünü oluştururken, JavaScript engine JavaScript kodlarını çalıştırır.
- 08:11Compile ve Interpreter Kavramları
- JavaScript engine kodları yorumlar (interprets), bu da compile ve interpreter kavramlarını ortaya çıkarır.
- Compiler, yüksek seviye bir dille yazılmış source kodu machine kodu veya ara dile çevirir.
- Interpreter, kodları satır satır veya kod blokları halinde machine code'a dönüştürür.
- 09:48Test Ortamı ve Firebug
- Firefox bir tarayıcıdır, Firebug ise belge üzerinde gerçek zamanlı düzenleme yapmak için kullanılan bir araçtır.
- Kitapta Firefox 18.1 ve Firebug 1.x sürümleri kullanılmıştır.
- Firebug benzeri araçlar, JavaScript kodlarında hata ayıklama ve konsol işlemleri için kullanılır.
- 12:37HTML5 ve Web Geleceği
- HTML5, web'in geleceğini çizdiren bir spesifikasyon olup, farklı tarayıcılar için farklı kod grupları yazma durumunu ortadan kaldırmayı amaçlamaktadır.
- HTML5 ile beraber gelen yeni etiketler ve özellikler programcının işini kolaylaştırmaktadır.
- HTML5, tarayıcılar üzerinde ciddi bir baskı oluşturarak, HTML5 ve ilişkili teknolojilerin desteklenmesini hızlandırmıştır.
- 14:16JavaScript ve HTML Elemanları
- JavaScript kodları script etiketleri içerisine yazılır ve bu kodlar sayfa içerisinde head veya body etiketleri arasında yerleştirilebilir.
- HTML'de bir eleman (element), açılış etiketi, içerik ve kapanış etiketinden oluşur.
- Bazı etiketlerin (örneğin image) kapanış etiketi yoktur ve içerikleri bir öznitelik ile ayarlanır.
- 17:13JavaScript Yorum Satırları
- Tek satırlık yorum oluşturmak için iki tane sağa yatık ters slash kullanılır.
- Çoklu yorum satırları oluşturmak için yıldız yıldız karakteri kullanılır.
- Yorum satırları kod açıklamaları eklemek ve kod gruplarını kullanıma kapatmak için kullanılır.
- 18:17JavaScript Değişkenleri
- Değişkenler, farklı türlerden verileri saklamak için bellekte oluşturulan alanlardır.
- JavaScript'te değişken tanımlanırken "var" keyword kullanılır, örneğin: var a = 12.
- Değişken tanımlarken tanıtıcı isimleri underscore ya da harfle başlamalı, içerisinde rakam olabilir ancak boşluk içermemelidir.
- 22:35Değişken Tanımlama Kuralları
- Değişken isimlerinde Türkçe karakterler kullanılmamalıdır.
- Değişken isimlerinde küçük-büyük harf ayrımı vardır, örneğin "a" ve "A" birbirinden farklı değişkenlerdir.
- Değişkenlerin kapsamı (faaliyet alanı), değişkene ulaşabildiğimiz alanlardır ve değişkenin faaliyet alanının dışına çıkması yaşamını sonlandırır.
- 25:09Programlama Kavramları
- Su parantezlerle oluşturulmuş yapılara blok denir ve tek bir statement basit bir bloktur.
- Statement, programlama dilinde çalıştırılabilir en küçük birimdir.
- Expression, veriler ve bu verilerle işlem yapan operatörlerden oluşan sözcük, cümlecik veya cümlelerdir.
- 27:49Fonksiyonlar ve Bloklar
- Anonim fonksiyonlar ismi olmayan fonksiyonlardır ve sadece referans elde edilmiş olabilir.
- Basit bloklarda süslü parantezlerin bulunması gerekmez, ancak C, C++, Java ve türetilmiş dillerde girinti önemli bir kuraldır.
- Her blok kendi içerisinde tanımlanan değişkenler için bir kapsam (scope) oluşturur.
- 29:40Değişkenlerin Kapsamı
- Her blok kendi içerisinde tanımlanan değişkenler için bir kapsam oluşturur.
- İç blokta tanımlanan değişkenler dış bloktan erişilemez, ancak dış blokta tanımlanan değişkenler iç bloktan erişilebilir.
- Derslerde genellikle bir tarafta not alınırken diğer tarafta kod yazılmaz, öğrenciler evde notları IDE'ye aktararak çalıştırabilirler.
- 31:16Veri Türleri
- JavaScript'te değişken tanımlanırken veri türü belirtilmezken, C, C++, Java gibi tür güvenli dillerde değişken tanımlanmadan önce veri türü bildirilir.
- Derleyici, veri türüne bakarak değişken için bellekte uygun alan oluşturur (örneğin int için 32 bitlik alan).
- Int veri türü işaretli gösterim kullanır ve negatif sayıları ikiye tümleyen gösterimi ile saklar.
- 34:38JavaScript Veri Türleri
- JavaScript'te number veri türü 64 bitlik olup ondalık ve tam sayıları saklamak için kullanılır.
- Boolean veri türü true ve false değerlerini saklamak için kullanılır.
- String veri türü Unicode formatındaki karakter gruplarını saklamak için kullanılır ve JavaScript'te hem tek tırnaklı hem çift tırnaklı string değerler oluşturulabilir.
- 36:14JavaScript Veri Türleri ve Değişkenler
- JavaScript'te bir nesne oluşturduğunuzda, hip bölgesinde bir alan ayrılır ve bu alan değişmez.
- Undefined veri türü, bir değişkene değer atanmadığında kullanılır ve sayısal bir değerle toplandığında "NaN" (Not a Number) sonucu verir.
- Null veri türü, değişkenin değerini henüz bilmediğiniz durumlarda kullanılır ve etkisiz eleman olarak davranır.
- 40:11Tür Dönüşümü ve Değişken Türleri
- JavaScript'te bir değişkenin türü, değer atandıktan sonra belirlenir ve değişkenin türü dinamiktir.
- Diğer dillerde değişkenler derleme zamanında türü belirlenirken, JavaScript'te değişkenlerin türü çalışma zamanında belirlenir.
- Expression'lar içinde tür dönüşümü gerçekleşir ve operatörler önceden tanımlanmış görevleri yerine getiren karakter gruplarıdır.
- 43:03Program Kontrol İfadeleri
- If statement, bir komut veya komut grubunu şarta bağlı olarak çalıştırmak veya çalıştırmamak için kullanılır.
- Switch statement, programın dallandırılması için kullanılır ve bir expression'un ürettiği değeri case değerleriyle eşleştirir.
- For döngüsü, bir komut veya komut grubunu birden çok kez çalıştırmak için kullanılır ve döngüde break ve continue anahtar kelimeleri kullanılır.
- 45:46Döngüler ve Algoritmik Bilgi
- For döngüsünde, döngü değişkeni tanımlandığı ve atama işlemi yapıldığı expression, döngünün kaç kez çalışacağını belirleyen condition ve döngü değişkeninin değerini değiştiren expression bulunur.
- Döngülerin kaç kez çalışacağı ve kaç iterasyon gerçekleştirileceği önemli bir bilgidir.
- Programcılarda algoritmik bilginin olmazsa olmazı olması gerekir.
- 48:13Programcılık ve Diller
- Konuşmacı, X, HTML, CSS, eşleme beş ve JavaScript programlama kitaplarını bir programcı olarak yazdığını belirtiyor.
- Konuşmacı, front-end geliştirici olarak iddia etmediğini, aslen C, C++, sistem programlama, Linux programlama ve yüksek seviyeli dillerin tasarımıyla meşgul olduğunu ifade ediyor.
- Bir programcının sadece sayfaya içerik yerleştirme ve veritabanı bağlantı kurma yeteneğinin yeterli olmadığını, algoritma bilgisinin de proje için olmazsa olmaz olduğunu vurguluyor.
- 49:04Diziler ve Düzenli İfadeler
- Diziler, bellek arda'da saklanan aynı veri türünden nesneler topluluğudur ve çok boyutlu diziler satır ve sütunlardan oluşur.
- Düzenli ifadeler (regular expression), bir patern oluşturmak için kullanılır ve bu paternle metin parçalarını arama ve test etme işlemleri yapılabilir.
- Düzenli ifadeler tüm dillerde önemli bir konudur ve Action Script'in Ecmascript 262 standardizasyonu kullanması nedeniyle Türkçe kaynaklar kullanılabilir.
- 50:52Fonksiyonlar
- JavaScript'te fonksiyonlar olmazsa olmaz en önemli konulardır ve JavaScript fonksiyon tabanlı bir dildir.
- C, C++, Java'da alt programlar fonksiyon olarak adlandırılırken, C++'da metot veya yöntem olarak adlandırılır.
- Fonksiyonlar geriye değer döndürebilir veya döndürmeye bilir, döndürmek için "return" anahtar kelimesi kullanılır.
- 55:50Fonksiyon Parametreleri ve Kapsam
- Fonksiyon parametreleri, metodu dışarıdan akan değerleri metodun gövdesine taşıyan değişkenlerdir.
- Parametrelerin kapsamı fonksiyonun kapsamına eşittir ve sadece fonksiyon gövdesinde faaliyet alanlarını sürdürürler.
- Fonksiyon bildiriminde parametre ekranında tanımlanan değişkenlerin faaliyet alanı fonksiyonun gövdesidir.
- 57:24Nesne Tabanlı Programlama
- JavaScript'te number, string gibi veri türleri aslında yerleşik nesnelerdir.
- Bir değişken oluşturduğumuzda (örneğin var a = 23), bu değişken aslında number nesnesinin prototype nesnesinden türetilen bir number nesnesidir.
- JavaScript'te değişkenin veri türü annotation olarak tanımlanabilir, örneğin a: number şeklinde.
- 1:00:05Document Object Model (DOM)
- Document Object Model (DOM), arayüz tanımlamalarından oluşan bir spesifikasyon veya bildirimidir.
- DOM'de tüm HTML elemanları için, object için ve diğer temel nesneler için hiyerarşik bir yapı vardır.
- DOM, düğüm nesnesinden başlayarak diğer tüm elemanlar için bir yapı sunar.
- 1:00:34DOM ve Olay Akışı
- Web IDL kullanılarak her bir eleman için bir arayüz tanımlanır ve bu arayüzlerin oluşturduğu spesifikasyon DOM olarak isimlendirilir.
- JavaScript'teki olay mantığı, bir nesnenin olayının oluştuğunda üç aşamadan oluşan bir yol takip etmesidir: yakalama evresi ve hedef evresi gibi evrelerden oluşur.
- Zamanlayıcılar (timerlar), belli aralıklarla belli kod grupları çalıştırmak için kullanılır.
- 1:02:26Formlar ve Operatörler
- Formlar bilgi toplamak için kullanılan alanlardır ve data, output gibi form elemanları bulunmaktadır.
- Çerezler, bilgi saklamak için ve oturum depolama için kullanılır.
- JavaScript'te üç eşittir (===) operatörü katı bir eşitlik kontrolü yapar, diğer dillerdeki eko operatörü gibi değildir.
- 1:05:00Kitap ve Konu Hakkında Bilgiler
- Konuşmacı 2009 yılında JavaScript kitabını yazmış ve şu anda aktif olarak JavaScript ile uğraşmayan bir programcıdır.
- Şu anda C, C++, Java, özellikle Linux programlama, kernel programlama, algoritmaların implantasyonu ve yüksek performanslı hesaplama gibi algoritmik ve Linux ile alakalı konularda yoğun çalışmaktadır.
- Kitap, JavaScript programlamayı ve dilin syntax'ını öğretmek için yazılmıştır.
- 1:07:25Nesne Yönelik Programlama
- Nesne yönelik programlama, kodların paketlenmesi ve çözülmesi gereken problemlerin küçük parçalara ayrılması ile büyük problemleri çözmeyi sağlar.
- Sistem programlama dili, bir programlama yaklaşımıdır ve veri üzerinde çalışan kodlar ile ilgilidir.
- Nesne yönelik programlama, veri grubu ile iş yapan fonksiyonları bir arada paketleyerek programlamayı düzenler.
- 1:12:31Nesne Yönelik Programlama Temelleri
- Nesne yönelik programmanın üç temeli vardır: kapsülasyon (sarmalama), kalıtım ve polimorfizm (çok biçimlilik).
- C, C++, Java gibi dillerde nesne yönelik kavramların tamamı desteklenirken, JavaScript'te bu kavramlar add function'lara dayanan bir yolla desteklenir.
- 1:13:42Yapıcı Metotlar ve Nesneler
- Yapıcı metotlar (constructorlar), nesne yaratmak için kullanılan fonksiyonlardır ve diğer nesne yönelimli dillerde de bulunmaktadır.
- Yapıcı metotlar sınıf adıyla aynı olmak zorundadır, örneğin Swift'te yapıcı metodun adı "init"tir.
- JavaScript'te sınıf kavramı yoktur, ancak fonksiyonlar sınıf, nesne ve alt program olarak kullanılır.
- 1:14:42JavaScript'in Özellikleri
- JavaScript popüler bir dildir ve 2009 yılında Türkiye'nin ilk JavaScript kitaplarını yazanlardan biri konuşmacıdır.
- JavaScript güçlü bir dil olmasına rağmen, spesifikasyonları zor ve farklı tarayıcıların desteklemesi farklılık gösterir.
- JavaScript kapsülleme ve polimorfizm gibi nesne yönelimli programlama terimlerini bir şekilde sağlar.
- 1:15:48Nesne Oluşturma Yöntemleri
- Object literal yöntemiyle "a" adlı bir nesne oluşturulmuş, "x" adlı bir özellik 12 değeriyle atanmış ve "hesapla" adlı bir fonksiyon eklenmiştir.
- "b" adlı başka bir nesne oluşturulmuş ve nesnenin özelliklerine nokta operatörü ile erişilebilir.
- "a" ve "b" isimli nesneler aslında Object global yapıcı metodunun prototip nesnesinden yaratılmıştır.
- 1:17:43New Anahtar Kelimesi ve Constructorlar
- "new" anahtar kelimesi, heap bölgesinde bir alan ayırmak ve oluşturulan nesnenin referansını değişkene aktarmak için kullanılır.
- "this" anahtar kelimesi, constructor içerisinde functionu çağıran nesnenin referansını temsil eder.
- "new Dörtgen" ifadesi, Dörtgen yapıcısını çağırarak yeni bir nesne oluşturur ve bu nesnenin referansını Dörtgen değişkenine aktarır.
- 1:19:10Nesne Özellikleri ve Referanslar
- Nesneyle ilişkili özelliklerin saklandığı değişkenler "property" olarak adlandırılır.
- "KareBir" ve "Kareİki" değişkenleri, oluşturulan nesnelerin referanslarını saklar.
- Nesnelerin özelliklerine başlangıç değerleri atanarak nesnelere aktarılır.
- 1:24:18Property'nin Nesneye iliştirilmesi
- Property'nin nesneye iliştirilmesi "this.property" ile gerçekleşir.
- Diğer programlama dillerinde (C, Java) özellikler üst tarafta tanımlanırken, JavaScript'te bu şekilde tanımlanmaz.
- Nesne özelliklerine "nesneAdı.özellik" veya "nesneAdı[özellik]" şeklinde erişilebilir.
- 1:26:54JavaScript'te Nesne Tasarımı
- JavaScript'te tasarım kalıpları hakkında bilgi verilmektedir.
- Normal şartlarda Java ile çalışıldığında bir sınıf tanımlaması, değişkenlerin tanımlanması ve yapıcı metot içerisinde değer atamaları yapılır.
- JavaScript'te nesne ile propertiyi bağlamak için "this" kullanılır, nesne referansını propertinin önüne koymazsanız nesneyle properti birbirine bağlanır.
- 1:30:36Prototype Özelliği ve Miras
- Prototype özelliği kalıtsallık (miras) ile ilgilidir.
- Miras, sınıflar arasında bir yapı oluşturmak için kullanılır ve nesnenin olmazsa olmazıdır.
- JavaScript'te bir fonksiyon tanımladığınızda otomatik olarak "prototype" isimli bir özelliğe sahip olur.
- 1:32:20Object ve Nesne Özellikleri
- Diğer nesneler aslında Object.prototype nesnesinden yaratılmış durumdadır.
- Nesnelerin "constructor" özelliği, nesnenin oluşturulduğu yapıcı metoda erişmek için kullanılır.
- "prototype" özelliği yapıcı metotlarda kalıtsal olarak gelen prototip nesnesine ulaşmak için kullanılır.
- 1:34:40Prototype ve Nesne İlişkisi
- Bir function (örneğin A) prototype isimli bir propertisi vardır ve bu function işaret ettiği prototype nesnesini gösterir.
- A function'ın prototype properties'in işaret ettiği nesnenin özellik ve propertileri, ilgili nesneye aktarılır.
- A'nın prototype nesnesi Object nesnesinin prototype'dan kalıtsal olarak üretilmiştir.
- 1:37:47Dersin Kapanışı
- Yaklaşık iki saate varan dersin sonunda temel konuların anlaşılmış olması yeterli olacaktır.
- Anlamadığınız yerler için mail veya WhatsApp üzerinden sorular sorabilirsiniz.
- Konuşmacı, algoritmaların JavaScript ile implantasyonu, performans ölçümü gibi alanlarda çalışmak isteyenlerle iletişime geçilebilir.