Architecture, Tản mạn, Uncategorized

Em muốn trở thành kiến trúc sư

Mình muốn kể cho mọi người nghe một câu chuyện là cuộc đối thoại ngắn giữa một anh chàng Developer trẻ và 1 anh Architect. Cậu ta đến gặp anh kiến trúc sư và tâm sự là muốn trở thành 1 kiến trúc sư như anh. Sau này em cũng muốn trở thành 1 Software… Continue reading Em muốn trở thành kiến trúc sư

Design Pattern, Java, OO Design Principles, Programming Tutorial

Avoid NullPointerException in Java

I would like to share with you some tips to deal/prevent NPE in your code: The BIG IMPORTANT rule: do NOT assign / pass / return null value and keep your code as cohesive as possible. Programming tips / techniques: 1. Return an empty collections instead of null. For example: List: Set: Map: 2. Return… Continue reading Avoid NullPointerException in Java

Experience, OO Design Principles, TDD

Technical Debt và Legacy System

Technical debt - tạm dịch là "Khoản nợ kỹ thuật" được dùng nhiều trong Software Engineering. Theo Henrik Kniberg, những khoản nợ kỹ thuật là bất cứ thứ gì trong việc viết mã khiến bạn chậm lại về lâu dài. Ví dụ như là mã khó đọc, thiếu (hoặc không có) kiểm thử tự động,… Continue reading Technical Debt và Legacy System

Design Pattern, OO Design Principles

Những nguyên tắc, những định luật của lập trình mà chúng ta nên có sẵn trong đầu

Nguồn : http://qiita.com/hirokidaichi/items/d6c473d8011bd9330e63 Người dịch : Phan Hoàng Minh (https://viblo.asia/minhp/posts/wpVYRP2kG4ng) Nguyên tắc Demeter Còn có tên gọi khác là nguyên tắc “càng biết ít càng tốt”. Demeter là tên gọi của Nữ thần nông nghiệp, cũng là nữ thần phân phát trong thần thoại Hi Lạp. Tên bà được dùng để đánh dấu sự ra… Continue reading Những nguyên tắc, những định luật của lập trình mà chúng ta nên có sẵn trong đầu

OO Design Principles

Write Private Functions Not Private Methods

From http://pivotallabs.com/write-private-functions-not-private-methods/ Jared Carroll Sunday, June 30, 2013 Khi một class có quá nhiều private method (được gọi là "Lớp tảng băng trôi" - Iceberg class) thì đó là dấu hiệu cho biết class đó có thể đang làm hơn 1 nhiệm vụ (responsibility). Vì vậy việc tách (extract) những private method đó ra class khác giúp lớp… Continue reading Write Private Functions Not Private Methods

OO Design Principles

From Primitive Obsession to Domain Modelling

From http://blog.ploeh.dk/2015/01/19/from-primitive-obsession-to-domain-modelling/ A string is sometimes not a string. Model it accordingly. Recently, I was reviewing some code that looked like this: There was a few things with this that struck me as a bit odd; most notably the use of IsNullOrWhiteSpace. When I review code, IsNullOrWhiteSpace is one of the many things I look for,… Continue reading From Primitive Obsession to Domain Modelling

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