topics

2021-02-05

당사 대표 구로다 의한 책 "Elixir 실천 가이드 '가 임프레스 사에서 출시되었습니다.

Amazon에서 구입

이 책의 주제 인 프로그래밍 언어 Elixir 나가 만난 것이 언제 였는지 뚜렷한 기억하지 않습니다. 애매하게 2010 년대 중반라고 둡시다. 지금까지의 약 10 년간 나는 오로지 Ruby on Rails (프로그래밍 언어 Ruby 기반의 Web 개발 프레임 워크 통칭 "Rails")를 사용하여 왔습니다. Rails에서 Web 응용 프로그램을 개발하거나 Rails에 대해 설명하는 책을 쓰기도했습니다.

왜 Elixir에 관심을 갖고 있었는지도 잘 모릅니다. 세상에 "함수형 프로그래밍 언어 '라는 것이 존재하여 매우 흥미로운 것이라는 소문은 듣고 있었다. Elixir 이외의 함수형 언어에 대해 조금 알아 적도있었습니다. 그러나 연구자와 이론가 선호하지만 실용적이지 않다는 선입견도 가지고 있었으므로, 꽤 진지하게 임하는 기분이되지 않았습니다.

그 후, 전기가 나에게 방문했습니다. 2010 년대 후반, Web 어플리케이션 개발의 세계에서 단일 페이지 응용 프로그램 (SPA)가 대유행했다. SPA는 데스크톱 응용 프로그램과 같은 UI / UX를 제공하는 Web 어플리케이션의 총칭입니다. SPA 개발을 지원 JavaScript 프레임 워크 (React, Vue 등)의 이용이 급속히 보급되어갔습니다. 나도이 파도 타기 위해 적극적으로 정보를 수집하고 시행 착오를 반복했습니다. 그 중 발견 한 것이 Phoenix Framework입니다. Elixir 기반의 Web 개발 프레임 워크, 통칭 "Phoenix"입니다.

조사를 진행시켜 나가면 점차 나는 흥분했습니다. Phoenix는 당시 내가 SPA 개발에서 직면하는 다양한 문제를 우아하게 해결 해 줄 것이었습니다. 또한 Elixir이 자랑하는 병렬 프로그래밍을 추구하다 보면 기존의 틀을 넘는 혁신적인 Web 서비스를 만들 수있을 것이었습니다. Phoenix이 우리 업계에서 게임 체인저가 될 것이라는 예감을 품고있었습니다.

실제로 어느 정도의 규모의 구체적인 Web 응용 프로그램을 만들려고하면 Elixir는 매우 쓰기 쉽고 실용적인 프로그래밍 언어임을 알 수있었습니다. 그 구문은 Ruby 바람에 친숙했다. 모든 데이터가 불변 이라는 함수형 프로그래밍 언어의 제약 개발의 지장이되지 않았습니다. 또한 객체 지향 프로그래밍 (OOP)에서 말하는 "상속"에 해당하는 구조가 Elixir에는 존재하지 않는 것입니다 만, 놀랍게도, 그것도 불만의 씨앗이되지 않았습니다.

Elixir는 Java, PHP, Python, Ruby 등과 비교하면 역사가 일천하고 대중의 인지도도 낮은 언어입니다. 그러나 2020 년대에 Elixir는 황금 시대를 맞이 것이라고 나는 예상하고 있습니다. 그 근거는 Elixir 커뮤니티의 열량입니다. 많은 재능있는 사람들과 유력한 기업군이 참가함으로써 Elixir의 에코 시스템은 빠르게 성숙되고 있습니다.

그런데이 책은 Elixir 입문서입니다. 새로운 언어에 도전하려는 현역 프로그래머뿐만 아니라 프로그래밍 자체 초보자에게도 문호를 열 수 있도록, "변수"및 "정수"와 같은 기본적인 개념을 최대한 정중하게 설명하고 있습니다 . 또한 구체적인 소스 코드와 실행 결과를 많이 게재했습니다. 특히 잘못된 소스 코드 예제와 그것을 실행했을 때 출력되는 경고 및 오류 메시지에 대해 자세히 설명하도록했습니다. 그들이 초보자를 미혹 자신의 학습 의욕을 버린다 던지 않도록하는 것입니다.

이 책은 전편과 후편으로 나누어 져 있고, 이번에 제공하는 것은 전편입니다. 전편의 주요 테마는 모듈, 함수, 데이터 형, 패턴 매칭 등입니다. 후편에서는 구조 다형성 비헤이비어 메타 프로그래밍 병렬 프로그래밍 등을 취급합니다. 후편은 "Elixir 실천 가이드 고급 편」으로 출간 될 예정입니다.

전편은 또한 5 개 부품으로 구성되어 있습니다. I 부에서는 Elixir 프로그래밍에 대한 기초 개념을 다소 구보로 소개합니다. 데이터 형, 모듈, 함수, 매크로, 패턴 매칭, 파이프 연산자 등 Elixir의 특징적인 언어 사양을 여기에서 알아보십시오. Elixir 개발 환경의 구축 단계는 Chapter 2에서 설명합니다.

제 II 부에서는 모듈과 함수에 대해 자세히 설명합니다. 매크로에 대해서도 언급하지만 너무 깊게 추구하지 않습니다. 매크로는 후편에서 다룰 예정입니다. 제 III 부에서는 Elixir 데이터 구조를 처리합니다. 특히 목록 (Chapter 12)과지도 (Chapter 14)에 많은 페이지를 할애하고 있습니다.

"유혹 Elixir 월드 '라는 제목의 파트 IV의 주역은 패턴 매칭입니다. Elixir에 "상속"이 없어도 곤란하지 않은 것은이 언어 사양 덕분이다. 이 부분에서는 그 밖에도 「내포 표기」나 「reduce 함수 "등의 흥미로운 주제를 다룹니다.

제 V 부에서는 틱택을 소재로 개발 훈련을 실시합니다. 전반은 준비 작업입니다. まず、먼저 Elixir 테스트 프레임 워크 ExUnit과 Elixir 빌드 도구 Mix의 사용법을 설명합니다. 다음 연습에 필요한 道具立て으로 에이전트와 GenServer라는 두 개념을 설명합니다. 제 V 부 뒷부분에서 실제로 응용 프로그램을 개발하고 있습니다. 이 개발 연습을 통해 독자는 다양한 노하우를 습득 할 수 있습니다. 예를 들어, 복수 개의 모듈을 조합 한 「프로젝트」단위로 개발을 추진 방법 터미널에서 사용자와 상호 작용하는 방법 응용 프로그램에 데이터를 유지하는 방법, 테스트를 작성하고 실행하는 방법 등.

제 3 장부터 제 25 장까지의 각 장 끝에 연습 문제가 포함되어 있습니다. 책을 읽는 것만으로 프로그래밍 언어를 습득하는 것은 어렵 기 때문에, 꼭 권말 부록 대답을 보지 않고 도전 해보십시오.

2020 년 11 월
구로다 노력

목차

  • Part 1
    • Chapter 1 서론
      • 1.1 Elixir는
      • 1.2 Elixir와 Erlang의 관계
    • Chapter 2 Elixir 개발 환경 구축
      • 2.1 Elixir 컨테이너를 만들
      • 2.2 Elixir 컨테이너의 이용법
    • Chapter 3 Elixir의 기초(1)
      • 3.1 Elixir 프로그램이 움직이는 구조
      • 3.2 기본 개념
      • 3.3 연습 문제
    • Chapter 4 Elixir의 기초(2)
      • 4.1 데이터 형
      • 4.2 수치
      • 4.3 아톰
      • 4.4 문자열
      • 4.5 목록, 문자리스트, 튜플 키워드 목록지도
      • 4.6 함수
      • 4.7 인치의 판별
      • 4.8 연습 문제
    • Chapter 5 Elixir의 기초(3)
      • 5.1 변수와 패턴 매칭
      • 5.2 함수, 모듈, 매크로
      • 5.3 연습 문제
    • Chapter 6 Elixir의 기초(4)
      • 6.1 연산자
      • 6.2 파일 시스템 입출력
      • 6.3 if 매크로 for 매크로 Range 구조
      • 6.4 연습 문제
  • Part 2
    • Chapter 7 모듈
      • 7.1 모듈의 정의
      • 7.2 모듈의 별명
      • 7.3 모듈 특성
      • 7.4 연습 문제
    • Chapter 8 함수(1)
      • 8.1 익명 함수
      • 8.2 명명 된 함수
      • 8.3 함수 및 키워드 목록
      • 8.4 연습 문제
    • Chapter 9 함수(2)
      • 9.1 함수 호출의 분류와 함수의 가시성
      • 9.2 캡처 연산자
      • 9.3 import 지시문
      • 9.4 연습 문제
    • Chapter 10 매크로 초보 문과 조건문
      • 10.1 매크로 초보
      • 10.2 if 매크로
      • 10.3 cond 매크로
      • 10.4 연습 문제
  • Part 3
    • Chapter 11 원자
      • 11.1 아톰은
      • 11.2 아톰을 처리 함수
      • 11.3 아톰의 역할
      • 11.4 연습 문제
    • Chapter 12 목록
      • 12.1 목록 만들기
      • 12.2 목록을 이용하는
      • 12.3 목록을 다른 목록으로 변환
      • 12.4 목록의 데이터 구조
      • 12.5 헤드, 테일 생성자 연산자
      • 12.6 연습 문제
    • Chapter 13 튜플과 키워드 목록
      • 13.1 튜플
      • 13.2 키워드 목록
      • 13.3 연습 문제
    • Chapter 14 맵
      • 14.1 지도의 기초 지식
      • 14.2 지도를 이용하기
      • 14.3 지도에 대한 기본 조작
      • 14.4 지도의 데이터 구조
      • 14.5 연습 문제
    • Chapter 15 비트 문자열 이진 문자열, 문자 목록
      • 15.1 비트 문자열
      • 15.2 이진
      • 15.3 문자열(1)
      • 15.4 문자열(2)
      • 15.5 문자열 처리 함수
      • 15.6 이진 데이터 구조
      • 15.7 문자 목록
      • 15.8 연습 문제
  • Part 4
    • Chapter 16 패턴 매칭
      • 16.1 패턴 매칭이란
      • 16.2 목록에 대한 패턴 매칭
      • 16.3 튜플에 대한 패턴 매칭
      • 16.4 지도에 대한 패턴 매칭
      • 16.5 이진 문자열에 대한 패턴 매칭
      • 16.6 비트 문자열에 대한 패턴 매칭
      • 16.7 핀 연산자
      • 16.8 함수의 인수에 대한 패턴 매칭
      • 16.9 연습 문제
    • Chapter 17 Enum 모듈
      • 17.1 Enumerable
      • 17.2 EEnumerable를 같은 수의 원소의 목록으로 변환하는 함수
      • 17.3 Enumerable의 전부 또는 일부를 목록으로 변환하여 반환하는 함수
      • 17.4 Enumerable에 속하는 하나의 요소를 반환하는 함수
      • 17.5 부울을 반환하는 함수
      • 17.6 기타 함수
      • 17.7 연습 문제
    • Chapter 18 for 매크로
      • 18.1  for 매크로의 기본
      • 18.2 발생기 및 필터를 능숙
      • 18.3 : into 옵션
      • 18.4 비트 문자열 생성기
      • 18.5 연습 문제
    • Chapter 19 case 매크로 with 매크로
      • 19.1 case 매크로의 기본적인 사용법
      • 19.2 case 매크로의 사용 예
      • 19.3 with 매크로
      • 19.4 연습 문제
    • Chapter 20 여러 절을 가진 함수
      • 20.1 여러 절을 가지는 익명 함수를 만드는
      • 20.2 여러 절을 가진 명명 된 함수
      • 20.3 명명 된 함수 단원에 대한 가드
      • 20.4 연습 문제
    • Chapter 21 reduce 함수
      • 21.1 어큐뮬레이터
      • 21.2 reduce 함수의 사용 예
      • 21.3 연습 문제
    • Chapter 22 오류 처리
      • 22.1 예외
      • 22.2 슬로우
      • 22.3 연습 문제
  • Part 5
    • Chapter 23 ExUnit
      • 23.1 ExUnit 입문
      • 23.2 테스트 작성
      • 23.3 연습 문제
    • Chapter 24 Mix
      • 24.1 Mix 프로젝트
      • 24.2 첫 번째 구현
      • 24.3 확장
      • 24.4 연습 문제
    • Chapter 25 에이전트와 GenServer
      • 25.1 에이전트
      • 25.2 GenServer
      • 25.3 연습 문제
    • Chapter 26 틱택(1)
      • 26.1 개발 운동 만드는 응용 프로그램의 사양
      • 26.2 응용 프로그램의 골격 만들기
      • 26.3 게임의 상태를 관리하는 에이전트
      • 26.4 콘솔
      • 26.5 play 작업의 정의
    • Chapter 27 틱택(2)
      • 27.1 게임의 상태를 표시하는
      • 27.2 핸드 번호 관리
      • 27.3 격자 업데이트
      • 27.4 화면 재생
    • Chapter 28 틱택(3)
      • 28.1 결과 판정
      • 28.2 컴퓨터에 손을 선정한다
  • 부록 A 연습 문제의 해답
topics 목록