석면 Longjohns을 착용 ...
어제 Packt 간행물, 내 제목 자바 스크립트와 반응성 프로그래밍 . 실제로 Node.js 중심의 제목이 아닙니다. 초기 장은 이론을 다루고, 코드가 많은 장은 실습을 다룹니다. 내가 정말 독자들에게 웹 서버를 제공하는 데 실패하는 것이 적절하다고 생각하지 않았기 때문에, Node.js를 보였다 지금까지 확실한 선택. 케이스가 열리기도 전에 닫혔습니다.
Node.js에 대한 나의 경험을 매우 장미 빛으로 볼 수있었습니다. 대신 나는 내가 만난 좋은 점과 나쁜 점에 대해 정직했다.
여기에 관련된 몇 가지 인용문을 포함시켜 드리겠습니다.
경고 : Node.js와 해당 생태계는 매우 뜨겁 습니다.
제가 선생님의 수학 조교 였을 때, 분명한 제안 중 하나는 학생에게 무언가 쉬운 것을 말하지 않는 것이 었습니다. 그 이유는 돌이켜 보면 다소 명백한 것입니다. 사람들에게 쉬운 일을 말하면 해결책을 찾지 못하는 사람은 문제를 해결하는 방법을 얻지 못하고 문제를 해결하기 때문에 어리석은 느낌을 줄 수도 있습니다. 그들은 이해하기 너무 바보입니다 쉬운 것입니다!
Python / Django에서 온 사람들을 귀찮게하지 않는 문제가 있습니다.이를 변경하면 즉시 소스를 다시로드합니다. Node.js의 기본 동작은 한 번만 변경해도 시간이 끝날 때까지 또는 서버를 수동으로 중지했다가 다시 시작할 때까지 이전 버전이 계속 활성화되는 것입니다. 이 부적절한 행동은 단순히 Pythonistas를 귀찮게하지 않습니다. 또한 다양한 해결 방법을 제공하는 기본 Node.js 사용자를 자극합니다. StackOverflow 질문 인“Node.js에서 파일 자동 다시로드”에는 200 개 이상의 투표와 19 개의 답변이 있습니다. 편집은 사용자를 홈페이지가있는 보모 스크립트 노드 관리자로 안내합니다. http://tinyurl.com/reactjs-node-supervisor). 이 문제는 새로운 사용자가 문제를 해결했다고 생각하기 때문에 어리석게 느낄 수있는 좋은 기회를 제공하지만 이전의 버그가있는 동작은 완전히 바뀌지 않았습니다. 서버를 반송하는 것을 잊어 버리기 쉽습니다. 나는 여러 번 그렇게했다. 그리고 제가주고 싶은 메시지는“아니요. Node.js의 이러한 행동이 당신의 등을 물었 기 때문에 당신은 바보가 아닙니다. Node.js의 디자이너가 여기서 적절한 동작을 제공 할 이유가 없다는 것입니다. 노드 수퍼바이저 나 다른 솔루션의 도움을받을 수도 있지만 어리석은 느낌을 버리지 마십시오. 당신은 문제를 가진 사람이 아닙니다. 문제는 Node.js의 기본 동작에 있습니다.”
이 섹션은 약간의 토론 후에“쉽습니다”라는 인상을주고 싶지 않기 때문에 남겨졌습니다. 일을하면서 반복해서 손을 difficulties 다가 어려움을 극복하고 Node.js와 생태계가 제대로 작동하도록하는 것이 간단한 문제이고 너무 간단하지 않다고 생각하도록 설정하고 싶지 않습니다. , 당신은 무엇을하고 있는지 모른다. Node.js를 사용하는 데 어려움을 겪지 않는다면 훌륭합니다. 당신이 그렇게한다면, 나는 당신이“나는 바보입니다. 나에게 문제가있을 것입니다.”라는 느낌을 버리지 않기를 바랍니다. Node.js를 다루는 놀라운 놀라움을 경험한다면 어리석지 않습니다. 네가 아니야! Node.js와 생태계입니다!
마지막 장에서 크레센도가 올라간 후 실제로 원하지 않는 부록과 결론은 생태계에서 찾을 수 있었던 것에 대해 이야기하고 모 론적 리터럴 리즘에 대한 해결 방법을 제공했습니다.
완벽하게 맞는 것처럼 보이고 아직 사용할 수있는 또 다른 데이터베이스는 HTML5 키-값 저장소의 서버 측 구현입니다. 이 접근 방식은 가장 우수한 프론트 엔드 개발자가 충분히 이해하는 API의 장점이 있습니다. 그 점에서, 그것은 좋지 않은 프론트 엔드 개발자가 충분히 이해하는 API이기도합니다. 그러나 노드 로컬 스토리지 패키지를 사용하면 사전 구문 액세스가 제공되지 않지만 (localStorage [key]가 아닌 localStorage.setItem (key, value) 또는 localStorage.getItem (key)를 사용하려는 경우) 전체 localStorage 시맨틱이 구현됩니다. 기본 5MB 할당량을 포함하여- 왜? 서버 측 JavaScript 개발자를 자신으로부터 보호해야합니까?
클라이언트 측 데이터베이스 기능의 경우 웹 사이트 당 5MB 할당량은 개발자가 작업 할 수있는 관대하고 유용한 호흡 공간입니다. 할당량을 훨씬 더 낮게 설정해도 쿠키 관리와 함께 절뚝 거림보다 개선 할 수없는 성능을 개발자에게 제공 할 수 있습니다. 5MB 제한은 Big Data 클라이언트 측 처리에 그다지 빠르게 적용되지는 않지만 풍부한 개발자가 많은 작업을 수행 할 수있는 매우 관대 한 여유가 있습니다. 그러나 반면에 5MB는 최근에 구입 한 대부분의 디스크 중 특히 큰 부분은 아닙니다. 즉, 귀하와 웹 사이트가 디스크 공간의 합리적인 사용에 대해 동의하지 않거나 일부 사이트가 단순히 호기심을 느끼면 실제로 비용이 들지 않습니다. 하드 드라이브가 이미 가득 차 있지 않으면 하드 드라이브가 휩쓸 릴 위험이 없습니다.
그러나 서버용 코드를 작성하는 경우 데이터베이스를 허용 가능한 5MB 이상의 크기로 만드는 것으로부터 추가적인 보호가 필요하지 않다는 점이 부드럽게 지적 될 수 있습니다. 대부분의 개발자는 보모 역할을하고 5MB 이상의 서버 측 데이터를 저장하지 못하게하는 도구가 필요하지도 않습니다. 그리고 클라이언트 측에서 골든 밸런싱 행위 인 5MB 할당량은 Node.js 서버에서 약간 어리 석습니다. (그리고이 부록에서 다룬 여러 사용자를위한 데이터베이스의 경우, 각 사용자 계정에 대해 디스크에 별도의 데이터베이스를 만들지 않는 한 사용자 계정 당 5MB가 아니라는 점이 약간 아 slightly습니다. 모든 사용자 계정이 함께 있습니다. 고통 스러울 수 있습니다바이러스 성이라면!) 문서에는 할당량을 사용자 지정할 수 있지만, 일주일 전에 개발자에게 할당량 변경 방법을 묻는 전자 메일에 대한 답변이 없습니다. 내가 찾은 유일한 대답은 Github CoffeeScript 소스에서 생성자에 대한 선택적 두 번째 정수 인수로 나열됩니다. 따라서 충분히 쉬우 며 디스크 또는 파티션 크기와 동일한 할당량을 지정할 수 있습니다. 그러나 의미가없는 기능을 포팅하는 것 외에도, 툴의 저자는 0이 자원이나 리소스 사용에 대한 최대 제한을 지정하는 변수 나 함수에 대해 "무제한"을 의미하는 것으로 해석하는 표준 규칙을 완전히 따르지 못했습니다. 이 기능을 사용하지 않는 가장 좋은 방법은 할당량이 무한대임을 지정하는 것입니다.
if (typeof localStorage === 'undefined' || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage(__dirname + '/localStorage',
Infinity);
}
두 개의 주석을 순서대로 교환 :
사람들은 불필요하게 지속적으로 JavaScript 전체를 사용하여 발을 내딛었습니다. JavaScript가 존경받는 언어로 된 부분은 본질적으로 더글러스 크록 포드 (Doglas Crockford)였습니다. 좋은 부분은 다음과 같습니다. 다른 것이 있다는 것을 잊어 버리십시오.” 아마도 뜨거운 Node.js 생태계는 자체 “Douglas Crockford” 를 성장시킬 것입니다. 로드맵이 있습니다. 거의 모든 비용으로 피해야 할 영역은 다음과 같습니다. 어떤 언어 나 환경에서도 볼 수있는 가장 풍요로운 급여가있는 지역은 다음과 같습니다.”
아마도 다른 누군가가 그 말을 도전으로 받아 들일 수 있고 Crockford의 리드를 따라 Node.js와 생태계에 대한“좋은 부분”및 / 또는“더 나은 부분”을 작성할 수 있습니다. 사본을 사겠다!
그리고 모든 프로젝트에 대한 열의와 쉬어가는 근무 시간이 주어지면,이 글을 쓰는 시점의 미성숙 한 생태계에 대한 언급을 급격히 강화하기 위해 1 년 또는 2 년 또는 3 년 안에 보증 될 수 있습니다. “2015 년 Node.js 생태계에는 여러 개의 지뢰밭이있었습니다. 2020 Node.js 생태계에는 여러 가지 낙원이 있습니다.”