funprog / funbot

MIT License
5 stars 2 forks source link

중복없는 dicebot 구현 #6

Closed jwChung closed 8 years ago

jwChung commented 8 years ago

5 구현 후 중복을 제거하고자 합니다.

이 작업은 #5 가 처리된 후 작업되어야 합니다.

jwChung commented 8 years ago

@funprog/core 아래 두 대안 중 어느 것이 좋을까요?

대안1

대안2

myeesan commented 8 years ago

흠... 주사위라는 현실세계의 물건을 생각해보면, 원래의 용도를 유지하는 대안 2에 한표 던집니다.

naxxster commented 8 years ago

저도 2안이 좀 더 나을 것 같습니다.

curry-ing commented 8 years ago

저도 2번에 동의합니다

jwChung commented 8 years ago

아래와 같이 결정하죠. 그런데 중간에 문자 하나 삽입하는 것 n으로 하면 될까요? @kwoolytech non-duplicated 보다 더 알맞은 단어가 있을까요?

hkjlee109 commented 8 years ago

Yeah, I think it is perfectly fine with 3n5. :) I will just enumerate an options so that you can choose one.

  1. roll 3d4 roll 3n5
  2. roll 3d4 roll 3nd5 : nd for no dup.
  3. roll 3d4 --ditto roll 3d5 --noditto : where --ditto is a default option.
jwChung commented 8 years ago

d가 문자 하나를 사용하는데 반해 대안2 nd 두 글자가 되네요. 대안3은 커멘드라인 방식이네요. 우리 시나리오에서 명령옵션이 많이 필요하면 좋은 선택이 될 수 있다고 생각합니다. 그런데 옵션 몇 가지를 사용하기서는 복잡은 선택이지 않을까하는 생각이 드네요.

myeesan commented 8 years ago

@kwoolytech 얼마전 언급하셨던 YAGNI 원칙이 생각납니다. 위 옵션에 대해서는 다음 처럼 서로 다른 두 관점에서 바라 볼 수 있을 것 같습니다.

  1. 필요할 것이라고 예측되는 기능에 대해 미리 고려하지 않는다. 그러나, 추후 3번의 기능이 필요한 시점이 된다면, 기존의 규칙을 변경하는데에서 오는 시행착오와 학습시간을 감수해야 한다.
  2. 필요성을 예측해 미리 구현을 준비한다. 이는 구현부를 필요 이상으로 복잡하게 만듭니다.

만약 당장 구현해야 한다면, 1번을 선택 하는 것이 나은 선택 같습니다. 그러나 중복숫자를 허용하지 않는 기능 외에 2 개 정도의 기능이 필수적으로 요구 된다면 3번을 선택하는 것이 어떨까 합니다.

그래서 혹시 다른 옵션이 필요한 경우가 있는 경우 제시해 주시면 고려하는데 도움이 되지 않을까 합니다.

myeesan commented 8 years ago

nd에 대해서는 n 사용을 지지합니다. n, d는 한 글자라는 대칭성을 가지고 있고, nd가 뜻을 완벽하게 표현하지 않고 마찬가지로 축약된 표현인 것 같아서, 특별한 장점은 없는 것 같습니다.

hkjlee109 commented 8 years ago

I like YAGNI. YAGNI makes my life simple. :)

jwChung commented 8 years ago

음 서로 선택을 미루는 느낌 ㅋㅋ

1번 대안 콜?