Page 42 - Ký sự code dạo
P. 42

LẬP	TRÌNH	VIÊN	ĐÂU	PHẢI	CHỈ	BIẾT	CODE



                                  LUẬN	VỀ	TECHNICAL	DEBT	–	NỢ	KIẾP	NÀY,	DUYÊN	KIẾP
                                                            TRƯỚC

                             Technical	Debt	(Nợ	kĩ	thuật)	là	một	món	nợ	mà	hầu	như	lập	trình	viên
                             nào	cũng	phải	gánh	trong	quá	trình	làm	việc.	Hẳn	bạn	sẽ	thắc	mắc:	Hầu
                             hết	lập	trình	viên	chúng	ta	đều	là	những	con	người	siêng	năng	chăm
                             chỉ,	không	cờ	bạc	gái	gú,	hết	giờ	làm	là	đi	nhậu	rồi	mát	xa	…	à	không,	về
                             nhà	với	vợ	con.	Chúng	ta	không	vay	mượn	ai	bao	giờ	thì	làm	sao	có
                             nợ???

                             Muốn	biết	câu	trả	lời,	hãy	đọc	kĩ	bài	viết	này	để	tìm	hiểu	thêm	về
                             Technical	Debt	nhé!	Đây	là	một	khái	niệm	khá	quan	trọng	đấy.

                             Technical	Debt	là	gì?

                             Khái	niệm	này	được	đưa	ra	bởi	Ward	Cunningham	(Cha	đẻ	của	wiki
                             đầu	tiên).	Trong	cuộc	sống,	đôi	khi	bạn	sẽ	phải	mượn	tiền	để	xài	trước,
                             sau	đó	cày	cuốc	trả.	Số	tiền	này	được	gọi	là	nợ.	Trong	lập	trình	cùng
                             thế,	đôi	khi	ta	chọn	cách	giải	quyết	“mì	ăn	liền”,	giải	quyết	được	vấn	đề
                             ngay,	nhưng	sẽ	gây	khó	khăn	cho	quá	trình	phát	triển	và	bảo	trì	về
                             sau.	Mỗi	lần	như	vậy,	ta	tạo	thêm	một	khoản	“nợ	kĩ	thuật”	cho	dự	án.

                             Technical	Debt	ban	đầu	rất	ít,	nhưng	theo	quá	trình	code	thì	càng	ngày
                             nó	càng	nhiều	lên,	trở	thành	nợ	nần	chồng	chất.	Một	số	ví	dụ:
                                 •  Để	tái	sử	dụng	code	đã	viết,	ta	copy	và	paste	code	và	sửa	đôi
                                     chút	 (thay	 vì	 phải	 tách	 thành	 module	 riêng).	 Cách	 làm	 này
                                     nhanh,	nhưng	khi	có	bug	thì	sửa…	hộc	máu	vì	code	được	copy
                                     ở	nhiều	chỗ.
                                 •  Khi	có	requirement	mới,	thay	với	thiết	kế	code	cho	dễ	mở	rộng,
                                     ta	viết	thêm	hàm	if.	Cách	này	nhanh,	nhưng	nếu	mở	rộng	nhiều
                                     thì	code	sẽ	có	một	đống	if.
                                 •  Có	bug	khủng	liên	quan	tới	kiến	trúc	hệ	thống,	thay	vì	fix	bug
                                     và	refactor	thì	ta	try/catch	nuốt	lỗi	và	fix	tạm	ở	phần	ngọn,	gọi
                                     là	hotfix.

                             Technical	Debt	là	điều	tất	yếu	trong	quá	trình	code.	Mỗi	quyết	định	ta
                             đưa	ra	trong	lúc	code	đều	làm	tăng	số	nợ	này	lên.	Điều	quan	trọng
                             là	mượn	xong	thì	phải	trả,	nếu	để	lâu,	techinical	debt	tích	luỹ	sẽ	gây	ra
                             nhiều	hậu	quả	nguy	hiểm	khôn	lường.




                                                                40
   37   38   39   40   41   42   43   44   45   46   47