사진: Kelly Sikkema, Unsplash
소프트웨어 프로젝트에는 코드 구축, 테스트, 배포를 비롯한 여러 단계가 포함됩니다.
예를 들어 Go 소스 코드를 컴파일하면 실행 파일이 생성되고 프런트엔드 프레임워크는 HTML, CSS 및 JavaScript 파일로 컴파일됩니다.
변경 사항을 병합하거나 새 버전을 출시하기 전에 테스트하는 것이 중요합니다. 배포 스크립트는 소프트웨어를 프로덕션 환경으로 배송하는 경우가 많습니다.
각 단계에는 다양한 도구, 일반적으로 다양한 플래그와 매개변수가 포함된 명령줄 유틸리티가 필요합니다.
자동화 도구는 이러한 프로세스를 단순화하여 일상적인 작업 흐름의 효율성을 높입니다.
Makefile은 소프트웨어 프로젝트 작업 흐름을 자동화하는 강력한 도구입니다. 처음에는 C 프로그램용으로 개발되었으나 이제는 웹사이트 생성, 데이터 처리 등 다양한 작업을 지원합니다.
Makefile에는 프로그램과 파일을 빌드하거나 유지 관리하는 make 유틸리티에 대한 지시문이 포함되어 있습니다. 작업과 해당 종속성을 정의하여 효율적이고 재현 가능한 빌드를 보장합니다.
독자가 Makefile의 개념을 잘 알고 있다고 가정하고 이 블로그 게시물에서는 Makefile에 대해 자세히 다루지 않겠습니다. 그렇지 않다면 인터넷을 통해 많은 정보를 얻을 수 있습니다(예를 들어 이 튜토리얼이나 위키피디아 페이지 등).
Makefile의 장점:
이것이 제가 생각하는 Makefile의 주요 장점입니다. 그러나 Makefile에는 제한 사항, 특히 구문이 있어 복잡한 작업에서는 번거로울 수 있습니다.
내 프로젝트 중 하나에서는 프런트엔드/백엔드 서비스 실행 및 데이터베이스 마이그레이션과 같은 작업에 Makefile을 사용했습니다. 다음은 마이그레이션 작업의 예입니다.
migrate-up: GOOSE_DRIVER=postgres GOOSE_DBSTRING="user=app host=localhost port=5432 dbname=my-app sslmode=disable user=app" \ goose -dir database/migrations up
기본적으로 .env 파일에서 환경 변수를 로드하고 싶었지만 ENV_FILE=.env.production을 사용한 재정의를 허용했습니다. Makefile 구문과 작동하지 않는 솔루션으로 어려움을 겪은 후 대안을 찾았습니다.
Taskfile은 작업 정의를 위해 YAML 구문을 사용하는 Go 기반 작업 실행기입니다. 코드 구축, 테스트, 배포 등 반복적인 작업을 자동화하여 프로젝트 워크플로를 단순화합니다.
Taskfile의 장점:
Taskfile을 사용하여 문제를 해결한 방법은 다음과 같습니다.
version: '3' dotenv: - '.env' tasks: migrate-up: cmds: - goose -dir database/migrations up migrate-up-prod: dotenv: - .env.production cmds: - echo executing DB migration on PRODUCTION .. - sleep 2 # allow time to cancel - goose -dir database/migrations up
Taskfile의 직관적인 API를 통해 기능적이고 읽기 쉬운 솔루션을 빠르게 구현할 수 있었습니다.
올바른 도구를 선택하면 생산성에 큰 영향을 미칠 수 있습니다. Makefile이 처음에는 그 목적을 달성했지만 Taskfile은 내 요구에 맞는 보다 우아한 솔루션을 제공했습니다. 전환하는 데 30분도 채 걸리지 않았고 빌드 프로세스가 상당히 단순화되었습니다.
사용하기 쉬운 빌드 도구를 찾고 있다면 Taskfile을 사용해 보세요.
위 내용은 Makefile에서 Taskfile로 전환한 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!