티스토리 뷰
특히 GUI 프로그래밍을 할 때 로직 부분과 GUI 부분을 쉽게 분리하기가 힘들다
또 함수를 짜다보면, 하나의 함수는 하나의 일만 하는게 제일 좋지만
코딩이란게 그리 쉽던가, 어쩔때는 데이터를 변경하면서 ui를 바꿔야하는때도 있고
ui가 바뀌는 핸들러에서 무언가 값을 조작해줘야하는 일도 있고..
결국 다 메소드(함수) 로 분리가 잘 돼줘야 중복 코드 짤 일도 없고 적재 적소에 함수를 적절하게 잘 호출해주게 된다.
그럼 함수를 어떨때 나누느냐?
일단 크게 로직 적인 부분을 짤때를 예로 들어보자
나의 경우는 GUI프로그램을 짤 때 기본적으로 CUI 환경을 염두에 두고 함수 설계를 한다. 이렇게 할 경우의 장점은 로직 함수의 처리에 있어 기본적으로 view와의 분리가 완벽하게 된다. (함수 내에서 ui를 처리할 필요가 없어지기 때문에)
예를들어 어떤 과일을 먹을지 고르는 combo박스에서 a, b, c 중 하나를 선택하면 텍스트를 출력하는 메소드를 설계한다고 해보자
제일 바보같은 짓은 무엇일까?
Combo박스의 DataChanged 핸들러에서 바로 if(item=="a") print("a") 하는 것이다.
dos창에서 위의 명령을 입력한다고 해보자
프로그램이름이 eat 이라고 해보자
eat fruit=a
라고 치면 a 를 출력한다고 생각하면, 일단
string procFruit(Fruit fruit)
{
if(fruit == "a")
return "a"
...
}
이런 함수를 하나 짜놓는다.
dos prompt로 명령이 들어오건, window의 combobox가 변경되건 위의 함수를 부르면 원하는 결과를 내놓는 것이다
이 처럼 cui기반으로 명령을 처리한다고 생각하면 메소드(함수)의 최소 단위를 어떻게 설계해야하는지 설계하기 용이해진다
하나의 메소드는 하나의 일만 하도록 짜는것이 가장 좋음을 명심하자
p.s1) 임베디드 환경이라 펑션콜을 자주 하기엔 rom과 속도측면의 낭비가 있다면, 우리에겐 inline과 forceinline이 있다!
'JHB > 잡다한 이야기' 카테고리의 다른 글
좋은 글귀 (0) | 2021.04.14 |
---|---|
카테고리 정하기가 어렵다 (0) | 2019.12.15 |
소스코드 해독을 위한 팁 (1) | 2019.05.10 |
host - client 시스템 설계시 행한 오늘의 삽질 (0) | 2018.05.10 |
이번 프로젝트 하면서 겪은 설계 실수 몇가지 (1) | 2016.03.05 |
[세미나] 유니코드의 다양한 이해 (0) | 2014.09.07 |
대학을 졸업한 소프트웨어 개발자에게 중요한 능력 (0) | 2013.04.26 |
[잡설] ResourcePool을 사용하자.. (0) | 2012.07.24 |
- Total
- Today
- Yesterday
- gcc
- android
- algorithm
- 프로그래밍
- C
- MFC
- C++
- 안드로이드
- API
- AWS
- driver
- Visual C++
- 음악
- db
- jni강좌
- java
- Python
- Quiz
- linux
- source
- NDK
- Cloud
- winapi
- it
- 드라이버
- kering
- database
- jni
- Troubleshooting
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |