Vefasız Alem

Yazılım geliştirme, programlama üzerine düşünceler...

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 5


Bölüm IBölüm IIBölüm IIIBölüm IV • Bölüm V

Bu benim görüşüm . Değişmez değil, ama en azından iyi kurulmuş olduğunu söyleyebilirim; kariyerim boyunca C#, Java, PHP, Ruby, JavaScript vb. kodları yazdım. Bunları büyük mali şirketlerde "ciddi" iş uygulamaları üzerinde çalışmak için kullandım ve hayatta kalmak için IT(Bilgi Teknolojileri) alanı dışında özel bir girişimci olarak çalıştım, bu yüzden dünyayı "IT alanı dışı objektifliği" sayesinde daha iyi görmeyi öğrendim. Ama kesinlikle kodlama, Node.js'yi keşfettiğimden beri daha eğlenceli olmaya başladı.

Bu görüş çerçevesinde, LeasingSH.ro'yu yeniden yapılandırmak için Node.js'yi seçerken ikinci bir düşüncem yoktu. LeasingSH.ro Romanya'da iyi bilinen araç satış sitesi. Büyük bir proje değil ama burada tam olarak kapsamlı web projesi türünden bahsediyoruz:


Node.js kullanmanın avantajlarından biri de muhtemelen şimdiye kadar aldığınız trafikten daha fazlasını işleyebiliyor olmanız. Ayrıca, tepki süremiz önemli ölçüde iyileşmiş, hala sadece tek bir web örneği kullanmış olmamız gerçeğine rağmen:

Kod tabanı da daha okunabilir ve sürdürülebilir oldu, çünkü yeni teknolojiyi kullanmak dolaylı olarak yeni alışkanlıkları getiriyor(eski PHP aleyhinde), kaynak kontrolü için BitBucket kullanma, Jade şablonları kullanma, ASPA ile etkin istemci tarafı varlık paketleme ve sıkıştırma gibi.

Sonuç olarak, ben Node.js ile yapılmış kapsamlı web projelerinden daha çok görmek istiyorum. Çoğu hala Php tarafından destekleniyor. Beni yanlış anlamayın, yıllarca PHP kullandım, ona karşı değilim ama ara sıra geleceğe bakmak zorundayız.


Not: Bu makale çeviridir.
Kaynak: Node.js is not suitable for generic web projects (V)
Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 5 Devamı »

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 4


Bölüm IBölüm IIBölüm III • Bölüm IV • Bölüm V

Evet, hızlı, ama hız ve eşzamanlılık her şey değildir

Hayır, hız ve eşzamanlılık her şey değildir, ama onlar son derece önemlidir. Ben çokça "Şimdilik, sitemi PHP / .NET / Ruby / vb. ile yapılandıracağım eğer sitem günde binlerce ziyaretçiye ulaşırsa sadece sunucularımı büyüteceğim." söylendiğini duydum.

Evet görünüşe göre söylemesi yapmasından kolay. Github'un bile sorunları oluyor. - Zaman zaman can sıkıcı tek boynuzlu atı gördüğümden eminim :)

Hiç kimse sitenize binlerce ziyaretçi almadan önce zengin olacağınızı garanti edemez. Genellikle tam tersi olur, hiç değilse :)

Artı, Google tarayıcılarının sitelerin değerini düşürdüğü vakaları duydum. Bunun size olmasını istemezsiniz, çünkü bugün iş dünyasında eğer Google "dostunuz" değilse siz yoksunuz :)

Yani, siteniz yüksek trafiğin üstesinden gelirken hala kendini "çabuk" hisseder demek yanlış olmaz. Özellikle, eğer altyapı ya da sürdürülebilirliğe çok para ödemeyecekseniz.(Kimse bunun için düz C yazmayacaktır.)

Dışarıda yeterince iyi Node.Js geliştiricisi yok

Javascript tabanlı olduğu için, Node.js, sunucu taraflı düzgün geliştirme deneyimi olmayan bir çok web geliştiricisinin ilgisini çekti.(Başka bir deyişle temel tasarım desenlerinin bile farkında olmayanları.) Bu bir dereceye kadar doğru olsa da amatörlerin Node.js'nin dışında kalacağını düşünüyorum.

Ayrıca, aynısı diğer platform, çatı ve ya dil için de geçerli. Bir çok geliştirici var ama onların bir kısmı iyi. Yine de, çoğu kez, yeterli sağduyu mükemmelliğin eksikliğini telafi edecektir.

Büyük şirketler henüz kullanmıyor

Mükemmel. Büyük şirketler .NET ve J2EE kullanıyor,en azından dünyanın benim olduğum bölümünde. Peki, olmak istediğin yer orasıysa, .NET ve J2EE'den ayrılma, Microsoft ve Oracle seminerlerine düzenli gittiğinden emin ol, ve belki Scala'ya bir göz atarsın :)


Not: Bu makale çeviridir.
Kaynak: Node.js is not suitable for generic web projects (IV)
Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 4 Devamı »

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 3


Bölüm IBölüm II • Bölüm III • Bölüm IVBölüm V

Node.js ekosistemi Rails gibi "düzgün" bir framework eksikliği çekiyor.

Platform/dil sorunlarını arkada bırakırsak, bu da yanlış bir efsane. Kişisel olarak Ruby ve Rails'i seviyorum, ama küçük/orta düzey web projeleri için biraz aşırı buluyorum ve kendi kodum üzerinde hakimiyet sağlamak gibisi yok. Ben daha çok küçük ve yönetilebilir kod tabanıyla başlamak ve ihtiyacım olduğu zaman genişletmek/modül eklemek istiyorum. Bu nedenle Express.js'nin hafiflik ve genişletilebilirlik arasında ideal bir denge sunduğunu düşünüyorum. Ve Connect (Express üzerinde inşa edilen) daha da zengin bir ekosistem ile size gücü ya da Rack'ı sunar, bunu söyleme cesaretinde bulunuyorum. Biliyorum ki Express en çok Sinatra ile karşılaştırılacak, ama yine de bundan daha fazlası olduğunu düşünüyorum. Hatta sağlam Ruby'cilerin Rails'in bazen biraz daha fazlası olabileceğini itiraf ettiklerini duydum.

Eğer Node.js'ye yaklaşıyorsanız ve Rails sizin için çok şey ifade ediyorsa, Tower.js ve Geddy'e bakmalısınız.

İstemci taraflı içerik yönetimi, paketleme, parmak izi?

Elbette, Node.js'de Sprockets ile karşılaştırılacak hiçbir şey yok? Aslında, var. Birden fazla. Node.js böyle şeylerin doğduğu yerdir. Bower, Brewer.js, Piler bunlardan sadece bir kaçı.

Mihai Bazon'un yazdığı UglifyJS de Node.js üzerinde çalışıyor.

"CoffeeScript: Accelerated JavaScript Development" kitabının yazarı Trevor Burnham, şimdi Andrew Dunkman'ın sürdürdüğü connect-assets'i yazdı.

Basit ama aynı derecede güçlü bir alternatif arayan geliştiriciler için, bir kaç ay önce ASPA ve ASPA-Express'i açık kaynak olarak sundum.

Yani pek çok alternatif var.

Tema motorları? Onlardan da  bir çok var, ama favorilerim Jade ve Stylus.

Not: Bu makale çeviridir.
Kaynak: Node.js is not suitable for generic web projects (III)
Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 3 Devamı »

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 2


Bölüm I • Bölüm II • Bölüm IIIBölüm IVBölüm V

Barbarlar Kafirlere Karşı

İkinci olarak,  web / yazılım geliştirme ve programlama dilleri genellikle inançla alakalı mevzular ve dışarıda Javascript'in "gerçek" programlama dili olmadığı inancında olan bir çok insan var. Peki, Javascript ideal olmayabilir, ama bugün internette en yaygın olarak kullanılan dil olması kadar gerçek.

"Geriçağırım Cehennemi (Callback Hell)"

Çoğu Node.Js geliştiricisinin bildiği gibi, olay tabanlı doğası nedeniyle, Node.js'de sıralı şeyler yapmak çok zor. Bence, belki de bu Node.js'nin en büyük zayıflığı aynı zamanda da en büyük gücü. Gücü, çünkü, eğer yapacağınız şeyi biliyorsanız, bu size inanılmaz miktarda eş zamanlı bağlantıları işlemek için zemin hazırlar, belki de Php, .NET ya da Ruby On Rails'ten alabileceğiniz verimden daha büyük. Zayıflığı, çünkü, çoğu insan haklı olarak şöyle bir şey ile canını sıkıyor.


Her bir arkaplan işlemi, sonucu (ya da hatayı) geriçağırım(callback) içinde döner. Bunun iyi tarafı; uygulama sunucunuz arkaplan işleminin tamamlanmasını beklerken kilitlenmez, başka şeyler yapmaya müsait olur. Başka bir isteği cevaplamak, web sitenizi ya da uygulamanızı hazır tutmak ve ziyaretçilerinizi mutlu etmek gibi. Kötü tarafı; bir çok arkaplan işlemine sahipseniz(herhangi bir veri kaynağına erişmek gibi) kodunuz çirkin ve anlaşılmaz olmaya başlayacaktır.

İyi haber, bu sorunu azaltmak için bir çok mükemmel çözüm var: Async.js, muhtemelen en iyi olarak bilineni, ama eğer CoffeScript kullanıyorsanız "basit ve güçlü asenkron kontrol akışı" için IcedCoffeeScript ile kesinlikle bir adım daha ileriye gitmeyi düşünmelisiniz. Node.js ile ilk temaslarımda buna fazla yer vermeyi düşünmedim, ama şimdi, bir kaç projede kullandıktan sonra await ve defer olmadan kodlama yapmayı hayal bile edemiyorum. Bunu; en yaygın kullanım senaryoları, bir dizi sıralı işlemler ya da sıralı/paralel görevlerin kombinasyonları için ideal buluyorum:


Not: Bu makale çeviridir.
Kaynak: Node.js is not suitable for generic web projects (II)
Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 2 Devamı »

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 1


Bölüm I • Bölüm IIBölüm IIIBölüm IVBölüm V

'Node.js sadece küçük API'lar yazmak için uygundur, ciddi web siteleri ya da uygulamaları için değil.'

Bu saçmalık, bunu söylemek zorundayım.

Bunu çok duydum ve canımı çok sıkıyor. Çoğu kez bu söylem Node'js'yi "todo" uygulaması dışında gerçekten kullanmayan insanlar ve ya "sözde geliştiriciler" ya da "teknoloji ukalâları" tarafından dile getiriliyor ki bunlar internette gezinti yapmayı seven, popüler teknolojiler hakkında çokça okuyan ama gösterecekleri çok "ciddi" kodları olmayan insanlar.

Peki, dışarıda tam tersini düşündüğünü gösteren cesur bir dünya var. Klout, Geeklist, Transloadit, Cloud9 ve bu sayfada yer alan bir çok diğerleri gibi.


Hepsi yanlış olamaz, onlar olabilir mi?
Ama yine de, bu asılsız efsane nereden geliyor?


Zamanı geçmiş Değerlendirmeler

Her şeyden önce, daha hızlı kabul görme oranına rağmen, Node.js (hala) genç bir teknoloji. Artık toy değil, ancak halen pazarlama balonları ve teknik makalelerin ayak uyduramadığı bir hızda gelişiyor. Aslında, bir çok makale/forum konuları Node.js'nin ne için iyi olduğunu ve zamanı geçmiş olmadığını tartışıyor ve ya açıklıyor.

Not: Bu makale çeviridir.
Kaynak: Node.js is not suitable for generic web projects (I)

Node.js kapsamlı web projeleri için uygun değildir? - Bölüm 1 Devamı »

Google Reader Alternatifi: The Old Reader

Google, resmi blogunda "İkinci bahar temizliği" başlığıyla paylaştığı blog yazısında bizi hayal kırıklığına uğrattı. Bir çok servisini devre dışı bırakacağını açıklayan bu yazıda beni ve bir çok kişiyi en çok ilgilendiren kısım Google Reader'ın kapatılmasıydı. Gerek Web, gerek Android uygulamasını severek kullanıyordum. Yerli yabancı bir çok blogu kolay bir şekilde takip ediyordum  ta ki bu açıklama gelene kadar. Şimdi insanlar Google Reader'ın kapatılmaması için imza kampanyaları düzenliyorlar. Umarım olumlu sonuçlar elde ederler. Fakat bir yandan da 1 Temmuz'da kapatılacak olan Google Reader için alternatif bulmak ve Reader'daki abonelikleri ona taşımak gerektiğini düşünüyorum.

Bu arayışlarımı sürdürürken Google Reader basitliğinde bir hizmetle karşılaştım. Adı: The Old Reader.
Arayüzü ve kullanılabilirliği ile gönlümü fethetti diyebilirim. Facebook hesabınızı bağlama, Google Reader aboneliklerinizi aktarma, not alma, beğendiğiniz içerikleri profilinizde paylaşma, diğer kullanıcıları takip etme, bir iletiyi beğendiğinizde bunu Facebook'da otomatik paylaşma, eğer not eklerseniz Facebook iletisine bu notu da dahil etme, Chrome ve Safari için tarayıcı eklentileri imkanı, daha sonra okumak için kullanılan Pocket uygulamasıyla uyumlu çalışma gibi özellikleri mevcut. Şimdilik mobil uygulamaları yok ama üzerinde çalışıyorlar. Google'ın bu haberini duyduklarında daha da azimli çalışmaya başlamışlar. Google Reader'ın durumu ne olacak bilmiyorum ama The Old Reader şans verilmesi gereken bir uygulama.
Google Reader Alternatifi: The Old Reader Devamı »