Ajax là gì?

AJAX, viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ), là bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web. AJAX không phải một công nghệ đơn lẻ mà là sự kết hợp một nhóm công nghệ với nhau. Trong đó, HTML và CSS đóng vai hiển thị dữ liệu, mô hình DOM trình bày thông tin động, đối tượng XMLHttpRequest trao đổi dữ liệu không đồng bộ với máy chủ web, còn XML là định dạng chủ yếu cho dữ liệu truyền. Đây đều là công nghệ sẵn có nhưng Javacript đã lắp ráp chúng lại để thực hiện những “sứ mệnh” đáng khâm phục.

Từ Ajax được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vào tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 năm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:

  • HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
  • Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
  • Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web.
  • XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay cả EBML.

AJAX hoạt động như thế nào?

Ứng dụng web truyền thống (trái) và ứng dụng AJAX.

Ứng dụng web truyền thống (trái) và ứng dụng AJAX.

Theo mô hình hoạt động bình thường, client sẽ gửi một HTTP Request lên Server, sau đó Server thực hiện một số khâu xử lý như lấy lại dữ liệu, tính toán, kiểm tra sự hợp lệ của thông tin, sửa đổi bộ nhớ, sau đó gửi lại một trang HTML hoàn chỉnh tới máy khách. Về mặt kỹ thuật, phương pháp này nghe có vẻ hợp lý nhưng cũng khá bất tiện và mất thời gian, bởi khi server đang thực hiện vai trò của nó thì người dùng sẽ làm gì? Có vấn đề gì ở đây? Mỗi lần như vậy Client sẽ gửi toàn bộ nội dung website lên Server, và Server cũng trả về tương ứng. Bạn hình dung, khi xem một bài báo, hay website chia sẻ hình ảnh, bạn chỉ quan tâm nội dung bài báo, hình ảnh đó mà thôi, không cần tải hết cả trang làm gì đó. Đó là hạn chế, bạn sẽ phải tốn thời gian chờ đợi thứ không mong muốn. Không ai muốn chờ đợi cả.

Để khắc phục hạn chế trên, các chuyên gia phát triển giới thiệu hình thức trung gian – cơ chế xử lý AJAX – giữa máy khách và máy chủ. Điều này giống như việc tăng thêm một lớp giữa cho ứng dụng để giảm quá trình “đi lại” của thông tin và giảm thời gian phản ứng. Thay vì tải lại (refresh) toàn bộ một trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác, thời gian chờ có thể thay bằng thông điệp ‘loading…’, ‘đang tải dữ liệu…’… Vì thế, khi duyệt một trang hỗ trợ AJAX, người sử dụng không bao giờ nhìn thấy một cửa sổ trắng (blank) và biểu tượng đồng hồ cát – dấu hiệu cho thấy máy chủ đang thực hiện nhiệm vụ. Ví dụ, trong một website ảnh, với ứng dụng truyền thống, toàn bộ trang chứa các ảnh sẽ phải mở lại từ đầu nếu có một thay đổi nào đó trên trang. Còn khi áp dụng AJAX, DHTML chỉ thay thế đoạn tiêu đề và phần vừa chỉnh sửa, do vậy tạo nên các giao dịch trơn tru, nhanh chóng.

Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và dị bộ trong ứng dụng AJAX. (

Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và bất đồng bộ trong ứng dụng AJAX.

Các ứng dụng AJAX

Hiện nay thì khá nhiều website đã và đang ứng dụng ajax. Đơn giản thì chúng ta hay đăng ký thành viên trên các diễn đàn, website. Ngay sau khi chúng ta nhập xong username hay email, hệ thống đã phản hồi cho chúng ta biết tài khoản đó tồn tại hay chưa, mà không cần nhấn nút Submit như truyền thống. Đó là một trong vô số các ứng dụng của AJAX.

Ưu điểm và hạn chế

Cũng như bất kỳ công nghệ khác, AJAX có thể bị sử dụng quá nhiều trong một website, vì họ chỉ thấy những ưu điểm mà AJAX mang lại chớ không quan tâm đến những khuyết điểm của AJAX, để tranh tình trang trên, có thể liệt kê một số đặc điểm của AJAX như sau:

– Ưu điểm

  •  Nó giúp việc thiết kế web đa dạng hơn và tăng tính tương tác của website với người dùng.
  •  Nó sử dụng các công nghệ đã có sẵn nên dễ học và sử dụng
  •  Nhờ tính phổ biến của nó, đã khuyến khích việc phát triển các khuôn mẫu mà sẽ giúp lập trình viên tránh khỏi các vết xe đổ trước.
  •  Được hỗ trợ trong các trình duyệt phổ biến hiện nay.

– Hạn chế

  •  Bạn không thể bookmark nó vào favourite trên trinh duyệt hay gởi link đến cho bạn bè, vì tất cả quá trình nó thực hiện ngầm và không hiển thị trên address.
  •  Không thể hiện thị nội dung trên các trang tìm kiếm vì các trang tìm kiếm hiện nay vẫn chưa hỗ trợ tìm vì rất khó tìm và gần như không thể tìm đc.
  •  Không thể sử dụng nút back vì back cũng là chính nó.
  •  Với một số trình duyệt, do nhu cầu bảo mật, sẽ tắt chức năng thực hiện javascript nên ajax không thể chạy, hay trong một vài host, không hỗ trợ vào sâu cấu hình server nên hay bị lỗi “Access denied”

Nhưng với những điểm hạn chế nói trên thì AJAX vẫn đang được các lập trình viên sử dụng rộng rãi và đang nghiên cứu để cải thiện nó, ví dụ như vừa update thông tin trên web, vừa thay đổi trên thanh address để có thể sử dụng một số chức năng liên quan tới địa chỉ tuyệt đối này.

Kết: sử dụng ajax là cả một nghệ thuật.

Ví dụ về việc sử dụng Ajax đơn giản

(Note: Ở đây thực hiện trong ASP.NET, bạn hoàn toàn có thể thực hiện trên ngôn ngữ khác được)
Ví dụ sau đây chúng ta thực hiện việc lấy giờ trên Server. Thông qua AJAX sẽ cho chúng ta biết thời gian của Server mà không cần tải lại toàn bộ trang web. Chỉ lấy những gì chúng ta cần mà thôi.
Chúng ta sẽ có 3 file. ajax.js, Default.aspx, Ajax.aspx (Có thể khác với ngôn ngữ khác. defaul.php, ajax.php….)
Đầu tiên chúng ta tạo 1 file ajax.js (File javascript này đảm nhiệm việc gọi XMLHttpRequest để trao đổi dữ liệu)
Code
File ajax.js

Cách dùng:

Trang default.aspx Ajax Demo

Trang default.aspx.cs

Trang Ajax.aspx.cs. Không quan tâm phần giao diện HTML.

Demo kết quả:

ajax-datetime

Demo Ajax DateTime

Cách viết một CV hoàn hảo

Sarah Berry, tác giả của một Best seller với tựa đề: “Viết bản CV hoàn hảo vào cuối tuần” sẽ chỉ ra cho bạn “những cạm bẫy” chung nhất mà các ứng viên thường mắc phải.
Nếu bạn muốn có một bản lý lịch tự thuật (CV) tốt nhất, bạn cần phải học cách tổ chức bản CV. Để hấp dẫn và thuyết phục hơn, bạn cũng nên phải thay đổi phong cách viết cho phù hợp. Sarah Berry, tác giả của một trong những cuốn sách bán chạy nhất với tựa đề: “Viết bản CV hoàn hảo vào cuối tuần” đưa ra cho các ứng viên những lời khuyên giá trị.

Trong thực tế, theo Sarah Berry, không phải là những vấn đề to tát làm hỏng các bản CV mà nguyên nhân lại nằm ở những lỗi nhỏ nhặt, dễ bỏ qua nhất. Hãy cùng tìm hiểu các lỗi thường thấy ở các bản CV, Sarah Berry sẽ chỉ ra cho bạn “những cạm bẫy” chung nhất mà các ứng viên thường mắc phải:

1. Không đưa ra thông tin phù hợp

10 năm trước đây, người ta có thể chấp nhận việc có một kiểu chuẩn cho tất cả các CV, nhưng đối với thị trường công việc ngày càng nhiều cạnh tranh như hiện nay, cái cần thiết là một bộ “y phục” phù hợp. CV giúp bạn cập nhật và thể hiện nổi bật phương cách bạn có thể giúp ích cho một công ty cụ thể. Một bản CV chung chung sẽ nói: Tôi cần một công việc, hãy giúp tôi. Một bản CV tốt cộng với thư xin việc sẽ hướng đến nội dung: Tôi yêu công ty bạn, bạn đang có một vấn đề cần giải quyết và tôi là người tốt nhất làm nhiệm vụ này. Hãy dành thời gian và cố gắng để thể hiện khả năng phù hợp với công viêc. Hãy dồn sự tập trung vào công ty chứ không phải vào nhu cầu của bạn, chỉ bằng cách đó thông điệp của bạn mới “lọt tai” nhà tuyển tuyển dụng.

Cách viết CV ấn tượng
Cách viết CV hoàn hảo

2.Không trả lời câu hỏi thông báo tuyển dụng đặt ra

Bạn thường bỏ qua câu hỏi bởi vì bạn đang vội vã hoặc là bạn tìm cách trốn tránh làm việc đó. Đừng chờ đợi đến cuộc phỏng vấn mới thể hiện rằng bạn tốt, bạn giỏi thế nào. Hãy đọc toàn bộ thông báo tuyển dụng và ghi lại những yêu cầu cụ thể của họ. Công ty đang cần những phẩm chất cá nhân nào; kỹ năng nào được coi là trọng yếu nhất; vai trò của kinh nghiệm thực tế. Bạn cần phải hiểu chính xác các yêu cầu của nhà tuyển dụng chứ không phải của bạn. CV cần trả lời được những câu hỏi cụ thể: như thế nào, cái gì, ở đâu và khi nào. Rông dài quá mức: CV của bạn dài bao nhiêu? Độ dài lý tưởng là từ 2 đến 3 trang và 1 trang đối với thư xin việc. Nếu bạn chỉ mới vừa rời cổng trường đại học, bạn sẽ có ít thứ để nói, nếu không thì cũng đừng nhồi nhét quá dài vào CV. Một trang với những thông tin cần thiết mang giá trị chắc chắn sẽ tốt hơn rất nhiều so với việc viết rông dài những thứ chẳng liên quan, dễ khiến nhà tuyển dụng mạnh tay “ném” sang một bên.

3. Đặt thông tin vào những trật tự sai

Phần giới thiệu là một trong những phần quan trọng nhất của CV. Tuy nhiên, nhiều nhà “săn việc” lại giấu những thông tin cá nhân ở cuối CV còn nhiều người khác lại bỏ qua các chi tiết như tuổi, tình hình gia đình và thông tin liên hệ. “Rao bán chính mình” là mục tiêu sống còn trong thuật viết CV nhưng phần lớn các ứng viên lại “bỏ bom” người đọc các loại bằng cấp, quá trình học tập và làm viêc. Ứng viên đã quên đề cập đến mặt hàng mà họ đang mang đi bán. Có thể khẳng định rằng, quan trọng nhất trong CV là phần viết về khả năng – thứ mà bạn đem ra bán. Bạn cần xác định rõ mức độ chuyên nghiệp và khả năng của bạn. Hãy thuyết phục và đảm bảo cho người đọc thấy rằng đầu tư vào những kỹ năng của bạn là sự lựa chọn tốt nhất.

4. Trình bày dàn trải quá trình học tập

Quá trình học tập của bạn kéo dài bao lâu? Bạn tìm cách liệt kê tất cả những kiến thức và thành tích học hành. Điều này đôi khi khiến nhà tuyển dụng nghi ngại mức độ chuyên nghiệp của bạn. Hãy nhớ rằng những phẩm chất chỉ trở nên quan trọng khi nó thuyết phục được người đọc mức độ phù hợp của bạn và các nhà tuyển dụng đang tìm kiếm những người có nhận thức về “chào hàng”. Vì vậy, hãy tập trung vào những chi tiết thực tế, cố gắng thể hiện kỹ năng “chào hàng” bằng việc nhấn mạnh khả năng và kinh nghiệm phù hợp. Đừng dùng bằng cấp giáo dục trung học “làm phiền” nhà tuyển dụng, chỉ trong trường hợp đó là chứng nhận giáo dục cao nhất của bạn hay bạn lần đầu tìm kiếm việc làm. Trọng tâm phải được đặt vào thành tích nổi bật chứ không phải vào ngày tháng.

5. Quá nhiều chi tiết về sở thích

Sở thích không cần thiết phải đưa vào trong CV. Tại sao nhà tuyển dụng lại phải quan tâm đến kỹ năng sút bóng của bạn? Hãy đưa phần sở thích ra khỏi CV nhưng chắc chắn rằng CV vẫn có một cá tính riêng. Bạn có thể nêu những đặc điểm thể hiện được thế mạnh cá nhân, khả năng hòa nhập của mình. Điều này sẽ làm cho thông điệp của bạn trở nên hấp dẫn và thuyết phục hơn. Không gửi kèm thư xin việc. Đưa ra yêu cầu mong muốn không phải là điều dễ dàng, nhất là khi công việc hiện tại của bạn không có nhiều ổn định, sức nặng lúc này càng dồn vào nhu cầu tìm một công việc mới. Hãy gói gém CV bằng một lá thư xin việc hiệu quả. Thể hiện mong muốn tìm việc bằng cách làm nổi bật những kỹ năng và mức độ chuyên nghiệp. Dành 75% bức thư nói về nhà tuyển dụng chứ không phải về bạn.
Cuối cùng, hãy xem xét lại thật cẩn thận bản CV. Liệu nó đã đủ tốt, đủ tích cực và quả quyết? Nó sẽ đánh bại đối thủ cạnh tranh hay bị đối thủ vượt mặt? Nếu chắc chắn rằng, CV xác định rõ ràng thế mạnh, giá trị và mức độ chuyên nghiệp của bạn, bạn sẽ sớm có được cuộc phỏng vấn và cơ hội cho một công việc tốt.

Nếu bạn là lập trình viên, đang viết cv xin việc, đừng quên 4 Kỹ năng quan trọng nhất đối với một lập trình viên nhé. ?

(Nguồn: Sưu tầm trên Internet)

Design Pattern là gì?

Design Pattern là một kỹ thuật dành cho lập trình hướng đối tượng. Nó cung cấp cho ta cách tư duy trong từng tình huống của việc lập trình hướng đối tượng, và phân tích thiết kế hệ thống phần mềm. Nó cần thiết cho cả các nhà lập trình và nhà phân tích thiết kế. Đối với những người chuyên về lập trình thì việc nắm vững công cụ lập trình thôi chưa đủ, họ cần phải có một tư duy, một kỹ năng giải quyết các tình huống nhỏ của công việc xây dựng phần mềm mà họ là người thi hành. Việc giải quyết này phải đảm bảo tính ổn định là họ có thể giải quyết được trong mọi tình huống, với thời gian đúng tiến độ, phương pháp giải quyết hợp lý và đặc biệt là phải theo một chuẩn nhất định. Những nhà phân tích thiết kế mức cao, việc nắm vững công cụ lập trình có thể là không cần thiết, nhưng họ cũng cần phải biết được ở những khâu nhỏ nhất chi tiết nhất của thiết kế của họ đưa ra có thể thực hiện được hay không và nếu thực hiện được thì có thể thực hiện như thế nào, và sẽ theo một chuẩn ra sao.
Design pattern được dùng khắp ở mọi nơi, trong các phần mềm hướng đối tượng các hệ thống lớn. Trong các chương trình trò chơi, … Và cả trong các hệ thống tính toán song song,..
Design pattern thể hiện tính kinh nghiệm của công việc lập trình, xây dựng và thiết kế phần mềm.Có thể chúng ta đã gặp design pattern ở đâu đó, trong các ứng dụng, cũng có thể chúng ta đã từng sử dụng những mẫu tương tự như design pattern để giải quyết những tình huống của mình, nhưng chúng ta không có một khái niệm gì về nó cả.

Mối quan hệ giữa các Pattern
Mối quan hệ giữa các Pattern

Design Pattern là gì?

Design patterns là tập các giải pháp cho cho vấn đề phổ biến trong thiết kế các hệ thống máy tính. Đây là tập các giải pháp đã được công nhận là tài liệu có giá trị, những người phát triển có thể áp dụng giải pháp này để giải quyết các vấn đề tương tự.

Giống như với các yêu cầu của thiết kế và phân tích hướng đối tượng (nhằm đạt được khả năng sử dụng các thành phần và thư viện lớp), việc sử dụng các mẫu cũng cần phải đạt được khả năng tái sử dụng các giải pháp chuẩn đối với vấn đề thường xuyên xảy ra.

Tại sao sử dụng Design Pattern?

Design pattern cung cấp giải pháp ở dạng tổng quát, giúp tăng tốc độ phát triển phần mềm bằng cách đưa ra các mô hình test, mô hình phát triển đã qua kiểm nghiệm. Thiết kế phần mềm hiệu quả đòi hỏi phải cân nhắc các vấn đề sẽ nảy sinh trong quá trình hiện thực hóa (implementation). Dùng lại các design pattern giúp tránh được các vấn đề tiềm ẩn có thể gây ra những lỗi lớn, dễ dàng nâng cấp, bảo trì về sau.
Một lợi thế lớn để sử dụng một mẫu thiết kế là lập trình viên khác sẽ có thể dễ dàng nhận ra nó (đặc biệt là nếu bạn sử dụng quy ước đặt tên tốt).

Khi nào nên sử dụng Design pattern?

Đó là khi bạn muốn giữ cho chương trình của mình thực sự đơn giản. Việc sử dụng các design pattern sẽ giúp chúng ta giảm được thời gian và công sức suy nghĩ ra các cách giải quyết cho những vấn đề đã có lời giải. Bạn có thể đọc qua cuốn “Head First Design Patterns” để có cái nhìn tổng quát hơn về design pattern.

Hệ thống các mẫu design pattern hiện có 23 mẫu được định nghĩa trong cuốn “Design patterns Elements of Reusable Object Oriented Software”. Các tác giả của cuốn sách là Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides, hay còn được biết đến với các tên “Gang of Four” hay đơn giản là “GoF”. Hệ thống các mẫu này có thể nói là đủ và tối ưu cho việc giải quyết hết các vấn đề của bài toán phân tích thiết kế và xây dựng phần mềm trong thời điểm hiện tại. Hệ thống các mẫu design pattern được chia thành 3 nhóm: nhóm Creational (5 mẫu), nhóm Structural (7 mẫu) và nhóm Behavioral (11 mẫu).

Tên Mục đích
Nhóm Creational (nhóm kiến tạo)
1. Abstract Factory Cung cấp một interface cho việc tạo lập các đối tượng (có liên hệ với nhau) mà không cần qui định lớp khi hay xác định lớp cụ thể (concrete) tạo mỗi đối tượng
Tần suất sử dụng: cao
2. Builder Tách rời việc xây dựng (construction) một đối tượng phức tạp khỏi biểu diễn của nó sao cho cùng một tiến trình xây dựng có thể tạo được các biểu diễn khác nhau.
Tần suất sử dụng: trung bình thấp
3. Factory Method Định nghĩa Interface để sinh ra đối tượng nhưng để cho lớp con quyết định lớp nào được dùng để sinh ra đối tượng Factory method cho phép một lớp chuyển quá trình khởi tạo đối tượng cho lớp con.
Tần suất sử dụng: cao
4. Prototype Qui định loại của các đối tượng cần tạo bằng cách dùng một đối tượng mẫu, tạo mới nhờ vào sao chép đối tượng mẫu này.
Tần suất sử dụng: trung bình
5. Singleton Đảm bảo 1 class chỉ có 1 instance và cung cấp 1 điểm truy xuất toàn cục đến nó.
Tần suất sử dụng: cao trung bình
Nhóm Structural (nhóm cấu trúc)
6. Adapter Do vấn đề tương thích, thay đổi interface của một lớp thành một interface khác phù hợp với yêu cầu người sử dụng lớp.
Tần suất sử dụng: cao trung bình
7. Bridge Tách rời ngữ nghĩa của một vấn đề khỏi việc cài đặt ; mục đích để cả hai bộ phận (ngữ nghĩa và cài đặt) có thể thay đổi độc lập nhau.
Tần suất sử dụng: trung bình
8. Composite Tổ chức các đối tượng theo cấu trúc phân cấp dạng cây; Tất cả các đối tượng trong cấu trúc được thao tác theo một cách thuần nhất như nhau.
Tạo quan hệ thứ bậc bao gộp giữa các đối tượng. Client có thể xem đối tượng bao gộp và bị bao gộp như nhau -> khả năng tổng quát hoá trong code của client -> dễ phát triển, nâng cấp, bảo trì.
Tần suất sử dụng: cao trung bình
9. Decorator Gán thêm trách nhiệm cho đối tượng (mở rộng chức năng) vào lúc chạy (dynamically).
Tần suất sử dụng: trung bình
10. Facade Cung cấp một interface thuần nhất cho một tập hợp các interface trong một “hệ thống con” (subsystem). Nó định nghĩa 1 interface cao hơn các interface có sẵn để làm cho hệ thống con dễ sử dụng hơn.
Tần suất sử dụng: cao
11. Flyweight Sử dụng việc chia sẻ để thao tác hiệu quả trên một số lượng lớn đối tượng “cở nhỏ” (chẳng hạn paragraph, dòng, cột, ký tự…).
Tần suất sử dụng: thấp
12. Proxy Cung cấp đối tượng đại diện cho một đối tượng khác để hỗ trợ hoặc kiểm soát quá trình truy xuất đối tượng đó. Đối tượng thay thế gọi là proxy.
Tần suất sử dụng: cao trung bình
Nhóm Behavioral (nhóm tương tác)
13. Chain of Responsibility Khắc phục việc ghép cặp giữa bộ gởi và bộ nhận thông điệp; Các đối tượng nhận thông điệp được kết nối thành một chuỗi và thông điệp được chuyển dọc theo chuỗi nầy đến khi gặp được đối tượng xử lý nó.Tránh việc gắn kết cứng giữa phần tử gởi request với phần tử nhận và xử lý request bằng cách cho phép hơn 1 đối tượng có có cơ hội xử lý request . Liên kết các đối tượng nhận request thành 1 dây chuyền rồi “pass” request xuyên qua từng đối tượng xử lý đến khi gặp đối tượng xử lý cụ thể.
Tần suất sử dụng: trung bình thấp
14. Command Mỗi yêu cầu (thực hiện một thao tác nào đó) được bao bọc thành một đối tượng. Các yêu cầu sẽ được lưu trữ và gởi đi như các đối tượng.Đóng gói request vào trong một Object , nhờ đó có thể nthông số hoá chương trình nhận request và thực hiện các thao tác trên request: sắp xếp, log, undo…
Tần suất sử dụng: cao trung bình
15. Interpreter Hỗ trợ việc định nghĩa biểu diễn văn phạm và bộ thông dịch cho một ngôn ngữ.
Tần suất sử dụng: thấp
16. Iterator Truy xuất các phần tử của đối tượng dạng tập hợp tuần tự (list, array, …) mà không phụ thuộc vào biểu diễn bên trong của các phần tử.
Tần suất sử dụng: cao
17. Mediator Định nghĩa một đối tượng để bao bọc việc giao tiếp giữa một số đối tượng với nhau.
Tần suất sử dụng: trung bình thấp
18. Memento Hiệu chỉnh và trả lại như cũ trạng thái bên trong của đối tượng mà vẫn không vi phạm việc bao bọc dữ liệu.
Tần suất sử dụng: thấp
19. Observer Định nghĩa sự phụ thuộc một-nhiều giữa các đối tượng sao cho khi một đối tượng thay đổi trạng thái thì tất cả các đối tượng phụ thuộc nó cũng thay đổi theo.
Tần suất sử dụng: cao
20. State Cho phép một đối tượng thay đổi hành vi khi trạng thái bên trong của nó thay đổi , ta có cảm giác như class của đối tượng bị thay đổi.
Tần suất sử dụng: trung bình
21. Strategy Bao bọc một họ các thuật toán bằng các lớp đối tượng để thuật toán có thể thay đổi độc lập đối với chương trình sử dụng thuật toán.Cung cấp một họ giải thuật cho phép client chọn lựa linh động một giải thuật cụ thể khi sử dụng.
Tần suất sử dụng: cao trung bình
22. Template method Định nghĩa phần khung của một thuật toán, tức là một thuật toán tổng quát gọi đến một số phương thức chưa được cài đặt trong lớp cơ sở; việc cài đặt các phương thức được ủy nhiệm cho các lớp kế thừa.
Tần suất sử dụng: trung bình
23. Visitor Cho phép định nghĩa thêm phép toán mới tác động lên các phần tử của một cấu trúc đối tượng mà không cần thay đổi các lớp định nghĩa cấu trúc đó.
Tần suất sử dụng: thấp

Vui lòng ghi rõ nguồn khi bạn trích dẫn lại bài viết này.

4 Kỹ năng quan trọng nhất đối với một lập trình viên

Với rất nhiều công nghệ, ngôn ngữ lập trình và các nền tảng phát triển như hiện nay, thì rất khó để nhận ra đâu là thứ tốt nhất để bạn đầu tư thời gian và công sức học những kỹ năng quan trọng trong nghề phát triển phần mềm.

Tôi thường được nhiều người hỏi về việc làm thế nào để trở thành một lập trình viên giỏi hơn, và rằng liệu họ có nên đầu tư thời gian vào một ngôn ngữ lập trình hoặc công nghệ xác định nào đó hay không. Nhưng hôm nay, tôi sẽ liệt kê ra đây một số kỹ năng tôi nghĩ rằng đó là những kỹ năng quan trọng nhất và không bị lỗi thời mà một lập trình viên nên có, chúng sẽ mang lại cho bạn những cơ hội tốt nhất trong nghề nghiệp và giúp bạn làm việc hiệu quả hơn.

Kỹ năng nào là quan trọng nhất đối với một lập trình viên?Kỹ năng nào là quan trọng nhất đối với một lập trình viên?

1. Kỹ năng giải quyết vấn đề

Trước đây, tôi đã từng nói về sự cần thiết về việc học cách giải quyết vấn đề, bởi vì tôi nghĩ rằng đây là một kỹ năng vô cùng quan trọng đối với bất kỳ một lập trình viên nào. Công việc phát triển phần mềm thì thực ra 100% là để giải quyết các vấn đề. Nếu không có những vấn đề thì chúng ta cũng chẳng cần có những phần mềm làm chi phải không bạn?

Tất cả phần mềm đều được thiết kế để giải quyết một số vấn đề của người sử dụng và trong cái giải pháp chung đó lại có một mảng rất lớn những vấn đề nhỏ hơn nảy sinh. Không quan trọng về việc bạn đang sử dụng ngôn ngữ lập trình hoặc công nghệ nào, nếu bạn không thể giải quyết những vấn đề thì bạn không phải là một người phát triển phần mềm giỏi.

Kỹ năng giải quyết vấn đề là rất quan trọngMột điều đáng ngạc nhiên là hầu hết các lập trình viên lại rất yếu trong kỹ năng giải quyết vấn đề. Tôi thường xuyên nghe được những lời than phiền về các buổi phỏng vấn tuyển dụng rằng nó thì quá khó, bởi vì họ đã hỏi lập trình viên về cách giải quyết một vài vấn đề phức tạp. Tôi đã nói về việc tại sao những buổi phỏng vấn khó lại là một điều tốt và một phần của lý do là bởi vì họ muốn kiểm tra khả năng giải quyết vấn đề của các lập trình viên mà thôi. Tôi biết rằng có rất nhiều lập trình viên vẫn không đồng ý với tôi về quan điểm này và họ không hiểu tại sao một trang web giống như TopCoder sẽ làm tăng khả năng phát triển phần mềm của họ lên rất nhiều, nhưng từ kinh nghiệm cá nhân thì tôi biết rằng chính việc thực hành cách giải quyết vấn đề trên TopCoder là bước ngoặt trong nghề nghiệp của tôi.

Bạn hãy nghĩ về một người thợ mộc làm ví dụ. Nếu muốn trở thành một người thợ mộc thành công, thì bạn nên giỏi trong việc cắt gỗ. Bạn cũng phải có khả năng thực hiện được tất cả các dạng cắt và sử dụng nhiều công cụ khác nhau. Không quan trọng là bạn có bao nhiêu năm kinh nghiệm trong nghề thợ mộc hay bạn có khả năng thiết kế đồ mỹ nghệ tốt đến đâu, nếu mỗi lần bạn thử cắt gỗ mà bạn phải khó nhọc lắm mới hoàn thành được nhát cắt đó thì bạn không phải là một người thợ mộc giỏi.

Cắt gỗ là một kỹ năng cơ bản của nghề thợ mộc, cũng giống như giải quyết vấn đề là kỹ năng cơ bản của nghề phát triển phần mềm.

2. Kỹ năng tự học

Kỹ năng tự họcCó thể nói rằng không có một kỹ năng nào trong cuộc sống lại quan trong bằng kỹ năng học cách để học. Kỹ năng này đặc biệt quan trọng trong ngành phát triển phần mềm, bởi vì không lĩnh vực nào mà tôi biết lại có tốc độ thay đổi nhanh hơn là lĩnh vực phát triển phần mềm.

Bạn không thể biết tất cả về mọi thứ. Thậm chí bạn cũng không thể đầu tư thời gian để trở nên tinh thông dù chỉ một công nghệ hoặc framework xác định nào đó — bởi vì mọi thứ thay đổi quá nhanh! Thay vì đó bạn cần có khả năng nhanh chóng thu được kiến thức mà bạn cần cho công việc đang làm. Nếu bạn thực sự muốn có một kỹ năng mà sẽ giúp bạn luôn thuận lợi trong nghề phát triển phần mềm, thì hãy học cách làm thế nào để dạy chính mình.

Chỉ có một cách duy nhất để phát triển kỹ năng này là hãy thực hành nó. Hãy học một ngôn ngữ lập trình hoặc công nghệ mới, thậm chí nếu bạn nghĩ rằng mình sẽ chẳng bao giờ sử dụng nó. Bạn sẽ rất ngạc nhiên vì khả năng tiếp thu rất nhanh của mình, bởi vì bạn đã có kiến thức nền tảng trước đó rồi. Nếu bạn có thể nhanh chóng thích nghi với sự thay đổi chóng mặt trong ngành phát triển phần mềm và các công nghệ cũng như những nền tảng kết hợp cùng với nó, thì bạn sẽ có những kỹ năng mà sẽ luôn luôn đáp ứng được yêu cầu công việc.

Mặc dù tôi có đôi chút hoài nghi về một tuyên bố của tác giả Tim Ferris, anh ta đã viết một cuốn sách tuyệt vời tên là “Trở thành đầu bếp chuyên nghiệp trong vòng 4 giờ”, nó chứa một số kỹ thuật rất hay về cách làm thế nào để học mọi thứ một cách nhanh nhất. (Tôi cũng đang muốn viết một cuốn sách như vậy về mọi chủ đề).

3. Kỹ năng đặt tên

Kỹ năng đặt tênKhi mọi người hỏi tôi rằng công việc mà tôi làm hàng ngày là gì, tôi thường nói nghề của tôi là “đọc những thứ do người khác đặt tên và đặt tên cho một số thứ.” Vâng, thực ra không một ai hỏi tôi câu hỏi đó và tôi cũng không thực sự trả lời theo cách này, nhưng tôi chắc là mình có thể làm như vậy. Phát triển phần mềm thì tất cả là về mô tả những thứ trừu tượng. Hầu hết những thứ mà chúng ta đang xây dựng thì không thể nhìn thấy được.

Mỗi lần mà bạn viết code nghĩa là bạn đang đặt tên cho một số thứ. Khi bạn đọc code của chính mình hoặc của một ai khác viết ra, thì bạn đang cố gắng hiểu đoạn code đó thông qua tên của các thứ trong nó. Hầu như tôi có thể đoán chính xác trình độ của một lập trình viên bằng cách xem qua cách họ đặt tên các phương thức, biến và các lớp trong code mà họ viết.

Một lập trình viên mà thiếu hụt khả năng đưa ra những tên tốt tới những khái niệm và dữ liệu trong code của họ thì giống như một nhà phiên dịch mà bị câm vậy. Không quan trọng liệu bạn có hiểu một điều gì đó hay không, nếu bạn không thể giải thích điều đó một cách rõ ràng thì trong chốc lát nó sẽ rời khỏi đầu của bạn.

Cách tốt nhất để nâng cao kỹ năng này là luôn luôn thực hành nó. Tôi thường đổi tên một số thứ trong code ngay khi tôi vừa đọc và hiểu nó. Ngay khi tôi bắt đầu hiểu được phương thức đó thực thi điều gì, thì tôi sẽ thay đổi tên của nó cho phù hợp với điều tôi hiểu. Tôi sẽ làm điều này cả trong khi tôi đang đọc code, thậm chí việc này không tạo ra một thay đổi logic nào trong đó. Bạn càng tập trung nhiều vào việc đưa ra những cái tên thích hợp cho các thứ, thì bạn ngày càng trở nên tốt hơn. Điều này cũng là thứ dễ nhận thấy nhất về đoạn code của bạn. Rất khó để biết liệu code của bạn thì có đúng hoặc hiệu quả hay không chỉ bằng cách xem qua chúng, nhưng nếu tôi đọc nó và có thể hiểu được thì tôi sẽ cho rằng bạn biết bạn đang làm gì.

4. Kỹ năng hợp tác với mọi người

Kỹ năng hợp tác với mọi người

Trong danh sách này thì kỹ năng hợp tác với mọi người được liệt kê cuối cùng, nhưng trong nhiều trường hợp thì có thể nói rằng nó là kỹ năng đầu tiên và quan trọng nhất. Ở mọi nơi bạn đến đều có con người. Trừ khi bạn làm việc một mình hoặc phát triển phần mềm cho chính bạn xài, còn không thì người khác sẽ ảnh hưởng đến nghề nghiệp phát triển phần mềm của bạn.

Trước đây tôi đã nói về tại sao bạn lại không muốn chỉ trích người khác, nhưng thực ra có nhiều cách để hợp tác với mọi người hơn là chỉ trích. Tôi luôn đọc lại cuốn sách nổi tiếng của tác giả Dale Carnegie, là cuốn “Đắc Nhân Tâm”, bởi vì cuốn sách này rất quan trọng trong việc học cách làm thế nào để thành công trong cuộc sống. Nếu bạn muốn phát triển những kỹ năng của con người thì hãy đọc cuốn sách này!

Vấn đề cơ bản là loài người không phải là một sinh vật có logic, chúng ta thường hành xử theo cảm xúc. Chắc chắn là chúng ta luôn tự hào về khả năng lý trí của mình, nhưng trong thực tế thì hầu hết các quyết định mà chúng ta tạo ra thì thường bị ảnh hưởng bởi cảm xúc hơn là lý trí. Điều đó có nghĩa là trong nghề phát triển phần mềm thì trừ khi bạn có thể hợp tác hiệu quả với những lập trình viên khác, những người quản lý và thậm chí là cả khách hàng; nếu không thì bạn sẽ luôn luôn gặp phải những vấn đề rắc rối, cho dù bạn có những ý tưởng tốt đến mấy hay kỹ năng của bạn có tuyệt vời ra sao đi nữa.

Tích cực tham gia vào cộng đồng phát triển phần mềm nói chung có thể giúp bạn rất nhiều trong nghề nghiệp. Nó không chỉ là về tạo mối quan hệ, nhưng việc đưa tên của bạn ra ngoài cũng là cách hay để xây dựng một “nghiệp” tốt. Thực hiện điều này thành công là bản lề dẫn tới khả năng bạn có thể hợp tác hiệu quả với mọi người. (Bạn có muốn tạo ra một con đường tắt trong việc học cách làm thế nào để hợp tác với mọi người không? Nó thì rất đơn giản. Hãy tốt bụng!)

Thế còn những kỹ năng về thực hành thì sao?

Bạn có thấy rằng tôi vẫn không đưa vào trong danh sách trên một công nghệ xác định hoặc thậm chí một vài kỹ năng đang thịnh hành hiện nay là phát triển web và di động không? Có một nền tảng vững chắc trong một vài lĩnh vực công nghệ nào đó là điều khá quan trọng, nhưng thực ra những kỹ năng đó lại không quan trọng bằng 4 kỹ năng mà tôi đã đề cập ở trên.

Nếu bạn có thể giải quyết vấn đề, học mọi thứ nhanh chóng, đặt tên mọi thứ hợp lý, và hợp tác hiệu quả với mọi người, thì bạn sẽ có được mức thành công lớn hơn nhiều trên con đường sự nghiệp và sẽ thành chuyên gia trong bất kỳ lĩnh vực công nghệ nào.

Dĩ nhiên điều quan trọng là bạn nên học một đến hai ngôn ngữ lập trình một cách sâu sắc và có một kiến thức chuyên môn đủ rộng ở trong lĩnh vực này, nhưng miễn là đừng đi quá xa với chúng và bạn nên tập trung vào 4 kỹ năng quan trọng nêu trên để luôn phát triển trong nghề.

Nguồn bài viết: Hồ Sỹ Hùng, blog công nghệ vinacode.net. Bài viết đã được sự cho phép chia sẻ của tác giả bằng email.

Là người yêu thích công nghệ, mình hay tìm đọc các trang về chia sẻ code, blog viết về công nghệ. Tình cờ đọc được blog của anh Hồ Sỹ Hùng, một developer thế hệ 8x, blog của anh có nhiều bài dịch từ các trang nước ngoài, rất phù hợp với những bạn khả năng Tiếng Anh còn yếu. Đây là blog hay cho các bạn là lập trình viên, các bạn quan tâm có thể đọc nhiều bài viết hay của anh tại vinacode.net

17 Cách để thức dậy sảng khoái vào buổi sáng

Tất cả chúng ta đều biết rằng thức dậy và làm việc vào mỗi sáng là cách tốt nhất để đạt được các mục tiêu trong cuộc sống. Tập thể dục, học bài, làm việc, thiền định, v.v… vào lúc đó thì tốt hơn rất nhiều so với các thời điểm khác trong ngày. Tuy nhiên, hầu hết mọi người đều cảm thấy khá uể oải vào buổi sáng.

Vậy phải làm gì để khắc phục điều đó? Làm thế nào mà chúng ta có thể thức dậy và sẵn sàng ngay cho công việc?

Những cách thức dậy để cảm thấy sảng khoái vào buổi sáng

Sau đây là một số điều mà bạn có thể làm trong ngắn hạn và dài hạn để thức dậy sảng khoái và tràn đầy năng lượng vào buổi sáng. Tôi đã chia chúng làm ba phần; (1) trước khi đi ngủ, (2) trong khi ngủ và (3) sau khi ngủ dậy.

Làm thế nào để tôi có thể luôn sức dậy sảng khoái và đầy năng lượng vào buổi sáng?Làm thế nào để tôi có thể luôn sức dậy sảng khoái và đầy năng lượng vào buổi sáng?

Trước khi đi ngủ

1. Tránh sử dụng cà phê, rượu đỏ và sô-cô-la trước khi đi ngủ

Để có thể thức dậy sảng khoái thì bạn cần phải có một giấc ngủ sâu và một trong những cách tốt nhất để phá hủy giấc ngủ sâu đó chính là làm rối loạn bộ máy tiêu hóa của bạn. Bạn thực sự cần phải giữ cho nó được hạnh phúc suốt cả đêm.

Cà phê, rượu đỏ và sô-cô-la đã được khoa học chỉ ra rằng sẽ làm quấy rầy giấc ngủ của bạn nhiều hơn những thực phẩm khác. Chúng sẽ làm rối loạn hệ tiêu hóa của bạn và do đó bạn sẽ thức như sáo hoặc ngủ được rất ít và không đủ để nạp lại năng lượng chút nào cả. Hãy đừng sử dụng những thực phẩm này ngay từ sau bữa ăn trưa.

2. Tránh cãi cọ với bạn đời trước khi đi ngủ

Một trong những cách tốt nhất để có một giấc ngủ tồi tệ là đi ngủ khi mà bạn chưa giải quyết xong một vấn đề với bạn đời của bạn. Trong mối quan hệ của mình, tôi sẽ chẳng bao giờ cho phép một cuộc tranh cãi vào lúc hoàng hôn, thậm chí nếu tôi phải thỏa hiệp một chút ít với “cái tôi” của chính mình.

Trước khi bạn đi ngủ thì hãy chắc chắn rằng bạn đời của bạn vui vẻ (nhiều nhất bạn có thể) và chắc chắn rằng bạn cũng vui vẻ như vậy. Đó cũng là một trong những cách tốt nhất bạn có thể làm đối với mối quan hệ của bạn, và trong nhiều trường hợp hãy ngủ một mình.

3. Thiền định, cầu nguyện và bình tâm trước khi đi ngủ

Mỗi đêm trước khi đi ngủ thì tôi thường dành khoảng 30 phút đến một tiếng để thiền định. Đây là một phương pháp tuyệt vời vì nó cho phép bạn quẳng đi tất cả những lo toan trong ngày và quên hết những lo lắng của ngày mai. Tương lai thì không thể bị thay đổi trong lúc bạn đang ngủ và quá khứ thì đã qua và không có lý do gì khiến ta phải mất ngủ vì nó! Hãy quên nó đi.

Thiền định hoặc cầu nguyện hay làm bất cứ điều gì bạn muốn. Đơn giản chỉ việc ngồi xuống và theo dõi hơi thở của bạn là một cách rất tuyệt vời để chuẩn bị cho bạn có một giấc ngủ sâu.

4. Đừng ăn tối ngay trước khi đi ngủ

Rất nhiều người chạy thẳng về nhà sau khi làm việc, nấu một vài món cho bữa tối và ăn uống rồi leo lên giường đánh một giấc. Đây là một ý kiến tồi. Quá trình tiêu hóa cần phải mất một thời gian và bạn sẽ không muốn nằm ngủ ngay sau khi bạn vừa ăn một bữa no nê. Cố gắng dành ra một khoảng thời gian vài giờ đồng hồ giữa bữa tối và thời điểm đi ngủ của bạn, đảm bảo rằng bạn sẽ cảm thấy sự khác biệt ngay sáng hôm sau.

5. Bố trí phòng ngủ của bạn theo nguyên tắc Phong Thủy

Tôi biết rằng có rất nhiều người cho rằng Phong Thủy thì có nhiều yếu tố mê tín trong đó, nhưng hãy cho tôi vài giây để thuyết phục bạn rằng nó thực ra có rất nhiều tính “logic theo kiểu phương Tây” đằng sau đó.

Nếu bạn chưa biết Phong Thủy là một nghệ thuật của người Trung Hoa cổ xưa thông qua cách bố trí sắp đặt căn nhà của bạn theo cách cân bằng năng lượng và cảm giác bằng cách sắp đặt những đồ đạc theo một cách chắc chắn gọi là “những điểm nóng”.

Phòng ngủ là nơi quan trọng đặc biệt và tôi đã nhận ra rằng từ khi sắp xếp lại phòng ngủ của mình tuân theo các nguyên tắc Phong Thủy thì tôi đã có những giấc ngủ nhiều yên tĩnh hơn. Trong cái đặc biệt đó thì việc bố trí giường ngủ của bạn là quan trọng nhất. Phong Thủy nói rằng bạn nên ngủ ở nơi mà bạn có thể nhìn thấy cánh cửa nhưng đừng trực diện với hướng của cánh cửa đang mở. Điều này giúp chúng ta ngủ với một cảm giác an toàn hơn. Tôi có thể nhận ra lý do thực tế của điều này. Bạn có thể tìm hiểu thêm một số cách bố trí phòng ngủ theo nguyên tắc Phong Thủy tại đây.

6. Đi vệ sinh trước khi ngủ

Thậm chí nếu bạn không có nhu cầu phải đi vệ sinh trước khi ngủ thì bạn cũng nên đi giải tỏa bất cứ cái gì có thể. Lý do cho điều này đó là những quả thận của bạn sẽ tiếp tục làm việc suốt cả đêm và đến sáng thì bàng quang của bạn sẽ chứa đầy nước. Nếu mà bàng quang của bạn đã đầy ắp từ trước thì bạn có thể sẽ cảm thấy cần phải đi vệ sinh suốt cả đêm và điều này sẽ làm cắt đứt giấc ngủ quý giá của bạn.

Bạn có thể nghĩ rằng ngủ thì chỉ cần đủ thời gian là được, nhưng điều đó không đúng. Điều quan trọng là giấc ngủ của bạn phải sâu và không bị ngắt quãng, bởi vì thường có một khoảng nào đó trong giấc ngủ sẽ đưa bạn vào trong “miền ngủ sâu nhất” nơi mà bạn được nghỉ ngơi một cách hoàn toàn. Nếu phải trở dậy để đi vệ sinh thì có thể làm ngắt đứt “miền ngủ sâu” này.

Trong khi ngủ

7. Không quá nóng, không quá lạnh

Một bí quyết khác liên quan đến giấc ngủ là: giấc ngủ của bạn thường bị ảnh hưởng rất lớn bởi nhiệt độ nóng hoặc lạnh trong suốt đêm. Điều quan trọng là phải đảm bảo sự cân bằng để giữ cho năng lượng của bạn được ổn định và tránh việc nhiệt độ cơ thể thay đổi quá đột ngột.

Cố gắng tìm ra một sự cân bằng giữa quần áo và chăn mền. Ví dụ, tôi thích ngủ mà không mặc bất cứ quần áo gì nhưng cùng với một chiếc chăn (mền) dày. Nó sẽ giúp cho nhiệt độ cơ thể của tôi luôn được ổn định.

8. Luôn mở cửa sổ

Một trong những thứ tốt nhất bạn có thể làm cho sức khỏe nói chúng và giấc ngủ của bạn nói riêng đó là luôn giữ cho cửa sổ của bạn mở he hé suốt đêm. Điều này mang lại hai lợi ích.

Luôn mở cửa sổ trong khi ngủ để cho phòng ngủ được thông thoáng.

Đầu tiên, chính khoảng trống ở cửa sổ sẽ cho phép khí độc CO2 thoát ra ngoài. Lý do là cơ thể con người thở ra là chất khí CO2 độc. Và trong suốt đêm bạn sẽ thở ra rất nhiều và căn phòng của bạn sẽ bị tràn ngập bởi loại khí này. Hãy để nó thoát ra ngoài cửa sổ.

Lý do thứ hai đó là bạn cần cho phép khí oxy bay vào. Điều này cũng có thể giúp bạn điều hòa nhiệt độ của phòng ngủ.

9. Giữ cho giấc ngủ của bạn được nhất quán

Mọi người thường có một quan niệm rằng PHẢI ngủ 8 tiếng mới gọi là ngủ đủ giấc.

Điều đó không đúng.

Điều quan trọng hơn là đi ngủ và thức dậy vào cùng thời điểm mỗi ngày. Không phải ai cũng cần phải ngủ 8 tiếng cả. Trong thực tế, nếu tôi ngủ một giấc 8 tiếng thì tôi thường cảm thấy mệt mỏi và chếnh choáng toàn bộ cả ngày. Chỉ cần 6 đến 7 tiếng mỗi ngày là đủ cho tôi rồi.

Hãy bắt đầu bằng cách hẹn giờ đồng hồ báo thức của bạn tại cùng thời điểm mỗi đêm. Hãy quyên đi những nội dung đang phát trên truyền hình và lên giường đi ngủ vào đúng 23h mỗi tối. Sau một thời gian bắt đầu thiết lập đồng hồ báo thức của bạn tại cùng thời điểm mỗi ngày; thậm chí là cả vào những ngày cuối tuần. Nếu bạn không bắt đầu thức dậy mỗi sáng khỏe khoắn và hạnh phúc hơn thì tôi sẽ viết một bức thư với tư cách cá nhân để xin lỗi bạn.

10. Tránh tiếng ồn, vì nó thực sự sẽ giết chết bạn!

Gần đây tôi có đọc một bài viết trên tờ tạp chí khoa học New Scientist rằng cuộc sống của bạn thì thực sự đang bị ngắn lại bởi những tiếng ồn suốt đêm. Vâng, điều đó hoàn toàn đúng… những âm thanh inh ỏi của xe cảnh sát hoặc tiếng gầm rú của các phương tiện giao thông thì thực sự đang giết chết bạn! Tờ tạp chí này cũng nói rằng những tiếng ồn đó đã ảnh hưởng đến tim của bạn và làm bạn bị thức giấc rất nhiều lần suốt đêm và dẫn đến cơ thể của bạn bị căng thẳng và suy nhược.

Cố gắng giữ cho phòng ngủ của bạn được yên tĩnh bằng cách đeo một vài cái chống ồn vào tai. Bạn có thể đeo những cái chống ồn mà giúp bạn không còn nghe thấy những âm thanh ngoài đường, nhưng bạn vẫn có thể nghe thấy tiếng chuông báo thức để trên cài bàn bên cạnh giường ngủ.

Sau khi ngủ dậy

11. Uống một ly nước lọc

Một ly nước lọc mát lạnh vào một chiếc dạ dày (bao tử) đang trống rỗng thì thực sự mang lại rất nhiều lợi ích cho sức khỏe và cũng góp phần làm bạn tỉnh táo hơn. Lượng nước này sẽ làm kích hoạt sự trao đổi chất và làm bạn thức dậy nhanh hơn và cảm thấy sảng khoái hơn.

12. Tập thể dục

Khi bạn chệnh choạng vào buổi sáng thì việc chạy bộ trong một bầu không khí trong lành sẽ giúp bạn có thể tỉnh táo rất nhanh. Tuy nhiên, điều thú vị là khi mà bạn tập thể dục trong buổi sáng đó thì bạn sẽ thực sự có nhiều năng lượng hơn trong ngày KẾ TIẾP. Bạn càng tập thể dục nhiều thì bạn càng có thêm nhiều năng lượng và trở nên săn chắc và khỏe mạnh hơn.

13. Đừng uống cà phê… mỗi ngày

Khoa học hiện nay đã chỉ ra rằng cơ thể của chúng ta trở nên quen dần với chất cafein trong cà phê mà chúng ta uống và chúng ngày càng có ít tác dụng hơn. Điều này có nghĩa là ly cà phê mỗi ngày của bạn thì sẽ càng ngày càng ít giúp bạn có thể tỉnh táo hơn, nếu như ngày nào bạn cũng uống.

Tốt hơn là bạn chỉ nên uống ly cà phê sáng vào những lúc mà bạn cảm thấy thực sự mệt mỏi và cần một chút trợ giúp. Có lẽ những lúc bạn cần thức khuya hoặc cần thức dậy sớm và làm xáo trộn thói quen ngủ đều đặn của bạn, thì đó là lúc bạn nên có một tách cà phê.

14. Thở sâu

Điều đầu tiên bạn nên làm vào buổi sáng đó là làm một vài hơi thở thật sâu cho tới tận dạ dày (bao tử) và tập trung vào việc thức dậy. Hãy tưởng tượng bạn đang thở trong một thứ ánh sáng trắng rực rỡ sẽ khiến cho cơ thể của bạn cảm thấy hạnh phúc và thanh thoát.

15. Có một công việc gì đó hào hứng để làm

Nếu bạn thức dậy và nhảy vào một công việc bạn ghét phải làm cùng với một ông chủ luôn khiến bạn phát khùng, thì bạn sẽ không thực sự muốn thức dậy nữa. Tuy nhiên, nếu bạn có một điều gì đó mà bạn thích thú đang chờ đợi thì bạn sẽ thích thức dậy một cách hạnh phúc vì biết rằng bạn đang có một điều thú vị đang chờ đợi mình.

Nếu bạn không thể thoát khỏi lão sếp kinh khủng của mình thì bạn nên dành thời gian vào buổi sáng sớm để tham gia một vài hoạt động thể thao giúp cho bạn vui vẻ. Hãy bắt đầu ngày mới của bạn cùng với một điều gì đó vui vẻ và hạnh phúc trước khi bắt đầu công việc của mình.

16. Thức dậy dứt khoát

Khi tôi đi du lịch qua dãy núi Hy Mã Lạp Sơn ở Ấn Độ, tôi đã gặp một vị thiền sư thông tuệ và ông ta đã nói với tôi rằng, một trong những điều tốt nhất bạn có thể làm để có thể thức dậy sớm và cảm thấy tỉnh táo, sảng khoái đó là vùng dậy một cách dứt khoát. Ngay khi chuông đồng hồ báo thức của bạn kêu lên thì bạn nên thức dậy luôn mà đừng có nằm ngủ rốn để ngáy khò khò chút nào nữa.

Ông ta nói với tôi bằng một giọng nửa đùa rằng: “Bạn phải thức dậy trước khi cơ thể của bạn làm điều đó”.

17. Hãy biết ơn vì mình vẫn còn sống

Đức Phật đã nói rằng mỗi khi bạn đi ngủ thì bạn hãy xem như rằng mình sẽ không còn thức dậy nữa. Theo đó, khi bạn thức dậy thì bạn sẽ vô cùng biết ơn vì bạn còn được sống thêm một ngày. Thay vì xem ngày mới là một gánh nặng mà bạn phải “trải qua” thì bạn sẽ nhìn thấy nó là một cơ hội để làm một điều gì đó có ý nghĩa và ích lợi.

Tại sao ư? Bởi vì ai mà biết được, bạn cũng có thể chết vào tối nay cũng nên.

Khi áp dụng đúng đắn sự nhận thức này thì nó sẽ mang lại cho bạn một nguồn năng lượng rất lớn.

Kết luận về việc thức dậy một cách sảng khoái

Đối với mỗi một bí quyết kể trên, thì tôi đã thử áp dụng nó cho chính mình cũng như những người bạn của tôi. Và điều lớn nhất đó là bạn càng áp dụng nhiều bí quyết đó thì bạn sẽ càng cảm thấy sảng khoái hơn khi thức dậy mỗi sáng. Hãy thử áp dụng chúng nhé!

Nếu bạn có những bí quyết khác thì hãy bổ sung vào phần bình luận phía dưới nhé! Tôi rất muốn được nghe về chúng!

Nguồn bài viết: Hồ Sỹ Hùng, blog công nghệ vinacode.net. Bài viết đã được sự cho phép chia sẻ của tác giả bằng email.

Là người yêu thích công nghệ, mình hay tìm đọc các trang về chia sẻ code, blog viết về công nghệ. Tình cờ đọc được blog của anh Hồ Sỹ Hùng, một developer thế hệ 8x, blog của anh có nhiều bài dịch từ các trang nước ngoài, rất phù hợp với những bạn khả năng Tiếng Anh còn yếu, trong đó có mình. Đây là blog hay cho các bạn là lập trình viên, các bạn quan tâm có thể đọc nhiều bài viết hay của anh tại vinacode.net

Cách thêm site mới vào IIS trên Windows 7, 8, 10

Chào các bạn.

Khi các bạn làm lập trình web, đặc biệt là rất nhiều bạn đang lập trình ASP.NETASP.NET MVC trên Visual Studio, mỗi lần cần phải chạy website lên để kiểm tra thì mất rất nhiều thời gian. Bạn nhấn F5 và chờ đợi. Tâm trạng cực kỳ ức chế. (Nếu máy tính của bạn cấu hình cao, SSD mới, RAM khủng, Core 7 thế hệ mới nhất thì chúc mừng bạn, bạn không cần quan tâm đến việc phải chờ đợi là mấy).

Và một lợi ích khá hay khi bạn dùng IIS để quản lý website của mình, đó là bạn sẽ biết cách chạy thực tế của một trang web như thế nào, sau này khi deploy sản phẩm bạn không cần phải tìm hiểu quá nhiều về nó nữa.

Khi đi demo sản phẩm cho khách hàng, hay demo đồ án, project với giáo viên, bạn không cần mở Visual Studio lên, vẫn demo ngon lành. Nếu có lỗi phần nào, bạn chỉ cần back lại mà không làm gián đoạn việc trình bày. Nếu bạn F5 bằng Visual, và có lỗi, chắc chắn là ấn tượng không được hay cho lắm. (Ở trường mình học, giáo viên không chấp nhận demo sản phẩm bằng việc F5 trong Visual Studio cho các sản phẩm web ASP.NET, phần mềm thì cũng nên đóng gói khi demo)

Với những lý do trên mà mình rất hay khuyên dùng IIS để chạy trang web của bạn. Nếu bạn đã biết làm thế nào để cài đặt IIS trên Windows của bạn, thì trong bài viết này hướng dẫn bạn cách thêm Site mới vào IIS.

Bài viết liên quan: Hướng dẫn cài đặt IIS trên Windows 7, 8, 10

Đầu tiên đây là dự án của tôi. Bình thường tôi dùng F5 để show kết quả, hoặc R_Click vào file nào đó chọn View in Browser (Ctrl + Shift + W). Bây giờ tôi không muốn thế nữa, nó trông không được chuyên nghiệp cho lắm, trừ khi bạn bắt buộc phải Debug.

add-site-vao-iis-2

[Hình 1 – Dự án website ASP.NET MVC]

Tôi cần xác định xem mình đang lưu code đó ở đâu? Ok, tìm thấy rồi

add-site-vao-iis-3

[Hình 2 – Thư mục chứa code của dự án Website]

Tiếp theo tôi sẽ mở IIS lên. Bạn có thể gõ IIS vào ô search tìm kiếm cho nhanh. Nếu không tìm thấy, hãy thử kiểm tra lại nhé, tôi có link cho bạn đây: http://tuanitpro.com/huong-dan-cai-dat-iis-tren-windows-7-8

add-site-vao-iis-1

[Hình 3 – Giao diện màn hình quản lý IIS]

Tôi đăng ký phiên bản của .NET cho Application Polls. Nếu bạn không tìm thấy dòng .NET CLR Version như bên dưới, hoặc chỉ có version 2.0 thì xem qua bài viết này nhé, http://tuanitpro.com/iis-7-5-error-handler-pagehandlerfactory-integrated

add-site-vao-iis-5

[Hình 4 – Đăng ký Application Polls IIS]

OK rồi. Qua Tab Sites

Chọn Sites -> Add Website, sau đó Nhập tên Website của bạn, nhấn Select chọn Application Poll. Tôi dùng MVC 5 nên chọn .NET 4.5

Trên dòng Physical path: Bạn chọn tới đường dẫn chứa thưa mục Web của bạn, chắc chắn có file Web.config với các ứng dụng web ASP.NET , bạn xem lại hình 2 của tôi nhé.

add-site-vao-iis-6

[Hình 5 – Thêm site mới vào IIS]

Nhấn OK, đây là màn hình quản lý riêng của Site tôi mới thêm vào.

add-site-vao-iis-7

[Hình 6 – Giao diện màn hình quản lý của Site Demo]

Cuối cùng, đây là kết quả của tôi.

add-site-vao-iis-8

[Hình 7 – Tân hưởng kết quả]

Chúc các bạn thành công.

Hướng dẫn cài đặt IIS trên Windows 7, 8, 10

IIS (Internet Information Services) là dịch vụ WebServer trên Windows (có mặt trên các phiên bản khác nhau, XP, Vista, Windows 7, 8, Windows Server). Mặc định hệ thống đã ẩn chức năng đó đi. Tuy nhiên chúng ta hoàn toàn dễ dàng kích hoạt nó lên để sử dụng. Ở đây hướng dẫn các bạn cách bật IIS trên Windows 8, 8.1 (Windows 7 tương tự) để chạy các ứng dụng ASP.NET, ASP.NET MVC.

Các bước để cài đặt IIS trên Windows 8, Windows 10

Trên thanh Charm chọn Search, chọn Setting gõ Programs and Features

tuanitpro.com-cai-dat-iis-buoc-1

Trong cửa sổ Programs and Features Click Turn Windows features on or off

tuanitpro.com-cai-dat-iis-buoc-2

Mở rộng Internet Information Service. Trong đó có 3 phần, bạn chỉ cần quan tâm Web Management Tools & World Wide Web Services. Mở rộng 2 nhánh này và tick chọn vào checkbox. (Mẹo: nên chọn hết để sau này khỏi mất công đôi khi không chạy)

tuanitpro.com-cai-dat-iis-buoc-3

Nhấn OK và chờ vài phút để hệ thống cập nhật lại. Khởi động lại máy tính của bạn nếu cần.

tuanitpro.com-cai-dat-iis-buoc-4

Bạn mở trình duyệt lên gõ: http://localhost hoặc http://127.0.0.1. Nếu trình duyệt xuất hiện màn hình như dưới đây thì xin chúc mừng, bạn đã cài đặt thành công. (Hình bên dưới là IIS 8.5 trên Windows 8.1, của bạn có thể khác một chút)

tuanitpro.com-cai-dat-iis-buoc-5

Để khởi động IIS, vào ô Search gõ IIS

tuanitpro.com-cai-dat-iis-buoc-6

tuanitpro.com-cai-dat-iis-buoc-7

Chúc các bạn thành công.

Hướng dẫn Cách thêm site mới vào IIS

Upload file trong ASP.NET

Khi lập trình web chúng ta hay gặp các tình huống cần phải upload một file nào đó lên hosting. Dễ thấy nhất là upload hình đại điện cho sản phẩm.

Đoạn code nhỏ cho phép bạn Upload file trong ASP.NET

Giao diện

Tạo trang HTML code

Code Upload trang .cs

Kết quả