문제

나는 내 앱이 웹을 통해 통신하거나 브라우저를 통해 볼 수 있는 기회가 없는 시스템 프로그래밍을 많이 합니다.그러나 경영진에서는 XML을 사용하라는 압력을 가해 왔습니다.예를 들어, 시간 기록을 유지하려면 다음과 같은 텍스트 파일을 사용할 수 있습니다.

명령 날짜 시간 프로젝트
2008/09/23 08:00:00 PROJ1
변경 2008/09/23 09:00:00 PROJ2
종료 2008/09/23 12:00:00 PROJ2
2008/09/23 01:00:00 PROJ3
종료 2008/09/23 05:00:00 PROJ3

XML은 다음과 같습니다.

<timelog> <timecommand cmd=in date=2008/09/23 time=8:00:00 proj=PROJ1/>
...
<timecommand cmd=out date=2008/09/23 time=5:00:00 proj=PROJ3/>
</timelog>

내가 본 텍스트 버전의 초기 장점 중 일부는 정규식을 사용하여 쉽게 읽고 구문 분석할 수 있다는 것입니다.이 경우 XML을 사용하면 어떤 이점이 있습니까?

도움이 되었습니까?

해결책

텍스트 기반 데이터 형식을 사용하는 데 아무런 문제가 없습니다. 그것은 수십 년 동안 사실적인 표준이었습니다. 대규모 메인 프레임 금융 시스템 아직 오늘 사용하십시오. 이점은 생산하기가 사소하고 소비하기가 사소하고 매우 가볍다는 것입니다. 그리고 로그 파일은 어떻습니까? 당신은 어떤 생산 플랫폼을 알고 있습니까? 그렇지 않습니다 구분 된 텍스트 형식 (웹, 앱, DB 서버)으로 로그 파일을 생성 하시겠습니까?

플랫 텍스트 파일의 단점은 형식이 변경되면 생산자와 소비자가 모두 형식 변경을 지원할 수 있도록 비전문을 수정해야한다는 것입니다. 물론 결과가 결과를 소비하는 사람이라면 생산자 만 변경하면됩니다.

XML의 아름다움은 데이터의 구문 분석이 데이터뿐만 아니라 데이터 형식과 독립적이라는 것입니다. 논리적으로 데이터와 데이터 형식, Presto를 모두 전달합니다! 모든 것이 작동합니다. 그것은 그다지 간단하지는 않지만 그것이 전제입니다. 데이터 형식을 변경할 수 있으며 생산자와 소비자는 사소한 경우 (경우) 만 변경하면됩니다.

XML의 못생긴 것은 그것이 거대한 퍼포먼스 개 (비누?)와 매우 무거운 무게가 될 수 있다는 것입니다. 당신은 확실히 확장성에 대한 가격을 지불합니다. 주어진 문제 영역에 대한 최적화 된 기술 솔루션 인 경우가 있으며 다른 경우가없는 경우가 있습니다.

따라서 인간이 읽을 간단한 통나무라면 플랫 파일을 보관하십시오. 다른 단일 앱과 통신하는 간단한 앱이라면 그리고 통신은 시간이 지남에 따라 극적으로 변경되지 않으며, 플랫 파일은 확실히 빠르고 구현하기가 더 가볍지 만 XML은 나쁜 선택이 아닙니다. 여러 앱이 제공하는 데이터를 소비해야하거나 통신 변경량이 높아질 경우 XML로 이동하십시오. 인터페이스의 유지 보수는 시간이 지남에 따라 더 쉽게 유지됩니다.

다른 팁

몇 가지 이점이 떠 오릅니다.

  • 다른 응용 프로그램으로 구문 분석하는 것이 더 쉽습니다
  • 문서가 한 눈에 무엇을 보유하고 있는지 이해하는 것이 더 쉽습니다.
  • 데이터를 관리 대시 보드로 쉽게 가져 오기 쉽습니다.
  • 경영진은 당신에게 약간의 고통으로 만족합니다

내가 볼 수 있듯이 단점 :

  • 기존 코드를 변경하는 것을 의미합니다
  • 현재 문서를 구축하는 방법과 비교하여 문서를 작성하는 방법에 따라 약간의 성능 저하 가능
  • XML을위한 XML입니다.

그리고 문을 닫기 위해, 아이러니로 의도 된 인용문 : XML은 폭력과 같습니다. 문제를 해결하지 않으면 충분히 사용하지 않습니다.

이와 같은 경우 XML의 주요 기능은 XML을 검증하고 제어 할 수 있다는 것입니다. 텍스트 버전에서 파일이 올바르게 형식화되어 있는지 프로그래밍 방식으로 어떻게 확인할 수 있습니까? XML은 구조화되고 유효한 문서를 작성하도록 설계되었으며 결과 이점은 형식이 엄격하게 제어되고 안정적으로 구성됩니다. XML 노드에서 읽는 코드를 유지하는 것도 텍스트 파일을 읽기위한 일련의 정규식을 유지하는 것보다 훨씬 쉽고 논리적으로 배치 될 것입니다.

XML을 사용하면 어떤면에서 데이터는 더 "휴대용"입니다. 대부분의 환경에서 사용 가능한 데이터를위한 파서가 있으므로 데이터를 분석하는 도구를 작성하는 것이 더 쉬울 수 있습니다. 또한 XML이라면 XSLT를 작성하여 다양한 다른 형식으로 변환하여 읽기 쉽게 만들 수 있습니다.

즉, XML을 사용하는 것으로 전환하면 예제와 같은 간단한 형식조차도 로그 파일이 훨씬 커질 것입니다.

사용할 수있는 XML 이외의 옵션이 있습니다. 제프 앵글 브래킷 세금 블로그 게시물은 이것에 대해 조금 이야기합니다.

실제로, 당신이해야 할 일은 이러한 로그를 어떻게 사용하는지 알아 내고 어떤 형식을 구현하기 가장 쉽게 만드는지를 결정하는 것입니다.

REGEX 및 XML 및 XSL을 사용하여 쉽게 파싱 할 수 있습니다.

진실은 데이터를 다른 시스템으로 전송하지 않는 한 XML을 사용하는 데 실제로 "장점"이 없습니다.

XML은 메타 형식입니다. 즉, 데이터 형식을 더 쉽게 정의할 수 있습니다.이렇게 하면 다른 회사의 프로그램을 포함한 여러 프로그램이 동일한 형식의 데이터를 더 쉽게 읽고 쓸 수 있습니다.특히 복잡한 계층적 데이터에 대한 설명에 적합합니다.

위에서 설명한 예에서 데이터는 구조나 계층이 없는 고정된 형식의 격리된 레코드로 보입니다. 이 경우 XML을 사용해도 아무런 이점이 없습니다.그러나 이 예는 대표성이 없을 수 있습니다. 다른 파일에는 더 구조화된 데이터가 포함될 수 있습니다.

진행중인 로그 파일입니까?

유효한 문서를 만들기 위해 어떻게 작성 하시겠습니까? 아니면 그것을 읽고, 새 항목을 추가하고, 매번 쓸 것입니까?

로그 파일은 단순히 부여하는 잘 구조화 된 일반 텍스트 라인의 완벽한 후보입니다.

대부분의 경우 (항상 그렇지는 않음), XML은 갑자기 갑자기 자산 주위에 메타 데이터를 가지고 있기 때문에 (사람이 읽을 수있는) 자산 주위에 메타 데이터가 있기 때문에 데이터를 이해하기 쉽게합니다.

XML도 매우 액세스 할 수 있습니다. 내가 의미하는 바는, 당신이 그것을 언급했기 때문에 - 당신은 XML에서 정규식을 사용하고 싶지 않습니다. 같은 도구가 있습니다 xpath XML을 재미있게 만드는 (XML Path Language). XPath와 같은 것을 사용하여 XML을 통해 쉽게 이동할 수있을 때 아무도 읽을 수없는 것을 채찍질 필요가 없습니다.

XML이 (가독성 측면에서) 반대되는 경우가 있으며 때로는 XML도 오버 헤드입니다. 시스템 간 데이터를 교환 할 때 항상 최선의 선택은 아닙니다 (예 : 정말 가벼운 것을 살펴보십시오. JSON). 그리고 이런 종류의 교환은 웹에있을 필요가 없습니다.

데이터 파일에 XML을 사용하면 데이터가 자체적으로 설명되고 더 잘 구성 될 수 있음을 의미하지만 최종 결과는 종종 이전보다 훨씬 큰 데이터 파일입니다.

스스로에게 물어보세요. 사용 된 파일은 무엇입니까? 그들은 변경 될까요? 그렇다면 누가 지불하고 누가 예산을 책정 했습니까?

나는 어떤 경우에는 XML을 좋아하고 다른 경우에는 그것을 싫어합니다!

Systems Batch 프로그래밍의 경우 XML의 주요 기능은 거의 모든 곳에서 지원된다는 것입니다. 따라서 오늘 XML을 사용하여 일부 데이터를 처리하는 프로그램을 작성하고 10 년 안에 해당 프로그램을 점검해야하고 완전히 다른 플랫폼을 사용하려면 XML 데이터가 여전히 잘 지원됩니다.

.NET (특히 LINQ에서 XML이 포함 된 .NET 3.5)에서 개발중인 경우 일반 텍스트 파일 만 사용한 경우보다 XML을 읽거나 쓰는 코드를 덜 작성합니다. 또한 XML을 사용하면 라인 아래로 내려 가면 파일을 읽고 그 안에 무엇이 있는지, 무엇이 무엇인지 정확히 알 수 있습니다. 그리고 XML이 조금 더 디스크 공간을 차지하는 것에 대해 걱정하지 마십시오. 디스크 공간은 저렴합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top