나는 대학에서 컴퓨터 과학자로서 내가 말하는 것을 머리말로 쓰려고한다. 최근 HMI (human machine interface), bar_code Scanner 및 시퀀싱 라이트를 사용하여 다양한 사람의 참여와 파싱 데이터 등을 사용하는 프로젝트에서 모든 것을 메인에 넣는 전통적인 프로그래밍 관행 문제가 발생했습니다. 가로장. 40 줄에 가깝게 자라면서 주렁이를 헤치고 나아가는 것이 너무 짜증났습니다. 내가 매번 상응하는 화면 검사로 차단해야만하는 특정 화면에서 실행하고 싶지 않은 논리. 일반적으로, 저는 전통적인 패턴이 저에게 오류를주고 있었고 제 응용 프로그램을 위해 디버깅하기가 매우 어려웠다 고 생각합니다. 나는 사람들이 더 큰 프로그램을 가지고 있다는 것을 알고 있지만 50-70 단계에 도달 할 가능성이있는 프로그램을 통과 할 이유가 없다는 것을 알았습니다.상태 패턴 PLC 프로그래밍으로의 접근
그런 다음 각 화면이 상태라는 사실을 깨달았습니다. 특정 화면에서만 필요한 사적인 기능이 있으므로 모든 화면에 필요한 기능 만 있다는 것을 반영하도록 코드를 재구성했습니다. 그것은 아름다웠습니다. 버그가 사라졌습니다. 다른 기능에 영향을 미치지 않는 기능을 추가하는 것은 무엇에 영향을 미치는지에 대해 크게 걱정할 필요없이 쉽게 해결할 수있었습니다. 되돌아 보면 내 논리가 전통적인 패턴에 어떻게 적용될 수 있는지를 알 수있다. 그러나 내 프로그램의 경우이 패턴은 기능이 현재 화면에 의해 제한된다는 마음의 평화를 가지면서 주요 단계의 크기를 줄이는 것은 아니라고 주장합니다.
화면에 문제가있을 때 디버깅을하는 것이 매우 효율적입니다. 평균 15 개의 평균 사다리 크기로 스크롤 할 수 있으며 문제 지점을 쉽게 찾아 낼 수 있습니다. 전역 변수 검사는 새 화면으로 점프하기 전에 화면 변경이 발생해야하는 경우 필요한 상태로 변경할 수 있기 때문에 빠르고 효율적입니다.
나는 젊은 기술자로 가득 차서 전통적인 관행에 충실해야 하는가? 아니면 업계에 유용한 혁신인가? 이 사람들이 지금하고 있습니까? 당신이 페트리 네트 또는 간단한 상태 전이 다이어그램을 잘 알고있는 경우 크리스 존슨
정말 고맙고 오래 기다려 주셔서 감사합니다. 우리는 순차 함수 차트 방식을 사용하여 결국 모든 것을 수정했습니다. 순차 함수 차트를 갖는 것은 다음 주어진 입력이 끝날 때까지 중단해야하는 모든 것을 다루는 매우 강력한 도구입니다. –
멋진. 나는 네가 그렇게 새로운 것을 알고있다. 그들은 OP가 대답을 "대답"하는 것으로 인식하도록 권합니다. – franji1