Ekmek kızartma makinesi - her şey kompost makinesine gider. Filtreleyin ve keyfini çıkarın

Öyle oldu ki, BT konularıyla ilgili Rusça Soru-Cevap kaynağı BDT'de oldukça popüler - ekmek kızartma makinesi. Ancak onu yakından tanımaya başladığımda bir şeyleri kaçırıyordu. Bu, tarayıcı uzantısı biçiminde bir gelişmeyle sonuçlandı. Benimle tanış.

Ana Özellikler:

  • Başlık: Ekmek kızartma makinesi konforu.
  • Kullanıcı istatistikleri: çözümlü soruların yüzdesi; Habr'dan karma; profilin özeti - bunların hepsi Toaster'ın soru listesinde.
  • Bildirimler: sitede gerçek zamanlı olarak, simge üzerinde, ayrıca anlık bildirimler, birçok ayar, sitenin açık olması gerekir (wiki).
  • Filtreler: formüllere dayalı koşullar: soruları gizleyebilir, renklendirebilir ve ayrıca bildirimleri gösterebilirsiniz - bunların tümü mantıksal koşullar biçiminde esnek bir şekilde yapılandırılır (wiki).
  • arayüz: Soru listesinde kesin tarihlerin gösterilmesi veya abonelik durumunun görüntülenmesi gibi küçük iyileştirmeler.
  • Habr arayüzü: küçük iyileştirmeler (isteğe bağlı), örneğin yorumlardaki girinti çizgileri.
  • Açık kaynak: Gerçekten istersen bunu kendin için yeniden yapabilirsin (kaynaklar).
  • Ücretsiz: MİT Lisansı.
  • Bellek tüketimi: Tost makinesinin seçeneklerine ve kullanım yoğunluğuna bağlı olarak 30-50MB
  • Boyutu: v93 için 0.8.1 KB (paketlenmemiş, küçültülmüş kod değil).
  • Çerçeve: eksik, temiz JS (minimalizm).
  • Kod kalitesi: ortalama, tarzların karışımı, büyük özellikler, müstehcen numaralar, az yorum.
  • İzinler: toster.ru, habr.com, notifications, storage, unlimitedStorage

Başlangıçta uzantıyı kendim için tek bir amaçla yaptım: Kullanıcının "Çözüm olarak işaretle" düğmesini tıklama zahmetine girdiği soruların yüzdesini göstermek. Sonra yavaş yavaş önce biri, sonra diğeri eklendi, ta ki araç yüz kilobaytlık bir canavara dönüşene kadar. Ancak yine de “gereksiz hiçbir şeyin kullanılmaması” ilkesi sonuna kadar takip edildi.

Artık ana özelliklerden biri ayarlardaki formüllerin kullanılmasıdır. Onlarla neredeyse her şeyi, dikkatinizi yönetmek istediğiniz her şeyi yapabilirsiniz. Önemli olan ne istediğini bilmek. Gizleme, renkleri değiştirme ve bildirimler bir siteyle çalışırken dikkat edilmesi gereken üç ana husustur. Her şeyi filtrelemek rahatlığın anahtarıdır.

Belirli bir konuyla ilgili bildirim almanızı sağlayacak esnek bir kural örneği:

!tag("Блокирование рекламы") && !contains(t,"реклам") && contains(t,"блокиров") && !tag("HTACCESS") || containsWord(t,"ркн") || contains(t,"роскомнадзор") || contains(t,"роскомпозор") || contains(t,"государств") || contains(t,"запрещен") || contains(t,"запрещён") || contains(t,"пиратск") || containsWord(t,"обход") || containsWord(t,"ростелеком") || containsWord(t,"яровой") || containsWord(t,"рф") && tag("Компьютерные сети") = notify

Eval() fonksiyonunun kullanılamadığını hemen söyleyeyim. Yani pek eğlenmeyeceksiniz. Bu nedenle, 5 KB kodla kendi koltuk değneğimi yazmak zorunda kaldım. ters Lehçe notasyonu. Bunun hem işlevler hem de sözdizimi açısından son derece kısırlaştırılmış JS olduğu söylenebilir.

Geçenlerde bununla ilgili bir yazı vardı Ekmek Kızartma Makinesi Uzantısı. Buna karşılık TE, daha hoş bir arayüze ve Toster Comfort'un sahip olmadığı bazı özelliklere sahiptir. Ancak uzantım kaynak tüketimini vurguluyor. Ancak kimse sizi her iki uzantıyı da kullanmanız konusunda rahatsız etmiyor; çakışmamalılar.

İyi bir açıdan bakıldığında, TC'nin sıfırdan yeniden yazılması gerekiyor, çünkü localStorage ve JSON.stringify()'dan vazgeçilip bazı mimari çözümler değiştirilerek iş en az iki kez hızlandırılabilir ve önbellekle - 10 kez - çalışılabilir. Ama bu başarıyı yapmak zorunda olan ben değilim. Ben de “çalışıyorsa dokunmayın” ilkesinin hayranıyım. Tatildeyken aktif olarak konularla ve halkla ilişkilerle ilgileniyorum, ancak minimalizm pahasına değil. İlginiz için teşekkür ederiz!

Kaynak: www.habr.com

Yorum ekle