Tôi bắt đầu con đường lập trình của mình bằng Java & lập trình web dùng PHP. Sau đó tôi không dùng PHP nữa mà chuyển sang dùng Java Web, tôi chủ yếu sử dụng framework Spring MVC bởi vì công ty tôi chỉ dùng Spring MVC.
Đằng đẵng 3 năm trôi đi, tôi vùi đầu trong J2EE application và tôi cũng tự viết cho mình được một Java Web Framework, thứ mà cho đến bây giờ tôi không còn dùng nữa. Thực sự, tôi chỉ dùng nó cho một dự án tầm trung, sau đó là bỏ đi luôn. Khá là buồn nhưng cũng phải chấp nhận. Lý do tôi bỏ đi là vì khách hàng của tôi khá nhiều, đa số họ là khách hàng vừa và nhỏ, để triển khai các dự án kiểu như vậy quả thực khó với tôi, với khách hàng và khó cả với đồng đội của tôi... Tưởng chừng Java là thứ miễn phí nên chi phí đầu tư thấp nhưng không, thực sự tôi phải bỏ ra khá nhiều chi phí đầu tư cho hosting, cái cần để hỗ trợ cho Java Web. Và nó không rẻ...
Chi phí không phải là cái duy nhất quyết định đến việc tôi từ bỏ Java Web, còn nhiều thứ khác như, ngôn ngữ lập trình, cách lập trình, cách triển khai một dự án, ... tôi sẽ cố gắng nói chi tiết hơn ở một bài viết khác.
Từ nhiều lý do ngớ ngẩn nhất có thể, tôi đi tìm một con đường khác để mang về cho mình nhiều tiền hơn, tốn ít chi phí cho lập trình, triển khai và bảo trì hơn.
Cũng sẽ chẳng có gì nếu không gặp thằng bạn dở hơi của tôi, nó là trùm Javascript và dĩ nhiên nó tôn sùng NodeJS. Và nó giới thiệu cho tôi biết rằng NodeJS rất nhẹ, dễ viết, nó là Javascript, có thể xử lý cả triệu request nhẹ nhàng =]], tốn ít ram, phần cứng thấp, dễ triển khai, dễ bảo trì, v.v...
OK. Quất liền.
Đơn giản hơn tôi nghĩ các bạn ạ. Đơn giản đến độ không thể đơn giản hơn...
Cài Node & npm
0 là cái quái gì nhỉ, lúc đấy tôi cũng chả biết đâu, cứ nghĩ đại nó giống Java JDK, thế là cứ cài đại nó vô. Cònconsole.log["Hello World"];
1, giời ơi, mệt quá cơ. Lắm thứ phải học dữ trời. Nhưng không, nó đơn giản lắm. Tôi đang cần tìm thư việnconsole.log["Hello World"];
2 thì tôi chỉ cần gõ 1 dòng lệnh đơn giản:console.log["Hello World"];
3, done!! Không cần phải googleconsole.log["Hello World"];
4 rồi download package đó từ trên maven repository rồi lại đẩy vào trong thư mụcconsole.log["Hello World"];
5 của project.console.log["Hello World"];
Đại khái, nó giống
6 hayconsole.log["Hello World"];
7 nếu ai đã xài qua.console.log["Hello World"];
Tạo project mới hmm... Nghe có vẻ khó khăn, chắc phải kiếm cái
8 nào ngon ngon, rồiconsole.log["Hello World"];
9, ... Haha.console.log["Hello World"];
Đơn giản hơn thế, Thích cái gì thì tạo cái đấy thôi. =]]
0 Vâng, khởi tạo một dự án mới bằng command line, nghe có vẻ ngầu ha... Đơn giản quá. Và cái project của tôi nhìn như thế này đây.var express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
-- - package.json
Có 1 file duy nhất. Are you kidding me? Lúc đầu tôi tưởng nó sẽ hầm hố lắm, ai dè có mỗi file
1 con con. -> Thất vọng ê chề.var express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
{ "name": "demo-nodejs", "version": "1.0.0", "description": "Demo NodeJS", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Luc Duong", "license": "MIT" }
Ví dụ kinh điển trên
2 Tôi đã tạo filevar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
2 và viếtvar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
4 example xem nó chạy như thế nào. :vvar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
╭─luc@Duongs-MacBook-Pro ~/Projects/demo-nodejs ╰─$ vi index.js ╭─luc@Duongs-MacBook-Pro ~/Projects/demo-nodejs ╰─$ node index.js Hello World
Cái file nó nhìn thế này đây
console.log["Hello World"];
Chỉ có một dòng duy nhất.
Haha. Great!!Dạo chơi với
5 framework. Đúng là chỉ có vài dòng thôi... Haha. Trước tiên tôi càivar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
6 framework.var express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
7 Sau đó sửa lại filevar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
2var express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
var express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
Và kết quả thì thật bất ngờ.
Vận dụng những gì mình đã biết Vâng, vận dụng những gì tôi đã biết ở
9 và kiến thức căn bản của lập trình web, tôi đã tiếp cậnvar express = require['express'] var app = express[] app.get['/', function [req, res] { res.send['Hello World!'] }] app.listen[3000, function [] { console.log['Example app listening on port 3000!'] }]
0 nhanh hơn rất nhiều. Xem nào...app.get['/', function [req, res] { res.send['Hello World!'] }]