dash-b · 기능 · 클릭 시

실제로 무언가를 하는 대시보드.

대부분의 대시보드는 구조적으로 읽기 전용이에요: 숫자를 보여주고, 그에 따라 행동하려면 다른 곳으로 가야 해요. dash-b 타일에는 버튼을 넣을 수 있고, 누르면 행을 쓰거나, 하나를 업데이트하거나, 여러분의 테이블로 만든 폼을 열어요.

타일 두 개

버튼 또는 폼

동작

이름을 직접 정한 라벨이 붙은 버튼 하나. 여러분의 테이블 하나에 대해 지정된 단일 작업을 실행해요 — 오늘 매출 입금 표시, 근무 추가, 티켓 종료 같은 것. 입력할 것 없이, 한 번 누르면 끝이에요.

데이터 양식

작업에 세부 정보가 필요할 때의 같은 기능이에요. 필드는 디자인이 선언하는 것이 아니라 테이블 자체의 스키마에서 가져오기 때문에, 열 이름을 바꾸면 폼이 바뀌고 열을 삭제하면 더 이상 물어보지 않아요.

액션이란 무엇인가

키 세 개, 넷째는 없음

액션은 작업 이름, 대상 이름, 전달할 매개변수를 지정해요. 전체 어휘는 이게 전부예요:

  • 커맨드는 dash-b 자체 코드만 추가할 수 있는 레지스트리의 인덱스예요. 디자인이 새로 만들 수는 없어요.
  • 바인딩은 이름이고, 버튼을 누를 때 여러분의 계정이 보유한 문서를 기준으로 해석돼요. 여러분에게 없는 테이블을 지정한 디자인을 누군가 보내면 중단하고 그렇게 알려줘요.
  • 매개변수는 리터럴 값이거나, 폼·타일·누름에서 읽은 이름 붙은 값 하나예요. 한 단계 깊이까지, 그 이상은 없어요.

액션에 쓰인 URL, 헤더, 토큰, 역할은 죽은 키예요.

dash-b는 그 어떤 것도 읽지 않아요. 테스트는 네 가지를 모두 담은 액션을 스패치하고, 그중 하나도 핸들러에 닿지 않았는지 확인해요.

어휘는 의도적으로 약하게 설계됐어요. 매개변수 언어에 연산자가 하나 추가될 때마다, 낯선 사람들끼리 주고받는 파일 안에서 규칙 엔진이 돌아가는 방향으로 한 걸음 가까워져요. 디자인 파일은 남의 로직을 실행할 곳이 아니에요.

쓰기가 지켜야 할 규칙

이 중 세 가지는 dash-b의 나머지 동작 방식을 뒤집은 것이에요

알 수 없는 명령은 큰 오류예요

다른 모든 곳에서는 인식되지 않은 키를 조용히 무시해요. 디자인은 자신보다 새 버전을 만나도 살아남아야 하기 때문이에요. 여기는 다르다: 조용히 아무것도 하지 않는 쓰기는 성공한 쓰기와 똑같아 보여요.

실제 누름만 인정돼요

사람이 실제로 버튼을 눌렀는지는 런타임이 결정하지, 디자인이 결정하지 않아요. 제스처가 일어났다고 주장하는 디자인은 거부돼요.

데이터를 변경하는 모든 작업은 확인을 거쳐요

작업은 읽기 전용, 로컬, 변경의 세 종류예요. 변경 작업은 먼저 물어봐요 — 물어보지 않는 것을 선택할 수 없어요 — 그리고 두 번 눌러도 한 번만 적용되는 키를 받아요.

나타나지 않는 곳

내보낸 HTML 페이지에는 없음

디자인을 독립 페이지로 내보내면 버튼은 포함되지 않아요. 내보내기는 dash-b의 코드를 전혀 실행하지 않기 때문에, 거기에 폼이 있다면 누군가의 입력을 모아놓고 보낼 곳이 없어요 — 아예 제공하지 않는 것보다 더 나쁘죠. 타일은 디자이너와 계정의 기능이고, 내보내기는 이를 빼는 방식으로 그렇게 말해요.

게시된 링크도 마찬가지예요. 읽는 사람이 볼 수 있는 것과 볼 수 없는 것은 타일이 누구의 데이터에 바인딩되어 있는지로 결정돼요 — 공유 작동 방식에서 두 경우를 모두 설명해요.

쓸 테이블이 필요해요.

여러분 계정의 테이블일 수도 있고, 여러분이 호스팅하는 커넥터를 통해 접근하는 여러분의 데이터베이스일 수도 있어요 — 후자라면 데이터베이스 비밀번호는 결코 저희에게 닿지 않아요.