내 직업은 프로그래머입니다. 프로그래밍 언어로서의 기계어 코드. 어셈블리 언어 프로그래밍 코드

프로그램이 계산, 결과 표시, 버튼 누르기, 목록에서 줄 선택 등의 사용자 작업에 응답하는 등 지정된 작업을 수행하려면 다음이 필요합니다. 프로그램 코드.

프로그램 코드 프로그래밍 언어의 단어와 기호 집합입니다.

알파벳 - 데이터와 그에 대한 작업을 표시하기 위해 언어로 채택된 문자, 숫자 및 기호의 완전한 세트입니다.

Visual Basic 언어 알파벳에는 다음 문자 집합이 포함됩니다.:

라틴 알파벳의 대문자(A - Z) 및 소문자(a - z)

0부터 9까지의 숫자;

산술 연산 기호(우선순위 오름차순): +, -, *, /, |, ^;

관계 연산의 징후: =,<, >.

구두점 및 구분 기호: ,  . : ; ();

언어의 알파벳에는 다음이 포함됩니다. 예약된로 사용할 수 없는 단어 이름변수 또는 프로시저. 예약어의 예: Dim, Sub, Integer 등 기본적으로 파란색 글꼴은 Visual Basic 코드 편집 창에서 키워드를 강조 표시하는 데 사용됩니다.

단어와 기호는 철자 및 구두점 오류 없이 언어 규칙에 따라 엄격하게 작성되어야 합니다. 컴퓨터가 프로그램을 명확하게 이해하고 실행할 수 있도록 하는 것은 정확한 철자입니다.

코드 창

프로그램 코드는 코드 창에 작성됩니다. 각 양식에는 이러한 창이 있습니다.

코드 창 열기:

편도 - 창문에서 프로젝트 탐색기원하는 양식을 마우스 오른쪽 버튼으로 클릭하고 열리는 메뉴에서 선택하십시오. 코드를 표시합니다.

메모: 코드 창은 양식과 연결되지 않을 수 있습니다. 별도의 코드 창을 호출합니다. 기준 치수. 프로젝트 탐색기 창의 모듈은 그룹으로 그룹화됩니다. 모듈. 모듈 코드로 창을 열려면 창에서 다음을 수행해야 합니다. 프로젝트 탐색기모듈 이름을 두 번 클릭합니다.

방법 2 - 양식의 컨트롤 요소나 양식 창의 양식 자체를 두 번 클릭합니다.

메모: 이는 코드 창을 열 뿐만 아니라 이벤트 처리 프로시저도 생성합니다(아래 참조).

코드 창 구조:

쌀. 7. 프로그램 코드 창.

    컨트롤 목록

    제어 이벤트 목록

    절차(코드)

절차

냉장고를 열면 램프가 켜지고 수도꼭지를 열면 물이 흘러나오기 때문에 냉장고를 여는 이벤트가 발생하면 하나의 절차가 수행되고 수도꼭지를 여는 이벤트가 또 다른 절차를 수행한다고 할 수 있습니다. 절차. 마찬가지로 프로그램 코드는 각각 고유한 특정 작업을 수행하는 별도의 프로시저로 구성됩니다. 예를 들어 한 프로시저는 램프를 켜고 다른 프로시저는 물을 켭니다(펌프).

비주얼 베이직 - 절차적 프로그래밍 언어.이는 그 안에 코드 블록을 생성한 다음 이름으로 참조할 수 있음을 의미합니다. 코드 블록에 이름이 있으면 다음과 같은 이름을 가질 수 있습니다. ~라고 불리는완료되었습니다. 프로그램 안의 프로그램과 같습니다. 대규모 프로그램에 "살아있는" 작은 프로그램을 호출합니다. 다음과 같은 경우에 기능합니다.그들은 어떤 값을 반환하고 서브루틴,값을 반환하지 않는 경우.

서브루틴과 함수를 사용하면 프로그래밍이 더 쉽고 빨라지며, 작성한 코드의 안정성이 높아집니다. 자신만의 루틴과 기능을 만드는 것이 개발의 첫 번째 단계입니다. 캡슐화그리고 재사용 가능한 코드. 캡슐화란 객체의 속성과 메소드 구현을 외부 인터페이스 뒤에 숨기는 것을 의미합니다.

절차 (서브루틴)은 일반적으로 작은 작업을 해결하는 데 사용되는 별도의 프로그램 코드 조각으로, 전체 프로그램이 분할되는 논리적으로 구성된 작은 프로그램 블록입니다.

프로시저가 지정된 프로그램 블록 내에서만 실행될 수 있고(예: 이 형식으로만) 다른 프로그램 블록에서 호출할 수 없는 경우 해당 프로시저는 로컬 프로시저입니다. 로컬 프로시저는 Private Sub 키워드를 사용하여 지정됩니다.

다른 프로그램 블록(예: 다른 형식)에서 프로시저를 호출할 수 있는 경우 해당 프로시저는 전역적입니다. 전역 프로시저는 Public Sub 키워드를 사용하여 지정됩니다.

기본적으로 Sub 키워드 앞에 키워드가 없으면 이는 전역 프로시저입니다.

절차는 다음과 같습니다.

    이벤트 절차. 컨트롤(또는 폼)에서 이벤트가 발생할 때 실행됩니다. 이벤트 프로시저는 항상 일부 개체와 연결됩니다. 개체의 이벤트 프로시저를 호출하려면 해당 개체를 마우스 왼쪽 버튼으로 두 번 클릭하면 됩니다.

    임의의 절차. 이벤트와 연관되지 않으며 언제든지 다른 프로시저에서 호출하고 실행할 수 있습니다. 동일한 프로그램 블록이 프로그램의 모든 형태로 발생하는 경우 글로벌 공통 프로그램의 형태로 한 위치에 한 번만 작성할 수 있습니다. 일반 프로그램의 실행은 객체나 이벤트와 연관되지 않고 다른 프로그램 블록에서 접근할 때 발생합니다. 동일한 양식에서 일반 프로시저 호출: 프로시저이름(ParameterList). 다른 양식에서 일반 프로시저 호출: 객체. 프로시저이름(ParameterList). 일반적인 절차는 로컬 프라이빗 및 글로벌 퍼블릭이 될 수 있습니다.

절차 구조

절차는 다음 요소로 구성됩니다.

    절차 헤더 - 절차의 시작, 유형, 목적(이벤트)을 표시합니다.

Command1이라는 버튼을 클릭했을 때 실행되는 프로시저 제목의 예입니다.

    단어 사적인즉, 프로시저가 이 양식이나 모듈에만 속하며 다른 컨테이너(양식, 모듈)에서는 사용할 수 없음을 의미합니다. 이 단어를 생략하면 해당 절차가 다른 컨테이너에 공개됩니다.

    보결- 절차.

메모: 절차 외에도 기능이 있습니다. 함수는 이벤트와 연관되지 않으며 추가로 작업 결과(계산)를 반환할 수 있습니다.

    제어 요소(또는 양식 이름): 속성에 저장된 요소의 정확한 이름을 지정합니다. 이름.

    이벤트- 행사명. 다음은 몇 가지 이벤트입니다.

    클릭 - 마우스 클릭;

    DblClick - 더블 클릭;

    KeyPress - 키 누르기;

    UnLoad - 양식 언로드(양식을 닫을 때 프로그램 종료)

    활성화 - 양식 활성화(양식을 클릭하면 제목이 강조 표시됨)

    비활성화 - 양식을 비활성화합니다(다른 양식을 클릭할 때).

    초기화 - 형태의 객체를 생성할 때.

    크기 조정 - 양식 크기를 변경할 때

    종료 - 양식을 삭제하는 순간

    인수- 처리를 위해 프로시저에 전달된 초기 데이터입니다.

사용자 정의 프로시저에는 다음과 같은 헤더가 있습니다.

프로시저 이름있어야 한다 고유한는 문자로 시작해야 하며 공백이나 밑줄 이외의 문자를 포함할 수 없습니다. 프로시저는 실행되어야 할 때 이름으로 호출됩니다.

    절차 종료 - 프로시저의 프로그램 코드 종료: End Sub

메모: 기능의 경우: 기능 종료

    절차 본문 -제목과 결말 사이의 줄입니다. 그들의 수는 무제한입니다. 이 줄에는 프로시저가 호출될 때(이벤트 발생) 실행되어야 하는 명령이 포함되어 있습니다.

서브루틴(보결) - 블록 내에서 프로그램 코드를 실행하고 값을 반환하지 않는 프로시저입니다. 간단한 서브루틴의 구문은 다음과 같습니다.

( 사적인 | 공공의 ) 보결 서브메인 ()

..코드 줄 보결

서브루틴의 범위

하위 - 프로시저 유형(즉, 서브루틴)

서브메인서브루틴에 주어진 이름;

End Sub - 서브루틴 코드 블록의 끝입니다.

프로시저 만들기

프로시저를 생성하려면 다음을 수행합니다.

    편도 - 원하는 컨트롤이나 양식을 두 번 클릭합니다. 코드 창이 열리고 절차의 제목과 끝이 표시됩니다. 다른 이벤트가 필요한 경우 코드 창 오른쪽 상단에 있는 목록을 사용하여 선택합니다.

    방법 2 - 코드 창을 열고 도구 → 프로시저 추가 → 프로시저 이름 및 매개변수 지정 → 확인으로 이동합니다.

    3방향 - 코드 창을 열고 키보드에서 필요한 줄을 입력합니다.

결과는 다음과 같습니다.

개인 하위 Command1_Click()

실행을 위한 호출 절차

    이벤트 프로시저가 실행되려면 이벤트가 발생해야 합니다.

    임의의 프로시저를 실행하려면 다른 프로시저의 본문에 이 프로시저의 이름을 지정하십시오.

개인 하위 Command1_Click()

여기서 Command1 버튼을 클릭하면 Click 이벤트가 발생하고 Kvadrat 프로시저가 호출되어 실행됩니다.

프로시저 코드는 한 줄씩, 위에서 아래로 실행됩니다.

기능 (기능) - 이는 코드 줄을 실행하고 일부 값을 반환하는 프로시저입니다. 간단한 함수의 구문은 다음과 같습니다.

기능 FunctionName()을 데이터 유형으로 사용

... 윤곽암호

함수 이름 = 반환값기능 종료

기능 범위;

Function은 함수임을 나타내는 Visual Basic 키워드입니다.

함수 이름 () - 함수에 주어진 이름;

AS는 데이터 유형 지정 앞에 나오는 Visual Basic 키워드입니다.

데이터 형식반환 값 데이터 유형;

반환 값함수 이름에 할당되어야 하는 값(이것은 매우 중요한 포인트입니다!)

End Function - 이 코드 블록의 끝입니다.

프로그래밍은 컴퓨터 프로그램을 만들 수 있는 전체 과학입니다. 여기에는 단일 프로그래밍 언어를 구성하는 수많은 다양한 작업과 알고리즘이 포함됩니다. 그렇다면 그것은 무엇이며 다른 프로그래밍 언어는 무엇입니까? 이 기사에서는 답변을 제공하고 프로그래밍 언어의 개요 목록도 제공합니다.

프로그램 언어의 출현과 변화의 역사는 컴퓨터 기술 개발의 역사와 함께 연구되어야 합니다. 왜냐하면 이러한 개념은 서로 직접적으로 관련되어 있기 때문입니다. 프로그래밍 언어 없이는 컴퓨터가 작동할 프로그램을 만드는 것이 불가능하며, 이는 컴퓨터를 만드는 것이 무의미한 작업이 된다는 것을 의미합니다.

최초의 기계어는 1941년 분석 엔진의 발명가인 Konrad Zuse에 의해 발명되었습니다. 조금 후인 1943년에 Howard Aiken은 기계 코드 수준에서 명령을 읽을 수 있는 Mark 1 기계를 만들었습니다.

1950년대에 들어와서 소프트웨어 개발에 대한 수요가 시작되었고, 기계어는 많은 양의 코드를 처리할 수 없어 컴퓨터와 소통하는 새로운 방식이 탄생하게 되었습니다. "어셈블러"는 기계 명령어를 대체하는 최초의 니모닉 언어입니다. 수년에 걸쳐 컴퓨터 기술의 범위가 넓어지기 때문에 프로그래밍 언어 목록이 증가합니다.

프로그래밍 언어 분류

현재 프로그래밍 언어는 300개가 넘습니다. 각각은 고유한 특성을 가지고 있으며 하나의 특정 작업에 적합합니다. 모든 프로그래밍 언어는 여러 그룹으로 나눌 수 있습니다.

  • 측면 지향(주요 아이디어는 소프트웨어 모듈의 효율성을 높이기 위해 기능을 분리하는 것입니다).
  • 구조적(개별 프로그램 블록의 계층 구조를 생성하는 아이디어 기반)
  • 논리적 (수학적 논리 장치 이론 및 해결 규칙 기반).
  • 객체 지향(이러한 프로그래밍에서는 더 이상 알고리즘이 사용되지 않고 특정 클래스에 속하는 객체입니다).
  • 다중 패러다임(여러 패러다임을 결합하고 프로그래머가 주어진 경우에 사용할 언어를 결정함)
  • 기능적(주요 요소는 소스 데이터 계산 결과에 따라 값을 변경하는 함수입니다).

초보자를 위한 프로그래밍

많은 사람들이 프로그래밍이 무엇인지 궁금해합니까? 기본적으로 이는 컴퓨터와 통신하는 방법입니다. 프로그래밍 언어 덕분에 특수 애플리케이션이나 프로그램을 만들어 다양한 장치에 특정 작업을 할당할 수 있습니다. 초기 단계에서 이 과학을 공부할 때 가장 중요한 것은 적합한(흥미로운) 프로그래밍 언어를 선택하는 것입니다. 초보자를 위한 목록은 다음과 같습니다.

  • Basic은 1964년에 발명되었으며 고급 언어 계열에 속하며 응용 프로그램 작성에 사용됩니다.
  • Python은 간단하고 읽기 쉬운 구문으로 인해 배우기가 매우 쉽지만 일반 데스크톱 프로그램과 웹 응용 프로그램을 모두 만드는 데 사용할 수 있다는 장점이 있습니다.
  • 파스칼은 학생들을 가르치기 위해 만들어진 가장 오래된 언어(1969) 중 하나입니다. 현대적인 변형은 엄격하게 유형화되고 구조화되어 있지만 파스칼은 직관적인 수준에서 이해할 수 있는 완전히 논리적인 언어입니다.

이것은 초보자를 위한 프로그래밍 언어의 전체 목록이 아닙니다. 이해하기 쉽고 앞으로 몇 년 동안 확실히 수요가 많을 구문이 엄청나게 많습니다. 모든 사람은 자신에게 흥미로운 방향을 독립적으로 선택할 권리가 있습니다.

초보자는 특별한 도구 덕분에 프로그래밍과 그 기초에 대한 학습 속도를 높일 수 있는 기회를 갖게 됩니다. 주요 어시스턴트는 프로그램과 애플리케이션을 위한 통합 개발 환경인 Visual Basic(“Visual Basic”은 1970년대 Basic 언어의 스타일을 계승한 프로그래밍 언어이기도 함)입니다.

프로그래밍 언어의 수준

컴퓨터 문제 해결을 위한 프로그램 및 알고리즘을 생성, 설명하기 위한 모든 공식 언어는 하위 수준 프로그래밍 언어(아래 목록 참조)와 고급 수준의 두 가지 주요 범주로 나뉩니다. 각각에 대해 개별적으로 이야기합시다.

저수준 언어는 프로세서에 대한 기계 명령어를 생성하도록 설계되었습니다. 주요 장점은 니모닉 표기법을 사용한다는 것입니다. 즉, 일련의 0과 1(이진수 시스템에서) 대신 컴퓨터가 영어의 의미 있는 약어를 기억한다는 것입니다. 가장 유명한 저수준 언어는 "Assembler"(이 언어에는 여러 하위 유형이 있으며 각각 공통점이 많지만 추가 지시문 및 매크로 집합에서만 다릅니다), CIL(.Net에서 사용 가능) 플랫폼) 및 JAVA 바이트코드.

고급 프로그래밍 언어: 목록

고급 언어는 응용 프로그램의 편의성과 효율성을 높이기 위해 만들어졌으며 저급 언어와 정반대입니다. 그들의 독특한 특징은 프로그램의 구조와 알고리즘을 간결하고 간결하게 설명하는 의미 구조가 존재한다는 것입니다. 저수준 언어에서는 기계어 설명이 너무 길어서 이해하기 어렵습니다. 고급 언어는 플랫폼 독립적입니다. 대신 컴파일러는 번역기 기능을 수행합니다. 즉, 프로그램 텍스트를 기본 기계 명령어로 번역합니다.

다음 프로그래밍 언어 목록은 C("C"), C#("C-sharp"), "Fortran", "Pascal", Java("Java")이며 가장 많이 사용되는 고급 구문 중 하나입니다. 여기에는 다음과 같은 속성이 있습니다. 이러한 언어는 복잡한 구조로 작동하고 문자열 데이터 유형 및 파일 I/O 정보 작업을 지원하며 가독성과 이해 가능한 구문으로 인해 작업하기가 훨씬 쉽다는 장점도 있습니다.

가장 많이 사용되는 프로그래밍 언어

원칙적으로 어떤 언어로든 프로그램을 작성할 수 있습니다. 문제는 이것이 효율적이고 실패 없이 작동할 것인가입니다. 그렇기 때문에 다양한 문제를 해결하려면 가장 적합한 프로그래밍 언어를 선택해야 합니다. 인기순 목록은 다음과 같이 설명할 수 있습니다.

  • OOP 언어: Java, C++, Python, PHP, VisualBasic 및 JavaScript;
  • 구조적 언어 그룹: Basic, Fortran 및 Pascal;
  • 멀티 패러다임: C#, Delphi, Curry 및 Scala.

프로그램 및 응용 범위

특정 프로그램이 작성되는 언어 선택은 적용 영역에 따라 크게 달라집니다. 예를 들어, 컴퓨터 하드웨어 자체로 작업하는 경우(드라이버 작성 및 지원 프로그램) 가장 좋은 옵션은 기본 프로그래밍 언어에 포함된 C("C") 또는 C++입니다(위 목록 참조). . 그리고 게임을 포함한 모바일 애플리케이션을 개발하려면 Java 또는 C#(“C-sharp”)을 선택해야 합니다.

어떤 방향으로 일할지 아직 결정하지 못했다면 C 또는 C++로 공부하는 것이 좋습니다. 그들은 매우 명확한 구문과 클래스와 함수로의 명확한 구조적 구분을 가지고 있습니다. 또한 C나 C++를 알면 다른 프로그래밍 언어도 쉽게 배울 수 있습니다.

나쁜 코드를 작성하는 방법은 무수히 많습니다. 다행스럽게도 코드 품질 수준을 높이려면 15가지 규칙만 따르면 됩니다. 그것들을 따른다고 해서 당신이 마스터가 되는 것은 아니지만, 당신이 그것을 설득력 있게 모방할 수 있게 해줄 것입니다.

규칙 1: 코딩 표준을 따르세요.

각 프로그래밍 언어에는 들여쓰기 방법, 공백과 괄호를 넣을 위치, 개체 이름 지정 방법, 코드 주석 지정 방법 등을 알려주는 고유한 코드 형식 지정 표준이 있습니다.

예를 들어, 표준에 따르면 다음 코드에는 12개의 오류가 있습니다.

(i=0 ;나는

표준을 주의 깊게 연구하고, 기본 사항을 암기하고, 계명과 같은 규칙을 따르십시오. 그러면 여러분의 프로그램은 대부분의 대학 졸업생이 작성한 것보다 더 좋을 것입니다.

많은 조직에서는 특정 요구 사항에 맞게 표준을 맞춤화합니다. 예를 들어, Google은 12개 이상의 프로그래밍 언어에 대한 표준을 개발했습니다. 잘 고려되어 있으므로 Google 프로그래밍에 도움이 필요한 경우 확인해 보세요. 표준에는 스타일을 준수하는 데 도움이 되는 편집기 설정과 코드가 해당 스타일을 준수하는지 확인하는 특수 도구도 포함됩니다. 그것을 써.

규칙 2: 설명이 포함된 이름을 지정하세요.

느리고 투박한 텔레타이프 기계로 인해 고대의 프로그래머들은 시간, 키 입력, 잉크 및 종이를 절약하기 위해 변수 및 프로시저 이름에 대한 계약을 사용했습니다. 이러한 문화는 이전 버전과의 호환성을 유지하기 위해 일부 커뮤니티에 존재합니다. 예를 들어 언어 분리 C 함수 wcscspn(와이드 문자열 보완 범위)을 살펴보겠습니다. 그러나 이 접근 방식은 최신 코드에는 적용되지 않습니다.

귀하와 귀하의 동료가 향후 코드를 이해하는 데 도움이 되도록 ComplementSpanLength와 같은 길고 설명이 포함된 이름을 사용하십시오. 예외는 루프 반복자, 매개변수, 임시 값 또는 실행 결과와 같이 메서드 본문에 사용되는 몇 가지 중요한 변수입니다.

이름을 짓기 전에 오랫동안 열심히 생각하는 것이 훨씬 더 중요합니다. 이름이 정확한가요? bestPrice가 아니라 maximumPrice를 말씀하신 건가요? 유사한 개체에 대한 다른 컨텍스트에서 사용되지 않을 만큼 이름이 충분히 구체적입니까? getBest 대신 getBestPrice 메소드를 호출하는 것이 더 낫지 않을까요? 다른 유사한 이름보다 더 잘 어울리나요? ReadEventLog 메서드가 있는 경우 다른 NetErrorLogRead를 호출하면 안 됩니다. 함수 이름을 지정하면 그 이름이 반환 값을 설명합니까?

마지막으로 몇 가지 간단한 명명 규칙이 있습니다. 클래스 및 유형 이름은 명사여야 합니다. 메소드 이름에는 동사가 포함되어야 합니다. 메소드가 객체에 대한 일부 정보가 참인지 거짓인지를 결정하는 경우 해당 이름은 "is"로 시작해야 합니다. 객체의 속성을 반환하는 메서드는 "get"으로 시작해야 하고, 속성 값을 설정하는 메서드는 "set"으로 시작해야 합니다.

규칙 3: 의견 및 문서.

메서드나 프로시저의 기능, 해당 매개변수, 반환 값, 가능한 오류 및 예외를 설명하는 주석으로 각 메서드와 프로시저를 시작합니다. 각 파일과 클래스의 역할, 각 클래스 필드의 내용, 복잡한 코드의 주요 단계를 주석에 설명합니다. 코드를 개발하면서 주석을 작성하세요. 나중에 쓸 것이라고 생각한다면 자신을 속이는 것입니다.

또한 애플리케이션이나 라이브러리에 코드의 기능을 설명하고 종속성을 정의하며 빌드, 테스트, 설치 및 사용에 대한 지침을 제공하는 설명서가 있는지 확인하세요. 문서는 짧고 편리해야 합니다. 간단한 README 파일이면 충분할 때가 많습니다.

규칙 4. 같은 말을 반복하지 마세요.

코드를 복사하여 붙여넣지 마세요. 대신 공통 부분을 메서드나 클래스(또는 필요한 경우 매크로)로 분리하고 적절한 매개변수와 함께 사용하세요. 유사한 데이터와 코드 조각을 사용하지 마십시오. 또한 다음 기술을 사용하십시오.

  • Javadoc 및 Doxygen을 사용하여 주석에서 API 참조를 생성합니다.
  • 주석 또는 명명 규칙을 기반으로 단위 테스트를 자동 생성합니다.
  • 단일 태그 소스에서 PDF 및 HTML을 생성합니다.
  • 데이터베이스에서 클래스 구조를 검색합니다(또는 그 반대로).

규칙 5: 오류를 확인하고 이에 대응하세요.

메서드는 오류 증상을 반환하거나 예외를 발생시킬 수 있습니다. 처리하세요. 디스크가 절대 채워지지 않고, 구성 파일이 항상 거기에 있고, 애플리케이션이 필요한 모든 권한으로 실행되고, 메모리 할당 요청이 항상 성공하거나, 연결이 절대 실패하지 않을 것이라는 사실에 의존하지 마십시오. 예, 좋은 오류 처리는 작성하기 어렵고 코드를 더 길고 읽기 어렵게 만듭니다. 그러나 오류를 무시하면 문제가 은폐되어 의심하지 않는 사용자가 언젠가는 이를 발견하게 될 것입니다.

규칙 6: 코드를 짧고 개별적인 부분으로 나누세요.

각 메소드, 함수 또는 코드 블록은 일반 화면 창(25-50줄)에 맞아야 합니다. 더 길면 더 짧은 조각으로 나누세요. 메서드 내에서도 긴 코드를 블록으로 나누고, 각 블록의 시작 부분에 있는 주석으로 블록의 본질을 설명할 수 있습니다.

또한 각 클래스, 모듈, 파일 또는 프로세스는 특정 종류의 작업을 수행해야 합니다. 코드 조각이 완전히 다른 작업을 수행하는 경우 그에 따라 코드를 나눕니다.

규칙 7. 프레임워크 API와 타사 라이브러리를 사용하세요.

프레임워크의 API를 통해 어떤 기능을 사용할 수 있는지 살펴보세요. 성숙한 타사 라이브러리가 무엇을 할 수 있는지도 알아보세요. 시스템 패키지 관리자가 라이브러리를 지원한다면 좋은 선택이 될 것입니다. 바퀴를 재발명하려는 욕구를 억제하는 코드(그리고 쓸모없는 사각형 코드)를 사용하십시오.

규칙 8: 지나치게 디자인하지 마세요.

지금 관련성이 있는 것만 디자인하세요. 코드가 너무 복잡해지지 않는 한 추가 개발을 지원하기에 충분히 일반적인 코드를 만들 수 있습니다. 존재하지도 않는 문제를 해결하기 위해 매개변수화된 클래스, 팩토리, 심층 계층 및 숨겨진 인터페이스를 만들지 마십시오. 내일 무슨 일이 일어날지 추측할 수 없습니다. 반면, 코드 구조가 작업에 적합하지 않은 경우에는 주저하지 말고 리팩토링하세요.

규칙 9: 일관성을 유지하세요.

같은 방법으로 같은 일을 하십시오. 기존 메소드와 기능이 유사한 메소드를 개발하는 경우 유사한 이름, 유사한 매개변수 순서 및 유사한 본체 구조를 사용하십시오. 수업에도 동일하게 적용됩니다. 유사한 필드와 메서드를 만들고 유사한 인터페이스를 제공하며 비슷한 클래스의 기존 이름과 새 이름을 일치시킵니다.

코드는 프레임워크의 규칙을 따라야 합니다. 예를 들어, 범위를 반 개방형으로 만드는 것이 좋습니다. 왼쪽(범위 시작 부분)은 닫혀 있고(포함) 오른쪽(끝)은 열려 있습니다(제외). 특정 사건에 대한 합의가 없다면 선택을 하고 열광적으로 이를 고수하십시오.

규칙 10: 보안 문제를 피하세요.

최신 코드는 단독으로 작동하는 경우가 거의 없습니다. 공격의 표적이 될 위험이 임박했습니다. 인터넷에서 올 필요는 없습니다. 공격은 애플리케이션의 입력 데이터를 통해 발생할 수 있습니다. 프로그래밍 언어 및 도메인에 따라 버퍼 오버플로, 사이트 간 스크립팅, SQL 삽입 및 기타 유사한 문제에 대해 걱정해야 할 수도 있습니다. 이러한 문제를 연구하고 코드에서 이러한 문제를 피하십시오. 어렵지 않습니다.

규칙 11: 효율적인 데이터 구조와 알고리즘을 사용하세요.

간단한 코드는 동일한 코드보다 유지 관리가 더 쉽지만 효율성을 위해 수정되는 경우가 많습니다. 다행스럽게도 프레임워크가 제공하는 데이터 구조와 알고리즘을 사용하여 유지 관리성과 효율성을 결합할 수 있습니다. 이들과 함께 작동하는 맵, 세트, ​​벡터 및 알고리즘을 사용하십시오. 이렇게 하면 코드가 더욱 깔끔하고, 빠르고, 확장 가능하며, 메모리 효율성이 높아집니다. 예를 들어 수천 개의 값을 정렬된 세트에 저장하는 경우 교차 연산은 백만 번의 비교가 아닌 동일한 수의 연산에서 다른 세트와 공통 요소를 찾습니다.

규칙 12. 단위 테스트를 사용하세요.

최신 소프트웨어는 복잡하기 때문에 설치 비용이 더 많이 들고 테스트도 더 어렵습니다. 생산적인 접근 방식은 작업의 정확성을 확인하는 테스트를 각 코드 조각과 함께 수행하는 것입니다. 이 접근 방식은 디버깅을 단순화합니다. 이를 통해 오류를 더 일찍 감지할 수 있습니다. Python 및 JavaScript와 같은 동적 유형 언어로 프로그래밍할 때 단위 테스트가 필요한 이유는 런타임에만 오류를 포착하는 반면 Java, C# 및 C++와 같은 정적 유형 언어는 런타임에 일부 오류를 포착할 수 있기 때문입니다. 시간. 또한 단위 테스트를 통해 자신 있게 코드를 리팩터링할 수 있습니다. XUnit을 사용하면 테스트를 더 쉽게 작성하고 실행을 자동화할 수 있습니다.

규칙 13: 코드를 이식 가능하게 유지하세요.

특별한 이유가 없는 한 특정 플랫폼에서만 사용할 수 있는 기능을 사용하지 마세요. 특정 길이(예: 32비트)를 갖기 위해 특정 데이터 유형(예: 정수, 포인터 및 타임스탬프)에 의존하지 마십시오. 이 매개변수는 플랫폼마다 다르기 때문입니다. 프로그램 메시지를 코드와 별도로 유지하고 문화권별 매개 변수(예: 소수 구분 기호 또는 날짜 형식)를 하드코딩하지 마세요. 코드가 여러 국가에서 실행될 수 있도록 하려면 규칙이 필요하므로 현지화를 최대한 쉽게 수행하세요.

규칙 14: 코드를 구성 가능하게 만드세요.

간단한 명령으로 코드를 배포할 준비가 된 형태로 조합해야 합니다. 이 명령을 사용하면 필요한 테스트를 빠르게 구축하고 실행할 수 있습니다. 이 목표를 달성하려면 Make, Apache Maven 또는 Ant와 같은 자동화된 빌드 도구를 사용하십시오. 이상적으로는 코드가 변경될 때마다 코드를 확인, 구축 및 테스트하는 통합 시스템을 설치해야 합니다.

규칙 15: 모든 것을 버전 관리에 두세요.

코드, 문서, 도구 소스, 빌드 스크립트, 테스트 데이터 등 모든 요소가 버전 제어에 있어야 합니다.

사람이 읽을 수 있는 일부 프로그래밍 언어나 마크업 언어로 사용됩니다. 일반화된 의미에서는 번역가를 위한 모든 입력 데이터입니다. 소스 코드는 다음과 같이 번역됩니다. 실행 가능한 코드컴파일러를 사용하여 프로그램을 실행하기 전에 완전히 실행하거나 인터프리터를 사용하여 즉시 실행할 수 있습니다.

목적

소스 코드는 목적 코드를 생성하는 데 사용되거나 인터프리터에 의해 실행됩니다. 원본에만 변경 사항이 적용되고 이후 개체로 다시 변환됩니다.

소스 코드의 또 다른 중요한 목적은 프로그램을 설명하는 것입니다. 프로그램의 텍스트를 기반으로 해당 동작의 논리를 재구성할 수 있습니다. 주석은 소스 코드를 더 쉽게 이해하기 위해 사용됩니다. 소스 코드 문서를 자동으로 얻을 수 있는 도구(소위)도 있습니다. 문서 생성기.

또한 소스 코드에는 다른 용도도 많이 있습니다. 교육 도구로 사용할 수 있습니다. 초보 프로그래머는 기존 소스 코드를 검토하여 프로그래밍 기술과 방법론을 배우는 것이 유용할 수 있습니다. 또한 간결하고 명확한 성격으로 인해 숙련된 프로그래머 간의 의사소통 도구로도 사용됩니다. 개발자 간의 코드 공유는 프로그래머 경험을 향상시키는 데 기여하는 요소로 자주 인용됩니다.

프로그래머는 소스 코드를 모듈 형태로, 있는 그대로 또는 수정하여 한 프로젝트에서 다른 프로젝트로 이동하는 경우가 많습니다. 이를 코드 재사용이라고 합니다.

소스 코드는 소프트웨어를 다른 플랫폼으로 포팅하는 과정에서 중요한 구성 요소입니다. 소프트웨어의 소스 코드가 없으면 포팅이 너무 어렵거나 완전히 불가능합니다.

조직

소프트웨어 일부(모듈, 구성 요소)의 소스 코드는 하나 이상의 파일로 구성될 수 있습니다. 프로그램 코드는 반드시 하나의 프로그래밍 언어로만 작성될 필요는 없습니다. 예를 들어, C 언어로 작성된 프로그램에는 최적화를 위해 어셈블리 언어 코드가 삽입되는 경우가 많습니다. 프로그램의 일부 구성 요소나 부분이 다른 언어로 작성된 다음 라이브러리 연결이라는 기술을 사용하여 단일 실행 가능한 모듈로 조립될 수도 있습니다( 도서관 연결).

복잡한 소프트웨어를 만들려면 수십 또는 수백 개의 소스 코드 파일이 필요합니다. 이러한 경우 빌드를 단순화하기 위해 일반적으로 소스 코드 파일 간의 종속성에 대한 설명을 포함하고 빌드 프로세스를 설명하는 프로젝트 파일이 사용됩니다. 이러한 파일에는 컴파일러 및 디자인 환경에 대한 옵션도 포함될 수 있습니다. 다양한 디자인 환경에서는 다양한 프로젝트 파일을 사용할 수 있으며 일부 환경에서는 이러한 파일이 텍스트 형식일 수 있어 프로그래머가 범용 텍스트 편집기를 사용하여 직접 편집하기에 적합합니다. 다른 환경에서는 특수 형식이 지원되며 생성 및 파일 수정은 특수 도구 프로그램을 사용하여 수행됩니다. 프로젝트 파일은 일반적으로 "소스 코드"라는 용어에 포함됩니다. 소스 코드는 프로그램을 빌드하는 데 필요한 그래픽 등 다양한 데이터가 포함된 리소스 파일을 참조하는 경우가 많습니다.

소스 코드 작업을 더 쉽게 만들고 프로그래머 팀이 코드에 대해 협업할 수 있도록 버전 제어 시스템이 사용됩니다.

품질

인간과 달리 컴퓨터에는 "잘 작성된" 코드나 "잘못 작성된" 코드가 없습니다. 그러나 코드 작성 방법은 소프트웨어 유지 관리 프로세스에 큰 영향을 미칠 수 있습니다. 소스 코드의 품질은 다음 매개변수로 판단할 수 있습니다.

  • 코드 가독성(존재 여부 포함)

일부는 재미를 위해, 일부는 가설의 존재를 증명하거나 반증하기 위해, 일부는 뇌를 훈련하기 위해(클라인 병 표면이나 4차원 공간을 여행하는 등) 수백 명의 사람들이 "난해한" 프로그래밍 언어를 만들었습니다. 나는 이 언어 중 약 150개를 겪었고 다시는 예전과 같지 않을 것입니다.

"아아!", "으악!", "2-ill", "Nhohnhehr", "Noit o" mnain gelb", "DZZZZ", "Ypsilax", "YABALL", 엿같은 - 이건 주문이고 시는 이름일 뿐이야 ... catom 아래 - 가장 눈길을 끄는 프로그래밍 언어로 된 코드 예제입니다.

토끼굴은 깊습니다.

INTERCAL(튜링 완료)



돈 우즈와 짐 라이언

가장 오래된 난해한 프로그래밍 언어 중 하나입니다. 제작자에 따르면 해당 이름은 "발음할 수 없는 약어가 없는 컴파일러 언어"를 의미합니다. 이 언어는 1972년 Don Woods와 James M. Lyon 학생이 기존 프로그래밍 언어와 정신 체조를 패러디하여 만들었습니다.

안녕, 세계

각 프로그램 명령에는 프로그램이 시작될 때 실행될 확률이 주어질 수 있습니다. 또한 특정 유형의 후속 명령 실행이나 변수 변경을 차단하는 명령이 있습니다.

안녕, 세상!

// Stephen McGreal의 "Hello World".
// 이 소스 코드에 표현된 뷰가 반드시 소스 코드의 뷰와 일치하는 것은 아닙니다.

Gr34t l33tN3$$?
으흐…
41n"t s0 7RickY.

L33t sp33k는 1t through 7hink에 도달할 때까지 4nD eA5y입니다.
1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;피
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!

Qu4k3 CL4nS r 7eh 1n teh 3nTir3 world!!!
g4m3s wh3r3 u g3t에서 5h00t ppl r 70tAl1_y w1cK1d!!!
나는 당신의 fr4GM4stEr이고 나는 t0t41_1당신의 h1dE로 당신의 phr34k1ng fl00r ***j3d1 5일***을 닦아줄 것입니다!!! ㅋㅋㅋㅋㅋㅋ!
내 m8tes r34lly k1kK$ A$$와 함께 t3lEphR4gG1nG l4m3rs

L33t haxX0r$ CrE4t3 u8er- k3wL 5tUff like n34t pr0gR4mm1nG 언어$…
s0m3tIm3$ teh l4ngu4ges는 l1k3 rE41_ 0nes 7o로 만들어 주세요. th1nk th3y"r3 ju$t n0rMal Lee7 5pEEk 하지만 th3y"는 5ecretly c0dE입니다!!!
n080DY under5tAndD$ l33t SpEaK 4p4rT fr0m j3d1!!!
50mE 꼬마가 나에게 $$4gEb04rd m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mayb3 ju5t show 0w 7eh way5 l33t ppl은 8E 더 y0d4처럼 될 수 있어!!! 그 사람 i5 teh u8ER!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jus7 s4y “H3LL0 W0RLD!!!” 당신은 gu3s5를 할 수 없습니다.
th3r3"s n3v3r a Any point l00King sc3pT1c4l c0s th4t, be1_1Ev3 it 0r n0t, 1s what th1s 1s!!!

5uxX0r5!!!L0L0L0L0L!!!

아놀드C

터미네이터 프로그래밍 언어.

안녕, 세상!

알았어!

오랑우탄의 언어이거나 William of Occam의 꿈입니다.

안녕, 세상!

요리사

David Morgan-Mar가 개발한 난해한 프로그래밍 언어로, 프로그램은 요리 레시피와 유사합니다. 언어의 각 프로그램은 이름, 변수 목록 및 해당 값, 명령 목록으로 구성됩니다. 변수 이름은 기본 식품의 이름으로만 지정할 수 있습니다. 변수의 값이 배치되는 스택이 호출됩니다. 믹싱볼, 변수를 조작하는 작업으로는 섞기, 젓기 등이 있습니다.

안녕하세요 세계

안녕하세요 월드 수플레입니다.

재료.
강낭콩 72g
계란 101개
라드 108g
기름 111컵
애호박 32개
물 119ml
붉은 연어 114g
디종 머스타드 100g
감자 33개

방법.
믹싱볼에 감자를 넣습니다.
믹싱볼에 디종 머스터드를 넣어주세요.

붉은 연어를 믹싱볼에 넣습니다.

믹싱볼에 물을 넣어주세요.
믹싱볼에 호박을 넣어주세요.
믹싱볼에 오일을 넣어주세요.
믹싱볼에 라드를 넣어주세요.
믹싱볼에 라드를 넣어주세요.
믹싱볼에 계란을 넣어주세요.
믹싱볼에 강낭콩을 넣어주세요.
믹싱볼의 내용물을 액화시킵니다.
믹싱볼의 내용물을 베이킹 접시에 붓습니다.