설계 방안
다음은 D2의 개발 방향에 대해 설명하는 설계 방안입니다. 우리는 과거의 실수를 피하고 가장 성공적인 현대 프로그래밍 언어에서 영감을 얻기 위해 최선을 다했습니다.
D2의 설계 방안은 본질적으로 절충안에 가깝습니다. 따라서 이들 중 일부는 당신이 동의하지 못할 수 있습니다. 그러나 만약 당신이 프로그래머라면, D2는 당신을 위해 만들어진 것이며, 저희는 이러한 결정들이 모여 당신이 편안하게 느낄 수 있는 언어를 만들었다고 믿습니다.
언어가 계속 발전함에 따라 이러한 것들도 필연적으로 발전할 것입니다.
가독성 > 프로토타입 개발 속도
가독성과 프로토타입 개발 속도 모두 중요하지만 둘 중 하나를 택해야 할 경우 D2는 일반적으로 가독성을 선호합니다.
대부분의 경우 둘 중 하나를 택해야 하는 경우는 없습니다. 좋은 프로그래밍 언어는 일반적으로 두가지 모두를 택할 수 있도록 합니다. D2의 문법은 가벼우며, 자동 포맷터가 항상 정확하게 사용되도록 설계되어 프로젝트 간에 일관성을 유지하도록 합니다.
사용 편의성, 프로토타입 개발 속도, 가독성 사이에서 적절한 균형을 찾으시길 바랍니다. D2는 특히 위의 세가지를 모두 무시하는 명료하지 않고 간결한 구문의 사용을 피하고 있습니다.
예를 들어 원통 모양을 정의하는 두 가지 방법이 있습니다.
D2:
Mermaid:
D2는 덜 간결하지만 훨씬 더 읽기 쉽습니다.
경고 > 에러
D2는 가능할 때마다 컴파일합니다. 예를 들어, 존재하지 않는 클래스를 적용하거나 특정 모양에 영향을 주지 않는 스타일을 추가한다고 가정해 보겠습니다. 사용자 오류가 D2가 무시할 수 있는 오류인 경우 성공적으로 컴파일되고 최대 경고만 표시됩니다. 디버깅하는 동안 일부 코드를 주석 처리하고 사용되지 않은 변수가 있다는 뜻밖의 오류 메시지를 받는 것보다 더 짜증나는 일은 없습니다.
좋은 기본 설정
D2의 기본 설정, 즉 사용자가 아무것도 변경하지 않았을 때는 좋은 다이어그램을 생성해야 합니다. 이를 위해서는 어떤 기본 설정이 좋은지에 대해 명확한 견해를 가져야 합니다. 예를 들어, D2는 단색이 아닌 쾌적한 색상이 기본 테마으로 제공됩니다.
데스크톱 및 서버용을 위한 최적화
D2는 감시 모드가 내장되어 있고, 매뉴얼 페이지가 유지 관리되며, 표준 입력(stdin)에서 읽고 표준 출력(stdout)으로 쓰는 기능을 지원하는 강력한 CLI를 갖추고 있습니다. 이미지와 글꼴은 기본적으로 다이어그램에 포함되므로 내보내기(exported) 된 다이어그램은 독립형 다이어그램으로 어디에서나 동일하게 보입니다. D2는 PPT 및 GIF와 같은 다양한 형식을 지원하며 모듈화를 위해 다이어그램을 여러 파일로 나눌 수 있는 가져오기(import) 기능을 제공합니다. 프로그래밍적으로 D2를 편집하고 작성할 수 있는 언어 API도 있습니다. 이 모든 것은 브라우저 렌더링을 위한 웹 라이브러리와는 반대되는 개념입니다 D2는 이러한 용도의 웹 라이브러리를 제공하고 유지 관리할 계획이지만, 이는 후순위이기 때문에 전체 기능에서 간소화할 예정입니다.