Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.
PHP
được xem là ngôn ngữ kịch bản phía máy chủ phổ biến nhất trên thế giới,
nó đã phát triển rất nhiều kể từ khi các đoạn code inline đầu tiên xuất
hiện trong các tập tin HTML tĩnh.
Ngày nay khi các lập trình viên cần xây dựng các website và các ứng dụng web phức tạp, họ có thể sẽ mất quá nhiều thời gian và rắc rối nếu cứ xây dựng ứng dụng từ đầu,
vì thế cần đến một cách tự nhiên hơn để xây dựng sản phẩm. PHP
framework ra đời và cung cấp cho các nhà phát triển với một giải pháp
thỏa đáng cho điều đó.
Trong bài này chúng tôi sẽ lựa chọn cẩn thận 10 framework PHP phổ
biến mà có thể tạo điều kiện tốt nhất và hỗ trợ quá trình phát triển web
của bạn.
Tại sao lại sử dụng một framework PHP
Nhưng trước tiên, chúng ta hãy xem qua những lý do hàng đầu tại sao
nhiều nhà phát triển phần mềm muốn sử dụng các framework PHP và làm thế
nào những framework này có thể nâng cao hiệu suất quá trình phát triển
web của bạn. Dưới đây là những gì các framework PHP hỗ trợ:
Nâng cao tốc độ phát triển sản phẩm
Cung cấp code được tổ chức tốt, có thể sử dụng lại và dễ dàng bảo trì
Cho phép bạn phát triển theo thời gian khi các ứng dụng web chạy trên các framework này có khả năng mở rộng
Giải phóng bạn khỏi những lo ngại về bảo mật ở mức thấp của một trang web
Tuân theo mô hình MVC (Model-View-Controller) đảm bảo sự tách biệt phần trình diễn và phần logic nghiệp vụ
Thúc đẩy phương thức phát triển web hiện đại như các công cụ lập trình hướng đối tượng
1. Laravel
Mặc dù Laravel là
một framework PHP tương đối mới (nó được phát hành vào năm 2011), theo
khảo sát trực tuyến gần đây của Sitepoint thì nó là framework phổ biến
nhất mà các nhà phát triển hay sử dụng. Laravel có một hệ sinh thái rất lớn với một nền tảng giúp triển khai ứng dụng của bạn một cách nhanh chóng, và trang web chính thức của nó cung cấp nhiều hướng dẫn bằng video gọi là Laracasts.
Laravel có nhiều tính năng giúp cho việc phát triển ứng dụng nhanh
chóng nhất có thể. Laravel sở hữu một light-weight templating engine có
tên là "Blade", cú pháp sáng sủa hỗ trợ cho các tác vụ
thường xuyên cần phải làm trong ứng dụng của bạn, chẳng hạn như
authentication, sessions, queueing, caching và RESTful routing. Laravel
cũng bao gồm một môi trường phát triển cục bộ gọi là Homestead - đây thực chất là một Vagrant box được đóng gói.
2. Symfony
Các thành phần của framework Symfony 2 được sử dụng bởi nhiều dự án ấn tượng như hệ quản trị nội dung Drupal, hoặc phần mềm diễn đàn phpBB, kể cả Laravel - framework được liệt kê ở trên - cũng dựa vào nó. Symfony có một cộng đồng phát triển rộng lớn và nhiều fan hâm mộ cuồng nhiệt. Symfony Components là các thư viện PHP có thể sử dụng lại giúp bạn hoàn thành nhiều tác vụ khác nhau,
chẳng hạn như việc tạo form, cấu hình đối tượng, routing,
authentication, templating, và nhiều thứ khác. Bạn có thể cài đặt bất kỳ
Components nào bằng trình quản lý dependency PHP Composer. Trang web của Symfony có một phần showcase rất đẹp mắt, nơi bạn có thể xem qua một số dự án đã hoàn thành với sự giúp đỡ của framework tiện dụng này.
3. CodeIgniter
CodeIgniter
là một framework PHP rất nhẹ và có tuổi đời gần 10 năm (được phát hành
lần đầu tiên vào năm 2006). CodeIgniter có một quá trình cài đặt rất đơn
giản và chỉ đòi hỏi một cấu hình tối thiểu, do đó nó có thể giúp bạn
loại bỏ được rất nhiều rắc rối. Đây cũng là một sự lựa chọn lý tưởng nếu
bạn muốn tránh xung đột phiên bản PHP, vì nó hoạt động tốt trên hầu như tất cả các nền tảng shared và dedicated hosting (hiện nay nó chỉ yêu cầu phiên bản PHP 5.2.4).
CodeIgniter không hoàn toàn dựa trên mô hình phát triển MVC. Việc sử
dụng các lớp Controller là bắt buộc, nhưng Models và Views là tùy chọn,
và bạn có thể sử dụng các tiêu chuẩn đặt tên và viết code theo cách của
riêng mình, đó là bằng chứng cho thấy CodeIgniter cung cấp tự do tuyệt
vời cho các nhà phát triển. Nếu bạn tải mã nguồn về, bạn sẽ thấy nó chỉ
có dung lượng khoảng 2MB, vì đây là một lean framework, nhưng nó cho
phép bạn bổ sung thêm các plugin của hãng thứ ba nếu bạn cần các chức
năng phức tạp hơn.
4. Yii 2
Nếu bạn chọn framework Yii thì trang web của bạn sẽ có tốc độ thực thi rất nhanh, nhanh hơn so với các framework PHP khác, bởi vì nó sử dụng kỹ thuật lazy loading
một cách rộng rãi. Yii 2 hoàn toàn hướng đối tượng, và nó dựa trên khái
niệm lập trình DRY (Don’t Repeat Yourself), do đó cung cấp cho bạn một
code base sạch sẽ và hợp lý.
Yii 2 được tích hợp với jQuery đi kèm với một bộ tính năng
AJAX-enabled, nó thực hiện một cơ chế để dễ dàng sử dụng skinning và
theming, do đó đây có thể là một lựa chọn tuyệt vời cho những người đến
từ một nền tảng frontend. Nó cũng có một bộ sinh code (class code
generator) mạnh mẽ được gọi là Gii
tạo điều kiện cho lập trình hướng đối tượng và tạo nguyên mẫu
(prototyping) nhanh chóng, và cung cấp một giao diện dạng web cho phép
bạn tương tác để sinh ra phần code mà bạn cần.
5. Phalcon
Framework Phalcon
được phát hành vào năm 2012, và nó nhanh chóng trở nên phổ biến trong
cộng đồng các nhà phát triển PHP. Phalcon được cho là nhanh như chim
ưng, vì nó được viết bằng C và C++ để đạt được mức độ cao nhất của tối ưu hóa hiệu suất có thể.
Tin tốt là bạn không cần phải học ngôn ngữ C, vì các chức năng được đưa
ra là các class PHP sẵn sàng để sử dụng cho bất kỳ ứng dụng nào.
Phalcon được cung cấp như một phần mở rộng của ngôn ngữ C, kiến trúc
của nó được tối ưu hóa ở mức độ thấp làm giảm đáng kể các chi phí điển
hình của các ứng dụng dựa trên mô hình MVC. Phalcon không chỉ giúp tăng
tốc độ thực thi, mà cũng làm giảm việc sử dụng tài nguyên. Phalcon cũng
được đóng gói với nhiều tính năng thú vị như auto-loader, asset
management, security, translation, caching, và nhiều thứ khác. Đây là
một framework có tài liệu đầy đủ và rất dễ sử dụng, nó chắc chắn có giá trị để bạn dùng thử.
6. CakePHP
CakePHP đã có tuổi
đời một thập kỷ (phiên bản đầu tiên được phát hành vào năm 2005), nhưng
nó vẫn nằm trong số các framework PHP phổ biến nhất, và luôn được cập
nhật theo thời gian. Phiên bản mới nhất, CakePHP 3.0 tăng cường việc
quản lý session, cải tiến tính mô-đun hóa bằng cách tách ra một số thành
phần, và tăng khả năng tạo thêm các thư viện độc lập.
CakePHP có một showcase thực sự đáng chú ý, nó tạo sức mạnh cho các trang web của các thương hiệu lớn như BMW, Hyundai, và Express. Đây là một công cụ tuyệt vời cho việc tạo ra các ứng dụng web cần cấp độ bảo mật cao, vì nó có nhiều tính năng bảo mật tích hợp
như xác nhận đầu vào, phòng chống SQL injection, XSS (cross-site
scripting), CSRF (cross-site request forgery), và nhiều thứ khác.
7. Zend Framework
Zend là một framework PHP mạnh mẽ và ổn định được đóng gói với rất nhiều cấu hình tùy chọn vì thế nó được khuyến cáo không nên sử dụng cho các dự án nhỏ nhưng rất tuyệt vời cho những dự án phức tạp. Zend có các đối tác như IBM, Microsoft, Google và Adobe. Trong phiên bản lớn phát hành sắp tới, Zend Framework 3 sẽ được tối ưu hóa cho PHP 7, nhưng vẫn sẽ hỗ trợ PHP 5.5 trở đi.
Phiên bản hiện tại, Zend Framework 2 cũng có nhiều tính năng thú vị
như các công cụ mã hóa code, một editor có thể kéo & thả dễ dàng sử
dụng với sự hỗ trợ cho các công nghệ front-end (HTML, CSS, JavaScript),
debugging trực tuyến nhanh, các công cụ PHP Unit testing, và một
Database Wizard giúp kết nối cơ sở dữ liệu. Zend Framework được tạo ra
với các phương pháp Agile tạo điều kiện để cung cấp các ứng dụng chất
lượng cao cho khách hàng doanh nghiệp.
8. Slim
Slim là
một framework PHP nhỏ cung cấp cho bạn mọi thứ bạn cần và không thừa thứ
gì cả. Các micro framework thường tối giản trong thiết kế, chúng là tuyệt vời cho các ứng dụng nhỏ hơn,
nơi mà một full-stack framework sẽ trở nên cồng kềnh và không cần
thiết. Tác giả của Slim đã được lấy cảm hứng từ một framework Ruby có
tên là Sinatra.
Slim được sử dụng bởi nhiều lập trình viên PHP để phát triển các RESTful API và services.
Slim đi kèm với các tính năng như URL routing, client-side HTTP
caching, mã hóa session và cookie, nó cũng hỗ trợ message trên các HTTP
request rất tốt. Hướng dẫn sử dụng
của Slim khá dễ hiểu, và nếu bạn quan tâm đến các tính năng mới của
phiên bản chính sắp tới (đã có phiên bản beta), bạn có thể xem video này về Slim 3.
9. FuelPHP
FuelPHP là một full-stack PHP framework linh hoạt không chỉ hỗ trợ mô hình MVC thông thường mà còn phát triển phiên bản của riêng nó, HMVC (Hierarchical Model-View-Controller) ở cấp độ kiến trúc. FuelPHP bổ sung thêm một class tùy chọn gọi là Presenter (trước đây gọi là ViewModel) giữa các layer Controller và View để giữ logic cần thiết khi sinh ra Views.
FuelPHP có tính mô-đun và có khả năng mở rộng, nó rất chú ý đến vấn
đề bảo mật bằng cách cung cấp các tính năng như lọc đầu vào, URI và mã
hóa đầu ra, và FuelPHP đi kèm với một authentication framework của riêng
nó, với nhiều tính năng phức tạp khác và một tài liệu hướng dẫn chi tiết.
10. PHPixie
PHPixie là một
framework khá mới, nó xuất hiện vào năm 2012 với mục tiêu tạo ra một
framework hiệu suất cao cho các trang web dạng read-only. PHPixie cũng áp dụng design pattern HMVC giống như FuelPHP, và được xây dựng bằng cách sử dụng các thành phần độc lập có thể được sử dụng rất tốt mà không cần chính bản thân framework đó. Các thành phần của PHPixie là 100% unit tested, và yêu cầu các dependencies ở mức tối thiểu.
Trang web chính thức của nó có một hướng dẫn tuyên bố rằng bạn có thể học framework này trong vòng chỉ 30 phút, và blog của họ cũng cung cấp chi tiết nhiều trường hợp sử dụng thực tế.
Trong số các tính năng bạn có thể tìm thấy như standard ORM
(object-relational mapping), caching, input validation, authentication
và authorization. PHPixie cũng cho phép bạn sử dụng ngôn ngữ markup HAML, cho phép di chuyển lược đồ, và có một hệ thống định tuyến phức tạp. Tham khảo:
Hiện tại ở TechMaster đang có khóa học "Lập trình PHP 7 qua dự án thực tế".
Không mất quá nhiều thời gian để có thể nắm bắt ngôn ngữ PHP, bạn có
thể nhanh chóng học nó và ứng dụng vào thực tế: xây dựng website, xây
dựng service cho ứng dụng di động
Việc quảng bá sản phẩm hoặc dịch vụ cũng như rao bán sản phẩm trực
tuyến là nhu cầu của rất nhiều người sử dụng internet ở Việt Nam. Vì
thế, có rất nhiều trang rao vặt miễn phí được thành lập nhằm thu hút
những người dùng có nhu cầu, hàng trăm trang rao vặt đang hoạt động và
cho phép đăng tin miễn phí tại thời điểm này. Mình đã tổng hợp lại và
liệt kê đầy đủ 20 trang rao vặt miễn phí tốt nhất hiện nay. Bạn chỉ cần
rao bán sản phẩm trên 20 website rao vặt này là đủ để quảng bá sản phẩm
và dịch vụ đến gần như tất cả người dùng rồi, không cần phải đi spam
khắp mọi nơi. Tất cả trang web mình liệt kê dưới đây đều là những
website rao vặt miễn phí và uy tín, có thứ hạng Axela cao tại Việt Nam,
có thể hoàn toàn yên tâm khi đăng tin tại những trang web này. Tại sao không nên đăng rao vặt ở tất cả mọi diễn đàn và trang rao vặt miễn phí?
Lãng phí thời gian và sức lực. Việc bạn đăng tin lên những trang rao vặt kém chất lượng không đem lại bất kỳ lợi ích nào cả.
Làm suy giảm độ uy tín của thương hiệu, một sản phẩm được spam khắp
mọi nơi thì không bao giờ được đánh giá cao. Vì vậy hãy tập trung vào
những bài đăng chất lượng.
Giảm thứ hạng tìm kiếm. Nếu bạn có website bán sản phẩm và nghĩ rằng
cứ đăng thật nhiều tin để lấy backlink về site của bạn thì bạn đã nhầm.
Hiện nay thuật toán của Google rất thông minh, nó sẽ phát hiện những
bài viết trùng lặp và có dấu hiệu spam trên những website rao vặt có thứ
hạng thấp. Tất nhiên những link nội tại trong bài viết cũng sẽ chịu
chung số phận và không bao giờ lên top được.
Không hề tiếp cận được thêm người dùng. Không ai truy cập các trang
rao vặt kém chất lượng để tìm sản phẩm cả, những người truy cập những
website này có một mục đích duy nhất là đăng tin mà thôi, và dĩ nhiên họ
chả quan tâm đến tin rao vặt của bạn đâu.
Danh sách 20 trang rao vặt miễn phí tốt nhất. 1- Zao dịch / Webtretho
Webtretho là trang tin tức – diễn đàn về trẻ em và phụ nữ lớn nhất
hiện nay tại Việt Nam. Là chuyên trang rao vặt của Webtretho nên Zaodich
là nơi hiệu quả nhất để đăng bán các sản phẩm cho mẹ và bé, các sản
phẩm liên quan đến đồ gia dụng và gia đình. Có rất nhiều phụ nữ là các
nội trợ thường xuyên tìm kiếm sản phẩm cho gia đình mình ở đây. Tuy có
hiệu quả cao và thứ hạng thuộc loai top nhưng webtretho rất thân thiện
và lịch sự với người dùng. Trang Zaodich cho phép thành viên đăng tin
hoàn toàn miễn phí và không giới hạn. Việc cư xử thân thiện của các Mod
và Admin diễn đàn là lý do mình đưa Zaodich lên vị trí đầu tiên này.
2- Chợ tốt
Chợ tốt là trang rao vặt miễn phí mới nổi lên trong khoảng 2 năm gần
đây. Được hậu thuẫn bởi 2 tập đoàn lớn có trụ sở tại Singapore. Còn nhớ
cách đây không lâu, các banner quảng cáo của Chợ tốt xuất hiện dày đặc
trên tất cả các website lớn như tinhte, vnexpress, dantri… và tất nhiên
với sự đầu tư lớn như vậy thì Chotot.vn trở thành website rao vặt thuộc
hàng lớn nhất Việt Nam, các sản phẩm được đăng lên Chợ tốt rất mau được
bán và có lượng người truy cập để tìm kiếm sản phẩm rất đông đảo. Hiện
nay thì chợ tốt vẫn miễn phí tin đăng nhưng lại thu phí up tin với giá
khá đắt. Tuy nhiên thì đây vẫn là một trang rao vặt miễn phí tốt và nên
sử dụng.
3- Nhật tảo
Nhattao.com là chuyên trang rao vặt của Tinhte.vn – Diễn đàn công
nghệ thuộc hàng lớn nhất. Với hơn 1 triệu thành viên tích cực nên các
tin đăng trên Nhattao.com cũng rất nhanh được bán và tỏ ra rất hiệu quả.
Nhưng Nhattao không phải là trang rao vặt tổng hợp mà chỉ chuyên về các
sản phẩm công nghệ và xe cộ. Việc đăng tin rao vặt là miễn phí và mỗi
thành viên được đăng tối đa 3 tin đăng trong 1 ngày. Nếu có các sản
phẩm, dịch vụ liên quan đến công nghệ và xe cộ thì Nhattao.com chính là
nơi hiệu quả nhất để rao bán.
4- 5 Giây
5giay.vn là trang rao vặt nổi tiếng từ cách đây khá lâu. Được đầu tư
quảng bá rộng rãi và lượng người dùng cực lớn nên 5giay.vn có độ phủ
sóng rất cao trên toàn quốc. Là trang rao vặt tổng hợp với hầu hết các
danh mục đều được liệt kê và hoạt động vô cùng sôi nổi. Đây chính là
website rao vặt tốt để bạn quảng bá sản phẩm cũng như dịch vụ của mình
5- Raovat / Vnexpress
Là một trang báo lớn nên việc chuyên mục rao vặt của Vnexpress cũng
có được sự danh tiếng và lượng người dùng chất lượng. Thứ hạng cao cũng
như độ phổ biến của thương hiệu Vnexpress giúp tin đăng dễ dàng lên top
Google và thu hút lượng người xem rất nhanh chóng và hiệu quả. Giống như
Chợ tốt thì raovat.vnexpress.vn.net cũng không cho phép đăng tin full
định dạng HTML mà chỉ cho phép thêm ảnh vào slider. Đây là một điểm hơi
khó chịu với người đăng giới thiệu dịch vụ vì tin đăng sẽ kém hấp dẫn so
với các trang hỗ trợ full HTML.
6- Raovat / Vatgia
Chuyên mục rao vặt của Vatgia.com cũng rất nổi tiếng. Việc đăng tin
rao vặt tại Vatgia sẽ giúp sản phẩm được quảng bá rộng rãi tới người
dùng do Vatgia.com có thứ hạng cao và rất được ưu tiên trên công cụ tìm
kiếm Google. Là một chuyên trang về các sản phẩm và dịch vụ nên việc
đăng tin lên Vatgia.com cũng thu hút rất nhiều người dùng từ chính
website này.
7- Mua rẻ
Là một trang rao vặt miễn phí của tập đoàn VCCorporation. Mua rẻ cũng
được đầu tư kỹ lưỡng về mặt công nghệ cũng như thương hiệu để trở thành
trang rao vặt thuộc hàng top trên toàn quốc. Tất cả các sản phẩm và
dịch vụ đều có thể rao bán ở đây miễn phí và không bị giới hạn. Tất
nhiên bạn cũng có thể mua Vip để thu hút nhiều lượt xem hơn.
8- Webraovat.com
Webraovat.com là một website khá lâu đời ở Việt Nam, tên miền
webraovat.com hiện đang có PageRank 7 (rất cao) trên bảng xếp hạng của
Google. Những backlink từ website này rất chất lượng và hoàn toàn miễn
phí. Tuy không được đầu tư như những trang rao vặt thời thượng khác
nhưng với thứ hạng cao ngất ngưởng của mình thì webraovat.com xứng đáng
là một website rao vặt miễn phí hàng đầu ở Việt Nam.
9- Mua bán rao vặt
Muabanraovat.com là chuyên trang rao vặt về máy tính và linh kiện
điện tử. Tuy là trang rao vặt tổng hợp nhưng đăng tin về máy tính và
linh phụ kiện điện tử tỏ ra đặc biệt hiệu quả ở đây. Có truyền thống lâu
đời và thương hiệu uy tín cùng với việc cho đăng tin miễn phí thì
muabanraovat.com rất tiềm năng trong việc rao bán các sản phẩm liên quan
đến máy tính. Giao diện trang web tuy hơi nặng nề do lạm dụng quảng cáo
nhưng không thể phủ nhận độ hiệu quả khi đăng tin rao vặt tại đây.
10- Batdongsan.com.vn
Nếu bạn đang tìm kiếm trang rao vặt về bất động sản thì
Batdongsan.com.vn là trang web đầu tiên bạn nên nghĩ tới. Đây là trang
rao bất động sản hàng đầu hiện nay với hàng trăm ngàn người dùng hoạt
động sôi nổi và hiệu quả. Với đội ngũ kỹ thuật viên hoạt động nhiệt tình
và cho đăng tin miễn phí thì Batdongsan.com.vn sẽ ngồi vững chắc vị trí
đầu tiên trên bảng xếp hạng các trang rao vặt bất động sản miễn phí
trong nhiều năm nữa.
11- Mua bán
Muaban.net cũng có thâm niên lâu đời giống webraovat.com nhưng được
đầu tư nhiều hơn để cạnh tranh với các trang rao vặt hiện đại. Giao diện
được đổi mới và nổi tiếng lâu đời cùng với việc cho đăng tin miễn phí
thì Muaban.net xứng đáng trở thành một kênh quảng bá sản phẩm nên được
quan tâm của bạn.
12- Trang rao vặt miễn phí
Trangraovatmienphi.com là trang rao vặt mới nổi trong năm 2015 nhưng
lại có độ phủ sóng rất lớn, hiện tại số người dùng đã lên tới hàng trăm
ngàn và phát triển vô cùng mạnh mẽ. Với lượng người dùng hoạt động sôi
nổi cũng như khả năng lập chỉ mục Google nhanh chóng thì
Trangraovatmienphi.com xứng đáng được lưu lại để đầu tư quảng bá sản
phẩm – dịch vụ. Điểm cộng cho trang web này là khả năng hỗ trợ full HTML
giúp bạn có được tin đăng đẹp và ưng ý nhất.
13- Raovat.net
Ra đời rất lâu và có lượng người dùng lớn, cùng với tên miền rất đẹp
thì không khó để Raovat.net trở thành một trong những trang rao vặt hàng
đầu. Tuy nhiên giao diện của Raovat.net hiện đã khá cũ và chưa được
nâng cấp trong nhiều năm trở lại đây nên đã bị một số trang web đàn em
vượt mặt. Tuy nhiên với danh tiếng là một trong những trang web rao vặt
miễn phí và lâu đời nhất thì lượng người dùng vẫn tiếp tục tăng trưởng.
14- AZ24
Từ A đến Z và 24h, cái tên ngắn gọn nhưng cũng rất đầy đủ và bao quát
cho Az24.vn. Có thứ hạng cao và uy tín cùng rất nhiều bài đăng chất
lượng nên Az24.vn thu hút rất đông đảo người dùng, cơ hội để sản phẩm
của bạn tiếp cận tới khách hàng sẽ cao hơn nếu đầu tư đăng tin ở đây và
bạn cũng sẽ kiếm được kha khá backlink chất lượng về website của mình.
15- Raovat123.com
Có thâm niên 10 năm hoạt động và chưa được nâng cấp cho hợp thời
nhưng Raovat123.com vẫn có được chất lượng rao vặt tốt. Đây là một kênh
rao vặt hiệu quả nữa cho việc kinh doanh của bạn. Dù hơi thất thế trước
những đàn em mạnh mẽ hơn nhưng Raovat123.com vẫn là một trang rao vặt
miễn phí và uy tín hơn hàng trăm những trang rao vặt giời ơi khác.
16- Rồng bay
Cách đây khoảng 4 năm thì việc các tin tức từ Rongbay.vn xuất hiện
dày đặc trên các kết quả tìm kiếm google là rất nhiều. Hầu như bạn tìm
sản phẩm gì cũng có thể tìm thấy với link dẫn đến Rongbay.vn. Là một sản
phẩm khác của tập đoàn VCCorp, Rongbay.vn được đầu tư kỹ lưỡng về mặt
thẩm mỹ cũng như chất lượng thương hiệu. Còn chờ gì nữa, hãy nhanh tay
đăng tin tại đây.
17- Én bạc
Enbac.vn lại là một trang rao vặt khác tới từ VCCorp, dường như tập
đoàn này thu về khá nhiều tiền từ các trang rao vặt nên lập ra khá nhiều
trang khác nhau. Dù vậy thì chất lượng của Enbac.vn vẫn được đảm bảo và
là một thương hiệu đã nổi tiếng từ lâu trong cộng đồng rao vặt miễn phí
toàn quốc.
18- Phố mua bán
Là một mạng rao vặt hiệu quả với những tin đăng miễn phí và công nghệ
tiên tiến, Phomuaban.vn là một nơi thích hợp để phát triển thương hiệu
sản phẩm. Giao diện website rất thân thiện và dễ sử dụng, tạo điều kiện
tốt để người dùng ghé thăm các gian hàng của bạn.
19- Raovat.com
Có tên miền đẹp nhất trong tất cả các trang rao vặt thì không ngạc
nhiên khi Raovat.com có được thành công như hôm nay. Lợi thế từ tên miền
cực đẹp cùng quá trình hoạt động lâu năm nhiều kinh nghiệm với nhiều
lĩnh vực rao vặt tổng hợp thì việc rao bán sản phẫm ở đây gần như là bắt
buộc nếu bạn muốn phát triển việc kinh doanh của mình.
20- Tructiep.vn
Tructiep.vn là một website rao vặt rất thành công và có được thương
hiệu uy tín, thật thiếu xót nếu không liệt kê trong danh sách này. Việc
đăng tin rao vặt và mua bán tại đây rất nhanh chóng, là mạng mua bán
tổng hợp tốt để phát triển kinh doanh.
May
mắn hơn, thứ tài sản mà bạn sở hữu tuyệt đến nỗi nó không chỉ cho bạn
mức lãi suất 4% của ngân hàng, hay 20% tiền lời mà bạn có thể nhận được
từ thị trường chứng khoán. Mức lợi nhuận mà nó mang lại cao gấp nhiều
lần. Thậm chí nếu bạn hết lòng phát triển nó, nó có thể mang về cho bạn
1000% lợi nhuận với khoảng thời gian hữu hạn mà bạn bỏ ra.
Thứ tài
sản tôi đang nói đến là thứ mà ai trong chúng ta cũng có từ lúc chào
đời. Đó là thứ duy nhất giúp con người không chỉ kiếm tiền, làm giàu,
mưu cầu hạnh phúc mà còn chinh phục được những đỉnh cao tài chính không
giới hạn. Thứ tài sản giá trị này chính là bộ óc của bạn hay còn gọi là
tài sản trí tuệ.
Nếu bạn biết cách đầu tư thời gian và tiền bạc để
mở rộng kiến thức, nâng cao kỹ năng, nhất là hiểu biết về tài chính,
não bộ sẽ giúp khơi dòng tiền về cho bạn, dồi dào trong suốt cuộc đời.
Đó là thứ tài sản mà bạn cần tin cậy, trân trọng; và tôi viết quyển sách
này không gì ngoài mục đích giúp bạn tăng cường đến mức tối đa tính
năng kỳ diệu của thứ tài sản trí tuệ mà bạn đang nắm giữ ấy.
Tôi
hoàn toàn tin tưởng vào điều này, bởi vì giống như nhiều triệu phú khác,
tôi cũng bắt đầu mà chẳng có gì ngoại trừ lòng khát khao học hỏi những
kiến thức giúp con người làm giàu. Ngày hôm nay, tôi có thể thành thật
nói rằng hàng triệu đô mà tôi và các cộng sự đã tạo ra cho công ty chúng
tôi và cho gia đình mỗi người chính là nhờ vào những ý tưởng trong đầu
chúng tôi. Những ý tưởng đó sẽ không xuất hiện nếu chúng tôi không đầu
tư học tập về tài chính.
Thứ tài sản giá trị làm giàu hiệu quả chính là bộ óc của bạn hay còn gọi là tài sản trí tuệ.
Cách
đây còn chưa lâu lắm, tài sản của một công ty thường được đánh giá dựa
trên những tài sản hữu hình, như máy móc, nhà xưởng, vật dụng và đất
đai. Giá trị của công ty chính là tổng số tiền của những thứ đó cộng
lại. Ngày nay, hơn 90% giá trị của công ty là tài sản vô hình hay tài
sản trí tuệ. Hãy nhìn vào Google, Microsoft, Nike, Berkshire Hathaway
hay Ebay mà xem. Mỗi công ty này trị giá hàng tỉ đô và kiếm được hàng
trăm triệu đô mỗi năm, thế mà tổng số tài sản hữu hình của họ lại chẳng
đáng bao nhiêu. Toàn bộ nhà xưởng, tài khoản ngân hàng, hàng tồn kho và
thiết bị văn phòng cộng lại chỉ chiếm khoảng 5% tổng giá trị công ty.
Nike thậm chí còn không có một nhà máy nào. Giá trị của những công ty
này nằm trong ý tưởng và trí tuệ của những người làm việc ở đó.
Bạn
cũng vậy! Hơn 90% tài sản của bạn không phải là những gì bạn có trong
ví hay gửi ngân hàng, mà nằm trong đầu bạn. Trong thời đại thông tin
hiện nay, một ý tưởng độc đáo có thể kiếm được hàng tỉ đô. Đó là cách mà
một anh thanh niên không bằng đại học, không tiền bạc, làm việc ngay
trong nhà xe của bố mẹ nuôi, có thể trở thành triệu phú ở tuổi 25 (tôi
muốn nói đến Steve Jobs, Giám đốc công ty Apple Computers).
Đó
cũng là con đường đã giúp cho một người Ấn Độ 35 tuổi, lưu lạc đến một
đất nước xa lạ (Singapore), không một đồng lận lưng và không có gì ngoại
trừ lời mời làm việc của một công ty nọ, xây dựng được một công ty toàn
cầu với thu nhập hàng năm lên đến 3,4 tỉ đô, với 800 nhân viên thuộc 31
nước chỉ trong vòng 5 năm (Vikas Goel, Giám đốc công ty eSys
Technologies).
Tất cả các tỉ phú này đều bắt đầu không có gì ngoài vốn liếng trí tuệ của mình.
Những
nghiên cứu mới nhất về não bộ cho chúng ta thấy một sự thật đáng kinh
ngạc: tất cả chúng ta, về căn bản, đều có lượng nơ-ron (tế bào thần
kinh) như nhau, và vì vậy, chúng ta có cùng tiềm năng phi thường của não
bộ. Tuy nhiên, trong thực tế, một người trung bình tận dụng chưa đến 1%
tiềm năng não bộ trong suốt cuộc đời. (Nếu bạn muốn biết thêm chi tiết
về sức mạnh của bộ não con người, bạn có thể đọc quyển sách đầu tay của
tôi, “Tôi Tài Giỏi, Bạn Cũng Thế!”).
Như vậy, chừng nào não của
bạn còn hoạt động thì chừng ấy bạn còn sở hữu thứ tài sản vô giá đã giúp
Bill Gates, Warren Buffett, Richard Branson hay Donald Trump có tên
trong danh sách những người giàu nhất thế giới. Tất cả các tỉ phú này
đều bắt đầu không có gì ngoài vốn liếng trí tuệ của mình.
Vì thế,
bất kể bạn đam mê điều gì và mục tiêu của bạn là kiếm được bao nhiêu
tiền, tôi cũng nguyện làm người bạn đồng hành chia sẻ với bạn những bí
quyết làm thế nào để kích hoạt tài sản giá trị này. Từ kinh nghiệm bản
thân và từ những gì tôi học hỏi được ở những người giàu nhất và mạnh
nhất, tôi sẽ lần lượt chia sẻ với bạn những tuyệt chiêu và chiến lược
làm giàu tiên tiến nhất, hiệu quả nhất trong bối cảnh toàn cầu hóa. Nói
cách khác, bạn sẽ được học cách kiếm tiền, quản lý tiền, rồi làm cho nó
sinh sôi nảy nở không phải bằng cấp số cộng mà bằng cấp số nhân.
Và
tất cả những điều tôi yêu cầu ở bạn chỉ là sự kiên nhẫn và lòng quyết
tâm theo đuổi mục tiêu đến cùng. Ta hãy bắt đầu, bạn nhé!
★ DDoS
Distributed Denial of Service - Tấn công từ chối dịch vụ. Làm nạn nhân
bị "ngập lụt" trong việc kết nối các gói tin. Nguồn tấn công DDoS gọi là
Booter. Xem chi tiết về kĩ thuật này ở đây
★ DrDoS
Distributed Reflected Denial of Service Attack - Hiểu nôm na là khuếch
đại tấn công từ chối dịch vụ, sử dụng một số máy chủ để tấn công với
phương thức giả mạo DNS to spoof - Khiến nạn nhân cảm thấy là bị tấn
công từ vài trăm đến vài ngàn IP khác nhau. Xem chi tiết về kĩ thuật này
ở đây
★ FTP
File Transfer Protocol - Sử dụng để upload và download dữ liệu từ máy tính <-> server
★ FUD
Fully Undetectable - Hiểu nôm na là thuật ngữ ám chỉ việc tấn công HOÀN
TOÀN KHÔNG THỂ bị phát hiện, có thể qua mặt được mọi antivirus, không để
lại vết tích tấn công, tuy nhiên hiện nay thuật ngữ FUD được dùng vô
tội vạ như kiểu tấn công qua được virus vậy
★ Hex
Hex là viết tắt của từ hexadecimal - hệ thập lục bao gồm 16 con số được
sử dụng trong dãy số 0123456789ABCDEF. Trong ngôn ngữ lập trình C (cũng
như Java, Javascript, C ++, và những nơi khác), số thập lục phân được
bắt đầu bởi cụm từ 0x. Theo cách này, người ta có thể nói rằng số 0x80
là tương đương với 128 chữ số thập phân, không phải 80 chữ số thập phân.
★ HTTP
Hyper Text Transfer Protocol - Nền tảng của việc truyền dữ liệu web.
★ IRC
Internet Relay Chat - Một hệ thống chat truyền tin nhắn giữa các người dùng trong thời gian thực
★ JDB
Java drive-by - Đây là một cách sử dụng phổ biến cho phép kẻ tấn công có
thể download và thực thi mã độc trên máy chủ của nạn nhân, tuy nhiên có
xuất hiện thông báo, đây là một lỗ hỏng Java
★ Malware
Malicious Software - Phần mềm độc hại, được thiết kế để ăn cắp thông tin, sai khiến máy tính nạn nhân.
★ Nix
Hệ điều hành Unix
★ POP3
Đây là một giao thức phổ biến để lấy email từ server
★ R.A.T
Remote Administration Tool - Công cụ quản trị từ xa (Teamviewer, Zoombie botnet...v...v)
★ SDB
Tương tự như JDB, tuy nhiên việc tải về và thực thi mã độc được thực thiện 1 cách thầm lặng mà nạn nhân không thể biết được
★ SE
Social Engineering - Các kĩ thuật liên quan đến mặt xã hội, rất rộng
lớn, như bạn có thể lân la tìm hiểu các thông tin của nạn nhân bằng các
cuộc gặp gỡ trao đổi trực tiếp hoặc gián tiếp với nạn nhân
★ Skid
Script Kid/Script Kiddie - Những kẻ chuyên sử dụng các công cụ viết sẵn của hacker để thỏa mãn ham muốn được trở thành hacker
★ SMTP
Một giao thức TCP/IP được sử dụng để gửi và nhận email
★ SQL
Structured Query Language. Đây là một ngôn ngữ lập trình được sử dụng để
giao tiếp cơ sở dữ liệu với DBMS, đôi khi còn là viết tắt của Sql
injection - kĩ thuật khai thác SQL để tấn công cơ sở dữ liệu của website
★SQL Injection
SQL injection là một phương pháp thường được sử dụng để hack cơ sở dữ
liệu SQL thông trang web, và giành quyền kiểm soát quản trị của trang
web đó. Bạn có thể tấn công với các công cụ SQLi.
★ SSH
Secure Shell - Được sử dụng để kết nối tới Virtual Private Servers - Máy chủ ảo riêng biệt
★ TCP
Transmission Control Protocol - Tạo ra các kết nối để trao đổi các gói dữ liệu
★ UDP
User Datagram Protocol - Một kết nối thay thế cho TCP, thường được sử dụng cho DNS, Voice over IP hoặc chia sẻ các tập tin
★ VPS
Virtual Private Server - Máy chủ ảo riêng biệt, là một máy chủ ảo chạy
trên một phần mềm trên một máy chủ vật lý, có đầy đủ các tính năng như
một máy chủ vật lý
★ XSS (CSS)
Cross Site Scripting - Một kĩ thuật tấn công thực thi các mã độc tới website nạn nhân - cũng được xem là 1 dạng injection
★Algorith
Những bước hành động để tấn công
★ANSI Bomb
ANSI.SYS key-remapping - Bao gồm những mã lệnh khó hiểu, sử dụng những mã lệnh này để xác định được các phím bấm
★Back Door
Một thứ gì đó mà hacker để lại trên hệ thống để có thể quay lại bất cứ lúc nào
★Binary
Một hệ thống đánh số trong đó chỉ có hai giá trị có thể cho mỗi chữ số: 0 và 1.
★Black Hat
Một hacker người thực hiện hành động bất hợp pháp (Hay nói cách khác là hacker xấu)
★Blue Hat
Hacker mũ xanh là một hacker chuyên tư vấn an ninh cho các công ty, các
hệ thống. Việc tư vấn chủ yếu là kiểm tra lỗi hệ thống trước khi tung ra
thị trường. Microsoft là công ty dùng Hacker mũ xanh để đại diện cho
một loạt các sự kiện và cuộc họp an ninh.
★White Hat
Là cụm từ nói về hacker mũ trắng. Hacker mũ trắng là một hacker, hoặc
một chuyên gia bảo mật máy tính, chuyên đi thử nghiệm thâm nhập vào các
hệ thống để đảm bảo sự an toàn của một hệ thống đó
★Bot
Một phần của phần mềm độc hại giúp kết nối máy tính nạn nhân với kẻ tấn
công - thường sử dụng HTTP hoặc IRC giao thức để chờ lệnh và thực hiện
theo lện
★Botnet
Botnet là từ chỉ một tập hợp các rô bôt phần mềm hoặc các con bot hoạt
động một cách tự chủ. Từ này còn được dùng để chỉ một mạng các máy tính
sử dụng phần mềm tính toán phân tán.
★Buffer Overflow
Là một kĩ thuật tấn công cổ điển khiến tràn bộ đệm (hoặc bộ nhớ) - Đây
là một trong những lỗi lập trình phổ biến nhất đối với các lập trình
viên còn non trẻ.
★Cracker
Một nhánh của hacker - Những người này chuyên giải mã các cơ chế chống
sao chép, giải mã mật khẩu và giải mã các phần mềm bản quyền
★Deface
Là thuật ngữ ám chỉ việc hacker thay đổi được diện mạo của trangweb
★Dictionary Attack
Là một danh sách các mật khẩu được tạo ra có tính toán, thường sử dụng cho cách thức tấn công Brute Force - Xem chi tiết ở đây
★DOX
Thông tin cá nhân về một người nào đó trên Internet thường chứa tên thật, địa chỉ, số điện thoại, số SSN, số thẻ tín dụng, vv
★E-Whore
Một người thao túng người khác để tin họ là một cô gái xinh đẹp khiến cô
gái ấy show webcam hoặc ảnh tình dục, từ đó kiếm tiền từ những thứ này
★Encryption
Là một dạng mã hóa dữ liệu mà chỉ có thể giải mã bằng phép "toán ngược"
(reverse mathematical). Phương thức này thường được dùng để gửi tin
nhắn, mà người nhận chỉ có thể đọc được nếu có được key từ phía người
gửi
★Exploit
Phương thức khai thác điểm yếu của hệ thống để đột nhập vào hệ thống đó
★Grey Hat
Là cụm từ nói về Hacker mũ xám. Hacker mũ xám là những hacker khi lướt
Internet và vô tình hoặc cố tình tấn công vào một hệ thống nào đó, sau
đó họ thông báo cho người quản trị hệ thống và giúp hệ thống đó khắc
phục lỗi, thường sẽ thu một khoản phí nhỏ
★ Hacker
Hacker là người có khả năng thao tác các hoạt động bên trong của máy
tính, thông tin và công nghệ để làm lợi cho bản thân mình hoặc mục đích
nào đó
★Hacktivist
Một hacktivist là một hacker sử dụng công nghệ để công bố một thông điệp
xã hội, tư tưởng, tôn giáo, chính trị. Nhìn chung, hacktivist là những
hacker có liên quan đến việc deface website hoặc tấn công từ chối dịch
vụ.
★IP Address
Trên Internet, địa chỉ IP của bạn là số duy nhất mà những người khác sử dụng để gửi kết nối cho bạn.
★IP Grabber
Một liên kết nhằm lấy IP của một ai đó khi họ truy cập vào.
★Keylogger
Một chương trình phần mềm ghi lại tất cả tổ hợp phím trên bàn phím của máy tính, được sử dụng như một công cụ giám sát hệ thống
★Leach
Một thuật ngữ văn hóa trong cộng đồng warez đề cập đến những người tải
về rất nhiều thứ nhưng không bao giờ trả lại cho cộng đồng.
★LOIC/HOIC
Những tool được sử dụng bởi nhiều thành viên ẩn danh để tiến hành các
cuộc tấn công DDoS. Và những tool này thì không được cho phép sử dụng.
★Neophyte
Ám chỉ một người mới bước chân vào con đường Hacking, không có kiến thức
cũng như kinh nghiệm về các kĩ thuật Hacking. Còn được gọi là Noob hoặc Newbie
★Smith
Một người mới tham gia vào 1 diễn đàn hoặc 1 "trò chơi" nào đó
★OldFag
Thuật ngữ nói về một người lão làng trong 1 diễn đàn hoặc 1 "trò chơi" nào đó
★Packet
Là dữ liệu được gửi qua mạng Internet được chia thành các gói, gửi riêng
qua mạng, và tập hợp lại trở thành dữ liệu gốc ở đầu kia.
★Phreak
Phone Freaks - Nôm na là các hacker sử dụng để gọi điện thoại miễn phí
★Phreaking
Là một nghệ thuật của việc hack mạng điện thoại
★Proxy
Một thứ gì đó gần giống như server, hoạt động như một máy truy cập thông
thường, từ máy người dùng truy cập vào Proxy và từ Proxy truy cập đến
máy chủ, nhằm mục đích che giấu thông tin
★Rainbow Table
Một "bảng cầu vồng" dùng để băm password ra. Đây là cách kết hợp với Brute Force để tìm mật khẩu
★Remote Administration Tool
Một công cụ được sử dụng để điều khiển từ xa một máy khác. Đây có thể
được sử dụng để theo dõi hành động của người dùng, nhưng thường bị lạm
dụng bởi tội phạm mạng như một phần mềm độc hại nhằm thu thập thông tin
của hệ thống
★Resolver
Một phần mềm để lấy được địa chỉ IP từ các ứng dụng Skype, Facebook Messenger, MSN ..v...v...
★Reverse Engineering
Một kĩ thuật được các hacker sử dụng để khai thác và khám phá một chương trình nào đó
★Root
Quyền hành cao nhất trong một hệ thống
★Rootkit (ring3 ring0)
Ám chỉ việc khai thác hệ thống rất mạnh mẽ nhưng rất khó để phát hiện được, cũng như che đậy mọi dấu vết sau cuộc tấn công Ring3-có thểđược gỡ bỏmột cách dễ dàngmà không cầnkhởi độngvàochế độ an toàn safemode. Ring0-Rấtkhó để loại bỏ, thường để gỡ bỏ rootkitring0nhất định phải đưa vào chế độ an toànsafemode.
★Shell
Lạ một mã lệnh mà bạn gắn lên hệ thống của nạn nhân, từ Shell bạn có thể
dùng hàng tá các loại lệnh để khai thác hệ thống đó, đồng nghĩa hệ
thống đó của là một bot của bạn, bạn cũng có thể sử dụng để tấn công DoS
vào một hệ thống khác
★Social Engineer
Là một kĩ thuật "hack não" của nạn nhân, chứ không phải kĩ thuật máy
tính, ví dụ như gửi một bức thư nhằm thông dò thông tin của nạn nhân
hoặc hàng tá các cách để lấy được mật khẩu, thông tin của nạn nhân. Ví
dụ giả gái nhắn tin và dụ dỗ nạn nhân :))
★Spoof
Kĩ thuật giả mạo một địa chỉ IP nào đó. Ngoài ra còn được dùng khi thay đổi các file .exe sang .jpg
★Trojan
Trojan là một loại phần mềm độc hại giả dạng một tập tin hợp pháp hoặc
chương trình hữu ích với mục đích cuối cùng là truy cập trái phép vào
máy tính.
★Warez
Vi phạm bản quyền phần mềm
★Worm
Phần mềm được thiết kế để phát tán phần mềm độc hại với ít hoặc không có sự tương tác của con người.
★Zero Day Exploit
Nôm na là một kĩ thuật tấn công mà chưa từng được biết đến, khiến các
chuyên gia bảo mật hàng đầu cũng không có thời gian để tìm ra và vá lỗi
Phần mềm đã và đang hiện diện ở khắp nơi, và thực tế cho thấy nhu
cầu đối với các nhà phát triển phần mềm (developer) có tay nghề vẫn ở
mức cao.
Tuy nhiên, sự lan tỏa của phần mềm từ máy chủ đến đám mây, rồi đến
lĩnh vực thiết bị đeo và IoT (Internet of Things) cũng đồng nghĩa
với trách nhiệm của nhà phát triển ngày càng nặng nề hơn, và họ cần
phải không ngừng bổ sung những kỹ năng cần thiết cho chuyên môn.
Các công ty thường tìm người có khả năng làm việc ở mọi khâu phát triển
phần mềm, có khả năng trích xuất thông tin từ các cơ sở dữ liệu khổng
lồ, và có tư duy chiến lược về các thiết bị mới, đồng thời cũng phải
có khả năng xem xét khai thác các hệ thống cũ nhưng với các ngôn ngữ
và nền tảng lập trình mới nhất.
Ảnh minh họa.
Để tìm các kỹ năng của nhà phát triển được
săn đón nhiều nhất trong năm nay, tạp chí Infoworld đã tìm đến các nhà
tuyển dụng, các CTO (giám đốc công nghệ), các CEO (giám đốc điều hành),
và các nhà quản lý khác, những người quyết định các công nghệ cần áp
dụng, các chiến lược cần xem xét, và các kỹ năng mềm cần có.
Nếu bạn đang muốn làm mới hồ sơ xin việc (CV) của mình, hãy xem xét
những kỹ năng hấp dẫn và những nhu cầu công nghệ có tính định hướng dưới
đây.
Thành thạo JavaScript
Hiện nay, các nhà phát triển nắm vững JavaScript không sợ thất nghiệp.
Trước giờ, thành thạo JavaScript luôn là kỹ năng được các nhà tuyển dụng
săn tìm.
JavaScript được mọi người quan tâm vì có hàng tá nền tảng và thư viện liên quan (như Hãy đăng nhập hoặc đăng ký để xem link hoặc React) được cộng đồng JavaScript xây dựng.
Bất kể bạn phát triển ứng dụng cho desktop, web, hoặc di động thì
JavaScript luôn tỏ ra có ích và là kỹ năng rất có giá trên thị trường
hiện nay.
Tuy JavaScript là vua, nhưng bạn cũng đừng bỏ qua các ngôn ngữ lập trình
và giải pháp phổ biến khác như Ruby on Rails và Python kết hợp với
Django, bởi lẽ cả 2 giải pháp công nghệ này đều có vai trò quan trọng
trong việc xây dựng ứng dụng web mở rộng
Làm việc với dữ liệu lớn (Big Data)
Các dự án dữ liệu lớn ngày càng lớn hơn và chưa có dấu hiệu chậm lại trong những năm tới.
"Tuy dữ liệu lớn không phải mới nhưng đó là xu hướng cần phải nắm bắt",
ông Andrey Akselrod - nhà đồng sáng lập và cũng là Giám đốc công
nghệ tại hãng Smartling cho biết, "Các nhà phát triển phải có kiến
thức sâu về BI (Business Intelligence) và các sản phẩm phân tích, các
công cụ máy học (machine learning), và các giải pháp khác để di chuyển,
lưu trữ và tổng hợp lượng lớn dữ liệu. Chỉ khi đó, họ mới có thể giúp tổ
chức của mình lưu trữ, tương tác và phân tích dữ liệu lớn để đưa ra
quyết định kinh doanh tốt hơn".
Ảnh minh họa.
Tốc độ tạo ra dữ liệu chóng mặt và cơ hội cũng vô cùng, theo lời John Piekos hiện là Phó chủ tịch kỹ thuật tại VoltDB.
"Di động và Hãy đăng nhập hoặc đăng ký để xem link
đang trở nên phổ biến khắp thế giới", ông Piekos nói. "Các ứng dụng hiện
nay khai thác một lượng dữ liệu đáng kinh ngạc, phân tích và tương tác
dữ liệu trong thời gian thực. Các kỹ thuật thu thập và xử lý dữ liệu tức
thời, chẳng hạn như giải pháp truyền và lưu trữ dữ liệu trong bộ nhớ,
đang trở thành những kỹ năng cần có. Và kỹ thuật lưu trữ, quản lý và
phân tích lượng dữ liệu khổng lồ - petabyte trở lên - sẽ là kỹ năng phục
vụ đắc lực cho nhà phát triển trong thập kỷ tới".
Đối với các nhà phát triển đang tìm cách bổ sung kỹ năng xử lý dữ liệu,
có thể bắt đầu với các kỹ thuật như Hadoop, Spark, R, và đủ loại nền
tảng máy học.
Gì cũng biết
Nhiều công ty hàng đầu hiện nay săn lùng các nhà phát triển đa năng, làm
việc thoải mái với đủ loại kỹ thuật và nền tảng, “những người hiểu được
ý nghĩa quyết định về mặt kỹ thuật từ các lớp xử lý bên dưới của phần
mềm đến các lớp thể hiện bên trên", Hossein Rahnama, người sáng lập và
giám đốc sản phẩm của công ty mới khởi nghiệp Flybits nói. "Họ là tài
sản lớn của công ty vì giúp cho công việc của các đồng nghiệp dễ dàng
hơn nhiều và giúp cho công ty khởi nghiệp tránh được việc phát triển cục
bộ, cho phép duy trì các đội phát triển ở quy mô nhỏ và hiệu quả”.
Tham gia các dịch vụ như Top Coder và Amazon Mechanical Turk là cách
tuyệt vời để tham gia những dự án thú vị và mở rộng kiến thức chuyên
môn, Bryan Reinero, nhà phát triển tại MongoDB, cho rằng: "mở rộng kiến
thức chuyên môn vừa tốt cho nhà phát triển vừa tốt cho các công ty mà họ
làm việc".
Đầu tư cho devops
Devops là khái niệm mới (kết hợp 2 từ “development” và “operations”),
thường được mô tả là “người chịu trách nhiệm viết ứng dụng và cũng là
người duy trì vận hành ứng dụng”.
Một số chuyên gia công nghệ nghĩ devops sẽ bị bỏ rơi khi việc sử dụng
điện toán đám mây đang dần xâm nhập môi trường doanh nghiệp. Nhưng theo
Reinero thì không phải vậy. "Kỹ năng devops khác hẳn, đòi hỏi khả năng
phân tích các khía cạnh kỹ thuật để hiểu chương trình vận hành thực tế
ra sao và quan tâm đến hiệu suất cũng như sự ổn định trong giai đoạn
phát triển".
Có được những cơ hội việc làm hấp dẫn không phải là lý do duy nhất để
xem xét thêm devops vào CV của bạn; đơn giản, kỹ năng devops làm cho bạn
trở thành một nhà phát triển tốt hơn và là một người làm việc cộng tác
vô giá.
"Các nhà phát triển có tư duy này sẽ phát triển chương trình tốt hơn,
nhanh hơn và tự tin hơn", Reinero nói. "Phương thức Devops cũng cải
thiện sự gắn kết và sự linh hoạt của đội ngũ. Đây là điểm cộng giúp công
ty vượt lên".
Đa dạng hóa
Những kỹ năng mà các công ty hiện nay tìm kiếm đa dạng hơn đáng kể so
với vài năm trước, theo Stagno của WinterWyman Search: "Thị trường vẫn
cần Java và C#, nhưng khi bạn nhìn vào nhu cầu tuyển dụng các công ty ra
đời sau đợt suy thoái kinh tế lần cuối, bạn sẽ thấy Ruby on Rails,
Python / Django, Node.js, và các ngôn ngữ lập trình chức năng như
Scala”.
"Bạn không cần phải chạy đua theo công nghệ, nhưng cần đảm bảo mình không bị lạc hậu, thị trường thay đổi không ngừng".
Sử dụng mã nguồn
Đặc biệt với các nhà phát triển tự do, có thể đưa chương trình lên
GitHub chứng tỏ sản phẩm của bạn được dùng nhiều và được mọi người xem
xét, đánh giá.
"Hãy đưa sản phẩm lên các thư viện có tiếng và mở mã nguồn để chứng
minh giá trị với người sử dụng lao động tiềm năng", Kiran Bondalapati,
đồng sáng lập và Giám đốc công nghệ của ZeroStack nói. Bondalapati bổ
sung thêm rằng việc đóng góp cho các dự án nguồn mở cũng có thể giúp tạo
lập uy tín hợp tác.
Candace Murphy, giám đốc tuyển dụng tại công ty dịch vụ nhân sự Addison
Group, nói rằng kỹ năng .Net và Java vẫn đang có nhu cầu rất lớn, nhưng
"các xu hướng lớn hơn trong phát triển mã nguồn mở đang mạnh lên.
"Chúng tôi đang nhìn thấy sự gia tăng nhu cầu chuyên gia có kinh nghiệm
về Ruby, Python, Node.js và Javascript nguồn mở AngularJS. Xu hướng này
được thúc đẩy bởi các công ty đang chuyển ra khỏi các nền tảng truyền
thống đòi hỏi phí bản quyền", ông Candace nhận định.
Linh hoạt và trau dồi kỹ năng làm việc nhóm
Phát triển phần mềm linh hoạt (Agile) nên có trong bộ kỹ năng cần trang
bị trong năm 2016 của các lập trình viên, theo Greg Sterndale, đồng sáng
lập của PromptWorks, công ty tư vấn về ứng dụng Web và di động. Giữ cho
mọi việc đơn giản: "tập sử dụng với các phương pháp có khả năng phân
các dự án lớn thành những dự án nhỏ, phân mức độ ưu tiên, thích nghi với
thay đổi và tạo ra giá trị tốt nhất".
Việc phản hồi rất quan trọng trong môi trường phát triển linh hoạt,
Abushadi của Dev Bootcamp nhấn mạnh sự cần thiết thấu hiểu cộng sự cũng
như dự án: "Khả năng cung cấp thông tin phản hồi trung thực, tốt bụng,
và có thể biến thành hành động khi làm việc theo nhóm chỉ thực sự khả
thi khi bạn có sự đồng cảm, và kỹ năng trao - nhận thông tin phản hồi
thường chính là sự khác biệt giữa các dự án thành công và không thành
công".
Bảo mật
Theo Murphy của Addison, các công ty bị các lỗ hổng bảo mật trong năm
rồi đã biết mình cần gì và những kỹ năng nào có ích nhất cho họ trong
năm 2016.
"Họ đang dùng cách tiếp cận chủ động hơn để tăng cường an ninh, không
chỉ trong bộ phận CNTT", Murphy nói. "Kết quả là chúng ta sẽ chứng kiến
sự thay đổi các kỹ thuật được yêu cầu nhiều nhất trong năm nay”.
Các chuyên gia ghi nhận sự gia tăng nhu cầu đối với an ninh mạng, bảo mật ứng dụng cũng như bảo mật đám mây.
"Với sự gia tăng trong việc áp dụng điện toán đám mây, các tổ chức ngày
càng lo ngại về bảo mật và tương hợp", Aashish Kalra, chủ tịch của
Cambridge Technology Enterprise nói. "Điều này đã dẫn đến một sự bùng nổ
về nhu cầu cho các chuyên gia về bảo mật, kiểm soát và quản trị dữ
liệu".
Tuy các nhà phát triển có truyền thống chuyển vấn đề này cho chuyên gia
bảo mật, nhưng nhu cầu cần nhà phát triển đảm bảo an toàn chương trình
của họ không ngừng tăng lên. Hãy xem nó như một kỹ năng vô giá cần bổ
sung.
Di động
Các nhà phát triển di động rất được săn đón, đặc biệt là những người có
thể phân phối các sản phẩm của mình rộng rãi, theo Akselrod của
Smartling. Akselrod cho rằng "không thể trở thành nhà phát triển di động
thành công chỉ với các kỹ năng công nghệ, mà phải có thêm hiểu biết về
kinh doanh. Viết chương trình chỉ là giai đoạn đầu của dự án. Biết làm
thế nào để quảng bá ứng dụng di động, thu hút và giữ chân khách hàng,
mới dẫn đến thành công".
"Khi điện thoại di động mới xuất hiện, vấn đề đầu tiên đặt ra là ứng
dụng: Làm thế nào để xây dựng những trải nghiệm đặc biệt chạy tốt trên
các loại thiết bị và hệ điều hành", theo Jeff Haynie, CEO và đồng sáng
lập của công ty công nghệ di động Appcelerator. "Khi ngành di động
trưởng thành, yêu cầu các kỹ năng và công cụ tốt hơn, tất cả mọi người
hiện nay phải đối mặt với thách thức lớn tiếp theo: Làm thế nào để có
được dữ liệu - ở đúng định dạng, đúng kích cỡ, với khả năng linh hoạt và
đáp ứng tức thời - đưa vào các ứng dụng? Điều đó khó hơn nhiều".
Các vấn đề kết nối và việc các thiết bị đang rời bỏ màn hình thúc đẩy hơn nữa nhu cầu nghiên cứu dữ liệu của phát triển di động.
"Các mô hình kết nối của ứng dụng web không hiệu quả", Haynie cho biết
thêm. "Vì vậy, vấn đề này, cùng với việc ngày càng có nhiều thiết bị
thậm chí không có màn hình và phụ thuộc hoàn toàn vào dữ liệu và các
dịch vụ, có nghĩa là truy cập và thao tác dữ liệu thực sự là thách thức
phát triển mới".
Di động là một trong những khía cạnh hấp dẫn nhất của IoT, theo Reinero
của MongoDB. Nhưng ông cảnh báo nó cũng đặt ra những thách thức.
"Các ứng dụng di động có thể trở nên bùng nổ và đặt gánh nặng lên cơ sở
hạ tầng", Reinero nói, "Điều này có nghĩa mọi thành phần back-end của
dịch vụ di động, bao gồm cả các máy chủ ứng dụng và máy chủ cơ sở dữ
liệu, phải có khả năng mở rộng một cách nhanh chóng. Nhà phát triển cần
phải làm quen với cả với mô hình nhân rộng các thành phần riêng lẻ ...
cũng như làm thế nào để quản lý các giải pháp
cơ-sở-hạ-tầng-như-một-dịch-vụ như Amazon Web Services, Microsoft Azure,
và Google Cloud Compute".
Ngay cả khi di động không phải là điểm mạnh của bạn, làm quen với công nghệ mới có thể thúc đẩy sự nghiệp của bạn.
"Đối với di động, các nhà phát triển có kinh nghiệm UX/UI (giao diện
người dùng) đang có nhu cầu cao", Jason Hayman, giám đốc nghiên cứu thị
trường của TEKsystems nói. "Khả năng hiểu và làm việc cộng tác hiệu quả
với UX/UI ưu có thể làm cho các nhà phát triển trở thành ứng cử viên
sáng giá hơn".
Lên mây
Nhu cầu ổn định về các nhà phát triển quen thuộc với Amazon Web Services
và Microsoft Azure không có gì ngạc nhiên. "Trong các nhà cung cấp điện
toán đám mây, Amazon vẫn là tay chơi lớn nhất cho đến nay, vì vậy cần
nắm bắt các dịch vụ cao cấp của họ như API Gateway, Lambda và Container
Service", theo Nic Benders, kiến trúc sư trưởng tại New Relic.
Khi nói đến phát triển cơ hội nghề nghiệp trên đám mây, không chỉ có các
công cụ,. Một phần của xu hướng đang diễn ra, các công ty đang tìm kiếm
các nhà phát triển có kỹ năng kinh doanh, bao gồm cả quản lý dự án và
khả năng đàm phán với các nhà cung cấp, theo Hayman của TEKsystems.
"Ngoài ra còn có nhu cầu về các kỹ năng có khả năng 'thúc đẩy doanh
nghiệp tiến lên', nhưng ít có nhu cầu về công việc chiến thuật, vì các
nhà cung cấp điện toán đám mây hiện nay đang ngày càng chịu trách nhiệm
về điều đó".
"Thành công trên đám mây có nghĩa là cơ sở hạ tầng triển khai an toàn,
được giám sát và được quản lý đúng cách", Reinero của MongoDB nói. "IaaS
và các nền tảng điện toán đám mây cung cấp cơ hội tuyệt vời, nhưng quản
lý không phù hợp cơ sở hạ tầng điện toán đám mây phân tán có thể làm
tiêu tan bất kỳ lợi thế nào nếu các thất bại làm cạn kiệt thời gian và
ngân sách của đội ngũ, và dẫn đến tổn thất kinh doanh".
Hãy đăng nhập hoặc đăng ký để xem link: Thực hiện kết nối
Khái niệm IoT (Internet of Things) đã có từ lâu, còn hiện giờ thì vừa
là nhu cầu tuyển dụng, vừa là kỹ năng mà các nhà phát triển tài năng
muốn khám phá. Và nó không chỉ dành cho các nhà phát triển hệ thống
nhúng.
Ảnh minh họa.
“Ngay cả nhà phát triển JavaScript cũng cần
kỹ năng này", theo Hossein Rahnama của Flybits. "Sự xuất hiện của các
giao thức như Wi-Fi Halo và các công cụ phát triển cho các thiết bị đeo
và IoT mở ra nhiều cơ hội cho các nhà phát triển để thoát khỏi các màn
hình và xây dựng mọi thứ cho môi trường xung quanh. Chúng ta cũng sẽ
thấy rất nhiều thiết kế phần cứng/phần mềm đồng thời nhờ sự ra đời của
những công cụ này".
Reinero của MongoDB nhìn thấy những cơ hội mới, ở đó các thiết bị y tế
và điện toán đám mây hội tụ: "Nó gồm thiết bị đeo được sử dụng cho điều
trị và chăm sóc ngoại trú, và các thiết bị nhỏ hơn được sử dụng trong
chẩn đoán". "Các thiết bị này sẽ cho phép chúng ta biết nhiều hơn về cơ
thể mình. Việc thu thập và phân tích dữ liệu sẽ là một phần quan trọng
trong cách sử dụng các thiết bị này. Tính sẵn có của cơ sở dữ liệu phi
quan hệ có khả năng mở rộng được sử dụng kết hợp với các hệ thống phân
tích sẽ cho phép các chuyên gia phân tích dữ liệu y tế ở quy mô không
thể có trước đây".
Thuyết trình
Thế còn kỹ năng mềm? Các chuyên gia thường nêu lên ý rằng khả năng làm
việc với các phòng ban là nhu cầu hàng đầu cho nhân viên mới.
"Kỹ năng quản lý khách hàng là quan trọng, đặc biệt là khả năng xử lý
một cách khéo léo nhưng thuyết phục khi có những lựa chọn thay thế có
giá trị hơn", Sterndale của PromptWorks nói. "Cũng có thể giáo dục khách
hàng về tính chất của phần mềm, hướng dẫn họ những cách thức mà sẽ phục
vụ họ tốt nhất về lâu dài".
"Kỹ năng truyền đạt trong môi trường doanh nghiệp trở nên quan trọng hơn
hết", theo Murphy của Addison Group. "Với việc bảo mật dữ liệu và sự
riêng tư trở nên hết sức quan trọng, chuyên gia CNT không được làm lộ
thông tin trong các cuộc họp, phải trình bày công việc của mình một cách
ngắn gọn nhưng dễ hiểu".
Ứng xử
Nếu bạn là nhà phát triển đa năng, thì cầu nhiều hơn cung. Nhưng nếu bạn
đang muốn thay đổi nghề nghiệp, thái độ đúng đắn có thể làm nên sự khác
biệt.
"Không ít lần, tôi nhận được phản hồi từ các nhà tuyển dụng về nhà phát
triển không nhất thiết là người tài năng nhất trong nhóm, nhưng là một
trong những người được đánh giá cao nhất vì thái độ", Stagno của
WinterWyman Search nói, "Họ là một thành viên tốt trong nhóm, sẵn lòng
tham gia tìm giải pháp chứ không phải gây ra thêm vấn đề, ra tay giúp đỡ
các thành viên trong nhóm, góp ý tưởng và góp sức để cải thiện sản
phẩm".
Bài viết được dịch từ trang web Tutsplus
Lập trình hướng sự kiện thường gây bối rối cho những người mới bắt
đầu, điều đó có thể khiến cho người ta gặp khó khăn khi bắt đầu học
Node.js. Nhưng đừng để cho điều đó làm bạn nản lòng; trong bài viết này,
tôi sẽ dạy bạn một số kiến thức cơ bản của Node.js và giải thích tại
sao nó đã trở nên nổi tiếng.
Giới thiệu
Để bắt đầu sử dụng Node.js, đầu tiên bạn phải hiểu sự khác nhau giữa
Node.js và các môi trường kịch bản máy chủ truyền thống (như: PHP,
Python, Ruby, v.v...). Lập trình bất đồng bộ (Asynchronous Programming)
Node.js sử dụng một kiến trúc module để đơn giản hóa việc tạo ra các ứng dụng phức tạp.
Rất có thể bạn đã quen thuộc với lập trình bất đồng bộ; sau tất cả nó
là chữ "A" trong Ajax. Mỗi function trong Node.js là bất đồng bộ. Vì
vậy, mọi thứ bình thường kẹt trong thread thì giờ đây được thực thi dưới
background. Đây là điều quan trọng nhất bạn nên nhớ về Node.js. Ví dụ,
nếu bạn đang đọc một file trên một hệ thống file, bạn phải xác định một
hàm callback sẽ được thực thi khi hoạt động đọc file đó hoàn thành. Bạn đang tự tay làm mọi thứ!
Node.js chỉ là một môi trường - nghĩa là bạn phải tự tay làm mọi thứ.
Không có một server HTTP mặc định, hoặc bất kỳ server nào cho vấn đề
đó. Điều này có thể gây bối rối cho những người mới học, nhưng bù lại
chúng ta sẽ xây dựng được ứng dụng web có tốc độ thực thi cao. Một
script quản lý tất cả truyền thông với các client. Điều này giúp giảm
đáng kể số lượng tài nguyên sử dụng bởi ứng dụng đó. Ví dụ, đây là đoạn
code cho một ứng dụng đơn giản bằng Node.js:
var i, a, b, c, max;
max = 1000000000;
var d = Date.now();
for (i = 0; i < max; i++) {
a = 1234 + 5678 + i;
b = 1234 * 5678 + i;
c = 1234 / 2 + i;
}
console.log(Date.now() - d);
Và đây là đoạn code tương đương được viết bằng PHP:
Bây giờ hãy quan sát các số liệu benchmark. Bảng danh sách sau đây
chứa thời gian response, đơn vị tính là millisecond, cho hai ứng dụng
đơn giản ở trên:
Số lần lặp
Node.js
PHP
100
2.00
0.14
10'000
3.00
10.53
1'000'000
15.00
1119.24
10'000'000
143.00
10621.46
1'000'000'000
11118.00
1036272.19
Tôi đã chạy hai ứng dụng ở trên từ command line vì vậy sẽ không có
server nào làm trì hoãn sự thực thi của các ứng dụng. Tôi chạy mỗi phép
thử 10 lần và lấy kết quả trung bình. PHP nhanh hơn đáng kể với số lượng
vòng lặp nhỏ hơn, nhưng lợi thế đó nhanh chóng biến mất khi số lượng
vòng lặp tăng lên. Và khi tất cả các phép thử hoàn thành, kết quả là PHP thì 93% chậm hơn Node.js!
Node.js có tốc độ rất nhanh, nhưng bạn sẽ cần học một số thứ mới để có thể sử dụng nó đúng đắn.
Các Module
Node.js sử dụng một kiến trúc module để đơn giản hóa việc tạo ra các
ứng dụng phức tạp. Các module hơi giống các thư viện trong ngôn ngữ C,
hoặc các unit trong Pascal. Mỗi module chứa một tập các chức năng liên
quan đến "chủ đề" của module đó. Ví dụ, module http chứa các
function xác định liên quan đến HTTP. Node.js cung cấp một số module lõi
để giúp bạn truy cập các file trên hệ thống file, tạo ra các server
HTTP và TCP/UDP, và thực thi những chức năng hữu ích khác.
Việc gọi sử dụng một module rất dễ; bạn đơn giản chỉ cần gọi function require(), giống như thế này:
var http = require('http');
Node.js chỉ là một môi trường; bạn phải tự tay làm mọi thứ.
Function require() đó sẽ trả về tham chiếu đến module xác định. Trong
trường hợp của đoạn code trên là một tham chiếu đến module http được lưu trữ trong biến http.
Trong đoạn code ở trên, chúng ta truyền vào tên của một module tới
function require(). Điều này khiến cho Node sẽ tiến hành tìm kiếm folder
có tên là node_modules nằm trong thư mục ứng dụng của bạn, và tìm kiếm module http nằm trong folder đó. Nếu Node không tìm thấy folder node_modules (hoặc module http
trong đó), thì nó sẽ tìm kiếm thông qua module cache toàn cục. Bạn cũng
có thể xác định một file thực sự bằng cách truyền một đường dẫn tương
đối hoặc tuyệt đối, kiểu như thế này:
var myModule = require('./myModule.js');
Các module được đóng gói thành những phần code riêng biệt. Code trong
một module hầu hết ở trạng thái private - nghĩa là các function và biến
được định nghĩa trong chúng chỉ có thể được truy cập từ bên trong
module đó mà thôi. Tuy nhiên bạn có thể phơi bày (expose) ra các
function và/hoặc biến được sử dụng bên ngoài của module đó. Để làm được
điều này, bạn sử dụng đối tượng exports và đưa ra các phương thức và
thuộc tính của nó với đoạn code mà bạn muốn cung cấp ra ngoài. Bạn hãy
xem module sau đây làm một ví dụ:
var PI = Math.PI;
exports.area = function (r) {
return PI * r * r;
};
exports.circumference = function (r) {
return 2 * PI * r;
};
Đoạn code trên tạo ra một biến PI mà chỉ có thể được truy cập bởi
code trong module đó; nó không thể bị truy cập từ phía bên ngoài. Tiếp
theo, hai function được tạo ra trên đối tượng exports. Những function
này có thể truy cập từ bên ngoài của module đó bởi vì chúng được định
nghĩa trên đối tượng exports. Kết quả là, PI hoàn toàn được bảo về khỏi
sự can thiệp từ bên ngoài. Vì vậy, bạn có thể hoàn toàn yên tâm rằng các
function area() và circumference() sẽ luôn luôn thực thi đúng đắn (miễn
là một giá trị được cung cấp qua tham số r).
Phạm vi toàn cục (Global Scope)
Node là một môi trường JavaScript chạy trên engine Google's V8 JavaScript.
Vì vậy, chúng ta nên tuân theo những chuẩn tốt nhất khi sử dụng phát
triển trên client-side. Ví dụ, chúng ta nên tránh việc đặt bất cứ thứ gì
vào trong một phạm vi toàn cục (global scope). Tuy nhiên, điều đó không
phải khi nào cũng có thể làm được. Phạm vi toàn cục trong Node là
GLOBAL (đối lập với window trong trình duyệt), và bạn có thể rất dễ tạo
ra một biến toàn cục của function bởi việc quên mất từ khóa var, giống
như thế này:
globalVariable = 1;
globalFunction = function () { ... };
Xin nhắc lại một lần nữa, phạm vi toàn cục (global) là nên tránh bất
cứ khi nào có thể. Vì vậy hãy cẩn thận và nhớ sử dụng từ khóa var mỗi
khi khai báo một biến nhé!
Cài đặt
Đương nhiên chúng ta cần cài đặt Node trước khi có thể viết và chạy
một ứng dụng. Việc cài đặt rất đơn giản, nếu bạn sử dụng Windows hoặc OS
X; chỉ việc lên trang web nodejs.org
để tải bộ cài về cho những hệ điều hành này. Đối với Linux, sử dụng bất
kỳ package manager nào. Hãy mở terminal của bạn lên và gõ:
sudo apt-get update
sudo apt-get install node
hoặc:
sudo aptitude update
sudo aptitude install node
Node.js nằm trong sid repositories; bạn có thể cần phải add chúng tới sources list của bạn:
sudo echo deb http://ftp.us.debian.org/debian/ sid main > /etc/apt/sources.list.d/sid.list
Nhưng nên biết rằng việc cài đặt sid packages trên những system cũ
hơn có thể làm hỏng system của bạn. Hãy cẩn thận, và nhớ gỡ bỏ
/etc/apt/sources.list.d/sid.list sau khi bạn kết thúc công việc cài đặt
Node.
Cài đặt những module mới
Node.js có một trình quản lý gói (package manager), được gọi là Node
Package Manager (NPM). Nó tự động được cài cùng Node.js, và bạn sử dụng
NPM để cài đặt những module mới. Để cài đặt một module, mở terminal/
command line của bạn lên, điều hướng tới folder mong muốn và chạy lệnh
sau đây:
npm install module_name
Không quan trọng việc bạn đang chạy hệ điều hành nào; dòng lệnh phía trên sẽ cài đặt module bạn xác định tại ví trí module_name.
Ứng dụng Hello World
Tất nhiên, script Node.js đầu tiên của chúng ta sẽ in ra dòng chữ 'Hello World!' tới console. Tạo ra một file, đặt tên nó là hello.js, và gõ vào dòng code sau:
console.log('Hello World!');
Bây giờ hãy chạy script đó. Mở terminal/command line lên, điều hướng tới folder chứa file hello.js, và chạy dòng lệnh sau:
node hello.js
Bạn sẽ nhìn thấy dòng chữ 'Hello World!' hiển thị trên console.
HTTP Server
Tiếp tục chuyển sang một ứng dụng nâng cao hơn; nó không phức tạp như
bạn nghĩ. Hãy bắt đầu với đoạn code sau. Bạn đọc thêm phần comment và
phần giải thích phía dưới đoạn code:
// Include http module.
var http = require("http");
// Create the server. Function passed as parameter is called on every request made.
// request variable holds all request parameters
// response variable allows you to do anything with response sent to the client.
http.createServer(function (request, response) {
// Attach listener on end event.
// This event is called when client sent all data and is waiting for response.
request.on("end", function () {
// Write headers to the response.
// 200 is HTTP status code (this one means success)
// Second parameter holds header fields in object
// We are sending plain text, so Content-Type should be text/plain
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Send data and end response.
response.end('Hello HTTP!');
});
// Listen on the 8080 port.
}).listen(8080);
Đoạn code trên rất đơn giản. Bạn có thể gửi nhiều dữ liệu hơn tới
client bằng cách sử dụng phương thức response.write(), nhưng bạn phải
gọi nó trước khi gọi response.end(). Lưu đoạn code trên vào file http.js và gõ dòng lệnh sau vào trong console của bạn:
node http.js
Mở trình duyệt của bạn lên và gõ vào địa chỉ http://localhost:8080. Bạn sẽ nhìn thấy dòng chữ "Hello HTTP!" trên trang đó.
Xử lý các tham số trên URL (Handling URL Parameters)
Như tôi đã đề cập ở trên, chúng ta phải tự tay làm mọi thứ trong
Node, bao gồm việc phân tích các tham số request. Tuy nhiên việc này khá
đơn giản. Bạn hãy xem đoạn code dưới đây:
// Include http module,
var http = require("http"),
// And url module, which is very helpful in parsing request parameters.
url = require("url");
// Create the server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Parse the request for arguments and store them in _get variable.
// This function parses the url from request and returns object representation.
var _get = url.parse(request.url, true).query;
// Write headers to the response.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Send data and end response.
response.end('Here is your data: ' + _get['data']);
});
// Listen on the 8080 port.
}).listen(8080);
Đoạn code trên sử dụng phương thức parse() của module url,
một module lõi trong Node.js, để chuyển URL của request thành một đối
tượng. Đối tượng trả về có một thuộc tính là query, nó truy xuất các
tham số của URL đó. Bạn lưu file này với tên là get.js và chạy nó bằng dòng lệnh sau:
node get.js
Sau đó điều hướng tới đường dẫn
http://localhost:8080/?data=put_some_text_here trên trình duyệt của bạn.
Tất nhiên là việc thay đổi giá trị của tham số data sẽ không làm đoạn
script bị lỗi.
Đọc và ghi file
Để quản lý các file trong Node, chúng ta sử dụng module fs
(một module lõi). Chúng ta đọc và ghi file sử dụng các phương thức
fs.readFile() và fs.writeFile() tương ứng. Tôi sẽ giải thích về các đối
số sau phần code ở dưới đây:
// Include http module,
var http = require("http"),
// And mysql module you've just installed.
fs = require("fs");
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on("end", function () {
// Read the file.
fs.readFile("test.txt", 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
});
// Listen on the 8080 port.
}).listen(8080);
Node.js có một trình quản lý gói được gọi là Node Package Manager (NPM). Nó được cài đặt tự động cùng với Node.js
Lưu đoạn code trên lại trong file tên là files.js. Trước khi bạn chạy đoạn script này, hãy tạo ra một file có tên là test.txt trong cùng thư mục chứa file files.js.
Đoạn code trên minh họa cách sử dụng các phương thức fs.readFile() và
fs.writeFile(). Mỗi lần server nhận một request, đoạn script đó đọc một
con số từ file, tăng giá trị số lên một đơn vị, và ghi con số mới xuống
file. Phương thức fs.readFile() chấp nhận 3 đối số: tên của file cần
đọc, kiểu mã hóa mong muốn, và một callback function.
Việc ghi tới một file, ít nhất là trong trường hợp này, còn đơn giản
hơn nhiều. Chúng ta không cần đợi bất kỳ kết quả nào, mặc dù bạn nên
thêm phần kiểm tra lỗi trong ứng dụng thực tế. Phương thức
fs.writeFile() chấp nhận tên file và data như là các đối số. Nó cũng
chấp nhận các đối số thứ 3 và 4 (cả hai đều là tùy chọn) để xác định
kiểu mã hóa và hàm callback, tương ứng.
Bây giờ hãy chạy đoạn script trên bằng dòng lệnh sau:
node files.js
Mở nó trong trình duyệt tại địa chỉ (http://localhost:8080) và nhấn
refresh một vài lần. Lúc này bạn có thể nghĩ rằng có một lỗi trong đoạn
code đó bởi vì nó dường như tăng một lần 2 đơn vị. Đây không phải là một
lỗi. Mỗi lần mà bạn request URL này, thì có tới 2 request được gửi tới
server. Request đầu tiên thì được tạo tự động bởi trình duyệt, nó
request favicon.ico, và dĩ nhiên, cái request thứ hai là cho URL (http://localhost:8080).
Mặc dù về mặt kỹ thuật đây không phải là một lỗi, nhưng đó là kết quả
mà chúng ta không mong muốn. Chúng ta có thể sửa nó dễ dàng bằng cách
kiểm tra request URL. Đây là đoạn code được sửa lại:
// Include http module,
var http = require("http"),
// And mysql module you've just installed.
fs = require("fs");
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Check if user requests /
if (request.url == '/') {
// Read the file.
fs.readFile('test.txt', 'utf-8', function (error, data) {
// Write headers.
response.writeHead(200, {
'Content-Type': 'text/plain'
});
// Increment the number obtained from file.
data = parseInt(data) + 1;
// Write incremented number to file.
fs.writeFile('test.txt', data);
// End response with some nice message.
response.end('This page was refreshed ' + data + ' times!');
});
} else {
// Indicate that requested file was not found.
response.writeHead(404);
// And end request without sending any data.
response.end();
}
});
// Listen on the 8080 port.
}).listen(8080);
Bạn hãy chạy thử lại đoạn code trên; nó sẽ hoạt động như mong muốn.
Truy cập cơ sở dữ liệu MySQL
Hầu hết các công nghệ server-side truyền thống có một phương tiện
built-in để kết nối và truy vấn cơ sở dữ liệu. Với Node.js, bạn phải cài
đặt một thư viện để thực hiện công việc đó. Đối với bài tutorial này,
tôi đã chọn sử dụng một thư viện ổn định và khá dễ sử dụng là node_mysql. Tên đầy đủ của module này là mysql@2.0.0-alpha2
(mọi thứ phía sau chữ @ là con số phiên bản). Mở console của bạn lên,
điều hướng tới thư mục nơi mà bạn đã lưu trữ những script của mình, và
chạy dòng lệnh sau:
npm install mysql@2.0.0-alpha2
Lệnh trên sẽ tải về và cài đặt module mysql, và nó cũng tạo ra folder tên là node_modules
trong thư mục hiện tại. Bây giờ hãy xem làm cách nào mà chúng ta có thể
sử dụng nó trong code của mình; xem đoạn code ví dụ sau:
// Include http module,
var http = require('http'),
// And mysql module you've just installed.
mysql = require("mysql");
// Create the connection.
// Data is default to new mysql installation and should be changed according to your configuration.
var connection = mysql.createConnection({
user: "root",
password: "",
database: "db_name"
});
// Create the http server.
http.createServer(function (request, response) {
// Attach listener on end event.
request.on('end', function () {
// Query the database.
connection.query('SELECT * FROM your_table;', function (error, rows, fields) {
response.writeHead(200, {
'Content-Type': 'x-application/json'
});
// Send data as JSON string.
// Rows variable holds the result of the query.
response.end(JSON.stringify(rows));
});
});
// Listen on the 8080 port.
}).listen(8080);
Việc truy vấn cơ sở dữ liệu bằng thư viện này rất dễ; chỉ đơn giản
nhập vào chuỗi truy vấn và một hàm callback. Trong một ứng dụng thực tế,
bạn nên kiểm tra xem liệu có lỗi xảy ra hay không (tham số error sẽ
không là undefined nếu có lỗi xuất hiện) và gửi mã response phụ thuộc
vào thành công hay thất bại của truy vấn đó. Ngoài ra cũng chú ý rằng
chúng ta thiết lập Content-Type thành x-application/json, đây là kiểu
MIME hợp lệ cho JSON. Tham số rows chứa kết quả của truy vấn đó, và
chúng ta đơn giản convert dữ liệu trong rows thành một cấu trúc JSON
bằng cách sử dụng phương thức JSON.stringify().
Lưu file này thành tên mysql.js, và chạy nó (nếu bạn đã cài đặt MySQL) bằng dòng lệnh sau:
node mysql.js
Điều hướng tới địa chỉ http://localhost:8080 trên trình duyệt của
bạn, và bạn sẽ thấy một cửa sổ hiện lện nhắc bạn tải về file có định
dạng JSON.
Kết luận
Mỗi function trong Node.js là bất đồng bộ (asynchronous).
Node.js yêu cầu thêm nhiều công việc phụ trợ, nhưng kết quả đạt được
là một ứng dụng tốc độ nhanh và mạnh mẽ thì cũng đáng đồng tiền bát gạo.
Nếu bạn không muốn làm mọi thứ ở những mức thấp nhất, thì bạn luôn có
thể chọn lấy một vài framework, như là >Express, để khiến công việc phát triển ứng dụng trở nên đơn giản hơn.
Node.js là một công nghệ đầy hứa hẹn và là một lựa chọn hoàn hảo cho
các ứng dụng có mức tải cao (high load). Nó đã được chứng minh bởi các
tổ chức lớn như Microsoft, eBay, và Yahoo. Nếu bạn chưa chắc chắn về
việc hosting ứng dụng hoặc website của mình, bạn luôn có thể sử dụng một
VPS giá rẻ hoặc rất nhiều dịch vụ cloud-based như Microsoft Azure và
Amazon EC2. Cả hai dịch vụ này đều cung cấp những môi trường có khả năng
mở rộng với một mức giá chấp nhận được.
Đừng quên để lại bình luận nếu bạn có bất kỳ câu hỏi nào nhé!