요약: 모르면 손해 보는 소프트웨어 개발 중 State Machine 활용법

개시하다


모르면 손해 보는 소프트웨어 개발에서 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 덕분에 다음과 같은 장점이 있습니다.
  • 복잡한 비동기 변환 논리가 모델과ViewController에서 State Machine로 옮겨집니다.
  • StateMachine은 상태도와 같기 때문에 상태도를 보면 코드를 읽을 필요가 없습니다.모델이나 ViewController는 간단한 동작만 실행하면 되기 때문에'상태도+동작 코드'를 인간만 이해하면 된다.이것은 가독성이 매우 높다.
  • 상태 전환에 대한 변화도 매우 강하고 코드의 수정은 국부적일 수 있다.
  • 이 일대의 상세한 상황은 슬라이드를 참조하세요.

    SMC의 웹 실행 환경


    SMC는 편리하지만 Setup은 좀 번거롭다. (자바,Graphiviz가 필요하다.)
    또한 생성된 코드와 DSL의 결합 관리는 좀 번거롭다.
    따라서 웹에서 SMC를 실행하고 DSL이 재현된 SMC의 웹 URL을 소스 코드에 삽입함으로써 이러한 문제를 해결할 수 있다.
    이 메커니즘을 Docker에 넣은 물건을 나누어 주고 있습니다.상세한 상황은 아래의 투고를 참고하시오.
    State Machine Compuiler의 WebUI가 포함된 Docker 컨테이너 사용 방법

    디자인 Tips


    StateMachine 설계 시 고려할 사항입니다.
  • 상태명이 명사로 변함
  • 최대한 복합상태는 만들지 않는다(상태수가 폭발하기 때문에)
  • State Machine 1개가 여러 스레드에 걸쳐 있지 않음
  • 잠깐만요.

    최후


    예전에 제작한 슬라이드와 함께 디자인을 응용한 3편의 작품과 같다.
    첫 번째로 하고 싶은 말을 2, 3으로 쓴 듯한 느낌.
  • iOS/Android 어플리케이션의 3가지 주요 설계 지침
  • iOS/Android 애플리케이션 엔지니어가 이해해야 할 "모델" 동작
  • 모르면 손해 보는 소프트웨어 개발에서 State Machine의 활용법
  • 관심 있는 사람도 시간 있을 때 보세요!

    좋은 웹페이지 즐겨찾기