3장. 기본 도구
Books/실용주의 프로그래머 2022. 3. 23. 19:54

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 셸로 능률을 향상시키자. 잘하면 자동화도 할 수 있겠다. ✏️ 버전관리는 정말 중요하고 git을 더 잘 다룰수 있도록 노력하자. ✏️ 버그를 해결하는 것도 찾는 것도 능력이다. DAY 3 오늘 읽은 범위: 3장 기본 도구 😉 책에서 기억하고 싶은 내용을 써보세요. 서론 🟢 도구는 여러분의 재능을 증폭한다. 언제나 일을 하는 데에 더 나은 방법이 없는지 살펴라 (P.104) 일반 텍스트의 힘 🟢 우리가 수집하는 요구 사항은 지식이고, 우리는 그 지식을 설계와 구현, 테스트, 문서로 표현한다. (P.105) 🟢 일반 텍스트가 널리 쓰이는 이유. 지원 중단에 대한 보험 - 데이터가 남아 있는 한 그걸 사..

2장. 실용주의 접근법
Books/실용주의 프로그래머 2022. 3. 20. 18:22

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) 3줄 요약 ✏️ 클린 코드에도 나오는 DRY원칙! 중요하다! ✏️ 새롭게 배운 ETC 원칙. 바꾸기 더 쉽게 코딩하도록 하자. ✏️ 본인이 짠 코드를 한달 뒤에 봤을 때 고칠 게 없으면 하산해도 된다. DAY 2 오늘 읽은 범위: 2장. 실용주의 접근법 😉 책에서 기억하고 싶은 내용을 써보세요. 🟢 잘 설계된 코드는 바뀜으로써 사용하는 사람에게 맞춰져야 한다. 그래서 우리는 ETC 원칙을 따른다. 바꾸기 더 쉽게(Easier to Change.) 이게 전부다.... 왜 결합도를 줄이면 좋은가? 관심사를 분리함으로써 각각이 더 바꾸기 쉬워지기 때문이다. 왜 단일 책임 원칙이 유용한가? 요구 사항이 바뀌더라도 모듈 하..

1장. 실용주의 철학
Books/실용주의 프로그래머 2022. 3. 19. 22:05

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 TIL (Today I Learned) ⭐️ 3줄 요약 ✏️ 깨진 창문을 찾아 리팩터링을 해보자. 내가 많이 깨먹었지만.. ✏️ 한 달에 한 권 노개북을 통해 해 보자. ✏️ 나쁜 기획, 설계에 대해 변명하지 말고 대안을 제시해 보자. DAY 1 오늘 읽은 범위: 1장 실용주의 철학 😉 책에서 기억하고 싶은 내용을 써보세요. 🟡 자신이 하는 모든 일에 책임을 진다는 점이다. (P. 1) 🟡 왜 직접 바꾸지 않습니까? (P. 2) 🟡 우리는 자신의 능력에 자부심을 가질 수 있지만, 실수나 무지 같은 단점도 인정해야만 한다. (P. 4) 🟡 해결을 찾아내야 하는 사람은 여러분이다. (P. 6) 🟡 변명 말고 대안을 제시하라 (P. 6) 🟡 나쁜 설계, 잘못..

실용주의 프로그래머 책 구매 인증 👍
Books/실용주의 프로그래머 2022. 3. 18. 10:07

안녕하세요 😀 유로띠 입니다 😉 실용주의 프로그래머 🙋‍♂️ 이번주부터 실용주의 프로그래머 독서를 시작하려고 합니다. 먼저 구매 인증 부터 🙌

[클린코드] 6장 객체와 자료구조
Books/클린코드 2022. 3. 13. 23:50

클린 코드 객체와 자료구조 🙌 객체와 자료구조 차이점 👍 👀강의(course)를 예로 든다면... class course { const totalTime; const playTime; const completedPlayTime; } const progressPercent() { const percent = Math.floor((completedPlayTime / totalTime) * 1000) / 10; } 자료구조는 자신이 가지는 그대로를 뜻한다. course(강의)에서는 전체 수강시간, 시청 시간, 완료된 시청 시간 등을 가지는데 이는 자료구조라 할 수 있다. 😄 객체는 데이터 그대로가 아닌 함수를 제공한다. course(강의)에서 수강생의 시청시간, 수강시간은 중요하지 않고 해당 강의의 수강률, ..

[클린코드] 5장 형식 맞추기
Books/클린코드 2022. 1. 24. 23:02

클린 코드 형식 맞추기 🙌 형식을 맞추는 목적 다음의 테스트 코드를 살펴보자. 👀 describe('promise', () => { const until = 3; const range = [...Array(until).keys()]; const t = 300; const delay = (t) => new Promise((resolve) => setTimeout(resolve, t)); it('test for promise', async () => { for await (const rangeItem of range) { await delay(t); console.log('a'); await delay(t); console.log('b'); await delay(t); console.log('c'); } c..

[클린코드] 4장 주석
Books/클린코드 2022. 1. 19. 22:59

클린 코드 주석 🙌 주석을 최대한 쓰지 말자 ⚠️ 주석은 나쁜 코드를 보완하지 못한다. ⚠️ 또한 주석은 방치된다. 😵 // 중복된 상품 선택을 막기 위해 진행중인 A 타입의 상품이 존재하는지 확인한다. if (product && product.state === 'ONGOING' && product.type === 'A') { } 요구 사항이 변경되어 타입과 상관없이 중복 상품 선택을 할 수 없게 한다면?.. 🤔 // 중복된 상품 선택을 막기 위해 진행중인 A 타입의 상품이 존재하는지 확인한다. if (product && product.state === 'ONGOING') { } 주석은 그대로 방치된다면 나중에 해당 코드를 보고 product 자체가 A 타입이구나.. 라는 오해를 만들 수 있고 이는 오류..

[클린코드] 2장 함수
Books/클린코드 2022. 1. 11. 01:47

클린 코드 함수 🙌 간결한 함수로 작성하자 해당 함수는 다음과 같은 기능을 가지고 있다. 페이지가 테스트 페이지인지 확인한 후 테스트 페이지라면 설정 페이지와 해제 페이지를 넣는다. 테스트 페이지든 아니든 페이지를 HTML로 렌더링하여 리턴한다. 하지만 함수가 길다. 😵 const renderPageWithSetupAndTeardowns = ({ pageData, isSuite }) => { const isTestPage = pageData.hasAttribute('Test'); if (isTestPage) { const testPage = pageData.getWikiPage(); const newPageContent = []; includeSetupPages(testPage, newPageConten..

[클린코드] 1장 깨끗한 코드
Books/클린코드 2021. 12. 17. 00:53

클린 코드 독서 1일차 🧹 깨끗한 코드 나쁜 코드는 무엇일까? 👎 성능이 나쁜 코드 불필요한 연산이 있어서 개선이 필요한 코드 👎 의미가 모호한 코드 이해하기 어려운 코드 네이밍과 그 내용이 다른 코드 const c = await this.validateCourse(); 함수를 보면 강의에 대해 유효성을 검사하는 것 같다. 어떤 유효성을 검사한 것일까? 🧐 정상적인 강의인지? 수강생이 해당 강의를 봐도 되는지? 수강이 가능한 강의인지? 필수로 봐야 하는 강의 인지? 함수를 봐서는 알 수가 없다. (함수 리팩토링은 다음 장에..) 또한, 이름 c는 아무런 의미도 드러나지 않는다. 의도가 드러나는 이름을 사용하면 코드의 이해와 변경이 쉬워진다. const requiredCourse; //필수강의구나! con..