https://stackoverflow.com/questions/2941900/is-it-wrong-to-use-deprecated-methods-or-classes-in-java
1. Is it wrong to use Deprecated methods or classes in Java?
From the definition of deprecated:
A program element annotated @Deprecated is one that programmers are discouraged from using,
typically because it is dangerous, or because a better alternative exists.
쓰지 말라는 거지 곧 없어진다는 게 아닙니다
deprecated를 빼버리는 건 갓-바 개발자들도 안 하는 상식 이하의 짓거리입니다
혹시... 자바 개발자분들과는 다른 상식을 가지고 계신가요?
하위호환을 시원하게 버려 버리는 무언가로 프로그램을 짜는 건
벽돌인 줄 알고 집을 지었는데
시간이 지나고 보니 벽돌이 설탕으로 변해 버려서
비가 왔더니 녹아버려서 와장창 하는 격입니다
다른 어떤 공학에서도 듣도 보도 못한 일이 이 바닥에선 일상적으로 벌어지고 있읍니다
설탕 벽돌을 만들지 맙시다
설탕으로 변할 것 같은 벽돌로는 집을 짓지 맙시다
버전관리를 잘하셈 애초에 처음부터 완벽한설계를 할수도 없고 빼버릴애들은 빼야지 윈도우 10에서 윈도우 95 호환안된다고 뭐라할거임?
보통 시맨틱 버저닝이 국룰인데... 그거 비판하면서 딴 거 쓰는 사람들이 있음.
https://staltz.com/i-wont-use-semver-patch-versions-anymore.html
이 사람은 버전 숫자를 메이저 마이너 두개로 관리해서, 버전이 깨질 변화라고 생각되면 메이저를 올리고, 아니면 마이너를 올리고. 대충 SemVer "작은 버그 픽스"라고 생각하여 마이너 버전을 올렸는데 그 버그에 의존하던 불쌍한 영혼들을 위한 버저닝 방법
아예 안 깨질 각오를 하고 버저닝을 하는 급진적인 칭구들도 있음.
https://github.com/clojure/core.async#releases-and-dependency-information
근로저 비동기 코어 라이브러리인데 얘네는 일단 걍 첨부터 안 깨진다고 못박아 두고, "메이저.마이너.커밋수" 이런 식으로 관리. 메이저랑 마이너는 그냥 얼마나 큰 피처인가만 표시.
기존 인터페이스를 버리지 않고 또 다른 이름을 주거나, 새로운 인터페이스를 추가하는 식으로만 관리한다고 함
애-플