BỘ NHỚ STACK LÀ GÌ? TẠI SAO LẠI CÓ LỖI STACK OVERFLOW?

Hiểu về Stack để tránh Stack Overflow!Các bạn mới lập trình chắc hay thấy lỗi này, đặc biệt là khi học đến phần đệ quy, vậy bản chất của nó là gì?

☠️☠️☠️ Lưu ý: bài này chỉ dành cho ai muốn hiểu sâu về kỹ thuật – không chỉ định với người thích ăn xổi ☠️☠️☠️

Mỗi chương trình khi được tải vào máy tính để thực thi sẽ được cung cấp một phần bộ nhớ, phần bộ nhớ này sẽ được chia ra làm nhiều loại, với mục đích khác nhau. Một phần sẽ được dùng để chứa mã lệnh, thường thì phần này sẽ chỉ để đọc và chạy các lệnh chứa trong đó, một phần khác lại được dùng để chứa dữ liệu, bạn có thể đọc và ghi thoải mái, nhưng phải xin cấp phát trước khi dùng (malloc, new…) để tránh ghi đè lên dữ liệu của ứng dụng khác (ta hay gọi là bộ nhớ Heap).

Đọc thêm bài con trỏ để hiểu hơn về bộ nhớ máy tính: https://www.facebook.com/namdotnet/posts/1283909971794016

🧨 Còn một phần đặc biệt nữa gọi là bộ nhớ Stack 🧨

Continue reading “BỘ NHỚ STACK LÀ GÌ? TẠI SAO LẠI CÓ LỖI STACK OVERFLOW?”

CÂU CHUYỆN VỀ CON TRỎ (POINTER)

Con trỏ là một khái niệm sử dụng rất nhiều khi học về cấu trúc dữ liệu và giải thuật, phần cây hoặc danh sách liên kết. Ở đây mình sẽ nói sâu vào khái niệm này.(lưu ý đây là bài viết sâu về kỹ thuật nên nếu không hiểu thì hỏi chứ không được phàn nàn sao nó quá khó hiểu nhé 😐)

Continue reading “CÂU CHUYỆN VỀ CON TRỎ (POINTER)”

OOP – chủ đề huyền thoại trong các cuộc phỏng vấn tuyển dụng

Có lẽ các bạn đã từng tham gia phỏng vấn không lạ gì câu hỏi: “Bạn có thể trình bày về lập trình hướng đối tượng được không?”, tại sao nó lại trở thành một chủ đề được quan tâm như vậy? Hãy cùng xem qua những lý do sau nhé.

1. OOP là một cách tư duy: bạn có nhớ lần đầu tiên học về OOP không? Bạn sẽ ngạc nhiên vì sao người ta có thể nghĩ ra những ý tưởng hay đến như vậy, hay đến mức mình làm hoài vẫn không đúng, thậm chí có thể vài năm sau mới nhận ra trước giờ mình toàn làm sai. Cách suy nghĩ của nó khác hoàn toàn với phương pháp lập trình tuyến tính trước đó, và nhờ vậy giúp xây dựng các ứng dụng lớn dễ dàng hơn rất nhiều. Chẳng phải tự nhiên mà hầu hết các nền tảng và ngôn ngữ lập trình hiện tại đều dựa trên, hoặc chí ít là hỗ trợ OOP.

Continue reading “OOP – chủ đề huyền thoại trong các cuộc phỏng vấn tuyển dụng”

Thêm Model

Trong phần này bạn sẽ thêm các lớp để quản lý phim ảnh chứa trong CSDL. Các lớp đó sẽ là phần “model” của ứng dụng ASP.NET MVC.

Bạn sẽ dùng một công nghệ truy cập cơ sở dữ liệu trong .NET Framework được biết đến như Entity Framework để định nghĩa và làm việc với các lớp mô mình này. Entity Framework (hay được gọi ngắn gọn là EF) hỗ trợ một phương thức phát triển được gọi là Code First. Code First cho phép bạn tạo các đối tượng dữ liệu bằng cách viết các lớp đơn giản. (Các lớp này được biết như các lớp POCO, viết tắt từ “plain-old CLR objects”). Bạn có thể tạo luôn CSDL ngay lúc chạy, cho phép bạn phát triển ứng dụng nhanh chóng và sáng sủa.

Continue reading “Thêm Model”

ASP.NET MVC 5: Thêm View

Trong phần này chúng ta sẽ sửa lại lớp HelloWorldController class để dùng các file template cho view nhằm giúp việc tạo phản hồi dạng HTML về cho trình duyệt dễ dàng hơn.

Bạn sẽ tạo một file template sử dụng Razor view engine. Các file view dựa trên Razorcó phần mở rộng .cshtml, và cung cấp một các rõ ràng để tạo ra nội dung HTML sử dụng C#. Razor tối thiểu hóa số ký tự và số lần gõ phím để viết một template, và cho phép việc code nhanh chóng và trôi chảy hơn.

Hiện tại phương thức Index trả về một chuỗi với một thông điệp được hard-coded trong lớp controller. Sửa lại phương thức Index để trả về một đối tượng View, như hình dưới đây:

public ActionResult Index() 
{ 
    return View(); 
}

Phương thức Index ở trên dùng một view template để tạo ra nội dung HTML trả về trình duyệt. Các phương thức của controller (còn gọi là các phương thức action – action method), kiểu như Index ở trên, thông thường sẽ trả về một đối tượng ActionResult, hoặc một lớp thừa kế từ ActionResult, chứ không phải một kiểu nguyên thủy như string.

Continue reading “ASP.NET MVC 5: Thêm View”

ASP.NET MVC 5: Thêm Controller

MVC được viết tắt từ model-view-controller.  MVC là một mẫu thiết kế cho việc phát triển các ứng dụng có kiến trúc tốt, dễ kiểm lỗi và dễ bảo trì. Một ứng dụng MVC chứa các thành phần sau:

  • Models: Là các lớp dùng để biểu diễn dữ liệu và có thể có các phép kiểm tra để đảm bảo dữ liệu chứa trong nó phù hợp với logic của ứng dụng.
  • Views: Các file template dùng để tạo ra nội dung HTML.
  • Controllers: Các lớp xử lý các yêu cầu từ trình duyệt, lấy về các Model, và chọn View tương ứng để trả về cho trình duyệt.

Chúng ta sẽ cùng khám phá các khái niệm này trong loạt bài này và tôi sẽ cho bạn thấy các dùng chúng để xây dựng một ứng dụng.

Continue reading “ASP.NET MVC 5: Thêm Controller”

Bắt đầu với ASP.NET MVC 5

Loạt bài này sẽ hướng dẫn bạn các bước cơ bản để tạo một ứng dụng ASP.NET MVC 5 sử dụng Visual Studio 2013 Preview. Một ứng dụng Visual Web Developer với mã nguồn C# cũng có sẵn để tải về, bạn có thể download tại đây.

Trong loạt bài này bạn sẽ chạy ứng dụng với Visual Studio. Bạn cũng có thể đưa ứng dụng lên Internet nếu triển khai nó đến một nhà cung cấp dịch vụ hosting. Microsoft cũng có cung cấp dịch vụ hosting miễn phí cho 10 web site nếu bạn có một tài khoản Windows Azure dùng thử miễn phí. Loạt bài này được viết bởi Scott Guthrie (twitter @scottgu ), Scott Hanselman  (twitter: @shanselman ), và Rick Anderson.

Bắt đầu

Trước tiên bạn sẽ cần cài đặt Visual Studio Express 2013 Preview for Web hoặc Visual Studio 2013 Preview.

Visual Studio là một trình IDE (trình tích hợp soạn thảo và các công cụ phát triển), cũng giống như bạn dùng Word để viết tài liệu, bạn sẽ dùng một IDE để viết ứng dụng. Trong Visual Studio, có một thanh công cụ dọc phía trên hiển thị một số tùy chọn cho bạn. Ngoài ra còn có một thanh menu cung cấp một cách khác để thực hiện các nhiệm vụ trong IDE (Ví dụ, thay vì chọn New Project từ trang Start, bạn cũng có thể dùng menu và chọ File>NewProject).

Continue reading “Bắt đầu với ASP.NET MVC 5”

Windows 8 Secrets: WinRT, the Windows Runtime

Tuần trước tôi đã có một buổi nói chuyện trước một nhóm người dùng tại khu vực Boston, đây là lần thứ tư kể từ khi bản Windows 8 Developer Preview được phát hành. Không phải tình cờ mà đây là lần thứ tư liên tiếp tôi nói riêng về Windows 8: Mọi người đang bị cuốn hút – và sợ hãi bởi – hệ điều hành tiếp theo của Microsoft theo cách mà họ chưa từng thấy kể từ bản Longhorn (thế hệ Windows Vista và Windows Server 2008), hoặc thậm chí là kể từ Windows 95. Nó là một số thứ thậm chí tôi phải giữ kín trong đầu vì tôi vẫn còn một vài nghi ngờ, mà hầu hết là do Microsoft giữ kín các kế hoạch của họ.

Best Practices for ASP.NET MVC: Controller (Phần 3)

[Bài viết này dựa trên một tài liệu của tác giả Ben Grover (một nhà phát triển cấp cao từ Microsoft). Chúng tôi dự định sẽ đưa những thông tin này vào phần tài liệu MVC 3 trên trang MSDN. Chúng tôi hi vọng được nghe những phản hổi  và mong chờ bất kỳ góp ý nào từ phía các bạn]

Bài viết này giới thiệu một tập các hướng dẫn lập trình nhắm đến các lập trình viên ASP.NET MVC. Tất nhiên, bạn, với tư cách là nhà phát triển sẽ vẫn là người quyết định cuối cùng trong việc chọn hướng dẫn nào phù hợp nhất.

Continue reading “Best Practices for ASP.NET MVC: Controller (Phần 3)”

Best Practices for ASP.NET MVC: View (Phần 2)

[Bài viết này dựa trên một tài liệu của tác giả Ben Grover (một nhà phát triển cấp cao từ Microsoft). Chúng tôi dự định sẽ đưa những thông tin này vào phần tài liệu MVC 3 trên trang MSDN. Chúng tôi hi vọng được nghe những phản hổi  và mong chờ bất kỳ góp ý nào từ phía các bạn]

Bài viết này giới thiệu một tập các hướng dẫn lập trình nhắm đến các lập trình viên ASP.NET MVC. Tất nhiên, bạn, với tư cách là nhà phát triển sẽ vẫn là người quyết định cuối cùng trong việc chọn hướng dẫn nào phù hợp nhất.

Continue reading “Best Practices for ASP.NET MVC: View (Phần 2)”