다른 jQuery 플러그인 작성, 유니콘 죽이기

작가: Randy Alexander
창조 날짜: 2 4 월 2021
업데이트 날짜: 16 할 수있다 2024
Anonim
다른 jQuery 플러그인 작성, 유니콘 죽이기 - 창조적 인
다른 jQuery 플러그인 작성, 유니콘 죽이기 - 창조적 인

콘텐츠

자바 스크립트 라이브러리 jQuery는 인터넷이 지금까지 알고있는 가장 큰 오염의 물결을 간접적으로 생성했을 수 있습니다. 이에 비해 CSS 해킹 및 공급 업체 접두사는 일부 원격 숲의 나무 밑에 남겨진 유기농 바나나 스킨만큼 웹 플랫폼에 해로울 수 있습니다.

필자는 jQuery를 불필요하게 확장하는 코드 조각을 살펴 보려고합니다.

친구를 사귀자.

느슨하게 연결된 공용 API

다음은 내가 읽은 소스를 가진 jQuery 플러그인의 약 90 %에 해당하는 코드 줄입니다.

$ .fn.myjQueryPlugin = ...

대부분의 jQuery 플러그인이 수행하는 작업은 jQuery를 사용하여 수행해야하는 작업을 수행하는 것입니다. 이러한 플러그인의 경우 jQuery를 확장하는 것은 유용하지도 필요하지도 않습니다. 특히 많은 플러그인이 체인 성을 장려하거나 허용하지 않기 때문입니다. 결국 jQuery의 좋은 점 중 하나입니다).

플러그인의 메소드를 jQuery에 특별히 삽입해야하는 경우가 아니라면 공개 API를 전능 한 비용과 밀접하게 연결해야하는 이유는 무엇입니까? 가상의 ohSoAwesome.js 플러그인을 실행하려면 다음 방법을 고려하십시오.


// 1 : jQuery 플러그인 way $ ( "# some-div"). ohSoAwesome (); // 2 : "바닐라 JS"wayohSoAwesome.init ( "# some-div");

공개 API 측면에서 첫 번째 줄은 ohSoAwesome 플러그인을 jQuery에 매우 밀접하게 연결하고 두 번째 줄은 '라이브러리에 구애받지 않음'입니다. jQuery를 사용하지만 표시되지 않습니다. 두 번째 플러그인의 기본 구조는 다음과 같습니다.

! function ($) {var self = ohSoAwesome = {// 여기서 원하는대로 // jQuery 사용을 포함하여 수행} window.ohSoAwesome = ohSoAwesome;} (window.jQuery);

라이브러리에 구애받지 않는 API를 사용한다고해서 사람들이 코드를 사용하는 것이 더 어려워지지는 않으며 플러그인을 마케팅하는 것도 어렵지 않습니다.

아시다시피, 우리 모두는 문서 어딘가에 플래시를 사용하여 코드를 작동시키는 것이 얼마나 고통스럽고 쉬운 지 사람들이 이해할 수 있도록하는 것을 좋아합니다. 지금까지 우리는 항상 이런 종류의 티저를 보았습니다.

ohSoAwesome.js를 포함합니다. 발사 해. 팔.

여러분이 무슨 생각을하는지 알고 있습니다. jQuery 플러그인 사용자 여러분 께 : "예, 대단합니다. 사용하고 싶습니다. Boom." 하지만 다음 티저도 똑같이 효율적이지 않을까요?


jQuery가 포함되어 있는지 확인하십시오. ohSoAwesome.js를 포함합니다. 발사 해. 팔.

"전적으로."

알아. 매우 쉽습니다.

미래 친화적이어야합니다. 모든 문을 열어 두십시오

플러그인이 출시되면 수명이 어떻게 될지, 얼마나 성공적 일지, 인터넷에 얼마나 널리 퍼질 지 말할 수 없습니다. 믿을 수 없을 정도로 성공적인 코드의 소유자라고 상상해보십시오. 플러그인과 퍼블릭 API를 코딩 한 방식 (또는 간단히 말해서 사람들이 플러그인을 사용하기 위해 입력하는 코드 라인)은 jQuery의 프리즘을 통해 필터링됩니다. 그리고 언젠가는 어떤 이유로 든 의존성에서 벗어나기를 원합니다.

글쎄, 당신은 많은 사용자에게 그 아이디어를 판매하는 데 어려움을 겪을 것입니다. 플러그인의 새로운’unleashed’API를 준수하기 위해 이제 자신의 코드를 모두 검토해야한다고 말하는 것을 상상해보십시오. 팬층이 말 그대로 무너질 가능성이 있습니다.

"추문 스럽네요." 알아요, 친애하는 사용자. 알아.


가능할 때마다 확장보다는 구성 및 집계 측면에서 생각하는 것이 좋습니다. 소프트웨어 조각 간의 관계가 느슨할수록 개발자의 유연성과 이동의 자유가 커집니다.

그리고 분명히 플러그인의 성공이 클수록 장기적으로 코드의 효율성이 높아집니다. 아, 그리고 사용자가 더 행복합니다.

"중요합니다. 우리가 개발하고있는 생태계입니다." 예, 당신 말이 완전히 맞습니다.

jQuery는 신의 선물이지만 대가가 따릅니다.

jQuery는 킥 스타트 애플리케이션을위한 놀라운 도구입니다. 몇 분 안에 멋진 결과를 얻을 수 있도록 도와 주며 매우 역동적이고 반응이 빠른 커뮤니티에서 주도합니다. 또한 브라우저 간의 차이점을 처리하는 데 도움이되며, 이는 아마도 셀 수없이 많은 상황에서 안심할 수 있습니다.

하지만 ...

jQuery에는 응용 프로그램 로딩 시간을 증가시키는 포화 지방이 많이 포함되어 있다는 것이 입증되었습니다.

브라우저는 엄청나게 빠르게 진화하고 있으며, jQuery 무게의 상당 부분을 담당하는 구형 브라우저에 대한 지원을 포기하기에는 아직 너무 이르지만, querySelector Sizzle을 대체하고 CSS가 애니메이션 메소드 대신 사용됩니다.

그날이 오면 'fat'라이브러리의 도움 없이도 jQuery 플러그인의 많은 기능을 매우 간단하게 달성 할 수 있습니다. 그날이 오면 Vanilla JS는 jQuery를 대체 할만큼 강력 할 것입니다.

그러면 무엇을 하시겠습니까? 제때에 플러그인이 더 이상 jQuery에 전혀 의존하지 않을 때까지 리팩토링한다면 어떨까요? 왜냐하면 우리는 여기서 빛의 속도로 움직이는 기술을 다루고 있기 때문입니다. 그리고 우리는 그 맥락에서 영원한 것은 없다는 것을 잘 알고 있습니다. 훌륭하고 전능 한 jQuery를 포함합니다.

"jQuery가없는 웹이있을 수 있습니까?" 예, 사용자 여러분. 지금 당장 무섭게 보일지 모르지만 그 때가 필연적으로 올 것입니다. 유일한 질문은 언제입니다.

미래 보장 : jQuery를 확장하는 플러그인을 작성하는 대신 jQuery를 사용하는 플러그인을 작성하십시오 (물론 확장이 절대적으로 필요하고 의미있는 경우는 제외). 이렇게하면 jQuery가 더 이상 사용되지 않는 경우 웹에서 계속해서로드 할 필요가 없습니다.

다시 한번.

웹 사이트가 불필요하게 jQuery를 확장 한 코드 조각을 사용하기 때문입니다.

"이런 일이 발생하면 웹 사이트가 더 작은 장치에서 완전히로드되는 속도가 빨라질 것입니다. 앞으로 사람들이 어떤 장치를 사용하든간에 말입니다."

예. 니가 맞았 어. 그리고 아름다운 것은우리 (플러그인을 작성하는 사람들)는 jQuery 사용을 중단 할 것입니다. 그리고 그게 전부입니다. 사용자 여러분, 번거롭지 않습니다.

"예, 저 같은 사람들 덕분에 그런 것들이 존재 하니까요. 먼저 우리에 대해 생각해야합니다." 우리는하다. 저를 믿으십시오.

그러면 어떻게해야합니까?

jQuery 플러그인을 작성하는 것이 실제로 매우 사악한 관행이라고 확신한다면 아직 라이브러리 불가지론의 제단에서 작업을 태우지 마십시오. 당신의 jQuery 플러그인은 확실히 굉장합니다! 그리고 저는 제 자신이 많은 jQuery 플러그인의 행복한 사용자이기 때문에 그것을 의미합니다. 하지만 멀지 않은 미래에 웹을 발전시키려는 우리의 노력에서 분명히 매우 역효과를 낳을 것이므로 코드가 수행하는 간단한 작업에 대해 항상 달러 API를 널리 퍼뜨리는 것을 중단해야 할 때입니다.

웹 플랫폼이있는 아름답고 독창적이며 순진한 생명체를 해치지 마십시오.

유니콘이 고통받는 것을 좋아하지 않는 한.

예, 이제 팻 라이브러리에 대한 중독을 치료하고 실제로 jQuery를 사용할 필요없이 기존 jQuery 플러그인의 API를 계속 사용할 수있는 방법을 찾을 준비가되었습니다.

"Dude, 사람들이 항상 당신에 대해 트윗하게 만드는 현명한 아이디어를 생각해내는 것 같은가?" 그런 것 같아요. 그런 것 같아요.

우리의 선택
8 최고의 무료 사진 편집기
더 나아가

8 최고의 무료 사진 편집기

기본 소프트웨어에서 찾을 수있는 기본 기능을 뛰어 넘는 최고의 무료 사진 편집기를 선택했습니다.사진 편집을위한 최고의 노트북전문가 수준의 사진 편집 소프트웨어는 매우 비쌀 수 있습니다. Go-to 사진 편집기 Photo hop은 많은 구독권을 가지고 있으며 대부분의 주요 라이벌은 소프트웨어를 위해 주머니에 넣을 것입니다.그러나 생각보다 더 많은 작업을 수행...
하루 일과가 마음에 들지 않으면 어떻게해야합니까?
더 나아가

하루 일과가 마음에 들지 않으면 어떻게해야합니까?

일이 마음에 들지 않으면 그만두세요. 4 월입니다. 휴일이 끝났습니다. 직장으로 돌아 왔습니다. 당신의 상사는 여전히 바하마에 있습니다. 크리에이티브 디렉터는 여전히 거리가 0이고 자신감이 100 %입니다. 너 뭐하니?글쎄요, 분석을위한 단 한 단계 만 있고 두 가지 옵션을 선택할 수 있습니다 (이미 작업을 좋아하지 않는 한).뭐가 지루해? 관심을 끌고 싶...
인터랙티브 한 3D 타이포그래피 효과 만들기
더 나아가

인터랙티브 한 3D 타이포그래피 효과 만들기

타이포그래피는 메시지를 강화하고 전달되는 내용에 적합한 컨텍스트를 제공하는 올바른 서체를 선택하기 때문에 디자이너의 도구 무기고에서 항상 중요한 역할을 해왔습니다. 지난 8 년 동안 웹 디자이너는 키네틱 타이포그래피와 같은 사용자 정의 서체를 디자인에 가져올 수 있었고 인쇄 디자이너가 즐기는 것과 유사한 타이포그래피 제어 기능을 가지고있었습니다.수상 경력이...