internet pencereler Android
Genişletmek

NPM ve Sol Pad: Programı öğrendik mi? CSS tarzı dolgu bıraktı. Soldaki alanı takma Dolgu-sola, bağımlılıkları azaltmak için mücadele ediyoruz

CSS dolgu-sol stil, alan boyutunu ayarlar (eleman çerçevesinin iç kenarından, içeriğini sola sınırlayan hayali bir dikdörtgene uzaklıktadır.

CSS Mülkiyetinin Özeti - Sol

Dolgu-Sol Özellikler Yazma Kuralları

Dolgu-sol:<размер>;

Sol alanın büyüklüğü, piksellerde (PX), yüzde (%) veya CSS için izin verilen diğer izin verilen birimlerde gösterilebilir.

Nesne modeli

Object.Style.PaddingLeft.

Dolgu-Sol Stil Uygulama Örneği

Örnekte soldaki dolgu çalışmalarını göstereceğiz. Soldaki alanın diğer taraflardan daha büyük olması için ihtiyacımız var. Metnin arka plan düzeninde tırmanmaması gerekir.

Uygulama Özellikleri Dolgu - Sol Örnek CSS Stil Dolgu - Sol
Soldaki alanın diğer taraflardan daha büyük olması için ihtiyacımız var. Bu, CSS özelliklerinin solunmasına yardımcı olacaktır.


Yazma dolgusu yerine: 5px; ve sonra dolgu solu: 90px; Yazılı dolgu yapmalıyız: 5px 5px 5px 90px; . Çok daha kısa ve daha yüksek bir düzen düzeyi gösterir.

Alan değerini, elemanın içeriğinin sol kenarından ayarlar. Alan, eleman çerçevesinin iç kenarından içeriğini sınırlayan hayali bir dikdörtgene olan mesafedir (Şekil 1).

Sözdizimi

dolgu-Sol: Değer | OTO.

Argümanlar

Sol alanın büyüklüğü, Piksel (PX), yüzde (%) veya CSS için izin verilen diğer ünitelerde gösterilebilir. Otomatik argüman, alan boyutunun tarayıcı tarafından otomatik olarak hesaplanacağını gösterir.





dolgu-sol.



Lorem Ipsum Dolor Sit Amet, KONSECTETUER Adipiscing Elit, SED DIEM NOMOMY NIBH EUISMOD Tintidunt Ut Lacreet Dolore Magna Aliguam Erat Volutpat. UT WISIS ENIM AD MINIM VENIAM, QUIS NOSTRUD EXERGION TITION ULLAMCORPER SUSCIPIT LOBORTIS NISL UT ALIQUIP E EA COMMODO Sonuç.





Bu örneğin sonucu pirinçte gösterilir. 2.

İncir. 1. Dolgu sol parametresini uygulayın

Tarayıcı Nettscape. Opera Mozilla Firefox.
Sürüm 5.5 6.0 7.0 8.0 8.0 9.0 7.0 8.0 9.2 9.5 1.3 2.0 3.1 1.5 2.0 3.0
Desteklenen Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet Evet

KISA BİLGİLER

Açıklama

Alan değerini, elemanın içeriğinin sol kenarından ayarlar. Alan, elemanın çerçevesinin iç kenarından, içeriğini sınırlayan hayali dikdörtgene olan mesafeden kaynaklanmaktadır (Şekil 1).

Sözdizimi

dolgu-Sol: Değer | OTO.

Argümanlar

Sol alanın büyüklüğü, piksellerde (PX), yüzde (%) veya CSS (TSS) birimleri için diğer izinler halinde gösterilebilir. Otomatik argüman, alan boyutunun tarayıcı tarafından otomatik olarak hesaplanacağını gösterir.

STML 4.01 CSS (TSSS) 2.1 IE 5.5 IE 6 IE 7 OP 9.5 SA 3.1 FF 2.0 FF 3.0

dolgu-sol.

Lorem Ipsum Dolor Sit Amet, KONSECTETUER Adipiscing Elit, SED DIEM NOMOMY NIBH EUISMOD Tintidunt Ut Lacreet Dolore Magna Aliguam Erat Volutpat. UT WISIS ENIM AD MINIM VENIAM, QUIS NOSTRUD EXERGION TITION ULLAMCORPER SUSCIPIT LOBORTIS NISL UT ALIQUIP E EA COMMODO Sonuç.



Bu örneğin sonucu pirinçte gösterilir. 2.

İncir. 1. Dolgu sol parametresini uygulayın

(David Haney), Kurşun Programcı Yığın Taşması

Bu yüzden geliştiriciler, ciddi bir sohbet için zaman. Muhtemelen bu haftanın tepki verdiğinin farkındasın, Babil ve bir sürü diğer popüler NPM paketleri kırıldı. Sebep oldukça şaşırtıcı.

Sol Pad adlı basit bir NPM paket, reaksiyona, babel ve diğer paketlerde bağımlılık olarak belirlenmiştir. Bu yazının yazılı olarak yazdığı modül, GitHub'da 11 yıldız (şimdi 323 - Yaklaşık). Tüm paket, satırların sol tarafında yer alan ilkel fonksiyon ekleme alanını uygulayan 11 basit satırdan oluşur. Bağlantılardan bazıları bir günse, işte kodu:

Module.Exports \u003d leftpad; Function leftpad (str, len, ch) (str \u003d string (str); var i \u003d -1; eğer (! Ch && ch! \u003d\u003d 0) ch \u003d ""; len \u003d len - str.Length; iken (+ + I.< len) { str = ch + str; } return str; } Что меня беспокоит, так это böyle çok sayıda paketnerede yüklü bağımlılık Basit bir kürek işlevinden boşluklarla, 2 dakika geçirmek yerine ve bu temel işlevin kendisini yazın.

Sol-Pad nedeniyle olan sıkıntıyı öğrendikten sonra, NPM ekosistemini keşfetmeye başladım. Ve diğer şeylerin yanı sıra keşfettiğim şey budur:

  • Aranan bir paket var İsarray.Günde 880.000 kez toplu, Şubat 2016'da 18 milyon indirme. Ona 72 bağımlı NPM paketleri. Ve işte bu bütün 1 Hat kodu:
    TOSTRING.CALL (ARR) \u003d\u003d "" i'ye dönün;
  • Aranan bir paket var olumlu-tamsayı (GitHub), 4 satır ve dün için gerekli olan Diğer 3 paket iş için. Yazar, refactoring harcadı, bu yüzden paketin 0 bağımlılıkları var, ancak neden derhal yapılmadığını anlayamıyorum.
  • Taze kurulum Babil İçerir 41.000 Dosya
  • Temiz JSPM / NPM tabanlı uygulama şablonu C'ye başlar 28 000+ dosya
Bütün bunlar bir soru sormanızı sağlar ...

Programı öğrendik?

Paralel dünyalardan hangisinde, yukarıdaki kararlar en iyisidir? Aşırı zorluk ve delilik dışında, yüzlerce bağımlılık ve boş bir şablon için 28.000 dosya başka bir şeye adlandırılabilir mi?

NPM ekosistem katılımcılarının fetiş mikropower bitkilerini yetiştirdiği anlaşılıyor. Herhangi bir işlev veya kod yazmak yerine, başkası tarafından yazılmış bir şeye bir bağımlılık oluşturmak için tercih ediliyorlar. Bu bana göre, NPM ekosistemindeki programcının tüm çalışmalarının, mevcut kütüphaneleri bir araya getirmek için, kişisel veya ticari ihtiyaçlar için benzersiz bir şekilde işleyen yeni bir şey oluşturmak için mümkün olduğunca daha küçük bir kod olarak yazmaya azaltıldığı gibi görünüyor.

İşlevler paket değildir

İşlevler pakete ve bağımlılığa girmek için çok küçük. Temiz fonksiyonların bağlantısı yoktur; Bunlar rastgele kod parçalarıdır ve başka bir şey değildir. Kim kosinine bağımlılığına ihtiyacı var? Bunun yerine, kendilerini yazmak istemediğimiz birçok kurnaz fonksiyonu kapsayan trigonometri paketine olan bağımlılığı gerçekten sevecekti. .NET ve diğer çerçevelerin, ana işlevselliğe sahip bir temel kütüphane oluşturduğu kadar çok daha benzer. Böyle bir kütüphane, dilin yaratıcıları tarafından test edilir ve böcek yokluğu ile büyük ölçüde garantili güvenilirliğe sahiptir.

Üçüncü şahısların sorunu

Başka biri tarafından doğru yazan veya normal olarak çalışacak bir kesinlikle hiçbir garanti yoktur. Her şey doğruysa bile, sorunu çözmenin en uygun yolu mu? En azından kendin kod yazdığınızda, kolayca değiştirebilir, hataları düzeltebilir ve verimliliği artırabilirsiniz. 1 satır fonksiyonunda özellikle birçok hata olmamalıdır.

İkincisi, paketteki mantıklar doğru olsa bile, geliştiricilerin, kendilerinin kapalı gözlerle yazabilmeleri gereken tek satır fonksiyonlara bağımlılıklar oluşturmaları gerçeğinden etkilenir. Fonksiyon Sol-Pad, pozitif-tamsayı veya IsArray'ı beş dakika içinde yazamazsanız (Google'ı aramak için zaman dahil), o zaman nasıl programlanacağını bilmiyorsunuz. Kahretsin, bunlardan herhangi biri, adayın program yapıp programlayabileceği bir kontrol olarak röportajda iyi bir soru olabilir.

Sonunda, farklı API'lerin birbirine bağlanması programlamıyor. Bu, bulutları ve aşırı yüklenmeyi gerçekten gerekli olmayan, bulutları ve aşırı yüklenmeyi içeren bir tür delilik şeklidir.

Kodunuzda veya üçüncü taraf bir kütüphanenin kodunda bir hata veya kod varsa daha da kötüsü, nasıl programlanacağını bilmiyorsanız, nasıl hata ayıklayacağınızı veya düzeltmeyi bilemezsiniz.

Bağımlılıklarda azalma için savaşıyoruz

Her eklenen paket başka bir tane ekler. bağımlılık Projenize. Bu kelimenin özündeki bağımlılıklar sizindir. uşakBöylece kod çalıştı. Daha fazla bağımlılıklar, daha fazla başarısızlık noktasınız var. Daha büyük bir hata olasılığından bahsetmiyorum: Bu işlevleri her gün bağımlıyken yazan programcıları kontrol ettiniz mi?

Kendinizi uygulamak için çok uzun ve pahalı olan herhangi bir karmaşık işlevselliğe bağımlılığı yapın. Veritabanına (ORM) veya önbellekleme istemcisine erişim seviyesi gibi şeyler bağımlılıklar olarak kurulmalıdır, çünkü bunlar karmaşıktır ve tasarruf ve verimliliğe bağlı olarak riski vardır.

Ama lütfen, programlama olan her şeye sevgi uğruna, lanet olası temel işlevleri yazın. Bağımlılıkları tek süreli paketlere koymak - genellikle çığlık atmaktır. İnanma? Sadece reaksiyon geliştiricilerinden haftayı geçtikleri için ve teli sol boşluklardaki dizeyi paketlemek için bu 11 satır yazmadıkları için pişman olmadıklarını sorun.