Tag Archives: programming

Series C# hay ho: C# đã tiến hóa như thế nào (Những thay đổi của C# từ 1.0 cho tới 5.0)

Chẳng là gần đây, công ty mình vưa tuyển thêm 1 anh Technical Lead. Đợt mình hỏi ông leader phỏng vấn thế nào, ổng nhận xét “Kiến thức base C# khá vững, nói được những thay đổi của C# từ 1.0 tới 5.0”. Mặc dù mình chỉ là junior dev nhưng mình thấy phần này không khó, do lỡ tìm hiểu rồi nên post bài này chia sẻ cho các bạn luôn. Kiến thức ở bài viết này khá có ích, thích hợp đem đi chém gió, phỏng vấn hoặc hù mem mới.

Lưu ý nhỏ: C# thường được release với .NET. C# là ngôn ngữ lập trình, còn .NET là 1 thư viện/framework (Ta có VB.NET, F#, ASP.NET v…v). Trong phạm vi bài viết, mình chỉ đề cập vê những thay đổi trong bản thân ngôn ngữ C#, không giới thiệu những công nghệ mới qua từng phiên bản .NET như EF, WIF, v…v nhé. Có một số phần mình đã viết rồi, chỉ dẫn link tới bài viết cũ nhé.

Continue reading Series C# hay ho: C# đã tiến hóa như thế nào (Những thay đổi của C# từ 1.0 cho tới 5.0)

Advertisements

Cột mốc 1000 view – Lời cảm ơn chân thành đến bạn đọc và mọi người

Mình bắt đầu viết blog này vào ngày 31/12 năm trước, bắt đầu bằng bài viết về bản thân và giới thiệu blog. Đây là bài viết thứ 28 của blog này, đánh dấu lượt view thứ 1000.

https://toidicodedao.com/2014/12/31/gioi-thieu/

Đẹp trai nhất, ngoài cùng bên phải

Từ đó tới nay tính ra đã được 5 tháng, lúc blog đạt được mốc 1000 view vẫn còn là tháng 4, tính ra mình đạt mốc 1000 view sau 4 tháng, không phải quá xuất sắc nhưng cũng không đến nỗi tồi. Kỉ lục của blog là hơn 100 views/ngày, khi mình post link bài viết về Lambda Expression trên group ASP.NET MVC facebook.

Continue reading Cột mốc 1000 view – Lời cảm ơn chân thành đến bạn đọc và mọi người

Áp dụng LINQ trong javascript, chuyện nhiều người chưa biết

Như mình đã nói trong loạt bài: Học ngôn ngữ lập trình nào bây giờ?, hiện tại Javascript đang trở thành 1 trào lưu mới. Gần đây, do đang tự học Node.js nên mình tập trung nghiên cứu javascript nhiều hơn. Vì vậy, trong khoảng thời gian này mình sẽ đăng nhiều bài viết liên quan đến javascript hơn, mong các bạn theo dõi.

Như ở bài viết về LINQ, các bạn đã thấy sự mạnh mẽ và tiện dụng của LINQ trong C# (Java 8 chỉ mới cập nhật Stream API, mà vẫn còn thua LINQ nhiều lắm…). Để sử dụng 1 số hàm tương-tự-LINQ trong javascript, người ta thường dùng 1 số thư viện như: underscore, lodash, … Trong bài viết này, mình sẽ giới thiệu 1 số function (ít người biết) sẵn có trong prototype Array của javascript, cũng có tác dụng tương tự như LINQ.

advanced-javascript-3-638

Continue reading Áp dụng LINQ trong javascript, chuyện nhiều người chưa biết

Review sách: Clean Code: A Handbook of Agile Software Craftsmanship

Hôm nay bỗng dưng không có hứng viết bài về technical, thôi thì lôi đại cuốn này ra review vây. Mình đọc cuốn này trong thời gian còn làm việc ở FPT Software (Làm việc lúc nào cũng dư thời gian nên toàn lôi ebook ra đọc. Cuốn sách này xứng đáng là sách gối đầu giường của mọi developer. Mình khuyên các bạn nên mua bản gốc, 1 là để đọc, 2 là nếu gặp thằng nào code ngu, có thể cầm cuốn này đập vào đầu nó và bắt nó đọc. Continue reading Review sách: Clean Code: A Handbook of Agile Software Craftsmanship

Cột mốc 1000 rep trên stackoverflow – Khoe khoang thành quả và chia sẻ kinh nghiệm

LƯU Ý: ĐÂY LÀ MỘT BÀI VIẾT KHÔNG MANG TÍNH CHẤT TECHNICAL, CHỈ BAO GỒM VÀI LỜI KHOE KHOANG VÀ CHIA SẺ. NẾU CÁC BẠN MUỐN BỔ SUNG KIẾN THỨC, CÓ THỂ BỎ QUA BÀI NÀY VÀ CHỌN ĐỌC MỘT SỐ BÀI VIẾT BỔ ÍCH KHÁC NHƯ: Linq, Mock Data, Mẹo vặt Visual Studio, C# hay ho, … NHÉ.

Phần 1 – Khoe khoang

Đầu tiên, xin khoe cái biểu tượng trên stackoverflow của mình, nó là cái mà stackoverflow gọi là flair. Các bạn nhìn kĩ nhé, là 1200 REP đó (Sau này có thể sẽ tăng thêm).

profile for Huy Hoang Pham at Stack Overflow, Q&A for professional and enthusiast programmersBên trái là avatar của mình (Khá đẹp trai, các bạn không cần khen …). Bên phải là nick stackoverflow, cùng với số rep kiếm được, phía dưới là đống huy hiệu (Tương tự achievement trong game ấy mà).

Continue reading Cột mốc 1000 rep trên stackoverflow – Khoe khoang thành quả và chia sẻ kinh nghiệm

Series C# hay ho: LINQ – Lột mặt nạ sự “bá đạo” của LINQ

1. LINQ có thực sự dễ như ta tưởng?

LINQ không phải là 1 khái niệm xa lạ đối với các C#.NET developer, nhất là những bạn hay làm việc với database (LINQ to SQL). Tuy nhiên, đa phần trong chúng ta đều sử dụng LINQ mà không biết rõ nó hoạt động như thế nào. Chắc ai cũng từng viết những dòng code như sau:

 public class Student
 {
    public string Name { get; set; }
    public int Age { get; set; }
 }
var students = new List<Student>();
var result = students.Where(stu => stu.Age < 20);

Dòng code rất dễ hiểu, lọc ra những học sinh có số tuổi < 20. Tuy nhiên, liệu bạn có trả lời được những câu hỏi sau:

  1. Dấu “=>” là dấu gì. Toàn bộ cụm “stu => stu.Age < 20” được gọi là gì?
  2. Hàm Where được viết như thế nào, nhận parameter gì vào, trả ra giá trị gì?
  3. Tại sao IDE tại biết stu là 1 Student để có thể nhắc lệnh?
  4. Có thể viết 1 thứ tương tự như LINQ trong javascript không?

Nếu bạn chỉ trả lời đc 1,2 hoặc không trả lời đc câu hỏi nào, bạn chưa thực sự hiểu LINQ. Đừng lo, ngày xưa mình cũng thế. Bài viết này sẽ giúp bạn giải đáp những câu hỏi trên, cũng như hiểu rõ hơn về LINQ. (Đáp án ở cuối bài viết).
Continue reading Series C# hay ho: LINQ – Lột mặt nạ sự “bá đạo” của LINQ

SOLID là gì – Áp dụng các nguyên lý SOLID để trở thành lập trình viên code “cứng”

Trong quá trình học, hầu như các bạn sinh viên đều được học một số khái niệm OOP cơ bản như sau:

  • Abstraction (Tính trừu tượng)
  • Encapsulation (Tính bao đóng)
  • Inheritance (Tính kế thừa)
  • Polymophirsm (Tính đa hình)

Những khái niệm này đã được dạy khá rõ ràng, và hầu như những buổi phỏng vấn nào cũng có những câu hỏi liên quan đến khái niệm này. Vì 4 khái niệm này khá cơ bản, bạn nào chưa vũng có thể google để tìm hiểu thêm.

Những nguyên lý mình giới thiệu hôm nay là những nguyên lý thiết kế trong OOP. Đây là những nguyên lý được đúc kết bởi máu xương vô số developer, rút ra từ hàng ngàn dự án thành công và thất bại. Một project áp dụng những nguyên lý này sẽ có code dễ đọc, dễ test, rõ ràng hơn. Và việc quan trọng nhất là việc maintainace code sẽ dễ hơn rất nhiều (Ai có kinh nghiệm trong ngành IT đều biết thời gian code chỉ chiếm 20-40%, còn lại là thời gian để maintainance: thêm bớt chức năng và sửa lỗi).  Nắm vững những nguyên lý này, đồng thời áp dụng chúng trong việc thiết kế + viết code sẽ giúp bạn tiến thêm 1 bước trên con đường thành senior nhé (1 ông senior bên FPT Software từng bảo mình thế).

Continue reading SOLID là gì – Áp dụng các nguyên lý SOLID để trở thành lập trình viên code “cứng”