Bạn cũng quên mã sau khi hoàn thành nhiệm vụ? [đóng cửa]


13

Tôi là một lập trình viên mới và muốn hỏi các lập trình viên cao cấp (lập trình viên có một số kinh nghiệm trong thế giới thực).

Tôi thực hiện công việc của mình và sau khi mã hóa, dự án của tôi đã hoàn thành nhưng nói thật tôi không nhớ mã, các lớp và tên khung và các thuộc tính của chúng.

Đôi khi tôi còn nghi ngờ chính mình đã làm điều này?

Điều này có bình thường với tất cả các lập trình viên hay tôi là lập trình viên thông minh nhất không thể nhớ tên mã và các lớp / thuộc tính?

Biên tập:

Tôi nghĩ rằng nhiều lập trình viên đang khiến tôi sai ở đây. Tôi nói rằng tôi quên tên khung, tên lớp, tên thuộc tính nhưng tôi bắt đầu nhớ mã của riêng mình khi tôi bắt đầu làm việc lại. Câu hỏi của tôi là bạn có nhớ cú pháp và các lớp / thuộc tính vv tên?

Câu trả lời:


24

Thành thật mà nói, tôi không biết làm thế nào một người có thể trở thành nhà phát triển dài hạn mà không có khả năng "quên" mã mà bạn đã làm việc. Số lượng dự án và mã kết quả cuối cùng sẽ dẫn đến quá tải thông tin thuần túy.

Tuy nhiên, tôi thấy tình huống này là một đối số hỗ trợ cho thiết kế logic, rõ ràng. Sẽ có lúc bạn phải hỗ trợ mã của riêng bạn. Nếu bạn đã chọn các quy ước mã hóa mạnh mẽ và hợp lý, thời gian làm quen của bạn sẽ giảm đáng kể. Ngoài ra, về mặt lý thuyết sẽ giảm thời gian cần thiết để thực hiện bảo trì thực tế.


Tôi đã gặp hai lập trình viên có trí nhớ nhiếp ảnh, người có thể nhớ những gì họ đã nghĩ khi họ làm việc trên một số đoạn mã. Với khả năng ghi nhớ của tôi dưới mức trung bình, tôi chắc chắn bị buộc phải làm công việc tốt nhất có thể để làm cho mã sạch và được ghi lại.
Công việc

Tôi nghĩ bạn đã đúng, chỉ vì tôi "quên" mã tôi có thể lập trình trong 3-4 nền tảng khác nhau!
hoại tử

9

Ghi nhớ tất cả cú pháp và apis của bạn cho một dự án không quan trọng bằng việc nhớ các khái niệm đã được xây dựng. Một khi bạn có kinh nghiệm, bạn có thể đọc qua mã và tìm ra ý nghĩa giống như đọc các bài viết này.

Những gì bạn sẽ tìm thấy theo thời gian, nếu bạn đang tích cực cải thiện, là bạn sẽ thấy những sai sót trong những gì bạn đã viết trong quá khứ chỉ bằng cách đọc qua mã cũ (mà tôi khuyên bạn nên làm). Thông qua thực hành đó nó trở nên dễ dàng hơn để làm; giống như bất kỳ kỹ năng nào khác.

Bây giờ tôi có thể đã viết hơn một triệu dòng mã trong sự nghiệp của mình và không có cách nào tôi có thể nhớ tất cả. Tôi nhớ các dự án mặc dù và những gì họ đã cố gắng giải quyết (và các kỹ thuật đã đi vào giải quyết chúng).


5

Tôi quên nhiều thứ sau khi tôi sử dụng chúng, nhưng quên chúng đi.

Tôi đã theo dõi bản thân mình trong nhiều năm qua và tôi đã đi đến kết luận bộ não của chúng tôi (được thôi, bộ não của tôi) sử dụng một chiến lược bộ nhớ đệm nhất định:

  • Các mẩu thông tin mới được học, sử dụng và sau đó đưa vào một số hàng đợi hết hạn. Trong một vài tuần nó đã biến mất.

  • Việc truy cập nhiều lần vào những mẩu thông tin đó một lần được học không muộn hơn vài tháng trở lại sẽ thúc đẩy chúng bằng cách nào đó để chúng có thể được ghi nhớ trong nhiều tháng, chỉ sau đó chúng mới hết hạn.

  • Truy cập nhiều lần vào các khối kiến ​​thức trong vài năm, với khoảng cách sử dụng trong vài tháng sẽ thúc đẩy họ đến một số bộ nhớ ưu tiên nơi họ lưu giữ trong nhiều năm.

PS Tôi nghi ngờ ý tưởng đầu tiên về bộ nhớ cache với ứng dụng cho máy tính xuất phát từ việc ai đó quan sát cách con người học và ghi nhớ mọi thứ. Vì vậy, chúng tôi đã không phát minh ra bất cứ điều gì, chỉ cần lấy những gì đã được xây dựng trong chúng tôi.


2

Thường xuyên. Nhận xét đã trở nên vượt qua ', nhưng tôi thấy tôi thường có thể nhận ra mã của mình bằng nhận xét của mình.

EDIT: Tôi không nói rằng tôi đồng ý với xu hướng. Tôi chỉ nói rằng đó là xu hướng ngày nay. Như Dave chỉ ra, chắc chắn có một điểm đột phá. Có một cuộc thảo luận hoàn toàn tuyệt vời ở đây: "Nhận xét là một mùi mã" . Tôi rơi vào "ý kiến ​​là để cung cấp thông tin trên thế giới NGOÀI TRỜI cơ sở mã (yêu cầu, thay đổi kinh doanh, v.v.)".


Ý kiến ​​có bị động không? Chỉ là không đúng sự thật.
Steve

1
Ồ, tôi đồng ý; Tôi chỉ nói rằng dường như có một xu hướng cảm thấy bình luận không nên được yêu cầu. Tôi đã phỏng vấn những người khăng khăng rằng tên của phương pháp nên là tất cả những bình luận bạn cần. Rõ ràng, họ làm việc ở một nơi thần thoại, nơi các yêu cầu kinh doanh không thay đổi nửa năm một lần.
Michael Blackburn

2
Tôi sẽ lập luận rằng trong khi PullContractDataFromProfileAndDetermineZipRadiusFromCiverseLocation () là mô tả, nó cũng tạo ra mã không thể đọc được vì nó phá hủy dòng chảy.
Dave Wise

1
Đồng ý x100. Nếu tôi không cẩn thận ghi lại những gì tôi đang nghĩ và lý do tại sao tôi đưa ra quyết định mà tôi đã thực hiện thông qua các bình luận được diễn đạt cẩn thận, tôi hoàn toàn không biết chuyện gì đang xảy ra khi tôi quay lại đọc mã tôi đã viết cách đây vài tháng. Tôi đã cố gắng đưa ra lập luận này trước các nhà du hành kiến ​​trúc, những người nói rằng các bình luận là ồn ào hoặc lạc hậu hoặc lỗi thời, nhưng không ai nghe. Mọi người cho rằng tôi là một nhà phát triển tồi vì tôi phải viết bình luận trong mã nguồn của mình. Tôi ổn với điều đó, mặc dù. Nó giúp tôi và mọi người khác sau tôi.
Cody Grey

@Dave: Trong khi tôi đồng ý với bạn, bạn CÓ một phương pháp với hai trách nhiệm. Sám hối của bạn là 4 Hail Martins và 2 GangOfFours.
Michael Blackburn

1

Cú pháp tôi thường nhớ sau một vài lần sử dụng. Ví dụ, khi tôi lần đầu tiên bắt đầu sử dụng generic hoặc linq, tôi đã gặp một số khó khăn để có được cú pháp đúng.

IntelliSense chắc chắn làm cho công việc của tôi dễ dàng hơn nhiều trong việc ghi nhớ tên thuộc tính và phương thức.


1

Khi tôi là một người thử nghiệm, nhà phát triển chính của công ty đã từng nói với tôi rằng mã được viết 6 tháng trước, không ai trong số tôi có thể chịu trách nhiệm về nó. Lúc đó nó làm tôi sốc. Bây giờ tôi đã chuyển sang làm một nhà phát triển mà tôi hiểu. Tôi không nhớ các chi tiết về mã mà tôi biết tôi đã làm việc với nó nhưng các chi tiết không có ở đó.


0

Gần như luôn luôn. Dự án gần đây nhất (rất nhỏ) của tôi là một bài kiểm tra các kỹ năng (rỉ sét) của riêng tôi. Tôi đã tự mình viết một loạt mã thủ tục theo kiểu C rất đơn giản, sau đó cấu trúc lại nó thành mã Java bằng cách sử dụng một số mẫu thiết kế và giữ mọi phương thức không quá tám dòng, nếu tôi có thể.

Tôi đặt mã xuống khoảng một tháng. Khi tôi trở lại nó, phải mất một giờ trước khi tôi nhận ra rằng tôi đã viết nó. Thành thật mà nói, ngay cả khi tôi đã ghi tên mình vào một lĩnh vực bình luận, tôi không chắc nó sẽ thuyết phục tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.