내가 제일 잘나가~

A와 B가 있습니다.

A는 B를 보고 병신이라고 합니다.

B는 A를 보고 병신이라고 합니다.


C와 D도 있습니다.

C는 D를 보고 병신이라고 합니다.

D는 C를 보고 병신이라고 합니다.


A와 B는 C와 D를 보고 아~ 싸움은 역시 좆밥들 싸움이 제일 재밌어~라고 비웃습니다.


C와 D도 A와 B를 보고 아~ 싸움은 역시 좆밥들 싸움이 제일 재밌어~라고 비웃습니다.




여기서 누가 누가 제일 잘 나갈까요?


저작자 표시
신고

Visual Studio 2017 RC

visual studio 2017 RC가 공개 되었다.


설치화면

오랫동안 변함없던 답답한 설치 화면이 metro ui로 시원하게 바뀌었다.

.


IDE

시작화면 변경

시작화면도 간지나게 변경 되었다.


실행속도 향상

실행속도가 50% 빨라졌다고 하는데 잘 모르겠다.

RC버전이니 정식버전을 믿어보자.


새 기능

IntelliSense 필터링

IntelliSene 목록 중 class, field , method 등으로 필터링 할 수 있게 되었다.  그닥 쓸모는 없어 보이지만 간지난다.

그리고 추가 플러그인 없이 코드 에디터에 블록이 라인도  표시해준다.


리펙토링 기능 강화

이전 버전에 비해 리펙토링 기능이 강화 되었다.

  • 변수 inline 이동
  • 이니셜라이저로 개체초기화 단순화
  • null 병합 연산자로 null 검사와 throw식 간소화

하지만 리펙토링은 intellij 따라오려면 아직 멀었다.


C# 7.0

위에 있는거 다 필요 없고 Visual Studio 2017과 함께라면  C# 7.0을 쓸 수 있다.


Out variables

out 출력 변수를 기존에는 아래와 같이 선언해야 했다.

public void PrintCoordinates(Point p)
{
    int x, y; // have to "predeclare"
    p.GetCoordinates(out x, out y);
    WriteLine($"({x}, {y})");
}

하지만 이제 for문에 int i=0하는것처럼 선언과 동시에 사용할 수 있게 되었다.

public void PrintCoordinates(Point p)
{
    p.GetCoordinates(out int x, out int y);
    WriteLine($"({x}, {y})");
}


Pattern matching

Is-expressions with patterns

기존의 is 연산자 우측에는 항상 데이터형이 나오지만 이제는 변수로도 가능하다. 좀더 유연해졌다.

public void PrintStars(object o)
{
    if (o is null) return;     // constant pattern "null"
    if (!(o is int i)) return; // type pattern "int i"
    WriteLine(new string('*', i));
}

Switch statements with patterns

switch에서 모든 자료형의 비교가 가능해졌으며 패턴을 사용할 수도 있다.

switch(shape)
{
    case Circle c:
        WriteLine($"circle with radius {c.Radius}");
        break;
    case Rectangle s when (s.Length == s.Height):
        WriteLine($"{s.Length} x {s.Height} square");
        break;
    case Rectangle r:
        WriteLine($"{r.Length} x {r.Height} rectangle");
        break;
    default:
        WriteLine("<unknown shape>");
        break;
    case null:
        throw new ArgumentNullException(nameof(shape));
}


Tuples

아~ 이건 진짜 레알 큰일이다.  

이제  Tuple을 남발해도 될 때가 왔다.

아래처럼 리턴형에 name을 지정해주고

(string first, string middle, string last) LookupName(long id) // tuple return type
{
    ... // retrieve first, middle and last from data storage
    return (first, middle, last); // tuple literal
}

이렇게 쓰면 된다. 

var names = LookupName(id);
WriteLine($"found {names.first} {names.last}.");

지리지? 이제 여러개의 리턴 타입을 받기 위해 새로운 클래스나 구조체를 만들지 않아도 된다.


Local functions

function 내에 function을 정의할 수 있게 되었다.

이전에는 Func와 Lamda를 이용해서 local function을 구현했었다.

그러나 c# 7.0에서는 훨씬 직관적으로 변했으며 Func와 Lamda 조합과는 다르게 호출하는 곳보다 아래에 있어도 된다.

이렇게 했던것이

private int sum(int a,int b)

{

Func<int,int,int> LocalFunction=(c,d)=>

{

return c+d;

}

return LocalFunction(a,b);

}

이렇게 할 수 있다.  일단 호출부 아래에 있어도 된다는게 좋다.

public int sum(int a, int b) { return LocalFunction(a,b);

int LocalFunction(int c, int d)

{

return c+d;

} }


급 귀찮아 진다. 좀 더 있는데 자세한 사항은  여기서 보자.

https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes

https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/

신고

GDD (Ganzi Driven Development)를 소개합니다.

앞으로 새로운 패러다임이 될 GDD 개발 방법론을 소개한다.

애자일, 스크럼, TDD 이런 이런 낡고 오래된 구식 개발방법 나는 모른다~  혹은 새로운것을 갈망하는 개발자들을 대상으로 한다.


GDD (Ganzi Driven Development)

GDD는 이름에서 알 수 있듯이 간지를 최우선으로 하는 개발 방법론이다. 

여러분들 모두가 앞으로 GDD를 사용하여 개발을 하게 된다면 의욕적으로 코딩하는 자기 자신을 발견하는 놀라운 일을 경험하게 될 것이다.


1. 제일 먼저 머리속에 작업할 내용을 구상하세요.

뱅앤올룹슨 헤드셋을 끼고 즐겨 듣는 음악을 들으면서 머리속에 대충 큰 틀을 잡으세요.

나는 음악을 들으면 집중이 더 안되는데 하시는 분들은 걱정하지 마세요. 그냥 음악 한곡 들으시고 쉬시거나 그냥 헤드폰셋만 끼고 있어도 됩니다.

GDD는 개인의 취향, 장점을 최대한 키워주는 개발 방법입니다.


2. 머리속에 구상한 내용을 화이트보드나 노트에 그려요.

그동안 우리에게 2번 작업은 필요 없었습니다.

하지만 누군가가 나의 책상을 봤을 때 엄청난 고수처럼 보이게 하는 효과가 있습니다.(신입일수록 효과가 더욱 큼)

만년필같은 간지나는 필기도구를 사용하면 더욱 좋습니다. 개인적으로 폐지를 재활용한 누리끼리한 색의 종이와 만년필의 조합을 선호합니다.

예쁘게 그리려고 하는것보다 낙서처럼 끄적거리고 선도 삐뚫어지게 하는게 더욱 있어보입니다.


3. 자신이 가장 즐겨 사용하는 IDE를 켜세요.

심플한 텍스트 에디터보다는  이것저것 많이 있어보이는 최신IDE를 사용하세요. 

테마는  요즘 트렌드인 블랙 계통의 테마를 사용하면 GDD의 취지에 한발짝 더 다가가게 됩니다.


4. 단축키를 최대한 활용하세요.

단축키는 장르 불문하고 누구에게나 멋있게 보이게 하는 효과가 있습니다. 시간 단축은 보너스입니다.

GDD는 개발 생산성도 고려한 최고의 개발방법입니다.


5. 코딩할 땐 블럭을 최대한 많이 만드세요.

이전까지의 트렌드는 읽기 쉬운 코드를 작성하라 였는데 읽기쉽게 코딩을 하면 if문이 많이 사라지고 자연스럽게 코드에 블럭이 사라지게 됩니다.

읽기는 쉬우나 구식 개발 트렌드이기 때문에 최신 개발 방법인 GDD에 맞지 않는 코딩 방법입니다. 가능한 코드에 블럭을 많이 만드세요. 누군가 지나가다 보면 엄청난 작업을 하는것 같은 착각을 잃으키게 하는 효과가 있습니다.


[GDD의 철학을 잘 반영한 코드의 예]


6. TDD(Test Driven Development)와 함께 사용하세요.

GDD는 다른 개발 방법과 함께 사용이 가능합니다. 특히 TDD와 함께 접목하면 놀라운 시너지 효과를 기대할 수 있습니다.

TDD를 사용하게되면 빌드 시 테스트케이스가 돌아가기 때문에 그냥 빌드가 아닌 간지나는 빌드를 할 수 있습니다.

테스트케이스가 깨지면 좀 더 있어보입니다. 만약 누가 보고 있다면 의도적으로 테스트케이스 한두개를 깨지도록 하세요.

신고
◀ PREV 1234···16 NEXT ▶