요약: 모르면 손해 보는 소프트웨어 개발 중 State Machine 활용법
3284 단어 statemachineAndroidsmciOS
개시하다
모르면 손해 보는 소프트웨어 개발에서 State Machine의 활용법(SlideShare full Edition)"
이런 내용학급 방법 & 꿈 연합 학습회 Developers.IO Meetup 09으로 발표됐다.
이것에 관한 요점을 총결해 보아라.
컨텐트
State Machine은 무엇입니까?
State Machine은 간단히 말하면UML의'상태도(상태도)'의 실현이다.
상태도에 대한 분석, 디자인은 실제적으로 각 분야에서 활용되고 iOS/Android/WebApp 등 클라이언트 응용 프로그램에서 매우 유용하다.
다만, State Machine 설치는 열심히 하면 힘들 것이다.
예를 들어 이렇게 간단한 상태도라도
Java로 열심히 설치하면 300줄 이상이 됩니다.
https://gist.github.com/mokemokechicken/9eb89e3c69d7e97800ea
물론 실장 방침과 언어적인 행수 성향이 있지만 의외로 힘들 수밖에 없다.
StateMachine Generator
따라서 OSSState Machine Compiler(SMC)를 활용한다.
이것은 SMC에서 사용하는 DSL에서 상태도, StateMachine 코드를 생성합니다.그리고 이 상태도와 코드가 의미적으로 동일하다는 것을 보증합니다.따라서 상태도를 보면 State Machine의 방대한 코드를 볼 필요가 없다.
State Machine의 이점
State Machine Generator 덕분에 다음과 같은 장점이 있습니다.
State Machine은 무엇입니까?
State Machine은 간단히 말하면UML의'상태도(상태도)'의 실현이다.
상태도에 대한 분석, 디자인은 실제적으로 각 분야에서 활용되고 iOS/Android/WebApp 등 클라이언트 응용 프로그램에서 매우 유용하다.
다만, State Machine 설치는 열심히 하면 힘들 것이다.
예를 들어 이렇게 간단한 상태도라도
Java로 열심히 설치하면 300줄 이상이 됩니다.
https://gist.github.com/mokemokechicken/9eb89e3c69d7e97800ea
물론 실장 방침과 언어적인 행수 성향이 있지만 의외로 힘들 수밖에 없다.
StateMachine Generator
따라서 OSSState Machine Compiler(SMC)를 활용한다.
이것은 SMC에서 사용하는 DSL에서 상태도, StateMachine 코드를 생성합니다.그리고 이 상태도와 코드가 의미적으로 동일하다는 것을 보증합니다.따라서 상태도를 보면 State Machine의 방대한 코드를 볼 필요가 없다.
State Machine의 이점
State Machine Generator 덕분에 다음과 같은 장점이 있습니다.
SMC의 웹 실행 환경
SMC는 편리하지만 Setup은 좀 번거롭다. (자바,Graphiviz가 필요하다.)
또한 생성된 코드와 DSL의 결합 관리는 좀 번거롭다.
따라서 웹에서 SMC를 실행하고 DSL이 재현된 SMC의 웹 URL을 소스 코드에 삽입함으로써 이러한 문제를 해결할 수 있다.
이 메커니즘을 Docker에 넣은 물건을 나누어 주고 있습니다.상세한 상황은 아래의 투고를 참고하시오.
State Machine Compuiler의 WebUI가 포함된 Docker 컨테이너 사용 방법
디자인 Tips
StateMachine 설계 시 고려할 사항입니다.
최후
예전에 제작한 슬라이드와 함께 디자인을 응용한 3편의 작품과 같다.
첫 번째로 하고 싶은 말을 2, 3으로 쓴 듯한 느낌.
Reference
이 문제에 관하여(요약: 모르면 손해 보는 소프트웨어 개발 중 State Machine 활용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mokemokechicken/items/9a4f7dea5a0fe37bd26f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)