Tamam, bana sadece yaptığım tüm nekrodaki kripto bakıcısı deyin ama bunun gerçek değerinin doğru anlaşıldığını hiç hissetmedim. Tarihsel olarak, "göze batmayan JavaScript" in veya bir dosyaya mümkün olduğunca bağlantı vermeyen satır içi HTML olay işleyicisi özellikleri ve komut dosyası etiketleri aracılığıyla JS'nizi HTML'den uzak tutmanın şu önemli bir anahtar öğe olduğu öne sürülmüştür:
- Erişilebilirlik endişeleri
- SEO
- Ve aşamalı geliştirme
YALANLAR! (iyi, şimdi olurlar)
Mesele şu ki, teknik olarak rahatsız edici JavaScript yapabilir ve yine de yukarıdaki üç öğeyi çıkarabilirsiniz. Eğer HTML içeriği dinamik olarak bina olmadıkça hangi gün büyük bir SEO no-no oldu.
Ama Dur ve Düşün ... SİZİN Hakkında!
Gerçekten de, büyük fayda, ayrılığı sürdürmenin en büyük ve en az kazanılan kazancı, geliştiricinin bundan çıkardığı doğrudan fayda olmuştur. Uygun olanla aynı etkinlik için aynı html öğesinde istediğiniz kadar olay işleyicisine sahip olabilirsiniz. Bu, bir etiketin class="some_class"
her zaman belirli bir davranışa sahip olduğu, ancak bir id="bonus_behavior"
div içindeyken bazı bonus davranışları aldığı takdirde , bunun için tek izin verilen olay işleyicimizin içindeki mantıkla uğraşmaya başlamamız gerekmediği anlamına gelir. Bağlama bağlı olarak yalnızca işleyici ekleyebilir veya eklemeyebiliriz.
Okunması Çok Kolay
Bir diğer fayda da okunabilirlik. Tarayıcı araçları, IE'nin yanlış bir şey olduğunu söyleyen [object]
IMO'nun özel hata mesajından oluştuğunda, bu daha önemli bir endişeydi, ancak IMO, hala büyük bir anlaşma. Burada CSS, JS orada ve HTML, hem onlar hem de sunucunun buluştuğu yerdir. Tüm bu şeylerin bir yerde bir araya gelmesiyle, her şeyin HTML'ye bağlanmak için kullandığı bir soyutlama katmanı oluşturmak için kancalara (kimlikler, sınıflar ve hiyerarşi) güvenmek mantıklıdır.
IMO, HTML, CSS ve JS'nizi ne kadar çok tutabiliyorsanız, sadece okumak değil, aynı zamanda neler olup bittiğini değiştirmek ve anlamak da o kadar kolay olur. Sınıf olarak "dynamic_combo_box" ile boş bir div görüyorum ve bir şey dinamik olarak veri yükleyen fantezi bir seçim yapıyor iyi bir fikrim var. Bunu JS ve CSS'de nasıl bulacağım konusunda bir ipucum var ve bu endişelerde sınıfa girersem, bunun ne hakkında ve HTML'de nasıl bulunacağına dair iyi bir fikrim var.
Daha da kolaylaşmak için çok kolay
Ve elbette okunabilirlik, sürdürülebilirlikle el ele gitme eğilimindedir. Her şeyi doğrudan ilgili HTML'nin olduğu komut dosyası etiketlerine dökerek doğrudan yaptığınızda, çoğu zaman, insanların bu komut dosyasını üzerinde çalıştıkları başka bir sayfanın HTML'sine kesip yapıştırmaları daha kolay hale gelir benzer işlevsellik istiyorlar, bu da muhtemelen beklentilerini karşılayarak zamanla sorunlu hale gelebilecek ve ihtiyaç duyulan istisnaları işlemek için daha anlamsız dallanmaların eklenmesini gerektiren, büyük olasılıkla iki can sıkıcı şekilde benzer ancak% 100 benzer olmayan bir şeye sahip olacağınız bir şeye sahip olduğunuz anlamına geliyor. başkası yoktu.
Bu nedenle, bu HTML kancalarına uydurma davranışı, kodun yeniden kullanımını akıllı bir şekilde teşvik eder. Alternatif bir uygulama için davranışı dallamanız gerekiyorsa, aynı işleve gidip HTML hiyerarşisiyle veya bazı alt davranışları tetikleyen bir veri-att ile orada işlersiniz. Belirli bir tipteki UI öğelerinin nasıl çalıştığını ve kötü şekilde tembel olan kes ve yapıştır tiplerinin nasıl çalıştığını anlamak isteyen herkes için bir durak alışveriş, çünkü en kolay şey şimdi yapın ve bu sürdürülebilirliği sağlamak için en iyi yoldur. Panik veya ilgisizlik nedeniyle daha az umursamayan biri için bile bunu yapmanın en kolay "duh" işi yapın.
Peki ya 2014?
Modern tek sayfalık uygulamalarda, bu çöpleştirici şeylerin bazılarının oldukları kadar dogmatik olarak takılmamaları gerekir, ancak söylediğimde bana inanan tek kişi olduğumu düşünmediğimde yasal bir nokta olabilir. üzerinde satıldı çünkü sonunda işi kolaylaştırıyor. Ben (umarım) çoğunlukla iyi tembel tembel. Bir uygulamadaki değişiklikleri almak için yalnızca bir yerde bir şeyleri değiştirmek zorunda kaldığımda, hatanın ne olduğunu anlamak için tek bir yere bakmam gerektiğinde ve haltun ne olduğunu anlamak için kolay bir zamanım olduğunda hoşuma gidiyor çok benzer bir şey yapmak için bu kodu en iyi nasıl kullanacağınız.
Bir DB'yi veya veri katmanını bölmek iyidir. Sonuçta, boksörlerinizi ateşlemek ve ertesi sabah paranoyak koku kontrolleri yapmak için 10 dakika harcamak yerine, bir gece önce çamaşır yıkamak için beş dakikanın tamamını almak gibi bir zaman tasarrufu sağlayan neden bu kadar zaman kazandıran bir şey.
Benim için, her zaman neden sadece göze batmayan JS'ye değil, WHAT-freaking-WG'nin en çok lanet ettiği gibi bile stil / davranış / içerik ayrımı için neden tuttuğumun ana noktası olan bencil motivasyonlardır. Bu endişeleri anlaşılır derecede harika ve havalı / kullanışlı yollarla karıştırın.
Artık herkes SPA yapıyor ve neredeyse JS olmadan çalışan insanları önemsememiz gerektiğine ikna etmeye çalışıyor (erişilebilirlik, sözde JS tarafından oluşturulan içerikle ele alınabilir), yeni nesil JS devs bakımı daha az gibi görünüyor Bu konuda IMO, hala orada bir kazanç var ve çoğunlukla sizin için, geliştirici bu şeyleri yazıyor ve koruyor. Ve gerçekten, bu kazanç her zaman en az vurgulanan nokta olmalıydı, ancak hiçbir zaman bir sebepten dolayı olmamıştı çünkü daha kolay tweak / değiştir / hata ayıklama sayesinde size ve ayrıca mutlu kazayla ürüne fayda sağlıyor.
Hiç iyi mi?
Evet, sanırım. Bir yarışma ya da bir şey için bir tek atma app. Ama bunu sadece alışkanlık içinde olduğum için yapardım ve bunu yapmak aslında zor değil.