This is default featured slide 1 title

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.

This is default featured slide 2 title

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.

This is default featured slide 3 title

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.

This is default featured slide 4 title

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.

This is default featured slide 5 title

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.

Thứ Bảy, 19 tháng 3, 2016

10 Framework PHP tốt nhất dành cho lập trình viên


Bài viết được dịch từ trang web Hongkiat
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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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 Componentscá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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework Zend
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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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

Học lập trình web trực tuyến bằng framework 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

Framework php


Code Igniter










Thứ Sáu, 18 tháng 3, 2016

Danh bạ 20 trang rao vặt miễn phí tốt nhất


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.
trang rao vặt miễn phí tốt nhất
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.

Bạn tự hỏi công cụ làm giàu nhanh nhất là gì?


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.
Công cụ làm giàu lợi hại nhất
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).
Công cụ làm giàu lợi hại nhất
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é!

Thứ Năm, 17 tháng 3, 2016

Tổng hợp toàn bộ các thuật ngữ hacking cho người mới bắt đầu


★ 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

★ VPN
Virtual Private Network - Mạng ảo riêng biệt

★ 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àng mà không cần khởi động vào chế độ an toàn safemode.  
Ring0 - Rất khó để loại bỏ, thường để gỡ bỏ rootkit ring0 nhất định phải đưa vào chế độ an toàn safemode.

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

Nguồn bài viết: MysTown.com

13 kỹ năng mà mọi lập trình viên cần thành thạo


Thảo luận trong 'Chia sẻ nghề nghiệp' bắt đầu bởi kienvang, Hôm qua, lúc 21:34.
Hãy đánh bóng hồ sơ xin việc của bạn với 13 kỹ năng mà bất kỳ tay coding chuyên nghiệp nào cũng khát khao sở hữu được chia sẻ sau đây.

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".

(Theo pcworldvn)

Thứ Tư, 16 tháng 3, 2016

Đố vui về công nghệ thông tin!



Hãy thử trả lời những câu hỏi dưới đây để xem bạn hiểu biết như thế nào về CNTT nhé :

Đố vui về tên các hãng công nghệ

Hãy trả lời các câu hỏi sau để đo mức độ hiểu biết của bạn về tên của một số công ty công nghệ nổi tiếng.
do-vui-ve-ten-cac-hang-cong-nghe
(Bấm vào câu trả lời để xem đáp án)
1. Hãng Apple được đổi tên từ Apple Computer vào năm:
A. 2005
B. 2006
C. 2007
2. 'Samsung' trong tiếng Hàn Quốc có nghĩa:
3. LG là thương hiệu viết tắt của:
4. Tokyo Tsushin Kogyo là tên ban đầu của hãng điện tử:
5. Google là từ viết sai chính tả của:
6. Nguồn gốc của tên gọi Asus, công ty máy tính Đài Loan, là:
7. Yahoo là tên viết tắt của:
8. Cách viết đúng của dịch vụ thư điện tử Hotmail là:
9. Thefacebook.com được đổi thành Facebook.com sau:

Thứ Ba, 15 tháng 3, 2016

Node.js cho người mới bắt đầu

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.
Node.js có tốc độ nhanh gấp nhiều lần so với PHP
Node.js có tốc độ nhanh gấp nhiều lần so với PHP

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:
$a = null;
$b = null;
$c = null;
$i = null;
$max = 1000000000;
 
$start = microtime(true);
 
for ($i = 0; $i < $max; $i++) {
    $a = 1234 + 5678 + $i;
    $b = 1234 * 5678 + $i;
    $c = 1234 / 2 + $i;
}
 
var_dump(microtime(true) - $start);
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é!