본문 바로가기
개발/게임) 개발관련

개발관련) c# 2021 코딩 지침 및 관행

by 테샤르 2021. 4. 26.

c# 2021 코딩 지침 및 관행

흥미로운 기사를 보게 돼서 이렇게 포스팅하게 되었다.

 

원문 링크 : [ 링크 ]

 

C# Coding Guidelines and Practices - 2021

This post highlights the list of software engineering guidelines in general. Most of these are industry-wise conventions, thus using them will ensure that your code is easily readable by people who are not you.

vmsdurano.com

조건문을 기술 하는 과정, null 체크하는 과정, String.Format을 하는 과정 등 여러 가지 팁이 나열되어있다.

실제 나도 Visual Stduio에서 인라인 처리라던지, 무시항목, 등등 여러 가지 형태로 어시스트해서 사용하는 항목들도 종종 있다. 이렇게 코딩 지침이나 관행이 변경되는 건 결국 버전이 올라가게 되면서 여러 가지를 지원해주기 때문이다.

반응형

간략하게 몇가지만 정리하면 다음과 같다.

 

if 분기처리

bool result;
if (condition)
{
   result = true;
}
else
{
   result = false;
}

------------------------------------------------------------------------

bool result = condition ? true: false;
if (something != null)
{
    if (other != null)
    {
        return whatever;
    }
}

------------------------------------------------------------------------

return something?.other?.whatever;
if (something != null)
{
    if (other != null)
    {
        return whatever;
    }
    else 
    {
        return string.empty;
    }
}
else
{
    return string.empty;
}

------------------------------------------------------------------------

return something?.other?.whatever ?? string.empty;
// 가능하면 긍정적인 조건 ex:hasAccount
if (...) {
    // 간단하고 긍정적인 내용
} else {
    /*
     * 상대적으로 복잡함
     * ...
     * ...
     */
}

 

Null 체크

int? number = null;

if (number == null)
{
    //do something
}

if (!number.HasValue)
{
    //do something
}

--------------------------------------------------

int? number = null;

if (number is null)
{
    //do something
}

 

Switch 문

switch(condition)
{
   case 1:
      //do something
      break;
   case 2:
      //do something
      break;
   case 3:
      //do something
      break;
   default:
      //do something else
     break;
}

-------------------------------------------------------

condition switch
{
    1 => //do something;
    2 => //do something;
    3 => //do something;
    _ => //do something else;
}
let strategies = new Map([
  ['major_A', travel],
  ['major_B', review],
  ['major_C', reviewAllDay],
  ['major_D', reviewAllDay],
  ['minor_A', travel],
  ['minor_B', shopping],
  ['minor_C', watchTV],
  ['minor_D', review]
])

function action(ranking, subjectType){
  let condition = `${subjectType}_${ranking}`

  let strategy = strategies.get(condition)
  
  strategy()
}

 

String Format

string name = "Vianne";
string greetings = "Hello " + name + "!";

----------------------------------------------------------------------

string name = "Vynn";
string greetings = string.Format("Hello {0}!", name);

----------------------------------------------------------------------

string name = "Vjor";
string greeting = $"Hello, {name}!;

 

String  return

public string Greeter(string name)
{
    return $"Hello {name}!";
}

----------------------------------------------------------------

public string Greeter(string name) => $"Hello {name}!";

String Initalize

Person person = new Person();
person.FirstName = "Vianne";
person.LastName = "Durano";

---------------------------------------------

var person = new Person { 
	FirstName = "Vianne",
	LastName = "Durano"
};

Multiple return

public Person GetName()
{
    var person = new Person
    {
        FirstName = "Vincent",
        LastName = "Durano"
    };
    
    return person;
}

----------------------------------------------------------------

public (string FirstName, string LastName) GetName()
{
    return ("Vincent", "Durano");
}

Pascal 표현

public class ClassName 
{ 
    const int MaxPageSize = 100;
    
    public string PropertyName { get; set; } 
	
    public void MethodName() 
    { 
        //do something
    } 
} 

interface prefix

public interface IPersonManager 
{ 
   //...
} 

Global Value / Global Class   _로 표현

private readonly ILogger<ClassName> _logger;
private long _rowsAffected;
private IEnumerable<Persons> _people;

 

등등 총 35가지의 팁이 예시와 설명이 잘되어있다.

실제 C# 버전이 업그레이드되면서 바뀐 항목들과 일관성 있게 처리하기 위한 방법이라고 한다.

실제 Visual Studio에서 작업하다가 보면 어시스트에서 변경을 권하는 방식들도 포함되어 있다.

결국 코드는 작업자들끼리의 일관된 규칙으로 개발이 진행되어야 한다.

 

 

C# CODING GUIDELINES AND PRACTICES | 2020 : [ 링크 ]

 

 

 

반응형

댓글