소개
안녕하세요! 오늘,나는 당신에게 민트 랭,스파(단일 페이지 응용 프로그램)를 구축에 초점을 맞춘 아주 어린(하지만 흥미로운)프로그래밍 언어에 대한 이야기를 말할 것이다. 그것은 당신이 기록 시간에 오류 무료,쉽게 읽을 수 및 유지 보수 응용 프로그램을 작성하는 데 필요한 모든 도구가 있습니다.
감동? 나도! 이 문제를 함께 처리합시다… 308>
목차
- 민트 랭은 실제로 무엇입니까?
- 왜 자바 스크립트?
- 왜 느릅 나무가 아닌가?
- 왜 민트?
- 민트도구들&에코시스템
- 편집기 확장
- 분산 패키지 관리
- 라우팅
- 최종 결과
민트 랭은 실제로 무엇입니까?
우선,크리스탈에 쓴 민트:
범용,언어 루비에서 영감을 구문과 객체 지향 프로그래밍 언어 그것은 정적 유형 검사와 컴파일 된 언어이지만,변수 또는 메소드 인수의 유형을 지정하는 것은 일반적으로 필요하지 않습니다.
—위키
다음,공식 민트 가이드를 따르십시오:
민트는 단일 페이지 응용 프로그램을 작성하기 위해 특별히 만들어진 언어입니다. 그것은 컴파일러와 안전 읽을 수 및 유지 보수 코드를 작성할 수 있도록하면서 훌륭한 개발자 경험을 제공하기 위해 결합 된 프레임 워크입니다.
예,사실입니다! 이 코드를 찾습니다(코드 강조 표시에 대해 죄송합니다):
// src/App.mintcomponent Counter { state counter : Number = 0 fun increment : Promise(Never, Void) { next { counter = counter + 1 } } fun decrement : Promise(Never, Void) { next { counter = counter - 1 } } fun render : Html { <div> <button onClick={decrement}> "Decrement" </button> <span> <{ Number.toString(counter) }> </span> <button onClick={increment}> "Increment" </button> </div> }}
엄격하게 대표되는 언어와 매우 유사하지만 포함 된 스타일,맞습니까?
이것은 자바스크립트 언어와 생태계와 느릅나무 언어의 좌절에서 태어났고,그렇게 개방된 개발 관행이 아니다.
좋아! 지금 당장 결정하자:왜 자바 스크립트가 아니며 느릅 나무가 잘못되었는지.
왜 자바 스크립트?
자바스크립트는 강력한 형식의 언어가 아니므로 오류 없는 코드를 작성하기가 어렵고 개발자 경험이 그리 좋지 않습니다.
또한,상자 밖으로 웹 응용 프로그램을 만들 수있는 도구가 없습니다,당신은 프레임 워크와 컴파일러와 복잡성을 증가 도구를 구축해야합니다.
왜 느릅 나무가 아닌가?
느릅 나무는 훌륭한 개발자 경험을 가지고 있지만 순전히 기능적인 언어이기 때문에 일부 상용구 코드로 이어지고 배우기가 더 어려워집니다.
또한 의미있는 방식으로 언어에 기여하거나 영향을 줄 수는 없습니다.
왜 민트 랭? 🤔
민트는 느릅 나무의 개발자 경험과 단일 페이지 응용 프로그램을 구축하기위한 완벽한 언어를 만들 반응의 표현력을 결합하는 것을 목표로하고있다.
개발 1 년 후,민트는 다음과 같은 기능을 가지고 있습니다:
- 좋은 형식 시스템
- 좋은 오류 메시지
- 포맷터
- 컴포지션을위한 구성 요소
- 데이터 저장을위한 저장
- 내장 스타일
- 내장 라우팅
- 위대한 자바 스크립트 상호 운용성
- 불변 데이터 구조
민트 도구&생태계
이 시작 및 개발을위한 생태계가 없다면 나는이 프로그래밍 언어에 대해 이야기하지 않을 것이다. 그래서! 이맥스—민트 형식을 사용하여 구문 강조 및 자동 서식을 추가
# For macOS:$ brew tap homebrew-community/alpha$ brew install mint-lang# For Linux:$ wget --no-verbose -O mint https://mint-lang.s3-eu-west-1.amazonaws.com/mint-latest-linux$ chmod +x ./mint$ sudo mv ./mint /usr/local/bin/mint
그리고 지금,--help
플래그와 호출 민트에 의해 모든 명령을 참조하십시오:
$ mint --helpMint - Help━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Usage: mint MintFlags: --env, -e (default: "") # Loads the given .env file --help # Displays help for the current command.Subcommands: build # Builds the project for production docs # Starts the documentation server format # Formats source files init # Initializes a new project install # Installs dependencies loc # Counts Lines of Code start # Starts the development server test # Runs the tests version # Shows version━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
분산 패키지 관리
이 페이지에는 프로젝트에서 사용할 수 있는 패키지가 포함되어 있습니다:
- https://www.mint-lang.com/packages
라우팅
응용 프로그램의 경로는routes
블록으로 최상위 수준에서 정의됩니다. 다음 사항에 유의하십시오:
- 경로는 위에서 아래로 정의 된 순서대로 일치합니다
- 경로는 응용 프로그램 당 하나의 경로 블록 만 가질 수 있습니다
- 경로는 상태를 설정하는 데 사용되며
예제 코드:
routes { / { Application.setPage("index") } /users/:id (id: Number) { sequence { Application.setPage("show") Application.loadUser(id) } } /blog { Application.setPage("blog") } /blog/:slug (slug: String) { sequence { Application.setPage("post") Application.loadPost(slug) } }}
스타일 지정
민트 구성 요소에서 스타일을 식별자로 정의한 다음 식별자를 사용하여 스타일에 적용할 수 있습니다.
스타일에는 여러 개의 정의,하위 규칙,미디어 쿼리,
if
및case
문이 포함될 수 있습니다.
예제 코드:
component Main { style button { background: red; color: white; border: 0; } fun render : Html { <button::button> "Click ME!" </button> }}
최종 결과
mint build
후,당신은 생산 준비 프리 액트 스파가 있습니다. 그게 다야!
사진
벤 콜데https://unsplash.com/photos/H29h6a8j8QM
민트 작가https://www.mint-lang.com
앤서니 포민https://unsplash.com/photos/Hr6dzqNLzhw