스파게티 코드 예제

August 2, 2019 at 5:26 pm

스파게티 코드는 구조화되지 않고 유지 관리가 어려운 소스 코드에 대한 조롱적인 표현입니다. Spaghetti 코드는 휘발성 프로젝트 요구 사항, 프로그래밍 스타일 규칙 부족 및 불충분 한 기능 또는 경험 과 같은 여러 가지 요인으로 인해 발생할 수 있습니다. [1] 스파게티 코드 안티 패턴을 해결하는 가장 좋은 방법은 예방을 통해; 즉, 생각하기 전에 행동 계획을 수립합니다. 그러나 코드 베이스가 유지 관리할 수 없는 지점으로 이미 퇴화되어 있고 소프트웨어를 다시 엔지니어링하는 것이 옵션이 아닌 경우 문제를 악화시키지 않도록 취할 수 있는 단계가 여전히 있습니다. 인터페이스가 일관되고 구현만 스파게티인 경우 스파게티 코드 AntiPattern은 합리적으로 허용됩니다. 이것은 객체 지향이 아닌 코드를 래핑하는 것과 다소 비슷합니다. 구성 요소의 수명이 짧고 시스템의 나머지 부분과 깔끔하게 격리된 경우 일부 불량 코드는 견딜 수 있습니다. 구조화 된 프로그래밍 구문보다는 GOTO 문을 과도하게 사용하는 코드는 복잡하고 유지 관리 할 수없는 프로그램을 초래하는 것을 스파게티 코드라고합니다. [2] 이러한 코드는 복잡하고 얽힌 제어 구조를 가지고 있으며, 개념적으로 스파게티 그릇처럼 왜곡되고 얽힌 프로그램 흐름이 발생합니다.

[3] 미국 국립 표준국이 1980년에 발행한 출판물에서 스파게티 프로그램은 “조각화되고 흩어진 파일”을 가진 오래된 프로그램을 설명하는 데 사용되었습니다. [4] Spaghetti 코드는 메서드가 지나치게 길고 지저분한 클래스를 만들거나 다형성과 같은 개체 지향 개념을 포기하는 것과 같이 개체 지향 코드가 절차 적 스타일로 작성되는 안티 패턴을 설명할 수도 있습니다. [5] 이러한 형태의 스파게티 코드가 존재하면 시스템의 이해력을 크게 떨어뜨릴 수 있습니다. [6] 다시 말하지만, Spaghetti Code는 동시에 발생하는 대신 구현 전에 요구 사항과 디자인을 지정하는 전반적인 소프트웨어 프로세스가 있는 경우 발생할 가능성이 훨씬 적습니다. 스파게티 코드가 일반적인 용도로 사용된 시기는 명확하지 않습니다. 그러나 1977년 인공 지능 및 프로그래밍 언어에 관한 심포지엄에서 발표된 스틸의 마카로니가 스파게티보다 낫다는 것을 포함하여 몇 가지 참고 문헌이 나타났습니다. 1978 년 책에서 PL / I, PL / CS 및 PL / CT를 사용하여 훈련 된 프로그래밍에 대한 입문서, 리처드 콘웨이는 “스파게티 의 접시와 동일한 깨끗한 논리적 구조를 가지고”,[7] 1979 책에서 반복 문구를 설명하는 용어를 사용 프로그래밍 그는 데이비드 그리즈와 공동 저술. [8] 1988년 논문 소프트웨어 개발 및 향상의 나선형 모델에서 이 용어는 계획이 부족하고 결국 폭포 모델의 개발로 이어진 코드 및 수정 모델의 이전 사례를 설명하는 데 사용됩니다.

[9] 코볼 프로그래머를 위한 1979년 도서 구조화 프로그래밍에서 저자 폴 놀은 스파게티 코드와 쥐의 둥지를 동의어로 사용하여 제대로 구조화되지 않은 소스 코드를 설명합니다. [10] 2012 소프트웨어 장인 안티 패턴 달력에 등장, 스파게티 코드는 특히 프로그램의 실제 흐름을 따르는 것이 어려운 구조를 따라 하기 어려운 얽히고 이어려운 것을 의미한다.