JavaScript uzmanlığına giden yol nedir? [kapalı]


18

JavaScript ile nasıl başlayacağımızı biliyorum, küçük bir istemci tarafı işlevselliği veya doğrulama elde etmek için bir snippit kesip yapıştırıyoruz.

Ancak, zengin etkileşimli davranışları uygulamaya çalışırken bu yolu izlerseniz, Büyük Bir Çamur Topu oluşturduğunuzu fark etmeniz uzun sürmez.

Peki, etkileşim katmanını programlamada uzmanlığa giden yol nedir? Hangi kitaplar, öğreticiler, alıştırmalar ve süreçler sağlam ve bakımı kolay JavaScript programlama yeteneğine katkıda bulunur?

Hepimiz uygulamanın herhangi bir çabada önemli olduğunu biliyoruz, ancak buradaki cevaba benzer bir yol arıyorum: /programming/2573135/


"Etkileşim katmanı?"
Robert Harvey

1
Bence yeni bir etiket olmalı: P
Mike

1
Cevabın ustalaşmak istediğiniz herhangi bir alan gibi pratik yapacağı bir başka soru. Pratik yapın, akranlarınızdan öğrenin (daha yetenekli olanlar) ve pratikten bahsettim mi? Programlama dili x'e hakim olma süreci, heykel ya da tığ işi ya da başka bir ticarette ustalaşmakla aynı olan programlama dili y ile aynıdır.
Chris

1
@johnny: İstisna yığın izlemesinden koparıldığında ...
TMN

1
@Chris - dahil ettiğim bağlantıyı takip ederseniz, böyle bir sorunun faydalı bir şekilde cevaplanabileceğini göreceksiniz. "Cevap pratiktir" demek yardımcı olmaz. Yararlı bir yol boyunca bazı yer işaretlerine işaret edin, sadece yürümeye başlamamı söyleme.
Eric Wilson

Yanıtlar:


15

diğer insanların kodlarını ( LOT ) okuyun ve ne yaptıklarını ve neden yaptıklarını anlamaya çalışın. Kendi kodunuzu yazın ( ÇOK ) her şeyden önce oynamak ve eğlenmek, yeni kavramlar ve fikirler deneyin. Bir şeyde daha iyi olmanın en iyi yolu pratik yapmak, pratik yapmak ve sonra biraz daha pratik yapmaktır.

Kitapları, eğiticileri, makaleleri, blogları, RSS yayınlarını vb. Okuyun.

Boş zamanlarınızda üzerinde çalışmak için bir proje oluşturun. Bir şey düşünemiyorsanız, üzerinde çalışmak isteyebileceğiniz açık kaynaklı bir proje bulun.

Ayrıca, cesaret kırmayın ve her şeyden önce, "ustalık" bir hedef değil, bir yolculuk unutmayın - kendi hızınızda almak, eğlenin ve manzaranın tadını çıkarın. Bunu alırsan çok cidden, yanmış alacak ve bu hiç kimseye yaramaz.


7
Birisi "X nasıl öğrenilir / ustalaşır" diye sorduğunda bunun otomatik yanıt vermesini isterdim. Matematiksel bir kanıtta nasıl ustalaştığınıza veya bir romanı nasıl hassaslaştırdığınıza çok benziyor. X'in diğer çalışmalarını görüntüleyin, X'i kendiniz uygulayın, Durulayın, tekrarlayın -> X'te Master
Chris

@Chris, Yup. Bu benim standart cevabım.
Muad'Dib

İyi referansların / kitapların / materyallerin nereden alınabileceğine dair soruları söyleyebilsem de sevdiğim sorular. Son zamanlarda python ve programmers.stackexchange.com/questions/12189/… vardı soru aldı beni yerden ve çalışan almak için yıldız bulundu.
Chris

@Chris evet, bu cevap daha genel bir tavsiyedir ve bence çok objektif olabilecek belirli adımlardan yoksundur . Ben de bağlantıları görmek istiyorum. Ancak, Google bunun içindir, değil mi?
Muad'Dib

Doğru, ancak Google malzemenin reaksiyonunu / izlenimini sağlayamaz. Google iyi gidiyor ama hepsini yapmıyor. Ne olursa olsun kabul etti. t
Chris


3

Öncelikle, JavaScript öğrenmeyle ilgili hedefinizin ne olacağını bilmeniz gerekir. Sadece bazı giriş doğrulama yapmak ve kullanıcı üzerinde kullanıcı arayüzünü biraz kolaylaştırmak istiyorsanız, jQuery gibi çerçeveler kullanıyorsanız, dili tam olarak derinlemesine anlamanız gerekmez .

Bununla birlikte, JavaScript hakkında sağlam bir anlayış kazanmak istiyorsanız, kullanışlı bir araç uygulayan mevcut bir çerçeveye bir uzantı yazmaya .

Kitaplar ve diğer kaynaklar açısından, yararlı kitaplar yolunda gerçekten çok şey duymadım ve genellikle problemleri çözmeye çalışarak ve kodumun JSLint'e göre temiz olduğundan emin olmak için kontrol ederken dili öğrendim . İlginç bir problemin (örn. Çerçeve genişletme), JSLint'in ve bazı sağlam uygulamaları almak için yeterli zamanın bir kombinasyonu, dili öğrenmek açısından en iyi bahsiniz olacaktır.


2

Herhangi bir web geliştirme ayrıntılarını (DOM vb.) Öğrenmeden önce temel dili öğrenin. Birçok şekilde öğrenebilirsiniz - kitaplar, videolar vb. Elbette kodu okumanız ve yazmanız gerekecektir.

ECMAScript (dil standardının adı - javascript birçok uygulamaya atıfta bulunur) çok ilginç bir dildir. Dinamik, fonksiyonel ve prototip tabanlı nesne yönelimli bir dildir, bu nedenle bu paradigmaların ilkelerini anlamak için zaman ayırmalısınız.

Tarayıcınızda etkileşimli bir konsol kullanmayı öğrenin (Chromium'da, Ctrl+ Shift+ tuşlarına basarak erişebilirsiniz.J IRB ve etkileşimli Python yorumlayıcısı gibi araçlara benzer olan ). Bu, dil özelliklerini test etmek ve hata ayıklamak için kullanışlıdır.

JSLint KullanKodunuzu kalite kontrol etmek için .

DHTML kullanarak 'gerçek' geliştirme yapmaya başladığınızda , sinir bozucu çapraz tarayıcı sorunlarını çözmek için JQuery gibi bir çerçeve kullanarak hayatınızı kolaylaştırın .


1

Bir programcıyı belirli bir dilde uzman yapan birçok teknik burada uygulanabilir, ancak javascript'in olağanüstü etki için kullanılmasına izin veren birkaç incisi vardır. Javascript kullanarak aşmak zorunda kaldığım belki de en büyük engellerden biri, "C" programlama anlayışımı geri almaktı, yani bin küçük işlev tek bir js dosyasına sıkıştı.

Bazı genel öneriler yapabildiğiniz zaman soyutlamak ve genel davranışı organize etmek için mümkün olduğunca sınıf oluşturmaya çalışmaktır . Diğer js dosyalarınızda iyi etki sağlamak için kullanılabilecek herhangi bir işlevsellik için yeni js dosyaları oluşturun ve mümkünse genel değişkenlerden kaçının. Henüz yapmadıysanız jQuery öğrenmenizi şiddetle tavsiye ederim . Sevmek için büyüdüğüm bir araç ve şimdi onsuz yapmam. Kodunuzu muazzam bir şekilde basitleştirmenizi sağlayan son derece esnek bir javascript uzantısıdır, bu da basitlik ve hızlı ve verimli bir şekilde kod yazabilmek için iyidir. jQuery, flaşta daha etkileyici olamazdı birçok şey yapmanıza izin veren geniş bir eklenti kütüphanesi ile birlikte gelir. Çıkış yapmakJQuery kullanıcı arayüzünesitenizin tüm tema sistemi için, sitenizin tüm düzenini çok fazla yapmadan etkili bir şekilde değiştirmenize izin verir. Web sitelerinde yaygın olarak kullanılan çok sayıda animasyon efekti ve kullanışlı kontroller (tarih seçici, düğme, ilerleme çubuğu vb.) İle birlikte gelir, bunların çoğu tek bir javascript satırı kullanılarak etkinleştirilebilir.

Umarım yardımcı olur!


1

JavaScript'te yaptıklarınızın çoğu temel olarak DOM, CSS ve tarayıcı uyumluluğu ile iç içedir, bu nedenle DOM'u anlamak, JavaScript'e hakim olmanın temel gereksinimlerinden biridir.

Prototip tabanlı nesne yönlendirme, anonim işlevler ve döngüler, koşullar vb. Gibi daha genel dil özellikleri gibi dilin temel özelliklerini öğrenmek, özellikle DOM / CSS ile etkileşime girmeyen herhangi bir kodu anlamanın anahtarıdır .

Ayrıca, dize ve matematik ve diğer temel nesne işlevleri gibi dil standart kitaplığını da öğrenmeniz gerekir.

Ayrıca, algoritmaların incelenmesi gerekir, eğer işlerin nasıl yapıldığını ve daha gelişmiş çözümlerin nasıl uygulanacağını doğru ve eksiksiz bir şekilde anlamak istiyorsanız, bu bilgi gelişmiş programlamayı anlamak için temeldir ve dile özgü sözdiziminin ötesine geçer.


1

Kullandığınız kütüphanelerin kodunu okuyun. JQuery veya Prototype kaynağını okumak size javascript ve dom'ta gerçekte neler olduğu hakkında bilgi verecektir. Kütüphanelerin kullandığı araştırma teknikleri sayesinde onları anlayabilirsiniz. Http://microjs.com/ adresindeki mikro çerçeveleri okuyarak başlamaktan çekinmeyin . Yalnızca dağıtılmış dosyalara değil, gerçek kaynağa baktığınızdan emin olun. (jQuery'de bir düzine kadar kaynak dosyası vardır, ancak bunlar bir derleme işlemi tarafından birleştirilir.)


0

Javascript şu anda birçok geliştirme alanında uygulanmaktadır.

  • Modern tarayıcıda bulunan tek dildir.
  • Node.js ve V8 motoru sayesinde sunucuda çalışabilir.
  • PhoneGap veya diğer alternatifler aracılığıyla mobil cihazlarda gömülü olarak çalışabilir.
  • Windows 8 uygulamaları oluşturmak için kullanılabilir.

Bu nedenle, daha fazla javascript ustalığı olduğuna inanıyorum. Ne ile başlamak istediğinize bağlıdır, ancak yukarıda belirtilen bu 4 öğenin her biri size farklı bir meydan okuma verecektir - tamam, belki pencere 8 ve telefon boşluğu alanları benzer olabilir, ancak geri kalanı farklıdır.

Tarayıcı ortamından bahsediyorsak, neredeyse her web uygulamasının nasıl organize edilmesi gerektiğini öğrenmek, devam edebileceğiniz yollardan biri olabilir. Bu yolda ilerliyorum ve kendi fikirlerimi deniyorum, dojo, omurga, kor gibi popüler kod organizasyon kütüphanelerinin git depolarını kontrol ediyorum.

Düğüm js ortamından bahsediyorsak, bu farklı bir hikaye. Küçültme ve dosya boyutu ile ilgilenmiyoruz. Düğümde tüm uygulamalar oluşturmak, sistemler oluşturmak, siteler, REST api, orada keşfedilecek çok şey var.

Mobil dünyadan bahsediyorsak, aşırı optimizasyon akla geliyor. CSS3 hızlandırılmış özellikleri, animasyonları, dokunma olayları ve web ile aynı mimariyi kullanmaya çalışmak daha özel UI bileşenleri ile başlamak için harika şeyler.

Sonuçta, diğerleri gibi, kendi kodunuzu denemek ve başkalarının kodunu denemek, dahil olmanın, yeni olanlara ayak uydurmanın ve kimin bildiklerinin, belki de bir sonraki büyük şeyle gelmenin en iyi yoludur.

Yardımcı olan başka bir şey, bir ekipte çalışmak ve yolunuzla ekibin kod yazma şekli arasındaki farkları anlamaktır. Javascript geliştiricileri ekibinde çalışmak sizi daha iyi kod yazmaya ve iyi belgelemeye zorlar. Bir uygulamanın mimarisi hakkında bilgi edinmenin, uygulamak istediğiniz veya uyguladığınız şey hakkında bir wiki yazmaktan daha iyi bir yolu olmadığını düşünüyorum.


-1

JQuery'i bulana kadar JavaScript'ten nefret ettim. Şimdi onu seviyorum ve her zaman kullanıyorum. Muhtemelen çok fazla.


EcmaScript'ten değil DOM ve tarayıcılar arası uyumluluktan nefret ettiniz.
Raynos

jQuery Javascript'i eğlenceli hale getiriyor! +1
Dinamik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.