Image by Riebart via Flickr



MSDN 2014년 10월호에 실린 기사.


원문: http://msdn.microsoft.com/en-us/magazine/dn802600.aspx

요약: 쉽게 읽히는 코드를 작성하자. - 주석, 일관성, 명료성.



유지보수

  • 읽기 좋은 코드가 이해하기도 쉽다.
  • 자신이 완벽하게 이해하지 못한 상태에서 코드를 작성하면 읽기 어려울 뿐만 아니라 나쁜 코드가 된다.
  • 불행히도 가독성은 지극히 주관적인 문제이다.
  • 그러나 동료를 위해서, 읽기 좋은 코드를 작성하는 것은 책임감있는 개인개발자의 자질이다.
  • 가독성 좋은 코드를 작성하는 것은 전문가의 몫이 아니며, 초보때부터 노력해서 점차 개선해 나가야 하는 것이다.
문제가 있는 코드들은...
  • 명확한 목적 없이 사용된 자료구조나 알고리즘.
  • 판단하기 어려운 명쾌하지 않은 전략
  • 적절한 주석이 없는 코드.
  • 의도가 명쾌하지 않아 읽는 사람의 시간을 낭비하게 만들지 말자.
==> 코드의 작성 의도를 읽어버리지 않도록 코드 가독성을 고려하자.

가독성 좋은 코드
  • 주석, 일관성, 명료성의 환상적인 배합.
  • 주석
    • 뻔한 주석은 달지 말자. 관련 정보도 주지 않고, 그냥 잡음에 불과하다.
    • 주석은 코드를 척 봤을 때 명확하지 않은 부분을 설명해 주는 문장이어야 한다.
  • 일관성
    • 코드 작성 가이드라인을 따르자. 전사 차원의 가이드라인이 있다면 더 좋다.
    • 처음 작성할 때부터 깔끔한 코드를 작성하자. 나중에 따로 깨끗한 코드를 작성하기 위한 시간을 두지 말자.
    • 팀 리더라면 소스코드를 체크인할 때 코드 일관성 가이드라인을 강제해야 한다.
  • 명료성
    • 보통 잘 읽혀지고 쉽게 이해되는 코드는 명료한 코드이다.
    • 적절한 그룹핑과 네스팅.
  • 기타
    • 코드가 길면 사람이 읽기 어렵다. 보통 30줄 이상 넘어가면 리팩토링해달라는 신호로 받아들이자.
    • 중복된 코드나 사용되지 않는 코드를 확인하자. 필요하다면 도구도 사용하자. 닷넷은 reSharpener의 명령행 도구를 CI와 연동하는 것도 좋다. 코드 보조 도구를 사용하는 것은 좋다. 다만 한개만 사용하자. 
    • 나쁜 패턴이 사용되었는지 확인하자.


Understanding Your Language Choices for Developing Modern Apps.(MSDN 2013/09) 요약


윈도우 스토어 앱을 개발하기 위한 언어 묶음.

  • HTML + JavaScript + CSS
  • XAML + C# or VB
  • XAML + C++ 
  • DirectX + C++

언어 선택시 고려사항
  • 학습 용이성
  • 데이터 이용 방식
  • 크로스 플랫폼 지원 여부
  • 기존 레거시 코드 이식
  • 앱의 성격 : 엔터프라이즈용? 개인소매용?


언어 학습에 있어서 가장 저항이 적은 방법이 취할 수 있는 최선의 방법이자, 가장 빠른 방법이기도 함.

만약 다른 플랫폼을 고려할 경우 기존에 알고 있는 언어와 비슷한 언어는 학습이 용이.(대표적으로 ML언어들)


다양한 데이터 이용 방식 : REST, XHR, JSON, XML, SQLite

WinJS

기타 도구들.
  • Xamarin : 크로스 플랫폼을 지원하는 네이티브 코드 생성기. C#으로 코드 작성. 안드로이드, iOS, Mac OS, 윈도우 지원.
  • Apache Cordova이전 폰갭

여전히 게임같은 하이엔드 사용자 경험을 제공하려면 C++가 답임.
F#은 아직 정식으로 주요 개발 언어는 아니지만, 주목할만함.

내 생각.
  • 결국 언어를 여러개 알아둔 상태에서 자신이 개발하고자 하는 앱의 특성과 플랫폼 등에 적절한 언어를 선택할 수 있는 개발자가 되어야 한다는!! ㅡ.ㅡ;
  • 그러나 경험상 서로 다른 컨셉과 문법의 언어사이의  free Context-switching은 불가능한데, 경험을 누적하다 보면 그 시간을 줄일 수 있을 듯. 여전히 많은 연습이 필요...


영어 표현 
  • greenfield app : 새로 또는 재작성된 앱
  • brownfield app : 레거시 앱




+ Recent posts