'독서'에 해당되는 글 25건
- 2015.06.03 꿈의 스펙트럼 - 전명진
- 2015.06.03 컬투에 미치다 - 두시탈출컬투쇼
- 2014.04.28 개발자의 코드
- 2014.03.31 프로그래머 그 다음 이야기
- 2014.03.21 2. 함수형 프로그래밍 법칙을 적용하라. - Apply Functional Programming Principles 2
- 2014.02.25 1. 신중하게 행동하라 - Act with Prudence
- 2014.02.23 서문
- 2013.03.03 성공하는 남자의 디테일
- 2012.09.08 결혼 건축가
- 2012.02.24 내일을 바꾸는 새로운 습관, 잠자기 전 30분
아브라 카타브라 : 히브리어로 '말한대로 이루어지리라' 라는 나법의 주문.
2. 함수형 프로그래밍 법칙을 적용하라. - Apply Functional Programming Principles
독서/프로그래머가 알아야 할 97가지 2014. 3. 21. 23:13- Edward Garson
Functional Programming has recently enjoyed renewed interest from the mainstream programming community. Part of the reason is because emergent properties of the functional paradigm are well positioned to address the challenges posed by our industry's shift toward multi-core. However, while that is certainly an important application, it is not the reason this piece admonishes you to know thy functional programming.
Mastery of the functional programming paradigm can greatly improve the quality of the code you write in other contexts. If you deeply understand and apply the functional paradigm, your designs will exhibit a much higher degree of referential transparency.
Referential transparency is a very desirable property: It implies that functions consistently yield the same results given the same input, irrespective of where and when they are invoked. That is, function, evaluation depends less - ideally, not at all - on the side effects of mutable state.
A leading cause of defects in imperative code is attributable to mutable variables. Everyone reading this will have investigated why some value is not as expected in a particular situation. Visibility semantics can help to mitigate these insidious defects, or at least to drastically narrow down their location, but their true culprit may in fact be the providence of designs that employ inordinate mutability.
And we certainly don't get much help from industry in this regard. Introductions to object orientation tacitly promote such design, because they often show examples composed of graphs of relatively long-lived object that happily call mutator methods on each other, which can be dangerous. However, with astute test-driven design, particularly when being such to "Mock Roles, not Objects", unnecessary mutability can be designed away.
The net result is a design that typically has better responsibility allocation with more numerous, functions that act on arguments passed into them, rather than referencing mutable member variables. There will be fewer defects, and furthermore they will often be simpler to debug, because it is easier to locate where a rogue value is introduced in these designs than to otherwise deduce the particular context that results in an erroneous assignment. This adds up to a much higher degree of referential transparency, and positively, and positively nothing will get these ideas as deeply into your bones as learning a functional programming language, where this model of computation is the norm.
Of course, this approach is not optimal in all situations. For example, in object-oriented systems this style often yields better results with domain model development(i.e., where collaborations serve to break down the complexity of business rules) than with user-interface development.
Master the functional programming paradigm so you are able to judiciously apply the lessons learned to other domains. Your object systems(for one) will resonate with referential transparency goodness and be much closer to their functional counterparts than many would have you believe. In fact, some would even assert that the apex if functional programming and object orientation are merely a reflection of each other, a form of computational yin and yang.
객체지향형 프로그램의 단점중에 하나라고 하면 지속적으로 변하는 내부맴버변수들을 효율적으로 컨트롤하지 못한다는 것이다.(동기화나 다른 여러가지 이슈)
함수들이 주어진 같은 입력에 대해 언제 어디서 호출되던지 상관없이 지속적으로 같은 결과를 얻도록 하는것이 참조 투명성의 바람직한 특징이다.
그러기 위해서 가급적이면 변하기쉬운 멤버변수들을 참조하기보다 그것들을 함수의 인자로 전달고 좀더 작고 많은수의 함수들로 책임을 나누게 하여서 훨신 더 높은 참조투명성을 갖게 하자는 것이 함수형 프로그래밍의 취지중에 하나이다.
물론 본문의 끝자락에 나와있드시 함수형 프로그래밍과 객체지향은 음과 양처럼 서로의 장단점이 있으므로 각자에 대하여 깊은 이해를 전제하여 각 과제마다 적절한 방식을 사용하는것이 주요하다.
Act with Prudence - Seb Rose
"whatever you undertake, act with prudence and consider the consequences" Anon
NO MATTER HOW COMFORTABLE A SCHEDULE LOOKS at the beginning of an iteration, you can't being under pressure some of the time. If you find yourself having to choose between "doing it right" and "doing it quick." it is often appealing to "do it quick" with the understanding that you'll come back and fix it later. When you make this promise to yourself, your team, and your customer, you mean it. But all too often, the next iteration brings new problems and you become focused on them. This sort of deferred work is known as technical debt in his taxonomy of technical debt, and it should not be confused with inadvertent technical debt.
Technical debt is like a loan: you benefit from it in the short-term, but you have to pay interest on it until it is fully paid off. Shortcuts in the code make it harder ot add features or refactor your code. They are breeding grounds for defects and brittle test cases. The longer you leave it, the worse it gets. By the time you get around to undertaking the original fix, there may be a whole stack of not-quite-right design choices layered on top of the original problem, making the code much harder to refactor and correct. In fact, it is often only when things have got so bad that you must fix the original problem, that you actually do go back to fix it. And by then, it is often so hard to fix that you really can't afford the time or the risk.
There are times when you must uncur technical debt to meet a deadline or implement a thin slice of a feature. Try not to be in this position, but if the situation absolutely demands it, then go ahead. But (and this is a big but) you must track technical debt and pay it back quickly, or things go rapidly downhill. As soon as you make the decision to compromise, write a tack card or log it in your issue-tracking system to ensure that it dose not get forgotten.
If you schedule repayment of the debt in the next iteration, the cost will be minimal. Leaving the debt unpaid will accrue interest, and that interest should be tracked to make the cost visible. This will emphasize the effect on business value of the project's technical debt and enables appropriate prioritization of the repayment. The choice of how to calculate and track the interest will depend on the particular project, but track it you must.
Pay off technical debt as soon as possible. It would be imprudent to do otherwise.
맞습니다.
급한 프로젝트일정때문에 가끔은 "제대로하기"(doing it right) 보다는 "빨리하기"(doing it quick)를 선택해야될 경우가 많다.
그러지 않기 위해서 노력해야겠지만 어쩔수 없는 경우에는
빠른 주기로 재대로 고치를 작업을 해야한다.
그렇지 않고 놔두다보면 나중엔 정말 일이커져서 엄청난 위기에 봉착할수 있다.
괜찮은 책인것 같아서 한 꼭지씩 주석을 달며 정리하려고 합니다.
원문은 CCL 라이센스가 있어서 블로그에 등록이 가능하지만
한글로 번역된 글은 저작권은 어떻게 될지몰라서 그냥 원문으로 정리 하겠습니다.
PART 1 커뮤니케이션
휴대폰 연락처 저장 방법이 남다르다
- 휴대폰 이름에 모든 정보를 저장하라
목소리가 당당하다
- 당당한 목소리를 만들라
언제나 반듯한 명함을 준비한다.
- 항상 명함을 준비하라!
이메일은 짧게 쓰고, 빠르게 답장한다.
- 짧게 작성하고, 빠르게 답장하라!
오래 듣고 짧게 말한다.
- 귀를 열고 마음을 얻어라!
미팅 후 애프터서비스를 한다.
- 미팅후 감사의 이메일 또는 메시지를 보내라!
- 무슨 일을 하든 누구를 만나든, 언제나 진심을 다하라!
화낼 상황에도 칭찬하다.
- 언제나 칭찬하라!
- 밝고 활기차게, 적극적으로 인사하라!
기다릴 줄 안다.
- 여유롭게 기다려라!
면접에서 절대 떨어지지 않는다.
- 준비 없이 면접 합격을 꿈꾸지 마라!
인터넷에 흔적을 남기지 않는다.
- 인터넷에서도 누군가 당신을 지켜보고 있다!
남을 깎아내리지 않는다.
- 남을 깎아내리지 마라
다른 사람의 꿈을 응원한다.
- 꿈을 비웃지 마라!
PART 2 스타일
섹시하다.
- 섹시해져라!
눈빛이 살아있다.
- 눈빛은 어떤 경우에도 거짓말을 하지 않는다!
패션 센스가 좋다.
- 어필한 이미지를 입어라!
얼굴이 아름답다.
- 열정과 미소로 아름다운 얼굴을 만들라!
책을 읽는다.
- 없는 시간도 만들어서 책을 읽어라!
책상 풍경도 관리한다.
- 책상 풍경에서도 당신의 전문성이 엽보이게 하라!
계산하는 모습도 다르다.
- 지갑을 정리하라!
담배를 피우지 않는다.
- 인정받고 싶다면 담배를 끊어라!
물건을 잃어버리지 않는다.
- 발생 가능한 문제 상황에 항상 대비하라!
PART 3 워크
몰래 일한다.
- 노력을 숨겨라!
미리끝낸다.
- 나만의 마감시간을 정하라!
이직으로 도망치지 않는다.
- 신중하게 이직하라!
회사의 브랜드와 나의 가치를 착각하지 않는다
- 자기 객관화를 하라!
신뢰를 쌓는다.
- 신뢰를 쌓아라!
동료에게 사랑받는다.
- 사랑받는 존재가 되라!
그럼에도 불구하고 한다
- 그럼에도 불구하라 해라!.
다른 사람의 장점을 끌어낸다.
- 타인의 장점에 민감해져라!
상사를 좋아한다.
- 상사를 좋아하라!
메모한다.
- 메모한다!
SHOW를 잘한다.
- 프리젠테이션 능력을 키워라!
막연한 기대로 MBA를 하지 않는다.
- 막연한 환상으로 MBA를 산택하지 마라!
술자리에서 실수하지 않는다.
- 술자리에서도 긴장을 풀지 마라!
PART 4 라이프
사생활이 깨끗하다.
- 사생활도 관리하라!
법인카드를 함부로 쓰지 않는다.
- 회사 돈을 자신의 돈처럼 아껴라!
색소폰을 분다.
- 당신만의 취미를 만들어라!
아침을 거르지 않는다.
- 아침식사로 건강을 지켜라!
가정적이다.
- 가정을 챙겨라!
주식을 하지 않는다.
- 주식이나 로또에 빠지지 마라!
이야깃거리가 많다.
- 상대가 즐거워할 이야깃거리를 준비하라!
자신이 무엇을 원하는지 안다.
- 자신과의 대화를 즐겨라!
위기 때 더욱 도약한다.
- 위기에 쓰러지지 마라!
꿈을 꾼다.
- 꿈을 꿔라!
상상한다.
- 당신의 미래를 상상하라!
에필로그 행복하라!
- 지금 당장 행복하라!
래리크랩 지음 | 윤종석옮 긴| 두란노
솔찍히 조금 어려운 책이다
.나중에 다시 읽어봐야겠다.
결혼은 연합이고
연합은 영적연합 , 정식적연합, 육체적연합이 있고
온전한 결혼건축을 위해서는 은혜와 헌신, 그리고 수용이 필요합니다.
우리는 하나님으로 부터 충분한 필요에 대한 채움을 받고 있고
배우자에게 헌신을 해야되고
배우자의 실수나 상처에 대하여 원망이 아니라 실망으로서 대해야합니다.
시간이 없다는 말은 변명일 될 수 없습니다. 효율적으로 사용해야 합니다.
효율화의 열쇠는 습관화에 있습니다. 무엇을 할까라 라고 생각하는 시간을 줄여줍니다.
시간은 모든 사람에게 평등하게 주어지지 않습니다. 100년전 사람과 현재의 사람에게
10시간이라는 의미는 다릅니다.
습관화된 행동에는 스트레스가 없습니다.
렘수면 : 몸은 이완상태 , 뇌는 각성상태
논렘수면 : 몸은 움직이고, 뇌는 휴식상태
꿈은 렘수면시 꾸게 됩니다. 또한 렘수면시 기억이 정리정돈되어 정착됩니다.
역향억제 : 나중의 작업이 앞의 기억의 재생을 방해하는 현상
순향억제 : 먼저 한 공부가 그다음 공부의 기억을 방해하는 현상
선행학습과 후속학습의 내용이 유사할 경우는 선행학습의 재생에 문제는 없습니다.
선행학습과 후속학습의 내용이 현저하게 다른경우는 오히려 역향억제가 적어집니다.
선생학습과 후속학습의 내용이 적당히 비슷한 경우에는 역행억제가 일어나기 쉽습니다.
잠은 새로운 하루의 출발선입니다.
잠자기 전 30분에 씨를 뿌리는 습관, 아침 30분에 수확하는 습관
목표를 명확히 하기 위해서는 눈으로 확인할 수 있도록 시각화하는 요령이 필요합니다.
종이에 써서 눈에 띄는 곳에 콥여 항상 볼 수 있도록 시각화합니다.
인간은 무엇이든지 반복을 통해 무의식에 작용함으로써, 그것을 좋아하도록 학습해가는 기능을 갖고 있습니다.
잠자기 전 30분은 늦어도 11시 30분부터!
포인트 공략 독서법 : 단락의 처음과 마지막 문장만을 읽습니다.
3회전 학습법 : 처음엔 빠르게 전체 파악 두번째는 내용이해 마지막 세번째는 요점암기
잠자기전 30분의 인터넷 활용법
-뉴스 및 개인 메일링리스트 확인
잠자리에 들어서도 쉽게 잠을 못 이루는 사람들이 있습니다. 그런 사람들은 묵상하기나 라디오듣기를 하면
좋습니다.
아침에 일어나면 햇빛을 쐬어주고 밤에 잘때는 잠옷으로 갈이입고 빛이 차단된 조용한 침실에서 자는 습관을
들이세요.
잠자기전 한줄일기를 쓰세요(긍정적인것)
-오늘 기뻤던일
-오늘 잘한일
- 오늘 감사해야 할일
왜 아침 1시간이 아니라 아침 30분일까?
첫째 30분은 인간의 집중력이 최고로 발위될 수 있는 단위이기 때문입니다.
둘째 조형이론의 스몰스탭법입니다. 30분 부터 시작해서 시간을 늘리세요.
우리의 뇌는 오전중에 훨씬 잘 돌아가고 기억력도 뛰어납니다.
아침 30분을 15분 X 2 세트로 분해하는 것입니다.
30분이라는 시간을 둘로 나누어 두종류의 공부를 15분씩합니다. 이렇게 하면 보다 효율적인 공부를 할 수 있습니다.
15분이면 질리지 않고 높은 집중력을 유지 할 수 있습니다.
복습은 어느정도 시간이 경과 한 후에 하는것이 효과적입니다.
낮잠자기
보통 기억력은 오전중에 가장 좋고 오후에는 떨어지는데 30분간 낮잠을 자면 오후에서 오전과 같거나
그 이산의 기억력을 유지 할 수 있습니다. 낮잠을 자기전에 커피를 마시는 것을 추천하는데 그 이유는
커피향은 긴장을 풀어주는 효과가 있어서 잠을 이루는데 도움을 줍니다. 카페인을 섭취 후 20~30분이 지나야
흥분 작용을 일으키는데 낮잠을 자기전에 커피를 마셔두며년 30분 후에 잠에서 깨게 되는 것입니다.
아침 일찍 일어난 대가로 상을 준비하세요
일찍 일어나기 괴로운 사람은 아침에 즐거운 일을 준비합니다.
밤의 나쁜 습관을 한가지 버려보세요.