Tag Archives: solid

Code bạn viết ra sẽ méo bao giờ hoàn hảo hoặc hoàn toàn clean – But that’s okay!

Nếu chăm chỉ đọc blog của mấy developer giỏi và nổi tiếng (như Uncle Bob, Martin Fowler, John Skeet), các bạn sẽ thấy họ có rất nhiều guideline để viết code cho tốt:

  • Sử dụng nguyên lý SOLID để code tách bạch, rõ ràng, dễ sửa chữa
  • Sử dụng Seperation of Concern và các mô hình phổ biến như MVC, MVVM để phân tách code thành nhiều thành phần nhỏ, dễ quản lý
  • Áp dụng design pattern để giải quyết các vấn đề trong code
  • Viết code phải viết thêm test để đảm bảo code chạy đúng

Làm và áp dụng theo những guideline này, chúng ta có thể có code… đúng chuẩn (có thể thôi nhé).

 

Tuy nhiên, trên thực tế, đa phần code trong các dự án đều khá … tởm. Code không có architecture rõ ràng, không có design pattern, viết cẩu thả. Nhiều khi đọc code xong, ta chỉ muốn đập đi xây lại, viết lại cho… đúng chuẩn.

Tuy nhiên, đã bao giờ bạn tự hỏi: Liệu viết code SOLID, chuẩn này chuẩn kia, DI/IoC đồ có thật sự làm code tốt lên hay không? Liệu ta có nên đảm bảo code viết ra phải cực kì hoàn hảo, phải có trật tự?

Continue reading Code bạn viết ra sẽ méo bao giờ hoàn hảo hoặc hoàn toàn clean – But that’s okay!

Advertisements

Những điều hay ho mình được học hỏi từ đồng nghiệp – Phần 1: FPT Software và Aswig Solution

Khi đi làm, vào một công ty, tiếp xúc với nhiều dự án, các bạn sẽ học hỏi được rất nhiều thứ. Dù bạn có là junior gà mờ, hoặc là senior dày dặn kinh nghiệm, bạn đều sẽ học được rất nhiều điều hay ho từ các bác đàn anh, đồng nghiệp.

Mình may mắn được làm việc chung mới nhiều người giỏi, nhiều kinh nghiệm hơn mình. Có người mình làm chung chỉ vài tháng, người thì hơn một năm.

Dù ít dù nhiều, họ đều có những điều hay cho mình học hỏi, giúp mình nâng cao khả năng lập trình, nhận ra những điều quan trọng trong ngành IT.

Có thể nói, nếu không có những người như vậy, mình sẽ không có đủ tự tin và hiểu biết như mình bây giờ.

Do vậy, mình viết bài này, vừa tâm sự, vừa tri ân những người đàn anh/đồng nghiệp đã giúp mình trở thành con người như bây giờ.

Bài dài nên mình tách làm 2 phần cho các bạn đọc dần nhe!

Continue reading Những điều hay ho mình được học hỏi từ đồng nghiệp – Phần 1: FPT Software và Aswig Solution

Series SOLID cho thanh niên code CỨNG: Dependency Inversion Principle

Giới thiệu

Chào mừng các bạn đến với bài viết cuối cùng trong series SOLID. Ở bài viết này, mình sẽ nói về Dependency Inversion Principle – Nguyên lý Đảo Ngược Dependency.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý

1. Các module cấp cao không nên phụ thuộc vào các module cấp thấp. Cả 2 nên phụ thuộc vào abstraction.
2. Interface (abstraction) không nên phụ thuộc vào chi tiết, mà ngược lại. (Các class giao tiếp với nhau thông qua interface, không phải thông qua implementation.)

dependency_inversion_principle_thumb

Continue reading Series SOLID cho thanh niên code CỨNG: Dependency Inversion Principle

Series SOLID cho thanh niên code CỨNG: Interface Segregation Principle

Giới thiệu

Đây là đây là bài viết thứ tư trong series “SOLID cho thanh niên code cứng”. Ở bài viết này, mình sẽ nói về Interface Segregation Principle – Nguyên lý phân tách interface.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ, với nhiều mục đích cụ thể

interface_segregation_principle_thumb

Continue reading Series SOLID cho thanh niên code CỨNG: Interface Segregation Principle

Tổng hợp những series/bài viết hay nhất trên blog

Blog này mình viết cũng được một khoảng thời gian kha khá rồi. Với tiến độ đều đặn 2 bài/tuần, số lượng bài viết hiện tại đã lên tới con số hơn 300 bài. Để các bạn khỏi tốn công đào mộ và lục tìm, mình viết bài này tổng hợp lại những bài viết hay nhất của blog từ trước đến nay. Các bạn có thể xem bài viết này bằng cách bấm vào tab “Bài viết hay” trên menu nhé.

book.jpg

Phần lớn những bài viết này đã được tổng hợp và biên tập trong cuốn sách “Code dạo kí sự – Lập trình viên đâu phải chỉ biết code“. Quyển sách bao gồm những kĩ năng từ mềm đến cứng mà mỗi developer phải có, đảm bảo sẽ rất có ích cho các bạn sinh viên hoặc lập trình viên đã đi làm. Các bạn xem thông tin và đặt mua sách tại đây nhé: Sách Code Dạo Ký Sự.

Ngày cập nhật: 11/11/2017 (Cập nhật 3 tháng/lần).

Continue reading Tổng hợp những series/bài viết hay nhất trên blog

Series SOLID cho thanh niên code CỨNG: Liskov substitution principle

Giới thiệu

Đây là đây là bài viết thứ 3 trong series “SOLID cho thanh niên code cứng”. Ở bài viết này, mình sẽ nói về Liskov Substitution Principle – Nguyên lý Thay Thế Lít Kốp (LSP).

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Trong một chương trình, các object của class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình

Continue reading Series SOLID cho thanh niên code CỨNG: Liskov substitution principle

Series SOLID cho thanh niên code CỨNG: Open/Closed Principle

Giới thiệu

Đây là đây là bài viết thứ 2 trong series SOLID cho thanh niên code cứng. Ở bài viết này, mình sẽ nói về Open/Closed Principle – Nguyên lý Đóng Mở.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Chiều dài váy con gái nên đủ ngắn để khơi MỞ tính tò mò của con trai, nhưng nên đủ dài để ĐÓNG lại những suy nghĩ đen tối của bọn nó.

Continue reading Series SOLID cho thanh niên code CỨNG: Open/Closed Principle