Blog Taşındı

Gönderen H.Levent KARAGÖL 0 yorum

JavaScript dünyası, mobil destekli yeni tasarımı, daha geniş içeriği ve forumuyla artık www.jskoleji.com  adresinden hizmet verecektir.

Temel JS : Döngüler

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemiz, çok çalışmak yerine bizim yerimize bilgisayarı nasıl daha çok çalıştırabiliriz de etrafımızdaki insanlarla kopmak üzere olan bağlantılarımızı kurtarabiliriz konusunda olacak. Evet, konumuz döngüler.

Asıl mesleği programcılık olmamasına rağmen script seviyesinde de olsa programcılık ile uğraşan insanların ortak bir özelliği, tüm işi el emeğiyle yapmaya yatkın olmalarıdır. Bu insanların olağan üstü kopyala-yapıştır-değiştir yetenekleri vardır. Öyle ki, bir kod bloğunu Excel'e kopyalar, hücreleri birleştirir, replace yapar, tekrar not defterine yapıştırır bir daha bulk replace yapar ve ihtiyacı olan kodu elde ederler.

Örneğin bu tarz insanlara, 1 ila 1000 arasındaki sayıların toplamını ekrana yazdır dediğimizde, aşağıdaki tarzda bir kod yazmaları çok muhtemeldir.

"use strict";

$(document).ready(function () {

    var x = 1 + 2 + +3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11.....

    $("body").append(x);
});


Bunu yaptıktan sonra öncelikle olağan üstü sabırlarına ve el yeteneklerine dikkat çekerek övünürler. Ardından da bilgisayarın insanları asosyalleştirmesinden yakınırlar.

Birader, bilgisayarın suçu yok ki, suç senin. Bir de bilgisayara sor bakalım, senden memnun mu? Aletin klavyesini eskittin, bir de konuşuyorsun!

Kod yazmak acı vermemeli, zevk vermeli. Tamam ama nasıl?

Cevap : Döngülerle

Temel JS : Mantıksal İfadeler

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde öyle bir konuyu işliyoruz ki, insanda kalp neyse, programcılıkta da bu konu odur. Bunu yeni başlayanlar da kullanır, 35 yıldır program yazanlar da. Konumuz mantıksal ifadeler.

Şimdiye kadar yazdığımız programcıklarda süreç, bizim yazdığımız şekilde yukarıdan aşağıya veya çağırılan fonksiyonların bulunduğu noktaya doğru tek düze bir şekilde ilerliyordu. Tabiri caizse, yazdığımız programlar odun gibi mantıktan ve karar vermekten yoksundu. Bu makalede göreceğimiz yöntemlerle programlarımıza, belirli koşullar altında karar verme ve akışı değiştirme yeteneği kazandıracağız. Bu yöntemler günümüzde en basit anlamda, kullanıcının programdan çıkmak isteyip istemediğine göre uygun aksiyonu almakta, en kompleks anlamda yapay zeka ile robotların karşısındaki insanın ses tonuna göre yüz ifadesini şekillendirmesinde kullanılır.

Yeterince merak uyandırabildiysem, en meşhur mantıksal ifade ile işe başlayalım.


if-else Yapıları 

if demek, programcılığın yarısı demektir. Bu ifadeyi, programcılığa yeni başlayanlar inanılmaz çok kullanır. Zaman geçtikçe ve kodu daha doğru yazmanın yollarını öğrendikçe kullanım miktarı azalır ama hiçbir zaman sıfırlanmaz. Hatta bu meredin öyle bağımlılık yapan bir yanı vardır ki, uzman programcılık adaylarına if'i nasıl daha az kullanacaklarını öğretmek için aylarımızı harcarız ama onlar yine de arkamızı döndüğümüz ilk fırsatta if kullanmaya devam ederler.

Jasmine : Node.JS Testleri

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, Node.JS ile yazdığımız kodları Jasmine ile nasıl test edebileceğimizi inceleyeceğiz.

Jasmine ile şimdiye kadar pek çok şey yaptık. En son asenkron fonksiyonların testlerini de inceledik. Artık test kodunun vazgeçilmez bir nimet olduğunun farkındayız (inşallah). Tamam da, şimdiye kadar hep ön yüz kodlarımızı test ettik. Oysa buz dağının asıl büyük kısmı sunucu tarafında duruyor. Orayı nasıl test edeceğiz? Jasmine, standart JavaScript kodlarını test edecek şekilde hazırlanmış. Node.JS'de ise farklı dosyalarda bulunan kodları birbirine "require" fonksiyonu vasıtasıyla bağlıyoruz. Jasmine bu "require" nedir bilmiyor ki?

Neyse ki burada imdadımıza jasmine-node paketi yetişiyor. Bu arkadaş, console üzerinden Jasmine ile Node kodlarını test etmemize imkan sağlıyor.



Node.JS : Node ile Underscore Kullanımı

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, JavaScript geliştiricilerin sevgilisi ve İsviçre çakısı olan Underscore kütüphanesini Node.JS ile kullanmamıza imkan sağlayan NPM paketini ve kullanımını inceleyeceğiz.

Bu makaleyi, Object Oriented JavaScript kategorisindeki Underscore isimli makaleyi okumuş ve bu imkana Node.JS'de de kavuşmak isteyenler için hazırladım. Yani Underscore kütüphanesinin kullanım örneklerine bu makalede tekrar yer vermiyorum. Burada sadece, Node tarafında bu kütüphaneyi kullanmamıza imkan sağlayan npm paketinin indirilmesi ve kullanılmaya başlanmasını anlatıyorum.

Node.JS ile Underscore fonksiyonlarını çağırabilmek için kullanacağımız modülün ismi oldukça kolay, "underscore" :)


OO JS : Underscore

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, JavaScript geliştiricilerin sevgilisi ve İsviçre çakısı olan Underscore kütüphanesini inceleyeceğiz.

Underscore'u övmek için pek çok şey söyleyebilirim. Örneğin bu arkadaş ile tanışanların bundan sonraki mesleki kariyerinde yazacağı for sayısı, şimdiye kadar yazdıklarının toplamından az olacaktır iddiasında bulunabilirim. Ya da bir kere Underscore'a alışanlar, bir önceki makalemde anlattığım Linq kütüphanesine belki de hiç ihtiyaç duymayacaktır da diyebilirim. Ama bunların tamamı benim subjektif yorumlarımdan ibaret olur. Bunun yerine daha elle tutulur bir referans ile işe başlayalım.


Yukarıdaki görüntü, ben bu makaleyi yazarken Node.JS'in paket kütüphanesi olan NPM'de bulunan paketlerin en çok kullandığı/bağımlı olduğu kütüphanelerin listesini gösteriyor. Underscore'un ezici üstünlüğü açıkça göze çarpıyor. Elbette Underscore'u sadece sunucu tarafında kullanmak zorunda değiliz, aynı fonksiyonalite istemci tarafında da kullanımımıza sunuluyor.

Can.JS : Model Sınıfı

Gönderen H.Levent KARAGÖL 1 yorum Etiketler:

Bu makalemizde, Can.JS'nin Model sınıfı ile MVC'nin M'sini de tamamlayıp, daha önceden gördüğümüz View ve Control sınıfları ile birlikte MVC mimarisinde SPA (Single Page Application) yazmayı uçtan uca öğrenmiş olacağız.

İşin doğrusu, şimdiye kadar öğrendiklerimiz ile birlikte MVC mimarisinde uygulama geliştirmek için yeteri kadar bilgi sahibi olduk. Map (Eski Observe) sınıfını View'lara geçtiğimizde, EJS Template Engine içerisinde bu nesnelerdeki verilere nasıl erişerek sayfada görüntüleyeceğimizi görmüştük. Bu örneklerde, Control sınıfı tarafından View'a görüntülenmek üzere gönderilen Map nesneleri aslında birer modeldi. Hatta bu modellerin Live Binding yeteneği sayesinde, modeldeki verinin değişmesi sonucu, ekranda gösterilen veriler de otomatik olarak değişiyordu. Peki madem Map nesneleri birer modeldi, Can.JS içerisinde Model isimli bir sınıf neden var?

Node.JS : Birden Fazla Dosya ile Çalışmak

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, Node ile proje geliştirirken kodlarımızı birden fazla JavaScript dosyasına nasıl ayırabileceğimizi inceleyeceğiz.

Şimdiye kadar bu kategoride yayınlanan tüm makalelerdeki kodları, "program.js" ismindeki bir dosyaya yazmıştık. Oysa sunucu tarafında yazdığımız uygulamaların büyük çoğunluğu, çok daha kompleks ve çok sayıda dosyaya bölünmüş kod parçalarından oluşur. İşin ilginci, bu kadar temel bir ihtiyacın olduğunu çoğu zaman Node ile gerçek bir proje geliştirmeye başlayana kadar fark etmek zordur.

Bu zamana kadarki makalelerde, pek çok kez npm ile çeşitli modüller indirip "require" fonksiyonu vasıtasıyla kodumuza ekledik ve kullandık. Aslında "require" fonksiyonu, CommonJS'in bir fonksiyonudur. Node, modül yönetimi için CommonJS kullanır. CommonJS de, Require.JS kategorisinde öğrendiğimiz kütüphaneye benzer ancak Require.JS, özellikle istemci tarafında daha rahat kullanım imkanları düşünülerek tasarlanmıştır. CommonJS ise özellikle sunucu tarafını dikkate alır ve kullanımı daha basittir.

Node.JS : Node ile LINQ Kullanımı (Linq.JS)

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, .Net'in göz bebeği Linq ifadelerini Node.JS ile kullanmamıza imkan sağlayan Linq.JS kütüphanesini inceleyeceğiz.

Bu makaleyi, Object Oriented JavaScript kategorisindeki JavaScript ile LINQ Kullanımı (Linq.JS) isimli makaleyi okumuş ve bu imkana Node.JS'de de ulaşmak isteyenler için hazırladım. Yani Linq kütüphanesinin kullanım örneklerine bu makalede tekrar yer vermiyorum. Burada sadece, Node tarafında bu kütüphaneyi kullanmamıza imkan sağlayan npm paketinin indirilmesi ve kullanılmaya başlanmasını anlatıyorum.

Node.JS ile Linq ifadelerini çalıştırabilmek için kullanacağımız modülün ismi oldukça kolay, "linq" :)

OO JS : JavaScript ile LINQ Kullanımı (Linq.JS)

Gönderen H.Levent KARAGÖL 0 yorum Etiketler:

Bu makalemizde, .Net'in göz bebeği Linq ifadelerini JavaScript ile kullanmamıza imkan sağlayan Linq.JS kütüphanesini inceleyeceğiz.

Aslında Linq.JS için ayrı bir kategori açmakla açmamak arasında kararsız kaldım ancak bloğa açtığım her yeni kategori, diğer kategorilerin tamamlanma süresini uzattığı için, nispeten uzun bir makale ile bu konuyu aradan çıkartmaya karar verdim.

Bu makaleyi okuyanların, .Net'deki Linq ifadelerine az çok aşina olduğunu varsayacağım ve oradaki kullanımların JavaScript'teki karşılıklarını vermeye çalışacağım.

Öncelikle resmi sitesinden kütüphanenin güncel versiyonunu indirmemiz gerekiyor. Ben bu makaleyi yazarken son versiyon 2.2.0.2 olarak gözüküyordu ve yayınlanma tarihi de 21 Ocak 2011'di. Yani oldukça stabil bir kütüphane olarak kabul edilebilir. 3.0 versiyonu halen Beta aşamasında olduğu için şimdilik stabil versiyon üzerinden anlatıyorum. Zaten bu versiyonda da ihtiyacımızdan fazlasına sahibiz çok şükür.

Designed by: Reiki | Converted for Blogger by Blogger au bout du doigt and Blogger Mastering
Levent KARAGÖL'ün JavaScript Dünyası