11/08/2018, 20:09

Nhật ký học Nodejs: Ngày 2 - Meteor có gì hay, phải bắt đầu như thế nào?

Lưu ý trước khi đọc: Series này mình dùng để lưu log lại, ghi lại những gì tìm hiểu và học được khi làm ứng dụng nodejs nên nó có bố cục khá lung tung có thể gây khó chịu khi đọc. Nếu nó làm phiền bạn, vui lòng bỏ qua. Nếu thấy chia sẻ được cùng mình, hãy cùng nhau thảo luận ở dưới comment. ...

Lưu ý trước khi đọc:

Series này mình dùng để lưu log lại, ghi lại những gì tìm hiểu và học được khi làm ứng dụng nodejs nên nó có bố cục khá lung tung có thể gây khó chịu khi đọc. Nếu nó làm phiền bạn, vui lòng bỏ qua. Nếu thấy chia sẻ được cùng mình, hãy cùng nhau thảo luận ở dưới comment.

Hi chào mọi người, đầu năm mình làm bài log cho tươi. Đây là bài log thứ 2 trong series log lại quá trình mình học NodeJS.

Vậy là sau khi tìm hiểu cách cài đặt Meteor, tìm được document và tutorial của nó thì mình bắt đầu tìm hiểu xem anh chàng này có gì nổi trội. Thì rất may là trên Kipalog có dịch quyển Discover Meteor nên việc này cũng không mất thời gian lắm, chỉ việc ngồi đọc và tận hưởng, chiêm nghiệm.

http://kipalog.com/posts/Discover-Meteor---Chuong-1
Meteor là một nền tảng được xây dựng trên môi trường Node.js, cho phép tạo ra các ứng dụng web theo thời gian thực. Nó đảm bảo việc đồng bộ thông tin giữa cơ sở dữ liệu của ứng dụng và giao diện người dùng.
Chính vì được xây dựng trên nền Node.js nên Meteor sử dụng JavaScript trên cả máy khách và máy chủ. Hơn thế nữa, Meteor còn cho phép chia sẻ code giữa hai môi trường này.
Có thể nói, Meteor là một nền tảng vừa đơn giản lại mạnh mẽ khi xóa bỏ hầu hết mọi phiền phức và cạm bẫy thông thường hay gặp phải khi phát triển ứng dụng web.

Kể ra nghe giới thiệu thì cũng hấp dẫn đấy. Đầu tiên là đi theo Tutorial. Mình chả phải pro gì nên thôi không tự tin mà đọc api document rồi code, cứ làm theo tutorial cho nhàn, có bug đâu thì còn sửa được :D

https://www.meteor.com/tutorials/blaze/creating-an-app

Ah mà cái link trên đây mình chưa từng đọc qua :)). Thấy leader bảo mình làm luôn project bằng angular-meteor thế nên mình nhảy vào link này

http://www.angular-meteor.com/tutorials/socially/angular1/bootstrapping
Angular-Meteor là một package cho Meteor, giúp phát triển ứng dụng Meteor dựa trên style như khi phát triển ứng dụng bằng AngularJS (vì nó nhúng thư viện angular vào meteor mà :D).

Được cái là trước cũng có biết chút ít angularJS, thấy coding style dễ chịu v~. Gần gũi thân thuộc. Thôi thì như một cái niềm tin tôn giáo vậy, mình đi theo meteor thông qua anh angular này mà chả cần quan tâm ảnh có tốt hay ko.

Các bài hay về AngularJS trên kipalog. Note lại đây, ai đi ngang qua tò mò thì xem

  • Angular2 và những sự thay đổi
  • Viết extension cho Chrome bằng AngularJS
  • Hành trình tìm hiểu Angular
  • Viết function helper cho 1 app AngularJS
  • Tạo ứng dụng chat với 50 dòng code
  • Và còn nhiều bài nữa bạn chỉ cần search từ khóa AngularJS là ra liền nhé.

Ah trước khi theo meteor bằng package angular-meteor thì mình cũng biết là có nhiều cách để tiếp cận với meteor. Đây là 4 cách mà mình biết được:

  • Meteor default with Blaze
  • React + Meteor
  • Angular1.4 + Meteor
  • Angular2 + Meteor

Đương nhiên đây chỉ là bộ khung ứng dụng thôi, Nó cung cấp package để bạn làm việc với Meteor. Nếu bạn có bộ khung nào khác để làm việc với Meteor mà thuận tiện thì chia sẻ mình với nhé.

Project mình làm là 1 game Quiz với tập hợp các Question realtime được chơi trong các events như sinh nhật, lễ cưới... trong đó user tương tác với admin bằng cách trả lời các câu hỏi. Kết quả được cập nhật realtime và admin có thể điều hướng màn hình của user. Nói sơ qua 1 chút về project để biết tại sao mình lại chọn meteor mà cụ thể là angular-meteor. Mình không định bê code mình đang làm lên đây đâu sợ bị chửi code ngu lắm =)). Thôi để log lại những cái đã học được, có khi ta bắt đầu làm một cái app gì đó mới mẻ nhỉ.

Có lẽ từ log sau sẽ bắt đầu code luôn một cái app. Quyết định luôn cho nóng: clone Vchat của Vatgia thử coi :trollface: Chuẩn bị log đầy những dòng stupid code trên này rồi :D. Ready!.

Có một điều mà thật là ngại quá, mình đang lựa chọn bộ khung cùi nhất trong số 4 bộ khung phát triển meteor :((. Link benmark đây :((. http://info.meteor.com/blog/comparing-performance-of-blaze-react-angular-meteor-and-angular-2-with-meteor. Hi vọng những bạn đi sau sẽ rút kinh nghiệm. Mặc dù angular-meteor có nhiều document hơn, lượng người follow và support cũng nhiều nhưng hiệu năng thì khá tệ. Bài test nào cũng bét bảng :scream:. Nhưng thôi đâm lao thì phải theo lao vậy. Lúc nào lành nghề rồi chuyển sau :(

Để chuẩn bị cho log sau (thiết kế app chat dạng Vchat của vatgia.com) thì mình cần có chút định hình business logic.

  • User truy cập vào trang, sau đó gõ chat với tư vấn viên.
  • Admin - tư vấn viên phải nhận được thông báo chat của mỗi user. Biết được ai đang hỏi gì.
  • Admin trả lời bằng cách chat lại. Lúc chat lại thì gửi message về đúng user theo từng chanel.
  • Tạo ra 1 file js để nhúng vào các trang web khác nhau. Khi cần user chỉ cần bật khung chat lên và chat. Đây là phần logic đơn giản nhất. Có lẽ bước đầu làm thế trước cho đơn giản nhỉ.

Môi trường lập trình: Windows 10, WebStorm IDE full key, monitor 32 inch fullHD =)) khoe hàng trá hình :trollface:.
Log trước giới thiệu về việc chuẩn bị viết log Meteor :D

http://kipalog.com/posts/Nhat-ky-hoc-Nodejs--Ngay-1---Lam-quen-voi-framework-Meteor

Log sau là về viết app chat bằng angular-meteor. Động viên mình bằng cách kipalog, ủng hộ và giúp đỡ mình bằng cách comment nhé. Cám ơn các bạn đã đọc bài viết này. Chúc mọi người một năm mới tràn đầy sức sống và thành công trong công việc.alt text

0