프로그래밍 명명 규칙 (3)

Ginie·2020년 12월 3일
0

프로그래밍 기초

목록 보기
3/11
post-thumbnail

프로그래밍 언어 별 규칙

ActionScript

  • 대부분 ECMAScript에서 사용하는 규칙과 일치
  • Java와 식별자 스타일이 비슷함
var txtHello: TextField = new TextField();
txtHello.text = "Hello World";
this.addChild(txtHello);

Ada

  • Mixed_Case_With_Underscores 을 권장
type Day_type   is range    1 ..   31;
type Month_type is range    1 ..   12;
type Year_type  is range 1800 .. 2100;
type Hours is mod 24;
type Weekday is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

type Date is
   record
     Day   : Day_type;
     Month : Month_type;
     Year  : Year_type;
   end record;

APL

  • 이름에 밑줄이있는 문자가 사용 된 경우 델타 밑줄 (⍙)이 대신 사용

C, C++

  • 키워드와 표준 라이브러리 식별자는 대부분 소문자와 밑줄 _
  • 매크로를 나타내는 식별자는 대문자와 밑줄만 사용하여 작성
// C언어
#include  <stdio.h>

int  main ( void ) 
{ 
    printf ( "hello, world \ n " ); 
}

// C++
#include <iostream>

int main()
{
    std::cout << "Hello, world!\n";
}

C#

  • 모든 .NET 언어에 대해 Microsoft에서 게시 한 지침을 따름
  • PascalCasecamelCase (메서드 매개 변수 이름 및 메서드 로컬 변수 이름에만 사용) 만 독점적으로 사용할 것을 권장
using System;
using System.Drawing;

public class Example 
{
    public static Image img;

    public static void Main()
    {
       img = Image.FromFile("Image.png");
    }
}

Go

  • 관례로 사용하는 것은 MixedCaps 또는 mixedCaps
  • 클래스 또는 함수를 참조 할 때 첫 글자를 대문자로 만들면 해당 코드가 내보내지고 소문자는 현재 범위 내에서만 사용할 수 있음
func ExtractUsername(email string) string {
	at := strings.Index(email, "@")
	return email[:at]
}

Java

  • CamelCase : 공백 없이 각 단어의 첫 글자를 대문자로 묶음
  • Class : 모든 단어의 첫 글자를 대문자로 해야함 UpperCamelCase
  • Methods : 앞에 소문자 동사 뒤 다음 단어는 대문자 lowerCamelCase
  • Variables : 변수는 둘 다 상관 없지만 _, $로 시작하면 안됨, 짧지만 의미가 있어야함, 사용 의도를 나타내도록 설계, 한 문자로 된 이름은 피할 것, 임시 변수의 일반적인 이름은 정수의 경우 i, j, k, m, n, 문자의 경우 c, d, elowerCamelCase_$
  • Constants : 상수는 밑줄로 구분된 대문자로 작성, 첫 번째 문자에는 숫자 포함 X
  • 세 글자 이상은 parseDbmXmlFromIpAddress
public class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Prints the string to the console.
    }
}

JavaScript

  • Java와 동일한 이름 지정 규칙을 사용
const long_example = (input1, input2) => {
    console.log("Hello, World!");
    const output = input1 + input2;

    return output;
};

Lisp

  • 식별자에 별도의 단어 대시를 사용 with-open-file, make-hash-table
  • Variable : 일반적으로 별표로 시작하고 끝남 *map-walls*
  • Constants : 더하기 기호로 표시 +map-size+
(mapcar #'+ '(1 2 3 4 5) '(10 20 30 40 50))
(defun factorial (n)
    (loop for i from 1 to n
        for fac = 1 then (* fac i)
        finally (return fac)))

.NET

  • 대부분의 식별자에 대해 PascalCase 로도 알려진 UpperCamelCase를 권장
  • lowerCamelCase 는 매개 변수 및 변수에 권장 됨

Objective-C

  • 전역 변수, 함수, 클래스, 프로토콜, 범주를 포함한 최상위 엔터티는 모두 대문자 접두사가있는 UpperCamelCase
  • 상수는 선택적으로 소문자 k로 시작 가능
  • 메소드 이름은 인수를 구분하는 콜론으로 구분 된 여러 lowerCamelCase 부분을 사용
@interface classname : superclassname {
  // instance variables
}
+ classMethod1;
+ (return_type)classMethod2;
+ (return_type)classMethod3:(param1_type)param1_varName;

- (return_type)instanceMethod1With1Parameter:(param1_type)param1_varName;
- (return_type)instanceMethod2With2Parameters:(param1_type)param1_varName
                              param2_callName:(param2_type)param2_varName;
@end

Pascal, Modula-2, Oberon

  • 파스칼, 모듈라 2와 오베론은 일반적으로 UpperCamelCase를 씀
  • 프로그램, 모듈, 상수, 타입 및 절차에 대한 식별자는 lowercase
  • 수학 상수, 변수, 형식 매개 변수와 함수의 식별자는 lowerCamelCase
// Pascal
type
    pNode = ^Node;
    Node  = record
        a : integer;
        b : char;
        c : pNode  
    end;
var
    NodePtr : pNode;
    IntPtr  : ^integer;

Perl

  • 지역 범위 변수는 중위 밑줄이있는 소문자
  • 개인용으로 취급되는 변수는 _ 밑줄로 시작
  • 선언 된 상수는 모두 대문자
#!/usr/bin/perl
use strict;
use warnings;
use IO::Handle;

my ( $remaining, $total );

$remaining = $total = shift(@ARGV);

STDOUT->autoflush(1);

while ( $remaining ) {
    printf ( "Remaining %s/%s \r", $remaining--, $total );
    sleep 1;
}

print "\n";

PHP

  • class : PascalCase
  • constants : MACRO_CASE
function getAdder($x) {
    return function($y) use ($x) {
        return $x + $y;
    };
}

$adder = getAdder(8);
echo $adder(2); // prints "10"

PythonRuby

  • class :UpperCamelCase,
  • constants : CAPITALIZED_WITH_UNDERSCORES
  • other names : lowercase_separated_by_underscores
  • 이름이 개인적인 경우에는 _ 이 앞에 붙음
  • 키워드와의 충돌을 방지하기 위해 _ 가능
  • __ 이중 밑줄로 접두사를 붙이면 name mangling 과 관련하여 클래스의 동작이 변경 됨
  • 이중 밑줄이있는 접두사 와 접미사는 객체에서 특별한 동작을 수행하는 예약어임
>>> class Test:
...     def __mangled_name(self):
...         pass
...     def normal_name(self):
...         pass
>>> t = Test()
>>> [attr for attr in dir(t) if "name" in attr]
['_Test__mangled_name', 'normal_name']

R

  • 파일 이름에 특수 문자를 피함
  • 변수와 함수 이름에 숫자, 문자 및 밑줄을 사용
// Declare function “f” with parameters “x”, “y“
// that returns a linear combination of x and y

f <- function(x, y) {
  z <- 3 * x + 4 * y
  return(z)
}
> f(1, 2)
[1] 11

Raku

  • Raku 는 Perl과 거의 동일
  • 식별자 안에는 ' 사용 (알파벳 문자가 뒤에 오는 경우에만)
  • 식별자에 케밥 대소 문자 를 자주 사용
sub  do_something ( Str  $ thing , Int  $ other ) {
    ...
}
 my fish-food $ = "food"
 my don't-do-that = 0;
 

Rust

  • UpperCamelCase 는 type aliases, struct, trait, enum, enum variant
  • SCREAMING_SNAKE_CASE는 constants, statics
  • snake_case는 variable, function, struct member
fn main_greet() {
    println!("Hello World!");
}

Swift

  • 상수는 lowerCamelCase
  • 클래스 및 기타 객체 유형 선언은 UpperCamelCase
let aTenant = aBuilding.tenantList[5]
let theirLease = aTenant.leaseDetails
let leaseStart = theirLease?.startDate

참고 wikipedia

profile
느리지만 꾸준한 프론트엔드 주니어 개발자 🐢

0개의 댓글