Napište další plug-in jQuery, zabijte jednorožce

Autor: Randy Alexander
Datum Vytvoření: 2 Duben 2021
Datum Aktualizace: 14 Smět 2024
Anonim
Napište další plug-in jQuery, zabijte jednorožce - Tvůrčí
Napište další plug-in jQuery, zabijte jednorožce - Tvůrčí

Obsah

JavaScriptová knihovna jQuery mohla nepřímo generovat jedinou největší vlnu znečištění, jakou kdy internet poznal. Ve srovnání s tím mohou být hacky CSS a předpony dodavatelů pro webovou platformu stejně škodlivé jako organická banánová kůže, která zůstala na úpatí stromu v nějakém vzdáleném lese.

Chystám se jít po částech kódu, které zbytečně rozšiřují jQuery.

Pojďme se spřátelit.

Na volně vázaném veřejném API

Tady je řada kódu, která je asi v 90 procentech zásuvných modulů jQuery, jejichž zdroj jsem četl, naprosto zbytečná:

$ .fn.myjQueryPlugin = ...

Většina plug-inů jQuery jednoduše používá jQuery k tomu, co mají, a pro tyto pluginy není rozšíření jQuery ani užitečné, ani nutné, zejména proto, že mnoho z nich ani nepodporuje, ani neumožňuje řetězení ( což je koneckonců jedna z dobrých věcí o jQuery).

Pokud konkrétně nepotřebujete vkládat metody vašeho modulu plug-in do jQuery, proč byste měli své veřejné API tak pevně spojit se všemocným dolarem? Zvažte následující způsoby, jak aktivovat hypotetický plug-in ohSoAwesome.js:


// 1: způsob plug-inu jQuery $ ("# some-div"). OhSoAwesome (); // 2: "vanilla JS" wayohSoAwesome.init ("# some-div");

Pokud jde o veřejné API, první řádek velmi úzce spojuje modul plug-in ohSoAwesome s jQuery, zatímco druhý řádek je „library-agnostic“; používá jQuery, ale nezobrazuje se. Zde je základní struktura tohoto druhého modulu plug-in:

! function ($) {var self = ohSoAwesome = {// Zde si můžete dělat, co chcete // včetně použití jQuery} window.ohSoAwesome = ohSoAwesome;} (window.jQuery);

Používání API pro knihovnu a agnostiku lidem neztěžuje používání vašeho kódu a není pro vás o nic těžší ani prodat váš zásuvný modul.

Víte, ten „boom“, který všichni rádi v naší dokumentaci někam blikáme, abychom zajistili, že lidé pochopí, jak bolestně snadné je, aby náš kód fungoval. Doposud jsme vždy viděli tento druh upoutávky:

Zahrnout ohSoAwesome.js. Vyhoďte to. Výložník.

Vím, na co myslíte, drahý uživatel zásuvných modulů jQuery: „Ano, úžasné, chci to použít. Boom.“ Ale no tak, nebyla by následující ukázka stejně účinná?


Ujistěte se, že je součástí jQuery. Zahrnout ohSoAwesome.js. Vyhoďte to. Výložník.

"Naprosto."

Vím. Bolestně snadné.

Buďte přátelští k budoucnosti; nechte všechny dveře otevřené

Po vydání pluginu nelze říci, jaká bude jeho životnost, jak úspěšná bude a jak široce se rozšíří po internetu. Představte si, že jste vlastníkem neuvěřitelně úspěšného kódu. Způsob, jakým jste kódovali svůj plug-in a jeho veřejné API (nebo, zjednodušeně řečeno, řádky kódu, které lidé zadají pro použití vašeho plug-inu), je filtrován přes hranol jQuery. A jednoho dne se chcete z jakéhokoli důvodu odvázat od jakýchkoli závislostí.

Tuto myšlenku prodáte mnoha uživatelům jen těžko. Představte si, že jim řeknete, že nyní musí projít všemi částmi svého vlastního kódu, aby byl v souladu s novým „uvolněným“ API vašeho pluginu. Je pravděpodobné, že se vaše fanouškovská základna doslova roztaví.

„Je to skandální.“ Vím, drahý uživateli. Vím.


Kdykoli je to možné, je lepší myslet spíše na složení a shodu než na rozšíření. Čím volnější jsou vazby mezi jednotlivými částmi softwaru, tím větší je vývojářům flexibilita a volnost pohybu.

A samozřejmě, čím větší je úspěch vašeho zásuvného modulu a tím vyšší je v dlouhodobém horizontu vyšší účinnost vašeho kódu. A čím je uživatel šťastnější.

„To je důležité, člověče! Myslím, že je to ekosystém, ve kterém se vyvíjíme.“ Ano, máte úplnou pravdu.

jQuery je dar z nebes, ale má svou cenu

jQuery je neuvěřitelný nástroj pro spouštění aplikací. Pomůže vám dosáhnout úžasných věcí během několika minut a je poháněn velmi dynamickou a pohotovou komunitou. Rovněž se postará o řešení rozdílů mezi prohlížeči, což je úleva v pravděpodobně nespočetných situacích.

Ale ...

Bylo prokázáno, že jQuery obsahuje mnoho nasycených tuků, které prodlužují dobu načítání aplikace.

Prohlížeče se vyvíjejí neuvěřitelně rychle a přestože je ještě příliš brzy na to, abychom se zbavili podpory starších prohlížečů, které jsou zodpovědné za slušnou část váhy jQuery, přijde čas, kdy querySelector nahradí Sizzle a místo metod animace se použije CSS.

Až ten den přijde, mnoha funkcí plug-inu jQuery lze snadno dosáhnout bez pomoci „tlusté“ knihovny. Až ten den přijde, bude Vanilla JS dostatečně silná, aby nahradila jQuery.

Co tedy uděláte? Co když časem svůj plug-in refaktorujete, dokud se již nebude spoléhat na jQuery? Protože tím máme na mysli technologii, která se zde pohybuje rychlostí světla. A všichni si velmi dobře uvědomujeme, že v tomto kontextu nic netrvá věčně. Včetně úžasného, ​​všemohoucího jQuery.

„Mohl by existovat web bez jQuery?“ Ano, vážený uživateli. Jakkoli se to teď může zdát děsivé, ten čas nevyhnutelně přijde. Jedinou otázkou je, kdy.

Buďte připraveni na budoucnost: zapisujte zásuvné moduly, které používají jQuery, místo psaní zásuvných modulů, které rozšiřují jQuery (pokud ovšem rozšíření není nezbytně nutné a smysluplné). Tím zajistíte, že pokud jQuery někdy zastará, web jej nebude muset stále načítat znovu a znovu a znovu.

A znovu.

To vše jen proto, že webové stránky používají části kódu, které zbytečně rozšířily jQuery.

„Člověče, webové stránky by se úplně načítaly rychleji na menších zařízeních, pokud by k tomu někdy došlo, nebo na jakémkoli zařízení, které lidé budou v budoucnu používat.“

Ano. Máte pravdu. A krásná věc je,my (lidé, kteří píší plug-iny) bychom prostě přestali používat jQuery. A to je vše. Žádné potíže pro vás, drahý uživateli.

„Jo, protože ty věci existují díky lidem jako jsem já. Nejprve musíš na nás myslet.“ My ano. Věřte mi, že ano.

Co tedy dělat?

Pokud jsem vás přesvědčil, že psaní zásuvných modulů jQuery je ve skutečnosti extrémně zlá praxe, nespalujte svou práci u oltáře knihovnického agnosticismu. Váš plug-in jQuery je určitě úžasný! A myslím to vážně, protože jsem sám šťastným uživatelem mnoha zásuvných modulů jQuery. Ale je čas přestat po celou dobu šířit dolarové API pro jakýkoli jednoduchý úkol, který náš kód dělá, protože to bude určitě velmi kontraproduktivní v našem úsilí, aby se web posunul vpřed v ne tak vzdálené budoucnosti.

Přestaňte bolet to krásné, vynalézavé a nevinné stvoření, kterým webová platforma je.

Pokud nevíte, jak jednorožci trpí.

Ano, nastal okamžik, kdy jsme připraveni vyléčit naše závislosti na tlustých knihovnách a najít způsoby, jak dál používat naše existující API plug-inů jQuery, aniž by bylo nutné jQuery skutečně používat.

„Kamaráde, jako přijít s chytrým nápadem, díky kterému o tobě lidé neustále pípají?“ Myslím že ano. Myslím že ano.

Nezapomeňte Se Podívat
5 úžasných gadgetů, které si weboví designéři zamilují
Přečtěte Si Více

5 úžasných gadgetů, které si weboví designéři zamilují

Lov na perfektní vánoční dárek může být jednou z nejvíce tre ujících čá tí prázdnin. Díky pou tě lidí, kteří do tanou dárky, ...
Jak pracují designéři: umělec Thomas Forsyth
Přečtěte Si Více

Jak pracují designéři: umělec Thomas Forsyth

Thoma For yth je umělec a de ignér, který v ouča né době žije v Londýně. Zde hovoří o důležito ti komunikace a udržení pohody.Thoma For yth vy tudoval Brighton kou univer...
Vytvořte si vlastního správce seznamu úkolů, část 2
Přečtěte Si Více

Vytvořte si vlastního správce seznamu úkolů, část 2

táhněte i zdrojové oubory pro tento kurzV první čá ti tohoto tutoriálu j me vytvořili web e eznamem úkolů pro právu eznamů úkolů a také pro přidáv...