2017-03-28 4 views
4

브라우저 (브라우저)의 Javascript, C# 및 Sql Server를 사용하여 웹 응용 프로그램을 작성합니다. 세 가지 언어 모두에서 일관된 명명 규칙을 사용하는 것이 좋습니다.
Javscript의 경우 camelCase를 사용하는 것이 가장 좋은 방법 인 것처럼 보이지만 C# 및 SQL Server에서는 TitleCase를 사용합니다.
비록 자바가 C ​​#/Sql 서버를 소비하고 데이터를 보내는 경우 명명 규칙이 일치하지 않습니다. 그래서 그들을 매핑하는 코드를 작성해야합니다. 예를 들어응용 프로그램의 모든 언어에 대한 이름 대/소문자 구분

SQL에서

나는이 열 '이름'과 '푸'라는 테이블 '에서 EmailAddress'

C#에서 나는이 매핑 '푸'라는 POCO 개체가 속성 '이름', 'EmailAddress를'테이블과이 JSON 입니다 GET 할 수있는 API 엔드 포인트를 노출 예를 들어, { "이름": "조 Bloggs에", "EmailAddres": "[email protected]"}

내 Javascripts는이 JSON을 가져오고 i에 매핑하는 아약스 호출을합니다. TS 자신의 JSON 객체 예를 들어, { "이름": data.Name, "EMAILADDRESS"data.EmailAddress은}

열/속성 명명 규칙 간의 매핑은 나에게 바보 것, 그리고 모든 경우에 필요하지 않을 것입니다 언어는 단지 케이싱 대회에서 합의했습니다. 이것에 대한 더 나은 접근법이 있습니까?

+0

나는 거기에 많은 가치가 있다고 생각하지 않지만, 나는 우리가 일치하는 SQL에서 변수 이름 (@variableName)에 대한 낙타 표기법을 사용하는 것이 말할 것이다 C#과 JavaScript에서 사용되는 명명 규칙이 있습니다.하지만이 줄을 따라 우리 회사에서 할 수있는 유일한 방법 일 것입니다. 테이블 이름과 열 이름은 여전히 ​​TitleCase입니다 (C#의 클래스 이름과 유사 함). JavaScript의 경우에는 매핑 만 수행합니다. – pmbAustin

답변

3

제 생각에는 각 언어에 대해 표준 규칙을 계속 사용해야합니다.

장점 : 소프트웨어의 각 부분에

  • 일관성.
  • 자작 나무 명명 규칙을 배울 필요가 없기 때문에 동료 개발자가 더 쉽게 사용할 수 있습니다.
  • SO와 같은 장소에서 또는 SO에서 찾은 솔루션을 구현하기로 결정한 경우 다른 국가와 코드를 쉽게 통신 할 수 있습니다.

언어의 일관성을 유지하기 위해 추가 규칙을 추가하지 마십시오. 귀하의 언어는 관련성이없는 의미없는 규칙으로 끝나게되며, 앞으로 귀하의 코드에서 일하는 사람은 혼란스러워 할 것입니다.

은 악마의 옹호를 재생하려면, 여기 here에서 도난 광산에 동의 의견 : 당신이 스타일을 기반으로 코딩 표준에 큰 문제를 찾을 곳

이것은 - 당신의 팀이 쓰기하지 않는 경우 전체 코드베이스라면 은 다른 코드의 표준과의 불일치를 발견하게 될 것입니다.

그래서, 제 충고는 그것을 땀꿀 필요가 없습니다. 코드가 명확한 한 은 실제로 낙타 케이스, 파스칼 케이스 또는 밑줄 스타일을 사용하든 상관 없습니다. 그 코드가 더 중요하다는 것이 더 중요합니다.

을 새 버전과 비교할 수 없으므로 제 3 자의 스타일을 변경해서는 안되므로 을 사용해야합니다.2 개의 다른 스타일의 라이브러리가있는 경우 코드 스타일을 무시하는 표준을 따르는 것 외에는 을 선택할 수 없습니다. 그것의 나쁜, 당신은 좋은 코더라면 어떤 코드 스타일을 읽을 수 있습니다. 그렇지 않다면 독방 스타일이 전혀 도움이되지 않습니다.

나는 그들이 좋은 지적을하고, 팀 컨텍스트 외부에서 자신의 코드로 작업하고 있기 때문에 그것을 포함 시켰습니다. 그러나 다른 사람들과 함께 쓰거나 다른 사람들과 쓰는 코드를 수행 할 수 있으므로 좋은 습관을 연습하거나 (좋지 않은 습관을 피하는 것이 좋음), 따라서 다른 사람들과 함께 작성하는 코드 작성법을 배우는 것이 유익 할 것입니다. 미래에 팀에서 그 문제에 부딪치게된다면 큰 코드베이스가 필요합니다.

2

응용 프로그램 시작에이를 추가하면 반환 된 GET 개체가 camelCase로 자동 변환됩니다.

매핑을 사용하지 않거나 각 환경의 규칙에서 벗어나지 않아도됩니다.

var formatters = GlobalConfiguration.Configuration.Formatters; 
var jsonFormatter = formatters.JsonFormatter; 
var settings = jsonFormatter.SerializerSettings; 
settings.Formatting = Formatting.Indented; 
settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 

자세한 내용 여기를 참조하십시오 : http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx