Toster - hər şey komposterə keçir. Filtrləyin və həzz alın

Elə olur ki, İT mövzularına dair Rusiyanın sual-cavab resursu MDB-də olduqca populyardır - Toster. Ancaq mən onu yaxından tanımağa başlayanda nəyisə əskik edirdi. Bu, brauzer genişləndirilməsi şəklində təkmilləşdirmə ilə nəticələndi. Mənimlə tanış ol.

Açar Xüsusiyyətlər:

  • Title: Toster Rahatlığı.
  • İstifadəçi statistikası: həlli olan sualların faizi; Habrdan olan karma; profildən xülasə - bütün bunlar Tosterin suallar siyahısındadır.
  • Bildirişlər: real vaxtda saytda, ikonada, üstəlik push bildirişləri, bir çox parametrlər, sayt açıq olmalıdır (wiki).
  • Filtrlər: düsturlara əsaslanan şərtlər: sualları gizlədə, rəngləyə, həmçinin bildirişləri göstərə bilərsiniz - bütün bunlar məntiqi şərtlər şəklində çevik şəkildə konfiqurasiya edilmişdir (wiki).
  • İnterfeys: dəqiq tarixləri göstərmək və ya suallar siyahısında abunə statusunu göstərmək kimi kiçik təkmilləşdirmələr.
  • Habr interfeysi: kiçik təkmilləşdirmələr (isteğe bağlı), məsələn, şərhlərdə boşluq xətləri.
  • Açıq mənbə: Həqiqətən istəsəniz özünüz üçün yenidən düzəldə bilərsiniz (mənbələr).
  • Pulsuz: MIT Lisenziyası.
  • Yaddaş istehlakı: Tosterin seçimlərindən və istifadə intensivliyindən asılı olaraq 30-50MB
  • Size: v93 üçün 0.8.1KB (paketdən çıxarılmamış, kiçildilməmiş kod).
  • Çərçivə: itkin, təmiz JS (minimalizm).
  • Kodun keyfiyyəti: orta, üslubların qarışığı, böyük xüsusiyyətlər, çirkli fəndlər, bir neçə şərh.
  • İcazələr: toster.ru, habr.com, notifications, storage, unlimitedStorage

Başlanğıcda, genişləndirməyi özüm üçün bir məqsədlə etdim: istifadəçinin "Həll kimi qeyd et" düyməsini sıxmaqdan narahat olduğu suallarının faizini göstərmək. Sonra yavaş-yavaş əvvəlcə biri, sonra digəri əlavə edildi, alət yüz kilobaytlıq bir canavara çevrilənə qədər. Buna baxmayaraq, “lazımsız heç nədən istifadə etməmək” prinsipinə sona qədər əməl edilmişdir.

İndi əsas xüsusiyyətlərdən biri parametrlərdə düsturların istifadəsidir. Onlarla demək olar ki, hər şeyi edə bilərsiniz, diqqətinizi idarə etmək istədiyiniz hər hansı bir şey. Əsas odur ki, nə istədiyinizi biləsiniz. Gizlətmə, rənglərin dəyişdirilməsi və bildirişlər saytla işləyərkən diqqət edilməli olan üç əsas cəhətdir. Hər şeyi və hər şeyi süzgəcdən keçirmək rahatlığın açarıdır.

Müəyyən bir mövzu ilə bağlı bildirişlər almağa imkan verəcək çevik qayda nümunəsi:

!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

Dərhal deyim ki, eval() funksiyasından istifadə etmək mümkün deyil. Beləliklə, çox əylənməyəcəksiniz. Buna görə də istifadə edərək 5 KB kodda öz qoltuqağamı yazmalı oldum tərs polyak notasiyası. Bu, demək olar ki, həm funksiyalar, həm də sintaksis baxımından yüksək dərəcədə neytrallaşdırılmış JS-dir.

Bu yaxınlarda haqqında bir yazı var idi Toster uzadılması. Müqayisə üçün, TE daha gözəl interfeysə və Toster Comfort-da olmayan bəzi xüsusiyyətlərə malikdir. Bununla belə, mənim genişlənməm resurs istehlakını vurğulayır. Bununla belə, hər iki uzantıdan istifadə etmək üçün heç kim sizi narahat etmir, onlar ziddiyyət təşkil etməməlidir.

Yaxşı mənada, TC-ni sıfırdan yenidən yazmaq lazımdır, çünki localStorage və JSON.stringify()-dan imtina etməklə və bəzi memarlıq həllərini dəyişdirməklə işi ən azı iki dəfə, keş ilə isə 10 dəfə sürətləndirmək olar. Ancaq bu işi etməli olan mən deyiləm. Mən də “işləyirsə, ona toxunma” prinsipinin tərəfdarıyam. Tətildə olduğum müddətdə mən aktiv şəkildə problemlər və PR ilə məşğul oluram, lakin minimalizm hesabına deyil. Diqqətinizə görə təşəkkürlər!

Mənbə: www.habr.com

Добавить комментарий