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

Advertisements

Một lần theo chân team đi tiếp thị, quảng cáo, và… code dạo

Như mình đã kể ở vài bài trước, hiện mình đang là UX Developer cho team iLancaster, chịu trách nhiệm phát triển app di động cho Đại học Lancaster. Dạo gần đây, app này đang mở rộng đối tượng người dùng, không chỉ phục vụ cho sinh viên/học sinh mà còn hướng tới toàn bộ dân cư của khu Lancaster nho nhỏ này nữa. Thế là, bác Brian trưởng nhóm liên hệ với đội “Campus in the City”, đội quảng cáo/PR của trường để tổ chức 1 cái event nho nhỏ nhằm giới thiệu app và lấy ý kiến của người dùng.

Event bắt đầu lúc 9h sáng tới hơn 4h chiều. Lúc ra đến nơi, chưa thấy ai giao việc nên mình nhảy vào sắp xếp dọn dẹp phụ luôn. Event nhỏ mà họ chuẩn bị cũng khá kĩ càng, nào poster, banner, slide, rồi cả leaflet mang về nữa.

Photo 3-18-16, 9 59 02 AM
Mỗi người được phát một cái áo xanh xanh của team để mặc. Mình tranh thủ ra tự sướng một tấm trước.

Continue reading Một lần theo chân team đi tiếp thị, quảng cáo, và… code dạo

Series SOLID cho thanh niên code CỨNG: Single Responsibility Principle

Cách đây khá lâu, mình đã có một bài viết tổng quát về SOLID Principle, những nguyên lý thiết kế OOP. Nhắc lại một chút cho các bạn đã quên.

Đâ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.

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ế).

SOLID bao gồm 5 nguyên lý dưới đây:

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

keepcalm

Continue reading Series SOLID cho thanh niên code CỨNG: Single Responsibility Principle

Nhân chuyện Formosa và cá chết, bàn về những đánh đổi trên con đường lập trình

Lời tựa

Cách đây 2 ngày, bác giám đốc đối ngoại nhà máy Formosa đã phát ngôn một câu xanh rờn:

Không thể được cả 2, phải chọn hoặc nhà máy, hoặc cá tôm!!

Cả cộng đồng mạng dậy sóng, người thì tức tối, kẻ thì phẫn nộ, có đứa chỉ cười nhạt. Tuy thế, câu phát ngôn trên lại làm mình nhớ tới một câu danh ngôn đọc được đã lâu:

Cuộc sống là một chuỗi những đánh đổi và lựa chọn.

Câu danh ngôn đó đã thôi thúc mình viết bài viết này. Trong cuộc sống nói chung cũng như trong sự nghiệp nói riêng, đôi khi bạn phải đưa ra lựa chọnchấp nhận đánh đổi, vì ta không thể có được tất cả những thứ ta muốn. Trong phạm vi bài viết, mình sẽ nêu một số đánh đổi các bạn sẽ gặp phải và phân tích những lợi/hại của nó.

IMG_0479

Continue reading Nhân chuyện Formosa và cá chết, bàn về những đánh đổi trên con đường lập trình

Code trên “chín tầng mây” cùng Cloud 9 IDE

Tại sao phải dùng IDE trên mây???

Đã bao giờ các bạn gặp trường hợp muốn code mà… không code được chưa? Để có thể code đàng hoàng, ta cần một máy tính bàn (hoặc laptop) code cài đầy đủ tool và có code. Bạn nghĩ rằng để code được cần cài gì? Xin thưa, máy của một developer thường có các đủ thứ hầm bà lằng sau: IDE (Eclipse, Visual Studio), SVN, Notepad++, Git, Node.js, Database (SQL, MongoDB), ….

Đấy mới chỉ là IDE, chưa nói đến code! Code để trong máy thì đi đâu cũng phải cầm máy theo. Bạn nào cẩn thận thì code xong commit lên github rồi mượn máy khác code. Tuy nhiên, khi có máy mới, ta cũng phải ráng cài đặt đầy đủ mấy thứ hầm bà lằng phía trên, rồi mới lấy code về code tiếp được.

Continue reading Code trên “chín tầng mây” cùng Cloud 9 IDE

Thay lời muốn nói – gởi tới những người thân yêu của mỗi lập trình viên

Lời dẫn (cho người thân yêu của một lập trình viên nào đó)

Chào bạn.

Có thể bạn thấy bài viết này trên timeline của một người bạn nào đó. Hoặc có thể bạn được người yêu/bạn bè/con cái gửi bài viết này cho đọc.

Đây là một bài viết về những người làm trong ngành lập trình này. Đằng sau vẻ ngoài hào nhoáng (việc nhẹ lương cao), ngành lập trình luôn có những cái khổ riêng, không biết chia sẻ với ai. Như tựa đề, bài viết này nói hộ nỗi lòng của các lập trình viên, những điều họ muốn nói mà không biết chia sẻ cùng ai.

Nếu bạn được một lập trình viên gửi bài viết này, hãy biết rằng bạn được gửi bài viết này vì bạn là một người thân thương quan trọng đối với lập trình viên đó. Hãy cố gắng đọc hết bài viết để có thể dễ dàng thấu hiểu và cảm thông với họ hơn nhé. Continue reading Thay lời muốn nói – gởi tới những người thân yêu của mỗi lập trình viên

Series Phản Phác Quy Chân – Điều gì ngăn cản bạn đạt cảnh giới tối cao trong “code học”?

Chuyện ngày xưa

Đã từng có thời, code là một việc cực kỳ mệt nhọc và nhàm chán.

Đã từng có thời, lập trình việc phải làm việc với từng byte từng bit một.

Đã từng có thời, code phải được viết ra giấy, đóng thành thẻ rồi đút vào máy.

Đã từng có thời, ta phải mất cả năm trời để tạo giao diện, quản lý bộ nhớ, viết một chương trình đơn giản.

FortranCardPROJ039.agr
Ngày xưa, mấy bác lập trình viên code bằng cách “đóng lỗ” lên mấy tấm thẻ như thế này

Continue reading Series Phản Phác Quy Chân – Điều gì ngăn cản bạn đạt cảnh giới tối cao trong “code học”?