THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 158

Ph l c C: Phát tri n ch

ng

ụ ụ

ươ trình

Tr v

ở ề M c l c

ụ ụ cu n sách

C.1 Các chi n l

c

ế ượ

Trong cu n sách tôi đã trình bày nh ng chi n l

c khác nhau đ phát tri n ch

ng trình, b i v y gi

ế ượ

ươ

ở ậ

đây tôi mu n t p h p chúng l i. N n t ng c a t t c chi n l

c này cùng là

ố ậ

ế ả

ủ ấ ả

ế ượ

phát tri n tăng d n

, v n

nh sau:

ư

1.L y đi m kh i đ u là ch

ng trình ch y đ

c, ch th c hi n m t đ ng tác d th y, ch ng h n in d

ở ầ

ươ

ượ

ỉ ự

ộ ộ

ễ ấ

li u nào đó.

2.M i lúc ch b sung thêm m t ít dòng l nh, và c thay đ i m t l n l i ph i ki m tra ch

ng trình.

ỉ ổ

ộ ầ ạ

ươ

3.L p l i công đo n đ n khi ch

ng trình th c hi n đ

c vi c d ki n.

ặ ạ

ế

ươ

ượ

ệ ự ế

Sau m i thay đ i, ch

ng trình ph i cho k t qu nhìn th y đ

c đ ki m tra đo n mã l nh m i b sung.

ươ

ế

ượ ể ể

ớ ổ

Cách ti p c n l p trình nh th này có th ti t ki m cho ta nhi u th i gian.

ế ậ ậ

ư ế

ể ế

B i m i lúc b n ch thêm có m t vài dòng l nh, nên r t d tìm ra các l i cú pháp. Và vì m i phiên b n

ấ ễ

ch

ng trình l i t o nên k t qu nhìn th y đ

c, nên b n liên t c ki m tra mô hình nh n th c c a mình

ươ

ạ ạ

ế

ượ

ứ ủ

v cách ch

ng trình ho t đ ng. N u mô hình nh n th c b sai, b n s đ i m t v i mâu thu n (và có c

ươ

ạ ộ

ế

ứ ị

ạ ẽ ố

ặ ớ

ơ

h i s a ch a mô hình đó) tr

c khi vi t ra nhi u dòng l nh sai.

ộ ử

ướ

ế

Th thách c a vi c phát tri n tăng d n là không d hình dung ra con đ

ng d n t kh i đi m đ n ch

ườ

ẫ ừ

ế

ch

ng trình hoàn thi n và đún đ n. Đ giúp cho đi u này, có m t vài chi n l

c ta có th ch n l a:

ươ

ế ượ

ể ọ ự

Đóng gói và khái quát hoá:

N u b n ch a bi t cách chia bài toán thành các ph ng th c, thì hãy vi t mã l nh trong

ế

ư

ế

ươ

ế

main,

r i tìm nh ng bó l nh rõ r t đ gói chúng vào m t ph ng th c, r i khái quát hoá m t cách phù

ệ ể

ươ

h p.

L p nguyên m u nhanh:

N u b n đã bi t c n vi t ph ng th c gì, song ch a bi t cách vi t nó th nào, thì hãy b t tay vi t m t

ế

ế ầ

ế

ươ

ư

ế

ế

ế

ế

b n nháp đ x lý tr ng h p đ n gi n nh t, sau đó th nó v i nh ng tr

ng h p khác, v a vi t v a

ể ử

ườ

ơ

ườ

ế ừ

m r ng và s a l i.

ở ộ

ử ỗ

H

ng t d

i lên:

ướ

ừ ướ

B t đ u b ng vi c vi t nh ng ph ng th c đ n gi n, r i ghép chúng l i thành l i gi i.

ắ ầ

ế

ươ

ứ ơ

H

ng t trên xu ng:

ướ

Dùng gi mã đ thi t k c u trúc c a bài toán r i nh n di n nh ng ph ng th c mà b n c n. Sau đó

ế ế ấ

ươ

ạ ầ

vi t các ph ng th c r i thay th gi mã v i mã th t.

ế

ươ

ứ ồ

ế ả

Trong quá trình phát tri n, b n có th c n ph i d ng “dàn giáo”. Ch ng h n, m i l p c n ph i có m t

ể ầ

ả ự

ỗ ớ ầ

ph

ng th c

ươ

ứ toString đ cho phép b n in ra tr ng thái c a m t đ i t ng d i d ng ng i đ c đ c.

ộ ố ượ

ướ ạ

ườ ọ ượ

Ph

ng th c này r t có ích cho vi c g l i, song th

ng không thu c v ch

ng trình hoàn thi n.

ươ

ệ ỡ ỗ

ườ

ộ ề ươ

C.2 Các hình th c th t b i

ấ ạ

N u b n đang ph i m t quá nhi u th i gian vào vi c g l i, có th là do b n đang dùng m t chi n l

c

ế

ệ ỡ ỗ

ế ượ

phát tri n không hi u qu . Sau đây là nh ng hình th c th t b i mà tôi th

ng g p nh t (và cũng đôi khi

ấ ạ

ườ