반복 Go 소스 코드는 불필요한 반복을 피해야 합니다. 주로 보이는 실수는 불필요한 단어를 포함하거나 컨텍스트나 유형을 반복하는 것입니다. 코드 자체도 같거나 유사한 코드 세그먼트가 근접한 위치에서 여러 번 나타나면 불필요하게 반복적일 수 있습니다. 반복적인 이름은 다양한 형태로 나타날 수 있습니다. Package vs. exported symb...
[번역] Go Style Decision
소개 이 문서에는 Go 가독성 멘토들의 제시한 조언에 대한 표준 가이드, 설명 및 예제를 통합 및 제공하기 위한 스타일 결정이 포함되어 있습니다. 이 문서는 완전한 것이 아니며 시간이 지남에 따라 계속해서 발전할 것입니다. 핵심 스타일 가이드와 여기에서 제공된 조언이 상충하는 경우 스타일 가이드가 우선하며 이 문서는 그에 맞게 업데이트되어야 합니다...
[번역] Go Style Guide 2
간결성 간결한 Go 코드는 노이즈 대비 신호가 높습니다. 네이밍과 구조를 통해 관련된 세부사항을 쉽게 파악할 수 있습니다. 주어진 시점에서 가장 중요한 세부사항을 도출하는 데 방해가 되는 요소가 많이 있습니다: 반복적인 코드 불필요한 구문 불투명한 이름 불필요한 추상화 공백 특히 반복적인 코드는 각각 거의 동일한 섹션들 간...
[번역] Go Style Guide
스타일 원칙 가독성이 좋은 Go 코드를 작성하는 방법을 요약한 몇 가지 원칙이 있습니다. 다음은 가독성이 좋은 코드의 특성입니다. 중요도순으로 나열합니다. 명확성: 독자의 입장에서코드의 목적과 이유가 명확합니다. 간결성: 코드는 가능한 간단한 방식으로 목표를 달성합니다. 간결성: 코드는 높은 신호 대 잡음 비율을 가집니다. 유지 보...
[golang 비동기 패턴] Pipeline 패턴
package main import "fmt" func worker(in chan int, do func(int) int) chan int { out := make(chan int) go func() { defer close(out) for i := range in { out <- do(i) } }() return ou...
[함수형 프로그래밍] 2. 액션에서 계산 분리하기
액션은 실행할 때마다 항상 같은 결과가 나옴이 보장되지 않는 동작입니다. 함수형 프로그래밍에서 액션과 계산을 분리하는 건 중요합니다. 왜냐하면 계산은 테스트하기 쉽고, 기계적인 분석이 쉽고, 조합하기 좋기 때문입니다. 계산은 함수형 프로그래밍에서 전문적인 용어로 순수 함수 또는 수학 함수라고 불리기도 합니다. 액션에서 계산을 분리하는 방법은 다음과 ...
[함수형 프로그래밍] 1. 액션, 계산, 데이터
서점에서 재미있는 책을 봤다. 쏙쏙들어오는 함수형 코딩이라는 책이다. 함수형 코딩에 대해 예제를 들어 정성들여 설명하고 있다. 나는 단순히 함수형 프로그래밍에 대해 알고 싶어서 이 책을 읽었는데, 그 외적으로 많은 것을 알게 되었다. 대표적으로 아래와 같다. 좋은 코드란 뭐지? 우리의 프로그램이 테스트가 어려운 이유가 뭐지? 아마 개발자...
글또 다짐
글또 지원 동기 개발 블로그를 하고 싶었는데, 게으른 완벽주의자인 나는 글을 쓰지 못하고 있었다. 누군가와 같이 글을 쓰면 좋겠다는 생각을 하게 됐고, 글쓰기 커뮤니티를 찾았다. 그렇게 알게 된 것이 글또다. 평소 SNS를 멀리하는 편이어서 계속 글또 지원 시기를 놓쳤는데, 이번에 들어가니까 이메일 알림 시스템이 생겼다. 그래서 알림을 신청했고 무...
(Chromium) Chromium의 빌드
크로미엄 빌드 명령어 Setting up the build gn gen out/Default gn args out/Default Build Chromium autoninja -C out/Default chrome Ninja/gn 이란? ninja는 빌드 시스템이다. 빌드 시스템이란? 빌드 : 소스 코드가 컴퓨터에서 실행될 수 있는 상태...
(Chromium) CodeHealth : Remove use of ListValue::GetString()
Code Health Issue 란 Code Health 이슈는 가장 접근하기 쉬운 이슈이다. 오래된 함수를 새 함수로 교체하는 작업을 해준다. 나는 ListValue::GetString() 함수를 Value::GetString() 함수로 바꾸는 작업을 해주었다. Merge 사실 너무 간단한 작업이라 금방 끝났고 리뷰 과정에서도 별 문제없이 M...