대부분의 프로그래머는 코드를 복사하여 붙여 넣습니까? [닫은]


48

다른 사람의 코드를 잘라내어 붙여 넣는 것은 장기적으로는 직접 작성하는 데 시간이 오래 걸립니다. 내 의견으로는 실제로 이해하지 않는 한 잘라 내기 및 붙여 넣기 코드는 해결해야 할 악몽이 될 수 있습니다.

잘못 이해하지 마십시오. 다른 사람들의 코드를 찾아서 배우는 것이 필수적이지만 앱에 붙여 넣지는 않습니다. 우리는 다시 개념을 우리의 응용 프로그램에.

그러나 나는 잘라내어 붙여 넣는 사람들에 대해 끊임없이 듣고 있으며, 일반적인 관행처럼 그것에 대해 이야기합니다. 또한 일반적인 관행을 나타내는 다른 사람들의 의견 도 볼 수 있습니다.

따라서 대부분의 프로그래머는 코드를 잘라내어 붙여 넣습니까?


10
무언가를 수행하는 방법을 알고 있더라도 모범 사례를 찾기 위해 종종 코드 샘플을 검색합니다. 코드를 읽을 수 있으면 찾은 것이 계획보다 나은지 신속하게 알 수 있습니다.
Nicole

최근에는 잘라 내기 및 붙여 넣기에 관한 질문이있었습니다. 왜 확인 하지 않습니까?
Naurgul

내가 이해한다면
johnny

답변:


46

두 가지 일반적인 경우 :

한 프로젝트에서 다른 프로젝트로 :

대부분의 프로그래머는이 용량으로 코드를 잘라 붙여 넣습니다. 그들은 이전 프로젝트 나 온라인에서 무언가를 찾아 정확하게 복사 / 붙여 넣기 또는 복사 / 붙여 넣기를하고 변경을 할 수 있습니다. 나는이 연습이 일반적으로 좋다고 생각합니다. 이것은 입증 된 코드 일 때 특히 좋습니다. (예 : 과거에 잘 작동했던 과거의 프로젝트 또는 약간의 변경이 필요한 블로그의 유틸리티 개체). 이것이 나쁠 수있는 곳은 이해하지 못하는 코드를 복사 할 때나 코드가 불량한 곳 또는 붙여 넣는 코드보다 훨씬 더 나은 대안 솔루션이있는 곳입니다.

동일한 프로젝트 내부 : 동일한 프로젝트에서 복사하여 붙여 넣기하는 것은 일반적으로 좋은 생각이 아닙니다. 이것은 복사되는 코드가 메소드 / 클래스에 있고 반복적으로 호출되어야한다는 나쁜 냄새입니다. 이에 대한 몇 가지 예외가 있지만 일반적으로 프로그래머는 다음과 같이 생각해야합니다. " 복사중인이 코드를 매개 변수화 할 수있는 방법이 있습니까? ".


5
소프트웨어 라이센싱과 같은 변조 방지 코드의 경우와 같이 안티 패턴이 필요한 코드를 작성하지 않는 한 일반적으로 그렇습니다.
Rob Perkins

+1 네,이 두 가지를 모두했습니다. 나는 오랫동안 같은 프로젝트 내에서 코드 잘라 내기 및 붙여 넣기를 수행하지 않았습니다. 유틸리티 클래스의 경우 프로젝트 투 프로젝트 복사가 이제 완전한 파일 복사로 분리됩니다.
John MacIntyre

2
데이터베이스 코드를 작성할 때 일반적으로 일부 코드를 잘라내서 새 함수에 붙여넣고 원하는 결과를 얻기 위해 SQL 자체를 수정하며 해당 데이터베이스 호출을 수행하기 위해 일부 전제 조건을 다시 입력 할 필요가 없습니다. 일반적으로 나는 두 가지 의견에 동의합니다.
Chris

1
@Chris : 마음을 복사하고 수정하는 것은 단순히 붙여 넣는 것과는 매우 다릅니다.
Loren Pechtel

1
@Loren Pechtel : 그럼에도 불구하고 여전히 코드 복사 및 붙여 넣기 작업이 필요합니다.
Chris

37

대부분의 프로그래머가 그렇게하지만 그렇다고해서

내 프로그래밍 만트라 중 하나는 "코드를 복사하여 붙여 넣는 경우 잘못된 일을하고있는 것" 입니다. 본질적으로 DRY .

코드 재사용은 코드를 반복하는 것이 아니라 코드를 리소스로 사용하는 것을 의미한다고 생각합니다. 때로는 코드를 직접 복사하여 붙여 넣었습니다. 대부분의 경우 보일러 플레이트 코드 또는 실제로 비슷한 모양으로 끝납니다 .

그 코드로 시간을 더 투자 한 후에는 다음과 같이 끝납니다.

  • 성분 (참조 : 관심의 분리 )
  • 나는에 의지 할 수 반사 일들이 간단 청소기와 미래에 reapeat 더 쉽게 할 수 있습니다.
  • 더 나은 디자인 , 그것이 효과가 있더라도, 교훈을 배운 후에 다시 한번하지 않겠습니까?.
  • 추상화하고 라이브러리 구성 요소로 바꾸고 중복 된 코드를 제거 할 수 있는 패턴 입니다.

클라이언트 / 보스가 신경 쓰지 않고 (적어도 직접적으로 그리고 단기적으로) 코드를 복사하여 붙여 넣지 말아야하는지 여부는 논쟁의 여지가 있지만 동일한 결과로 끝날 수 있지만 문제는 실제로 발생할 때 발생합니다 버그, 모듈성 상실 및 궁극적으로 유지 보수 지옥으로 이어집니다.

해야 할 일 : 최대한 빨리 리팩터링

복사 및 붙여 넣기를하지 않고 자신의 코드 인 경우에도 작동하더라도 완벽한 코드를 작성하는 사람은 아무도 없습니다. 리팩토링 할 내용과 왜 ... 직접 리팩토링하지 않더라도 유지 관리자에 대한 행복과 전체 좌절의 차이가 될 수 있습니다.

결국 복사하여 붙여 넣더라도 좋은 코드 로 끝납니다.

좋은 코드

XKCD 를 통해


15
나는 종종 "나중에 리팩터링"이 "리팩터링 안함"으로 바뀌는 것을 보았거나 심지어 "다른 SUCKER가 거의 그러나 아직까지는 아니지만 코드를 리팩토링하고 고칠 수있는 핫샷"이라고 생각했다. 나는 내일처럼 그것을 앞두고 그것을 믿는 신자입니다.
quick_now

1
@quickly_now-re : "저는 다른 SUCKER가 리팩토링하고 거의 완벽하지 않은 코드를 리팩터링하고 고칠 수있는 핫 샷입니다."나는 그 바보들을 얼마나 싫어하는지를 표현할 수 없습니다.
John MacIntyre

안녕, 존 들었어요 나는 인생의 몇 년을 그 빨판으로 보냈다 ... 반까지 지불하고 자정까지 땀을 흘리며 무슨 일이 일어나고 있는지에 대한 이해를 얻었습니다. 다른 것. 한숨.
quick_now

1
/ : 팀에 더 많은 사람들이, 더 많은 "리팩토링 나중에"지금까지 내가 볼 수 있기 때문에 "결코 리팩토링"가
wildpeaks

8

갇혀서 문제를 해결할 물건을 찾고 내가 원하는 것을하는 유용한 코드 스 니펫이 발생하면 자연스럽게 복사합니다. 때때로 그것은 단지 그것의 요지 일뿐입니다. 그런 다음 필요에 맞게 변경합니다. 이것은 내가 전문가가 아닌 것들 (현재 Objective-C)을 탐구 할 때 더 자주 발생합니다.

나는 항상 코드에서 무언가를 배우는 데 시간이 걸리므로 나에게 바퀴를 배우고 재발견하지 않는 좋은 방법입니다.


4
나는 항상 '좋은 개발자는 게으른 개발자'라고 말했습니다. 다른 사람이 이미 수행 한 경우에는 바퀴를 다시 만들지 않습니다. 그러나 나는 그것을 작게 유지합니다 ... 나는 몇 줄의 코드 이상을 복사하지 않으며, 완전히 이해하지 못하는 것은 없습니다.
morganpdx

나는 다른 사람들로부터 배우기위한 것이지만 특정 문제를 찾고 있지 않다면 다른 사람이 한 일을 머리로 감싸는 것만으로도 처음부터 다시하는 데 더 많은 시간이 소요된다는 것을 알지 못합니까? (나는 클래스와 같은 완전한 기능 단위가 아닌 '코드'에 대해 이야기하고 있습니다 ...)
John MacIntyre

@John MacIntyre 될 수는 있지만 일반적으로 작은 코드 스 니펫을 넣으면 만족할 때까지 성형합니다. 어쨌든 그것은 (기능,보다 일반적이고, 개선되고, 최적화 된 등으로) 조정되어야 할 필요가 있습니다.
Martin Wickman

@ 존 : 코드 스 니펫은 작업 방법을 보여주는 조각을 제공합니다. 물론 잘라 붙여 넣기. 그러나 Martin이 지적한 것처럼 코드가 무엇을하는지 배우십시오. 이름을 모르는 특정 방법을 검색하는 데 더 많은 시간을 할애합니다. 단어의 의미를 모르는 경우 사전에서 찾아보세요. 정의는 100 % 명확합니다. 사용 샘플을 얼마나 자주 보십니까? 코드 예제는 사전 사용 예제와 같습니다. MSDN에는 항상 사용 샘플이 포함되어 있지 않거나 종종 불완전합니다.
IAbstract

6

다른 사람들의 코드를 복사 / 붙여 넣기에 대해 이야기하겠습니다. 내 개인 도서관에서 내 작품의 일부를 잡는 것은 공정한 게임입니다. 나는 그것들을 알고 정의에 의해 이해합니다.

코드를 "잘라내어 붙여 넣기"하는 가장 빈번한 상황은 특정 문제가 있고이를 해결하는 블로그 게시물에 접속 한 경우입니다. 대부분의 경우 솔루션을 프로젝트에 다시 입력합니다 (결국 블로그 작성자의 스타일로 작성되었을 것입니다). 실제로 코드는 아니지만 해당 시나리오에서 사용하는 것에 대해 나쁘지 않습니다.

전체 메소드 또는 시스템을 그대로 가져 와서 프로젝트에 그대로 붙여 넣은 다음 이해하지 못합니다. 다른 날 에 StackOverflow 에 대한 질문 이 있었는데 그와 같은 일을하는 데 대한 문제를 완벽하게 설명했습니다.

서로 다른 코드 부분에서 프랑켄슈타인 괴물을 함께 묶는 것이 그렇게 효율적일 수는 없습니다. 내 말은, 당신이 그것을 잘한다면, 그것은 당신이 동일한 솔루션을 반복해서 복제하거나 동일한 레벨의 복사 / 붙여 넣기가 더 이상 필요하지 않다는 다른 사람들의 코드를 충분히 이해했음을 의미합니다. 호환되지 않는 코드 샘플 간의 문제를 해결하지 않아도 생산성이 향상됩니다.

저는 개인적으로 대규모 복사 / 붙여 넣기를하는 많은 프로그래머를 만나지 못했습니다. 나는 가장 깊고 어두운 구석에 자신을 코딩하는 많은 사람들을 보았지만 그것은 다른 이야기입니다. 내 개인적인 일화를 바탕으로 대부분의 프로그래머는 전체 응용 프로그램을 함께 복사 / 붙여 넣지 않지만 실제로 말하기는 어렵습니다.


1
어쩌면 많은 프로그래머들이 실제 코드를 대규모로 복사 / 붙여 넣기하지는 않지만 한 줄의 코드를 보지 않고도 기성품 라이브러리 (무료 또는 기타)를 행복하게 활용할 것입니다.
hplbsh

1
@Stuart 사실이지만, 그 라이브러리가 프로그래머 자신의 작품으로 주장되지 않는다는 차이점이 있다고 생각합니다. 그리고 솔직히, 도서관이 작동하고 내가해야 할 일을하는 한, 나는 그 출처를 모으는 것을 특별히 신경 쓰지 않습니다. (실제로 도서관의 명성 / 신뢰도에 대해 실사를하고 있다고 가정합니다.)
Adam Lear

어떤 식 으로든 그것은 출판사와 소비자 모두의 의도의 문제입니다 :)
hplbsh

@stuart-이 토론에 라이브러리를 포함시키지 않을 것입니다. 왜냐하면 당신이 의미하는 바를 알면 응집력있는 단위이기 때문에 실제로 '손실'코드가 아닙니다.
John MacIntyre

실제로 귀하의 의견에 대해 생각하면서 프로그래머가 완전한 시스템을 함께 잘라내어 붙여 넣을 수 있는지 궁금합니다. 나는 그들의 허비의 무게가 재빨리 눈에 띄게되어 진전을 멈출 것이라고 생각합니다.
John MacIntyre

4

나쁨 : 동일한 코드 블록을 반복해서 복사하여 붙여 넣기

이 작업을 수행하는 경우, 복사되는 코드에서 무엇이 추상화 될 수 있는지 생각하고 처리 할 함수 / 메서드를 작성하는 데 잠시 시간이 걸릴 것입니다. 여기는 DRY (Do n't Repeat Yourself) 원칙이 중요합니다.

양호 : 작동하는 것으로 알려진 코드 블록 복사

DRY (Do n't Repeat Yourself)도 다른 의미로 적용됩니다. IE, 과거에 이미 해왔 던 작업을 반복하지 마십시오. 코드 섹션을 작성하는 데 시간이 걸리면 디버깅하고 테스트하면 프로덕션 코드베이스에서 작동하는 것으로 입증됩니다. 당신은 그것을 재사용하지 않는 바보 될 것입니다.

대부분의 사람들은 많은 초보 프로그래머가 그물을 and이 뒤져 다른 사람들의 코드를 복사 / 붙여 넣기하는 데 실제로 많은 시간을 소비하기 때문에 나쁜 랩을 붙여 넣습니다.

매번 처음부터 모든 것을 작성하는 것이 더 좋지 않습니다. 나는 모든 오래된 학교 순수 주의자 프로그래머들이 모든 것을 처음부터 새로 작성해야한다는 것을 알고 있으며, 그들과 함께 일하지 않아도되기를 바랍니다. 5 년의 프로그래밍 경험이 있다면 재사용 할 수있는 매우 실질적인 코드 라이브러리가 있어야합니다. 숙련 된 프로그래머가 잠재적으로 많은 개발 시간을 절약 할 수 있기 때문에 테이블에 가져올 수있는 최고의 자산 중 하나입니다.

이전 코드가 처음에 이해하지 못하는 경우 잠시 시간을내어 댓글을 읽고 친숙 해지십시오. 귀하의 의견이 빠지면 ... 음, 그것은 또 다른 문제입니다.


코드를 복사하여 붙여 넣는 대신 재사용 가능한 방식으로 코드를 작성할 수 있습니다. 그런 다음 복사하여 붙여 넣는 대신 사용하십시오.
Bjorn

1
@BjornTipling 예, 일반적으로 프로세스에 복잡성이 추가되고 코드가 재사용되지 않는 한 코드를 재사용 가능한 함수로 분류하는 것이 좋습니다.
Evan Plaice

복사하여 붙여 넣으면 다시 사용하는 것입니다. 나는 사람들이 머리를 사용해야하며 조건이이를 보증 할 수 있다는 데 동의합니다. 테스트를 작성할 때 복사 및 붙여 넣기 작업을 수행했지만 재사용 가능한 함수를 만들려고 시도했지만 거의 같은 두 세 줄이 있지만 완전히 일반화 할 수는 없습니다. 재사용 가능한 기능.
Bjorn

3

25 년 동안 코드를 작성하고 나면 (이전 고용주를 위해 작성한 코드에 액세스 할 수없는) 잘라내어 붙여 넣기를 원했던 때가있었습니다. 그러나 이것은 매우 드 (니다 (그리고 계속 읽으십시오).

아마도 가장 좋은 예는 몇 년 전에 유닉스 운영 체제에서 온 정말 간단한 명령 줄 파서입니다. args를 통한 간단한 루프 압축 및 옵션 처리 그것은 엄청나게 간단하고 우아했으며, 그 이후로 여러 번 사용했습니다 (문자 그대로 잘라 붙여 넣기보다 패턴으로 사용). 이것은 규칙이 아닌 예외입니다.

일반적으로 일반 ole cut and paste는 완전히 부적절합니다. 중요한 개념이나 알고리즘을 잘라내어 붙여 넣습니다.

나는 너무 자랑스럽지 않습니다. 나는 정말로 빠른 패리티 또는 해밍 코드 확인 알고리즘이나 그와 비슷한 것을 찾기 위해 행복하게 검색 할 것입니다. 그런 다음 몇 시간 동안 그것을 이해하여 그것이 실제로 내가 찾은 엄청난 초고속 일인지 또는 순진한 쓰레기 더미인지 확인하십시오.

누군가가 코드를 이해하기 위해 멈추지 않고 코드를 복사 할 때마다 걱정합니다. 그들은 천재이거나 (그것의 모든 미묘함을 한눈에 이해) 또는 바보입니다. 그 사이에 어떤 공간도 없습니다. 아, 그리고 진정한 천재도 많지 않습니다.

이해하지 못하면, 행복뿐만 아니라 불행한 상황이나 입력 조건 하에서 실제로 실제로 무엇을 던 졌는지 전혀 모릅니다. 때때로 이것은 운이 좋을 때 중요하지 않습니다. 때로는 장기적인 고통이 있습니다.


4
다른 한편으로, 코드를 직접 작성하고 여전히 이해하지 못하는 프로그래머가 있습니다.
hplbsh

3

기본적으로 생산성을 높이기 위해 필요한 일반적인 상황이 있습니다.

당신에게 익숙하지 않은 기술은 실습 예제가 없다면 배우기 어렵습니다. 따라서 실제로 복사하여 붙여 넣은 다음 실제로 실행 하는 것을 가지고 붙여 넣 습니다.


수정 : 기본적으로 생산성을 높이기 위해 실제로 필요 하다고 생각 하는 실제 사고 가 있습니다 . 그러므로 당신은 어떻게 든 효과가있는 것을 풀기 위해 길을 복사하여 붙여넣고, 손상을 복구하는 길을 겪고있는 영원을 소비합니다.
Newtopian

3

새로운 프로그래머로서 (처음 4 개월 만에), 나는 SO 나 다른 곳에서 많은 도움을 받고 있습니다. 나는 맹목적으로 다른 코드를 복사하여 붙여 넣지 말아야합니다. 제공된 코드가 내가 사용하는 코드 일지라도 프로그램에 입력 한 다음 코드의 기능과 이유를 완전히 이해하도록 약간의 시간을 할애합니다.

잘라 내기 및 붙여 넣기 전문가가 아닌 지속적으로 배우고 있는지 확인하고 싶습니다.


1

나는이 주제에 대해 너무 많은 감정을 가지고 있으며, 그 중 어느 것도 전적으로 객관적이라고 말할 수는 없습니다.

다른 사람의 코드를 잘라내어 응용 프로그램에 붙여 넣는 데는 여러 가지 주장이 있습니다. 그들 중 일부는 말이되고, 일부는 말이되지 않을 수 있습니다. 예를 들어, 누군가의 블로그에서 입력을 받아 수학 능력 밖에서 복잡한 수학 알고리즘을 실행하는 방법을 가지고 있다면 결과를 내뿜습니다. 적법한 곳에 코드를 작성하고 크레딧을 제공합니다. 명예로운 일입니다.

바퀴를 재발 명하지 않는 것에 대한 논쟁이 있습니다. 다시 말하지만, 이것은 이론적으로 의미가 있습니다. 그러나 잘라내어 붙여 넣은 코드에 친숙해지기까지 시간이 걸리지 않으면이 문제를 해결하는 더 좋은 방법이 있는지 알 수 없으며 코드에 버그가 있는지 알 수 없습니다 . 붙여 넣은 바퀴가 부러지면 어떻게됩니까?

속도와 효율성에 대한 논쟁이 있습니다-찢어 지거나, 도난 당했거나, 표절하거나 다른 방법으로 생각한 다른 사람들의 코드 라이브러리를 구축하십시오. 재생 부품에서 함께.

내가이 행동을 완전히 받아 들일 수있는 시간과 장소가 있습니다. 수명을 위해 설계된 것이 아니라 지금 당장 후크 또는 사기꾼으로 작업을 수행 할 수있는 빠른 폐기 도구를 함께 해킹하는 경우. 집중을 프로토 타이핑하고 공부할 목적으로, 이론적 인 맥락에서 배우고 발전시키기 위해 나는 이것이 완전히 공정한 게임이라고 생각합니다.

다른 사람들의 코드를 잘라내서 붙여 넣는 것은 표절입니다. 만약 당신이 그들의 축복을 가지고 있고 당신이 붙여 넣는 코드를 이해하고 그것이 당신의 응용 프로그램에 대한 코딩 표준의 구성에 맞는다면, 나는 그것이 공정한 게임이라는 것을 인정할 것입니다.

전문 소프트웨어 엔지니어로서 표준과 윤리 강령을 유지하기 위해 돈을 받고 있습니다. 나는 내 고객을 기소 할 위험에 처하게하는 다른 사람들의 저작권을 훔치거나 표절하거나 훼손하는 대가를받지 않습니다. 이 외에도, 잘라 내기 / 붙여 넣기 코드를 실행할 때 치명적인 부작용이 발생할 위험이 매우 높습니다.

이 답변을 목표로하지 않겠습니다. John, 이런 주제에 관해서는 윤리적으로 매우 기울어 져 있다는 것을 알고 있습니다. 따라서 이것은 실제로 질문 자체의 방향에 대한 일반적인 분노입니다.

부록 : 즉, 다른 사람을 위해 고용 작업으로 작성되지 않은 경우 프로젝트간에 자신의 코드를 잘라내어 붙여 넣는 것이 허용됩니다. 코드를 작성한 사람의 코드가 독점적 기능 개념과 관련이 없다면, 대부분의 고용주는 다른 고객을 위해 자신의 아이디어를 재사용하는 것이 좋습니다.


특정 문제를 해결하는 블로그 게시물의 코드를 어떻게 사용하십니까? 윤리 위반으로 간주되는 코드를 실제로 복사 / 붙여 넣기하거나 솔루션을 프로젝트에 다시 입력하는 것이 동일한 범주에 속합니까? "빌려온"코드의 크기 (예 : 완전한 프로그램 / 기능과 작은 스 니펫)가 의견에 영향을 줍니까?
Adam Lear

2
나는 그것이 블로그 포스트에 있다면 저자는 그것을 공개하려고 의도했기 때문에 그것이 유용하다면 공정한 게임이라고 생각합니다. 그러나 나는 그대로 복사 할 수있는 코드 스 니펫을 거의 보지 못했습니다. 그들은 일반적으로 약간의 finagling이 필요합니다.
Pemdas

사용중인 튜토리얼이나 블로그 게시물의 코드에 문제가 없습니다. 어떻게하는지 이해하십시오. 아마도 게시 된 경우 사용할 수 있습니다.
quick_now

"이 대답을 존에게 목표로 삼지 말아라"... 나는 실제로 당신이 ... 어쨌든 이것을 읽을 때까지는 아니었다 고 생각하지 않았습니다. LOL
John MacIntyre

표절에 대한 귀하의 의견을 좋아하고 코드를 완전히 이해하고 있지만 직접 작성하는 것보다 다른 사람의 코드를 복사하여 붙여 넣는 것이 더 효율적이라고 생각하십니까? 나는 당신이 그것을 완전히 이해하지 못하고 나중에 문제가 있거나, 그것을 완전히 이해하려는 시도는 그것을 직접 쓰는 것보다 시간이 더 걸릴 것입니다. KWIM?
John MacIntyre 2012 년


0

코드가 양호하면 복사하여 붙여 넣기 대신 공통 라이브러리로 만들어야합니다. 그러나 사람들은 리팩토링에 신경을 쓸 수 없으며 동일한 기능이 복사 및 방법으로 확산되는 것을 선호합니다.

복사 및 붙여 넣기의 절대적 절대 법칙을 사용하는 것이 좋거나 나쁘지 않고, 언제 그것을 사용해야하는지 알아야합니다.

복사 및 붙여 넣기의 장점은 다음과 같습니다. 빠르게 진행합니다. 단점 : 동일한 코드가 여러 곳에 분산되어 있고, 발견 및 해결 된 문제를 모든 위치에서 해결해야합니다. 복사하여 붙여 넣기 대신 공통 라이브러리로 사용한 경우 업데이트는 어디에나 전파하십시오. 동일한 코드를 다양한 곳에 분산시키는 대신 라이브러리를 사용하는 초기 투자 비용이 적습니다.

선택은 나중에 많은 시간에 비해 약간의 시간을 절약하고 복사하여 붙여 넣기를하는 방법입니다. 그렇지 않으면 리팩토링하여 공통 라이브러리에 넣습니다.


공통 라이브러리에 대해서는 분명히 동의하지만 해당 코드를 잘라서 붙여 넣거나 처음부터 새로 만들어야합니까?
John MacIntyre

코드를 가져 오는 가장 빠른 방법은 복사하여 붙여 넣는 것입니다. 그러나 코드를 프로젝트에 삽입하기 전에 코드를 검토하고 필요한 경우 수정해야합니다.
Arjang

0

대부분의 경우 인터넷에서 찾은 코드는 정확한 목적에 맞지 않습니다.

내가 많은 일을하는 것은 누군가의 코드를 복사하여 본질로 제거한 다음 내 요구 사항을 충족시킬 때까지 코드를 추가하는 것입니다. 나는 항상 명명 규칙과 코딩 스타일에 맞게 리팩터링 할 것이다.

튜토리얼을 읽을 때 개인적으로 싫어하고 복잡한 사례에 대한 코드를 표시하는 것으로 시작합니다. 본질부터 시작하여 코드를 확장하는 빌딩 블록을 보여줍니다. 필자가 독자적인 블로그를 시작한 경우 사람들에게 내가하고 싶은 일의 본질, 기능 / 특수 사례를 추가하는 방법 및 기본 기능의 완전한 작동 예를 보여주는 주석이 달린 코드 예제를 제공합니다.


-1

코드가하는 일을 이해하고 코드를 재사용 할 수있는 권한이 있거나 다른 사람이 작성한 코드가 반드시 필요한 것은 아닙니다. 알고리즘 구현을 자주 복사하여 필요에 맞게 수정합니다. 일반적으로 잘라내어 붙여 넣을 때 예제에있는 모든 것이 필요하지 않기 때문에 다른 파일을 추가하면 낭비 될 것입니다 (또는 함수 내부에있는 것입니다). 동일한 프로젝트 내에서 자신의 코드를 잘라내어 붙여 넣는 경우 jzd에 동의합니다. 잘못 된 것이 있으므로 아마도 lib를 작성하거나 함수를 공유하는 경제적 인 방법을 찾아야합니다.


-1

" 통합 "팀원이나 코드 나 프로그래밍에 대한 경험이 많지 않은 사람들은 더 자주 복사하여 붙여 넣는 경향이 있고 그들이 한 일을 이해하지 못하는 경향이 있습니다 (귀하의 질문에 언급 된 문제에 대한 이해).

또한 프로그래머 는 코드를 좋아하고 종종 바퀴를 재발 명하기 때문에 잘라 내기 및 붙여 넣기를하지 않고 자신의 차 그린에 머물지 않습니다.


재발 명 +1 또한 복사 붙여 넣기 대신 인터넷에서 코드를 다시 작성하는 데 많은 시간이 소요됩니다. 마감일에 국한되지 않기 때문에 그렇게하는 것 같습니다. 나는 혼자서 자유롭게 배울 수 있고 내가 원할 때 무엇을 배울 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.