Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Storm
- elasticsearch
- Gradle
- 도메인주도설계
- elastic search
- Angular2
- Clean Code
- Linux
- Domain Driven Design
- DDD
- Spring Batch
- Spring
- spark
- nginx
- scala
- apache storm
- Hbase
- hadoop
- Spring Boot
- 제주
- hdfs
- docker
- design pattern
- hibernate
- 스프링 배치
- Java
- intellij
- SBT
- 엘라스틱서치
- Spring XD
Archives
- Today
- Total
목록Command Query Separation (1)
욱'S 노트
CQS - Command Query Separation
Command–query separation (CQS)는 컴퓨터 프로그래밍에서 반드시 지켜야 할 원칙이다. 이것은 Bertrand Meyerd의 Eiffel 프로그래밍 언어에서 고안되었다. 모든 메소드는 한번의 액션에서 상태를 변경하는 커맨드든 데이터를 반환하는 쿼리든 한가지 액션만 취해야 한다는 것이다. 다시 말하자면 질문을 할때 대답을 변경하지 말라는 것이다. 더 정확하게는 메소드는 값을 반환할 때 referentially transparent(시스템의 상태를 변경하지 않을 때 함수를 referentially transparent하다고 함)해야 하며 사이드 이펙트를 유발하지 말아야 한다. 여기 CQS 원칙을 위반한 단순한 예제이다. 그러나 멀티 스레드 소프트웨어에서 유용한 예이기도 하다. 살태를 변경..
Language/IT
2015. 7. 20. 19:07