Tham khảo Để biết chi tiết
về sự lặp lại, xem Phần
34.8, "lặp, Liên tiếp,
lần nữa và lần nữa, "sau này trong
chương này.
Low cấp xử lý vấn đề, quá. Nếu bạn làm theo các quá trình viết mã giả và
sau đó điền vào các mã trên mã giả, bạn gặt hái những lợi ích của thiết kế
từ trên xuống. Bạn cũng sẽ được bảo đảm để có ý kiến trong các mã mà không cần phải
để đặt chúng vào sau đó.
Quan sát quá trình lớn và quy trình nhỏ có nghĩa là ngừng lại để chú ý đến cách
bạn tạo ra phần mềm. Đó là thời gian cũng chi tiêu. Nói rằng "mã là những gì quan trọng; bạn phải
tập trung vào cách tốt mã là, không phải một số quá trình trừu tượng "là thiển cận và bỏ qua
núi bằng chứng thực nghiệm và thực tế ngược lại. Phát triển phần mềm
là một bài tập sáng tạo. Nếu bạn không hiểu được quá trình sáng tạo, bạn sẽ không nhận được
nhiều nhất của các công cụ chính mà bạn sử dụng để tạo ra các phần mềm của bạn não. Một quá trình xấu lãng phí
chu kỳ não của bạn. Một quy trình tốt thúc đẩy họ để tận dụng tối đa.
34,3 Viết chương trình cho dân đầu tiên, máy tính thứ hai
chương trình n của bạn. Một mê cung của các phi khập khiễng rải rác với các thủ đoạn thông minh-minh và
luận không thích hợp. So sánh CHƯƠNG TRÌNH CỦA TÔI.
chương trình n của tôi. Một đá quý có độ chính xác algoristic, cung cấp sự cân bằng tuyệt vời nhất
giữa compact, mã hóa hiệu quả trên một mặt và mức độ dễ đọc nhận xét đầy đủ
cho hậu thế về việc khác. So sánh CHƯƠNG TRÌNH CỦA BẠN.
-Stan Kelly-Bootle
Một chủ đề mà chạy suốt cuốn sách này là một sự nhấn mạnh vào các mã dễ đọc.
Giao tiếp với người khác là động lực đằng sau sự tìm kiếm Thánh
Chén mã tự tài liệu.
Các máy tính không quan tâm code của bạn có thể đọc được. Nó là tốt hơn lúc đọc nhị phân
hướng dẫn của máy hơn là lúc đọc báo cáo cấp ngôn ngữ cao. Bạn viết
code dễ đọc vì nó giúp người khác để đọc code của bạn. Dễ đọc có một tích cực
hiệu quả trên tất cả các khía cạnh của một chương trình:
■ comprehensibility
■ Reviewability
tỷ lệ lỗi ■
■ Debugging
■ Modifiability
■ Phát triển thời gian là một hệ quả của tất cả các bên trên
■ ngoài chất lượng-một hậu quả của tất cả các bên trên
842 Chương 34: Chủ đề trong phần mềm Craftsmanship
Trong những năm đầu của chương trình,
một chương trình được
coi là tin
tài sản của các lập trình viên.
Một không sẽ nghĩ về
chương trình đọc của một đồng nghiệp
tự ý hơn khi chọn
lên một bức thư tình và
đọc nó. Đây thực chất là
những gì một chương trình đã được, một tình yêu
thư từ lập trình
cho phần cứng, đầy đủ các
chi tiết thân mật chỉ được biết đến
với các đối tác trong một mối tình. Do đó,
chương trình đã trở thành
larded với tên con vật cưng
và viết tắt bằng lời nói rất
phổ biến với những người yêu thích những người sống
trong hạnh phúc trừu tượng
mà giả định rằng họ là
sự tồn tại duy nhất trong vũ trụ.
Các chương trình này là
khó hiểu cho người bên ngoài
công ty.
-Michael Marcotty
mã Readable doesn 't có bất kỳ thời gian để viết hơn khó hiểu mã nào, ít nhất là trong
thời gian dài. Nó dễ dàng hơn để đảm bảo mã của bạn hoạt động nếu bạn có thể dễ dàng đọc những gì bạn viết.
Đó phải là lý do đủ để viết code có thể đọc được. Nhưng mã này cũng được đọc trong
các ý kiến. Nó đọc khi bạn hoặc người khác sửa chữa lỗi. Nó đọc khi đang
sửa đổi. Nó đọc khi ai đó cố gắng sử dụng một phần của mã của bạn trong một chương trình tương tự.
Làm cho mã dễ đọc không phải là một phần bắt buộc trong quá trình phát triển, và thiên vị
ghi thời gian thuận tiện hơn đọc thời gian thuận tiện là một nền kinh tế giả. Bạn nên
đi đến các nỗ lực trong việc viết mã tốt, mà bạn có thể làm một lần, thay vì nỗ lực của
đọc mã xấu, mà bạn phải làm lại lần nữa và một lần nữa.
"Nếu tôi chỉ cần viết mã cho bản thân mình? Tại sao tôi nên làm cho nó có thể đọc được? "Bởi vì một
hoặc hai tuần kể từ bây giờ bạn sẽ được làm việc trên một chương trình khác và nghĩ rằng,
"Hey! Tôi đã viết lớp này tuần trước. Tôi sẽ chỉ cần thả trong kiểm tra, sửa lỗi cũ của tôi
mã và tiết kiệm thời gian. "Nếu mã là không thể đọc được, may mắn!
Ý tưởng của việc viết mã không đọc được bởi vì bạn là người duy nhất làm việc trên một
dự án đặt ra một tiền lệ nguy hiểm . Mẹ em thường nói, "Điều gì nếu khuôn mặt của bạn bị đóng băng
trong biểu thức đó? "Và cha của bạn được sử dụng để nói, Thói quen" Bạn chơi như thế nào bạn thực hành. "
ảnh hưởng đến tất cả các công việc của bạn; bạn không có thể bật và tắt theo ý muốn, vì vậy hãy chắc chắn rằng những gì bạn đang
làm là một cái gì đó bạn muốn trở thành một thói quen. Một lập trình viên chuyên nghiệp viết
dễ đọc code, thời gian.
Nó cũng tốt để nhận ra rằng cho dù một đoạn mã bao giờ thuộc về độc quyền cho bạn
là gây tranh cãi. Douglas Comer đã đưa ra một sự phân biệt hữu ích giữa các cá nhân và
các chương trình công cộng (Comer 1981): "Các chương trình tư nhân" là chương trình cho một lập trình viên
sử dụng riêng. Họ không được sử dụng bởi những người khác. Họ không được sửa đổi bởi người khác. Những người khác thậm chí không
biết những chương trình tồn tại. Họ thường là tầm thường, và họ là những ngoại lệ hiếm hoi. "Công
chương trình "là chương trình sử dụng hoặc sửa đổi bởi người khác hơn so với tác giả.
Tiêu chuẩn cho công chúng và cho các chương trình tư nhân có thể khác nhau. Các chương trình tư nhân có thể
được viết cẩu thả và đầy đủ các hạn chế mà không ảnh hưởng đến bất cứ ai nhưng tác giả.
chương trình công cộng phải được viết cẩn thận hơn: hạn chế của họ nên được ghi chép,
họ nên đáng tin cậy, và họ cần được sửa đổi. Hãy cẩn thận của một tư nhân
trở thành công của chương trình, như các chương trình tư nhân thường làm. Bạn cần phải chuyển đổi các
chương trình cho một chương trình nào trước khi nó đi vào lưu thông chung. Phần thực hiện một
công trình tư nhân là làm cho nó có thể đọc được.
Ngay cả khi bạn nghĩ rằng bạn là người duy nhất sẽ đọc code của bạn, trong thế giới thực
rất có thể người khác sẽ cần phải sửa đổi mã của bạn. Một nghiên cứu cho thấy
rằng 10 thế hệ của các lập trình viên bảo trì làm việc trên một chương trình trung bình trước khi
nó được viết lại (Thomas, 1984). Lập trình bảo dưỡng dành 50 đến 60 phần trăm
thời gian của họ cố gắng để hiểu các mã họ phải duy trì, và họ đánh giá cao
thời gian bạn đưa vào tài liệu đó (Parikh và Zvegintzov 1983).
1
2
3
HARD DỮ LIỆU
Chương trình 34.4 vào ngôn ngữ của bạn, Không phải trong Nó 843
chương Trước đó trong cuốn sách này đã kiểm tra kỹ thuật giúp bạn đạt được khả năng đọc:
lớp học tốt, thói quen, và các tên biến, định dạng cẩn thận, thói quen nhỏ, ẩn
các xét nghiệm phức tạp trong các chức năng boolean boolean, gán kết quả trung gian để biến
cho rõ ràng trong các phép tính phức tạp, và như vậy. Không có ứng dụng riêng lẻ của một
kỹ thuật có thể làm cho sự khác biệt giữa một chương trình có thể đọc được và là một không đọc được,
nhưng sự tích tụ của nhiều cải tiến khả năng đọc nhỏ sẽ là đáng kể.
Nếu bạn nghĩ rằng bạn không cần phải làm cho mã của bạn có thể đọc được bởi vì không ai có
vẻ ở đó, chắc chắn rằng bạn không khó hiểu nguyên nhân và hậu quả.
34.4 Chương trình thành ngôn ngữ của bạn, Không có trong đó
không hạn chế bất lập trình của bạn chỉ nghĩ đến những khái niệm được hỗ trợ tự động
bằng ngôn ngữ của bạn. Các lập trình viên tốt nhất nghĩ về những gì họ muốn làm, và
sau đó họ đánh giá như thế nào để đạt được mục tiêu của họ với các công cụ lập trình tại
xử lý của họ.
Nếu bạn sử dụng một thói quen thành viên lớp học đó là không phù hợp với các khái niệm trừu tượng của lớp
chỉ vì nó thuận tiện hơn nhiều so với sử dụng một trong những cung cấp nhất quán hơn? Bạn
nên viết mã theo một cách giữ gìn trừu tượng đại diện bởi các lớp của
giao diện càng nhiều càng tốt. Bạn không cần phải sử dụng dữ liệu toàn cầu hoặc gotos chỉ vì
ngôn ngữ của bạn hỗ trợ họ. Bạn có thể chọn không sử dụng những chương trình độc hại
và khả năng thay vì sử dụng quy ước lập trình để tạo nên những điểm yếu
của ngôn ngữ. Lập trình bằng cách sử dụng con đường rõ ràng nhất số tiền để
lập trình trong một ngôn ngữ hơn là lập trình sang ngôn ngữ; đó là lập trình viên
tương đương với "Nếu Freddie nhảy ra khỏi một cây cầu, bạn sẽ nhảy ra khỏi một cây cầu,
quá? "Hãy suy nghĩ về các mục tiêu kỹ thuật của bạn, và sau đó quyết định cách tốt nhất để thực hiện những
mục tiêu của chương trình sang ngôn ngữ của bạn.
Ngôn ngữ của bạn không có hỗ trợ khẳng định? Viết assert () thói quen của riêng bạn. Nó có thể
không hoạt động chính xác giống như một khẳng định được xây dựng trong (), nhưng bạn vẫn có thể nhận ra nhất của
assert () 's lợi ích bằng cách viết trình riêng của mình. Ngôn ngữ của bạn không hỗ trợ liệt kê
các loại hoặc các hằng số được đặt tên? Đó là tiền phạt; bạn có thể xác định kiểu liệt kê của riêng bạn
và hằng số có tên với một sử dụng xử lý kỷ luật của các biến toàn cầu được hỗ trợ bởi
các công ước đặt tên rõ ràng.
Trong trường hợp cực đoan, đặc biệt là trong môi trường công nghệ mới, các công cụ của bạn có thể được như vậy
nguyên thủy mà bạn buộc phải thay đổi cách tiếp cận lập trình mong muốn đáng kể.
Trong trường hợp như vậy, bạn có thể phải cân bằng giữa mong muốn của bạn để chương trình sang ngôn ngữ
với những khó khăn vô tình được tạo ra khi các ngôn ngữ làm cho bạn
tiếp cận mong muốn quá rườm rà. Nhưng trong trường hợp như vậy, bạn sẽ được hưởng lợi nhiều hơn từ
các công ước lập trình giúp bạn tránh xa nguy hiểm nhất những môi trường '
tính năng. Trong trường hợp điển hình hơn, khoảng cách giữa những gì bạn muốn làm và những gì
các công cụ của bạn sẽ sẵn sàng hỗ trợ sẽ yêu cầu bạn phải có những nhượng bộ chỉ tương đối nhỏ
đối với môi trường của bạn.
844 Chương 34: Chủ đề trong phần mềm Craftsmanship
34,5 Tập trung sự chú ý của bạn với sự trợ giúp của các Công ước
Cross-Reference Đối với một
phân tích giá trị của các công ước
như họ áp dụng cho
chương trình bố trí, xem "Làm thế nào
nhiêu là tốt Layout
Worth? "và" Mục tiêu của
Layout Good "tại mục
31.1.
Một tập hợp các ước là một trong những công cụ được sử dụng trí tuệ để quản lý phức tạp. Trước đó
chương nói về ước cụ thể. Phần này đưa ra những lợi ích của công ước
với nhiều ví dụ.
Nhiều người trong số các chi tiết của chương trình là một việc khó. Làm thế nào nhiều không gian làm
bạn canh lề một vòng lặp? Làm thế nào để định dạng một comment? Làm thế nào bạn nên đặt thói quen lớp?
Hầu hết các câu hỏi như thế này có một số câu trả lời đúng. Cách cụ thể
, trong đó một câu hỏi như vậy được trả lời là ít quan trọng hơn là nó được trả lời một cách nhất quán
mỗi lần. Ước cứu lập trình những rắc rối của việc trả lời cùng một
câu hỏi làm việc tùy tiện cùng một quyết định, một lần nữa và một lần nữa. Về dự án với
nhiều người lập trình, sử dụng các công ước ngăn ngừa sự nhầm lẫn có kết quả khác nhau khi
lập trình ma
đang được dịch, vui lòng đợi..
