작업을 완료 한 후 코드를 잊었습니까? [닫은]


13

저는 새로운 프로그래머이며 선임 프로그래머 (실제 경험이있는 프로그래머)에게 문의하고 싶습니다.

나는 일을하고 코딩 후 프로젝트가 완료되었지만 솔직히 말하면 코드, 클래스 및 프레임 워크 이름과 속성을 기억하지 못합니다.

때때로 나는 내가 이것을 만든 것을 의심 하는가?

모든 프로그래머에게 이것이 정상입니까, 아니면 코드 및 클래스 / 속성 이름을 기억하지 못하는 가장 어리석은 프로그래머입니까?

편집하다:

많은 프로그래머들이 나를 잘못 여기고 있다고 생각합니다. 프레임 워크 이름, 클래스 이름, 속성 이름을 잊었지만 다시 작업을 시작하면 내 코드를 기억하기 시작합니다. 내 질문은 구문 및 클래스 / 속성 등 이름을 기억합니까?

답변:


24

솔직히 말해서, 당신이 작업 한 코드를 "잊어 버릴"능력없이 어떻게 장기 개발자가 될 수 있는지 모르겠습니다. 프로젝트 및 결과 코드의 양은 결국 순수한 정보 과부하로 이어질 것입니다.

그러나 저는이 상황을 깨끗하고 논리적 인 디자인을위한지지적인 주장으로보고 있습니다. 자신의 코드를 지원해야 할 때가 올 것입니다. 강력하고 논리적 인 코딩 규칙을 선택한 경우 익숙한 시간이 크게 줄어 듭니다. 또한 이론적으로 실제 유지 보수를 수행하는 데 필요한 시간이 줄어 듭니다.


나는 사진 기억을 가진 두 명의 코더를 만났는데, 그들은 어떤 코드에서 작업 할 때 생각했던 것을 기억할 수 있습니다. 저의 암기 능력이 평균보다 낮 으면서, 코드를 깨끗하고 문서화 할 수 있도록 최선을 다해야합니다.
Job

3-4 개의 다른 플랫폼에서 프로그래밍 할 수있는 코드를 "잊어 버렸기"때문에 당신이 옳다고 생각합니다!
necixy

9

프로젝트의 모든 구문과 API를 기억하는 것은 프로젝트를 구축하는 데 필요한 개념을 기억하는 것만 큼 중요하지 않습니다. 경험이 있으면 코드를 읽고 이러한 게시물을 읽는 것처럼 의미를 파악할 수 있습니다.

시간이 지남에 따라 적극적으로 개선하고 있다면 이전 코드를 읽는 것만으로 과거에 작성한 내용의 결함을 볼 수 있다는 것입니다. 그 연습을 통해하기가 더 쉬워집니다. 다른 기술과 마찬가지로

내 경력에서 지금까지 백만 줄 이상의 코드를 작성했을 수 있으며 모든 것을 기억할 수있는 방법이 없습니다. 나는 프로젝트와 그들이 무엇을 해결하려고했는지 (그리고 그것들을 해결하는 기술)을 기억합니다.


5

사용을 마친 후에는 많은 것을 잊지 만 다르게 잊어 버립니다.

나는 몇 년 동안 나 자신을 지켜 보았고 우리 뇌 (좋아, 내 뇌)가 특정 캐싱 전략을 사용한다는 결론에 도달했다.

  • 새로운 정보가 학습되고 사용 된 다음 만료 대기열에 배치됩니다. 몇 주 후에 사라졌습니다.

  • 몇 달 전까지 배운 정보에 대한 반복적 인 액세스는 몇 달 전까지 기억 될 수 있도록 정보를 어떤 식 으로든 승격 시켜서 만기됩니다.

  • 몇 년 동안 지식 블록에 반복적으로 액세스하면 몇 개월 동안 사용 간격이있어 몇 년 동안 우선 순위가 유지되는 메모리로 승격됩니다.

추신 : 나는 컴퓨터에 응용 프로그램을 사용한 캐시의 첫 번째 아이디어가 사람이 물건을 배우고 기억하는 방법을 관찰 한 누군가에게서 온 것으로 생각합니다. 그래서 우리는 아무것도 발명하지 않았으며 이미 내장 된 것을 가져갔습니다.


2

자주. 주석은지나 가게되었지만, 나는 보통 내 주석으로 내 코드를 인식 할 수있다.

편집 : 나는 트렌드에 동의 한다고 말하는 것이 아닙니다 . 나는 그것이 오늘날의 추세라고 말하고 있습니다. 데이브가 지적한 바와 같이, 확실히 단점이 있습니다. 여기에 완벽하게 멋진 토론이 있습니다 : "코멘트는 코드 냄새입니다" . 나는 "코멘트에 대한 정보를 제공하기위한 것입니다 (요구 사항, 사업 변경 등)"캠프에 들어갑니다.


댓글이 Passé입니까? 사실이 아닙니다.
Steve

1
아 동의합니다. 나는 단지 의견이 필요하지 않다고 느끼는 경향이있는 것처럼 보입니다. 나는 방법의 이름이 필요한 모든 의견이어야한다고 주장하는 사람들과 인터뷰를했습니다. 분명히 그들은 비즈니스 요구 사항이 반년마다 변하지 않는 신화적인 장소에서 일합니다.
Michael Blackburn

2
PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation ()이 설명 적이지만 흐름을 파괴 할 때 읽을 수없는 코드를 만듭니다.
Dave Wise

1
합의 x100. 내가 생각한 것을주의 깊게 기록하지 않고 신중하게 단어를 통해 결정한 이유를 기록하지 않았다면 몇 달 전에 작성한 코드를 읽었을 때 무슨 일이 있었는지 전혀 알 수 없었 습니다. 나는 논평이 소음이 있거나 지나가거나 쓸모가 없다고 말하는 건축 우주 비행사들 에게이 주장을하기 전에 시도했지만 아무도 듣지 못했습니다. 모두 내가 소스 코드에 주석을 작성해야하기 때문에 내가 나쁜 개발자라고 가정합니다. 그래도 괜찮습니다. 그것은 나와 다른 모든 사람들을 돕습니다.
코디 그레이

@Dave : 동의하지만 두 가지 책임이있는 방법이 있습니다. 당신의 참회는 Hail Martins 4 명과 GangOfFours 2 명입니다.
Michael Blackburn

1

구문 일반적으로 몇 번 사용한 후에 기억합니다. 예를 들어, 제네릭이나 linq를 처음 사용했을 때 구문을 제대로 얻는 데 어려움이있었습니다.

IntelliSense를 사용하면 속성 및 메서드 이름을 기억하는 데있어 작업이 훨씬 쉬워집니다.


1

내가 테스터 일 때 회사의 수석 개발자는 코드가 6 개월 전에 작성되었다고 나에게 말했지만 내 직원 중 누구도 책임을 질 수는 없습니다. 당시에는 충격을 받았습니다. 이제는 내가 이해하는 개발자로 옮겼습니다. 내가 작업 한 코드의 세부 사항을 기억하지 못하지만 세부 사항은 없습니다.


0

거의 언제나. 나의 가장 최근의 (매우 작은) 프로젝트는 내 자신의 (녹슬 기) 기술에 대한 테스트였습니다. 매우 간단한 C 스타일로 많은 절차 적 코드를 작성한 다음 일부 디자인 패턴을 사용하여 Java 코드로 리팩토링하고 가능한 경우 모든 메소드를 8 줄 이하로 유지했습니다.

나는 약 한 달 동안 코드를 내려 놓았습니다. 다시 돌아 왔을 때, 내가 쓴 것을 인식하기까지 한 시간이 걸렸습니다. 솔직히, 댓글 필드에 내 이름을 넣었더라도, 그것이 저를 설득했는지는 확실하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.