Deno: 노드.js 킬러?소개 및 프레젠테이션 | Ryan Dahl

낡은 것을 버리고 새것으로 들어가라!Deno가 Node를 대체하나요?그래, 어디 보자.

데노가 뭐예요?


우선 그 발음은 데노다. 공룡 데노와 같다.

덕노야.토지.
이것은 JavaScript 및 TypeScript가 안전하게 실행될 때입니다.공통 JavaScript 및 TypeScript 프로그래밍 환경서버측 JavaScript를 작성하는 새로운 방법
Ryan Dahl이 만들었고 마침 Node의 창립자입니다.js.
그렇다면 당신은 왜 당신의 이전 제품과 직접 경쟁하는 제품을 창조하려고 합니까?라이언 달의 말이오.

"[node] could have been much nicer" — 10 Things I Regret About Node.js


Deno는 Rust 및 TypeScript 빌드를 사용하고 Chrome v8 엔진을 사용합니다.노드의 몇 가지 설계 결함을 해결했다.js.

타자 스크립트


TypeScript가 내장되어 있습니다.따라서 TypeScript 구성 파일이 필요하지 않습니다.그러나 이것은 당신이 반드시 TypeScript를 사용해야 한다는 것을 의미하지는 않는다.TypeScript는 JavaScript의 초집합이므로 원하는 경우 간단하게 JavaScript를 사용할 수 있습니다.

안전


Node와 Deno 사이의 큰 차이점은 보안입니다.기본적으로 Deno는 안전합니다.모든 것이 잠겼다.코드를 실행하는 데 필요한 내용에만 접근할 수 있도록 특정한 로고를 전달해야 합니다.이것은 의외의 안전 결함을 방지할 수 있다.

모듈


또 다른 차이점은 Deno는 ECMAScript 모듈을 사용합니다.따라서 require이 아닌 import을 사용하게 됩니다.이것은 Deno에서 NPM 모듈을 사용하는 데 영향을 주는 요소입니다.NPM 모듈은 사용할 수 있지만 Deno에서 require 또는 기타 지원되지 않는 기능을 사용하는 경우에는 변환해야 합니다.
Deno 항목에는 node_modules 폴더가 없습니다.모듈은 캐시되고 필요한 모든 항목에 사용됩니다.이것은 Deno가 항상 온라인으로 연결되어야 한다는 것을 의미하지는 않습니다.패키지를 참조할 때 NPM 모듈의 작업 방식과 매우 유사하게 다운로드되고 캐시됩니다.그것들은 단지 모든 항목에 직접 저장되지 않았을 뿐이다.가져올 모듈을 포함하는 로컬 디렉터리를 가리킬 수도 있습니다.그것은 인터넷에서 올 필요가 없다.

최고 수준의 비동기식


Deno의 가장 좋은 특징은 최고급 약속에 사용되는 로컬 async의 귀속을 가지고 있다는 것이다.이것은 최고위층에서 약속하기 전에 async을 성명할 필요가 없다는 것을 의미한다.너는 await만 있으면 돼!함수에서 작업하려면 표준 async/await 구문을 사용해야 합니다.

내장 가져오기


이 밖에 Fetch은 내장되어 있다.모듈이 필요 없습니다.

창 객체


Deno는 window의 대상이 있습니다. 대단합니다!이것은 브라우저와 서버 측 코드 간의 상호작용성을 허용한다.개발자한테 너무 좋아요!

설치


Deno 설치에는 여러 가지 방법이 있습니다.여기에는 두 가지 예가 있다.
Shell 사용:
curl -fsSL https://deno.land/x/install/install.sh | sh
PowerShell 사용:
iwr https://deno.land/x/install/install.ps1 -useb | iex

실행 코드


코드를 실행하려면 deno run을 사용하십시오.다음은 Deno의 시작 스크립트입니다.
deno run https://deno.land/std/examples/welcome.ts

우리 좀 더 복잡한 예를 봅시다.여기에서 우리는 Deno에서 HTTP 서버를 가져오고 localhost 포트 8000에 기본 사이트를 위탁 관리합니다.
import { serve } from "https://deno.land/[email protected]/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}
이 예에서 최고급 async이 실행 중인 것을 볼 수 있습니다.이것은 단지'Hello World'가 있는 웹 페이지를 만들었을 뿐이다.

마지막 생각


내가 본 문제 중 하나는 모듈 지원이 부족하다는 것이다.하지만 데노는 아직 정식으로 발표되지 않았다.그래서 나는 우리가 이 성장이 매우 빠른 것을 볼 것이라고 믿는다.현재 데노는 외부에서 의존하는 표준 모듈이 있는지, 그리고 데노 핵심 팀의 심사를 통과했다.다음은 그들 사이트의 한마디입니다.

The intention is to have a standard set of high-quality code that all Deno projects can use fearlessly.


또한 타사 모듈에도 연결됩니다.Pika.dev을 사용하여 다른 모듈을 찾을 수 있습니다.
따라서 우리는 여전히 Deno.land의 시작 단계에 있다.노드와 데노가 어떻게 될지 말하기 어렵다.데노는 희망적으로 보이지만, 정식으로 발표될 때의 채택률을 봐야 한다.이렇게 많은 개발자들이 Node를 사용하고 습관화하고 있는데, 나는 그들이 얼마나 빠른 속도로 Deno로 옮기기를 원하는지 확실하지 않다.있는 경우.
현재 Deno는 2020년 9월 5일까지 RC2에 있습니다.공식 발표는 곧 올 것이다.
YouTube 채널에서 전체 비디오 및 데노의 라이브 데모를 확인하십시오.

읽어주셔서 감사합니다!


안녕하세요 |

좋은 웹페이지 즐겨찾기