읽어봤는데 콘트롤 패스 분석이 안된다는 myth는 없군요 혹시 함수 선언과 호출의 차이를 모르는거 아닙니까?
익명(220.122)2018-12-18 10:13
답글
"decorators can make code unpredictable - you never know what decorated function does, or, indeed, whether it's even still a function." ? - return 0;
커헠(msca8h)2018-12-18 10:19
답글
저런 지적을 가지고 컨트롤 분석이 안된다는 결론을 내릴 수 있다면 그 어떤 프로그래밍 언어가 컨트롤 분석이 되는거죠? 순전히 이상하게 짜면 이상하게 된다는 지적들일뿐인데
익명(220.122)2018-12-18 10:26
답글
decoration 을 예를 들어 delegation 으로 사용하는 경우를 생각하면, 그 메소드가 언제 어디서 delegation 이 되는지를 분석하기가 매은 힘듬. 정상적인 control path 에서 이뤄지는게 아니기 때문에. 그래서 decoration 은 잘 쓰면 문제가 안되지만 (test 프레임워크라던지) - return 0;
커헠(msca8h)2018-12-18 10:28
답글
명확하지 않은 방법으로 사용하면 완전 사이드이펙트 덩어리라 매우 분석을 어렵게 만듬. 잘못 짤 수 있는 여지가 [ 매우 ] 높은 기능이라는거임. goto 도 잘 쓰면 굉장히 좋은 기능이지 ㅇㅇ 마찬가지 - return 0;
커헠(msca8h)2018-12-18 10:29
그런식의 얘기라면 C++ 최악의 기능은 template라고 해도 됩니다 template를 이용하면 C++에서도 데코레이터 패턴을 저렇게 만들 수 있습니다
익명(220.122)2018-12-18 10:36
답글
네 맞어요 하지만 TMP는 사용이 너무 불편해서 프로덕션 코드에서 안 쓰기 때문에 실제로 문제가 되는 경우는 많지 않음. execution 도 컴파일 타임이고 (런타임이 독립적으로 존재한다고 봐도 됨. 실제로 그렇게 생각하고 사용하) 런타임 control path 분석과는 별개임 - return 0;
트레이드 오픈데 러스트는 저거없으면 타자 얼마나쳐야할지 상상해보면 좀 이득인듯
파이썬 데코레이션은 나도 잘 안씀
annotation이 뭐임? 주석을 말하는건 아닐테고, C#에 그런거 없을텐데
C# 에서 함수 위에 박스로 빌딩 쌓는거 - return 0;
반복 줄이라고 만든건데 어케 그게 goto랑 동급..;;
Control path 를 분석하는게 불가능 ㅇㅇ - return 0;
데코레이터 가지고 자꾸 이상한 얘기하길래 무슨 소린가 했더니 컨트롤 분석이 왜 불가능하다는거죠 그냥 하이오더펑션인데
https://github.com/hchasestevens/hchasestevens.github.io/blob/master/notebooks/the-decorators-they-wont-tell-you-about.ipynb
이거 컨트롤 패스 분석이 되냐? 나는 전혀 안되는데. 그냥 코드로 표현을 하는게 훨씬 직관적인데 - return 0;
읽어봤는데 콘트롤 패스 분석이 안된다는 myth는 없군요 혹시 함수 선언과 호출의 차이를 모르는거 아닙니까?
"decorators can make code unpredictable - you never know what decorated function does, or, indeed, whether it's even still a function." ? - return 0;
저런 지적을 가지고 컨트롤 분석이 안된다는 결론을 내릴 수 있다면 그 어떤 프로그래밍 언어가 컨트롤 분석이 되는거죠? 순전히 이상하게 짜면 이상하게 된다는 지적들일뿐인데
decoration 을 예를 들어 delegation 으로 사용하는 경우를 생각하면, 그 메소드가 언제 어디서 delegation 이 되는지를 분석하기가 매은 힘듬. 정상적인 control path 에서 이뤄지는게 아니기 때문에. 그래서 decoration 은 잘 쓰면 문제가 안되지만 (test 프레임워크라던지) - return 0;
명확하지 않은 방법으로 사용하면 완전 사이드이펙트 덩어리라 매우 분석을 어렵게 만듬. 잘못 짤 수 있는 여지가 [ 매우 ] 높은 기능이라는거임. goto 도 잘 쓰면 굉장히 좋은 기능이지 ㅇㅇ 마찬가지 - return 0;
그런식의 얘기라면 C++ 최악의 기능은 template라고 해도 됩니다 template를 이용하면 C++에서도 데코레이터 패턴을 저렇게 만들 수 있습니다
네 맞어요 하지만 TMP는 사용이 너무 불편해서 프로덕션 코드에서 안 쓰기 때문에 실제로 문제가 되는 경우는 많지 않음. execution 도 컴파일 타임이고 (런타임이 독립적으로 존재한다고 봐도 됨. 실제로 그렇게 생각하고 사용하) 런타임 control path 분석과는 별개임 - return 0;
선언과 호출의 차이를 정말 모르는건가요?