Craftsmanship

The Solution to Technical Debt

From http://blog.crisp.se/2013/07/12/henrikkniberg/the-solution-to-technical-debt By Henrik Kniberg (related article: Good and Bad Technical Debt – and how TDD helps) (Translations: Russian) Are you in a software development team, trying to be agile? Next time the team gets together, ask: How do we feel about the quality of our code? Everyone rates it on a scale of 1-5, where 5… Continue reading The Solution to Technical Debt

OO Design Principles

Parameter and Return Type Interfaces

From http://brendan.enrick.com/post/Parameter-and-Return-Type-Interfaces Brendan Enrick Thêm 1 ví dụ về Interface Segregation Principle. Trong bài này, tác giả đề cập đến việc áp dụng Interface Segregation Principle cho 2 trường hợp cơ bản nhất là kiểu dữ liệu của tham số (parameter) được truyền vào trong 1 hàm và kiểu dữ liệu của kết quả trả về (return) từ 1… Continue reading Parameter and Return Type Interfaces

Design Pattern, OO Design Principles, Tản mạn

Tản mạn về Dependency Injection

Tản mạn về Dependency Injection Như thường lệ, blog của mình sẽ rất ít các định nghĩa, rất nhiều code, hình ảnh minh họa và những câu nói dí dỏm. OK, hãy bắt đầu với định nghĩa về Dependency Dependency Khi trong class A có sự tồn tại của lớp B, dùng lớp B để… Continue reading Tản mạn về Dependency Injection

Design Pattern, Java, OO Design Principles

Liskov Substitution Principle

Liskov Substitution (LSP) Đây là nguyên lý thứ 3 trong SOLID. Nguyên lý này nói rằng các lớp dẫn xuất phải có thể được thay thế bởi lớp cha. Nguyên lý này được Barbara Liskov đề cập lần đầu tiên trong quyển “Data Abstraction and Hiearchy” xuất bản năm 1988. Xin nói thêm rằng Barbara… Continue reading Liskov Substitution Principle