Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

파일 및 함수 분리를 통한 collection code 모듈화 #128

Open
SuhwanJang opened this issue Nov 3, 2020 · 0 comments
Open

파일 및 함수 분리를 통한 collection code 모듈화 #128

SuhwanJang opened this issue Nov 3, 2020 · 0 comments

Comments

@SuhwanJang
Copy link

문제점

  • LIST / SET / MAP / BTREE API 가 모두 하나의 파일 (collection.cc) 에 정의되어 있다.
  • 중복 코드를 최소화하기 위해 아래 코드와 같이 내부적으로 함수를 같이 쓰고 있다. collection type 에 따라 if~else 처리가 있으며, 이러한 형태는 코드 가독성과 유지보수성을 떨어트린다.
 static memcached_return_t do_coll_delete(memcached_st *ptr,
                                          const char *key, size_t key_length,
                                          memcached_coll_query_st *query,
                                          size_t count,
                                          bool drop_if_empty,
                                          memcached_coll_action_t verb)
 {
...
   /* Query header */
   if (verb == LOP_DELETE_OP)
   {
...
   }
   else if (verb == SOP_DELETE_OP)
   {
...
   }
   else if (verb == MOP_DELETE_OP)
   {
...
   }
   else if (verb == BOP_DELETE_OP)
   {
...
   }
}

수정방안

  • collection type 별로 파일을 분리. (list.cc / set.cc / map.cc / btree.cc)
  • 함수 모듈화 (do_coll_delete -> do_list_delete / do_set_delete ..)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant