20 truyện với 5 mùi mã mỗi truyện là 100 mùi mã đúng không?
Tiếp tục đi...
Bạn không sở hữu đối tượng.
TL; DR: không sử dụng tiền tố tên của tôi .
Một số hướng dẫn cũ sử dụng từ 'của tôi' làm tên lười biếng. Điều này là mơ hồ và dẫn đến sai lầm về ngữ cảnh.
MainWindow myWindow = Application.Current.MainWindow as MainWindow;
MainWindow salesWindow = Application.Current.MainWindow as MainWindow; /* Since window is instanciated, we are currently working with a specialized window playing a special role */
Chúng tôi có thể yêu cầu các linters và bộ kiểm tra tĩnh của chúng tôi tìm kiếm tiền tố này và cảnh báo chúng tôi.
Tránh sử dụng của tôi . Đối tượng thay đổi theo ngữ cảnh sử dụng.
Ảnh của Michał Bożek trên Unsplash
Suy nghĩ về kinh nghiệm sửa đổi mã của mình, tôi thấy rằng tôi dành nhiều thời gian hơn để đọc mã hiện có hơn là viết mã mới. Vì vậy, nếu tôi muốn làm cho mã của mình rẻ, tôi nên làm cho nó dễ đọc.
Kent Beck
Trích dẫn tuyệt vời về kỹ thuật phần mềm
Chúng ta nên đặc biệt chú ý đến các mô tả lỗi cho người dùng (và chính chúng ta).
TL; DR: Sử dụng các mô tả có ý nghĩa và đề xuất các hành động khắc phục.
Các lập trình viên hiếm khi là chuyên gia về UX.
Chúng tôi cũng đánh giá thấp thực tế là chúng tôi có thể ở cả hai phía của quầy.
alert("Cancel the appointment?", "Yes", "No"); // No consequences // Options not clear
alert("Cancel the appointment? \n" + "You will lose all the history", "Cancel Appointment", "Keep Editing"); // Consequences are clear // Choice options have context
Chúng tôi cần đọc tất cả các thông báo ngoại lệ trong các bài đánh giá mã.
Chúng tôi cần suy nghĩ ở người dùng cuối khi nêu ra ngoại lệ hoặc hiển thị thông báo.
Ảnh bằng hình ảnh trên Unsplash
Mặc dù có một thực tế là các lập trình viên không bao giờ mắc lỗi, nhưng vẫn nên làm hài lòng người dùng bằng cách kiểm tra các lỗi ở những điểm quan trọng trong chương trình của bạn.
Robert D. Schneider
Chính tả và khả năng đọc là rất quan trọng đối với con người và không quan trọng đối với máy móc.
TL; DR: Hãy quan tâm đến tên của bạn.
Nhiều người trong chúng ta không nói tiếng Anh như ngôn ngữ mẹ đẻ của mình.
Chúng ta cần phải cẩn thận hơn đối với văn bản và tên của chúng ta.
Bài viết này có lỗi đánh máy trong tiêu đề như bằng chứng về ngữ cảnh và cũng là một lời nhắc nhở 😀
comboFeededBySupplyer = supplyer.providers();
comboFedBySupplier = supplier.providers();
Hãy chú ý đến tên của bạn.
Bạn có thể sẽ là người đọc mã trong vài tháng nữa.
Mã mùi 48 - Mã không có tiêu chuẩn
Tên chính xác là gì - Phần I Nhiệm vụ
Tên chính xác là gì - Phần II Phục hồi chức năng
Ảnh của Brett Jordan trên Unsplash
Bên trong mỗi chương trình lớn được viết tốt là một chương trình nhỏ được viết tốt.
Căm xe
Có bao nhiêu lần chúng ta thấy những tên đối số lười biếng?
TL; DR: Đặt tên cho các đối số của bạn theo vai trò chứ không phải vị trí ngẫu nhiên
Khi viết các phương pháp, chúng ta thường không dừng lại để tìm những cái tên phù hợp.
Chúng tôi không bao giờ tái cấu trúc những điều hiển nhiên.
class Calculator: def subtract(self, first, second): return first - second class CalculatorTest def test_multiply(): assert equals(first, second)
class Calculator: def subtract(self, minuend, subtrahend): return minuend - subtrahend class CalculatorTest def test_multiply(): assert equals(expectedValue, realValue)
Chúng tôi có thể cảnh báo những từ bị cấm như 'đầu tiên' và 'thứ hai' làm tên đối số.
Luôn tuân theo tham số đề xuất quy tắc.
Đặt tên cho các cộng tác viên của bạn theo vai trò.
Mã mùi 65 - Các biến được đặt tên theo loại
Tên chính xác là gì - Phần II Phục hồi chức năng
Ảnh của Priscilla Du Preez trên Unsplash
Mã nguồn cuối cùng là thiết kế phần mềm thực.
Jack Reeves
GOTO bị coi là có hại cách đây 50 năm
TL; DR: Đừng bao giờ sử dụng GoTo.
Tôi bắt đầu lập trình bằng Basic.
GOTO đã bị lạm dụng rất nhiều ở đó.
Tôi đã phải học lập trình có cấu trúc từ đầu trong chế độ Phục hồi.
for x < 0 { if x > -1e-09 { goto small } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { goto small } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small: if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) }
for x < 0 { if x > -1e-09 { return small(x, z) } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { return small(x, z) } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small(x, z) { if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) } }
Bằng các ngôn ngữ hỗ trợ GOTO , linters của chúng tôi có thể cảnh báo chúng tôi về việc sử dụng nó.
Chúng tôi đã thừa nhận các vấn đề của GOTO cách đây vài thập kỷ.
Vấn đề vẫn tồn tại trong các ngôn ngữ hiện đại như GoLang, PHP, Perl, v.v.
Hầu hết các lập trình viên may mắn tránh được câu GOTO. Mục tiêu tiếp theo sẽ là xem xét việc sử dụng null có hại.
XKCD lịch sự
Ảnh của Jens Johnsson trên Unsplash
Thực tế là không thể dạy lập trình tốt cho những sinh viên đã từng tiếp xúc với BASIC: với tư cách là những lập trình viên tiềm năng, họ bị cắt xẻo tinh thần không còn hy vọng tái sinh.
Edsger Dijkstra
Trích dẫn tuyệt vời về kỹ thuật phần mềm
Và đó là tất cả hiện tại, Chúng tôi đã đạt được cột mốc 100.
Bài sau mình sẽ giải thích thêm về 5 mùi mã nhé!