>  기사  >  웹 프론트엔드  >  나의 GSoC 경험 : PEcAn 프로젝트

나의 GSoC 경험 : PEcAn 프로젝트

WBOY
WBOY원래의
2024-08-22 18:52:33527검색

My GSoC Experience : PEcAn Project

PEcAN 소개:

PEcAn(예측 생태계 분석기)은 공개적으로 사용 가능한 엄청난 양의 환경 데이터를 관리하는 과학적인 워크플로우 시스템이며, 최첨단 생태계 모델 내에서 이 정보를 종합하는 베이지안 데이터 동화 시스템입니다.

프로젝트 요약

주관: 페칸 프로젝트

멘토: Christopher Black(#infotroph), Shashank Singh(#moki1202)

기고자: Abhinav Pandey(#Sweetdevil144)

프로젝트 기간 : 350시간

프로젝트 제목: 단독 사용을 위한 PEcAn 최적화
패키지

제 접근 방식을 주의 깊게 듣고 더 나은 방법으로 개선해 주신 Chris님, 정말 감사합니다!!

다른 멘토들에게도 특별히 감사드립니다: David LeBauer, Shashank Singh 및 Michael Dietze

프로젝트 정보 :

이 프로젝트의 목적은 독립 실행형 사용을 위해 모듈을 최적화하여 PEcAn 프로젝트를 개선하는 것이었습니다. PEcAn의 강력한 프레임워크와 상호 연결된 모듈에도 불구하고 이러한 모듈을 독립적으로 작동할 수 있도록 해야 할 필요성이 점점 더 커지고 있었습니다. 이러한 변화는 모듈 사용, 테스트 및 개발을 단순화하여 사용자와 기여자가 시스템에 더 쉽게 접근하고 효율적으로 사용할 수 있도록 하는 데 필수적이었습니다. 독립 실행형 사용을 위해 모듈을 최적화하고 PEcAn의 상호 연결된 프레임워크 내에서 개별 작동성을 향상시키는 데 중점을 두었습니다. 우리의 최우선 과제는 PEcAn 패키지의 디자인과 인터페이스를 재검토하여 "이러한 커플링을 다시 풀어주는 것"이었습니다.

개요

올여름 PEcAn 프로젝트Google Summer of Code, 2024에 참가하는 영광을 누렸습니다. 올해 프로그램에 선발된 많은 재능 있는 후보자들 중에서 저는 전 세계적으로 상당한 영향을 미치는 실제 오픈소스 소프트웨어에 기여하도록 선발된 이들 중 한 명이었습니다. 프로그램이 마무리되면서 지난 3개월간 PEcAn을 통해 배운 점을 되돌아보고 싶습니다.

PEcAn 프로젝트와 함께한 나의 여정은 공식 GSoC 기간 훨씬 전에 시작되었으며, GSoC 일정보다 5개월 빠른 2023년 12월에 나의 첫 번째 PR이 병합되었습니다. 이러한 초기 참여는 PEcAn의 복잡한 아키텍처와 복잡한 코드베이스 설계를 탐색하는 귀중한 경험을 제공했습니다. 또한 특히 R 프로그래밍 언어와 관련된 조직의 작업에 익숙해질 수 있었습니다. 저는 초기부터 프로젝트에 더 깊이 참여하고 의미 있는 기여를 하고 싶었습니다.

GSoC가 저에게 가르쳐 준 가장 귀중한 교훈은 다음과 같습니다. 우리는 행동을 통해 배우고, 앞길이 불확실해 보일 때에도 앞으로 나아갈 길을 닦습니다. 이번 GSoC 여정에서 경험한 바에 따르면 처음에 달성하려고 계획한 것은 최종적으로 달성한 것의 일부에 불과했습니다.

15+개의 끌어오기 요청, 6+개의 문제 해결, 멘토와의 회의에 셀 수 없이 많은 시간을 투자하면서 저는 PEcAn의 목표에 점차적으로 부합한다는 것을 알게 되었습니다. 프로젝트.


PEcAn에 대한 나의 기여

(제가 논의할 모든 작업은 이 페이지 하단에 링크되어 있습니다.)

GSoC 기간은 세 가지 주요 단계로 구성되었습니다.

  1. 1단계: 커뮤니티 결속 기간 : 이 단계에서 저는 프로젝트에 익숙해지고 멘토들과 강한 유대 관계를 구축했습니다. 이번에는 프로젝트의 목표와 복잡성에 대한 확실한 이해를 얻을 수 있었습니다. 저는 PEcAn의 주요 측면을 파악하면서 코드베이스를 약간 변경하는 것부터 시작했습니다. 저는 나중에 프로젝트 과제를 해결하는 데 중요한 데이터를 수집하는 데 집중했습니다.

  2. 2단계: PEcAn 패키지 분리 : 이 단계의 주요 작업은 PEcAn 패키지 분리를 시작하는 것이었고, 시작점은 data.land 패키지였습니다. 여기에는 프로젝트 내에서 모듈성과 유연성의 개선이 필요한 패키지를 주의 깊게 검토하는 작업이 포함되었습니다. 이 단계에서는 종속성의 미세한 인스턴스를 파악하고 대신 DB 호출로 다시 리디렉션하여 data.atmosphere 패키지에서 data.land의 종속성을 제거했으며 그 결과 전체 종속성이 감소했습니다. 이 외에도 met2Cf.csv.R에 대한 테스트 모음 추가db.site.lat.lon 기능을 제거하고 모든 사용 위치를 query.site로 교체 . 또한 여러 DB 호출을 결합하여 시스템에서 발생하는 데이터베이스 호출을 줄이고 DB의 대기 시간을 더욱 줄이는 데 도움이 되었습니다. 또한 코드베이스에서 더 이상 활용되지 않는 고아 함수를 찾아내고 그러한 인스턴스를 정리하기 위해 사용자 정의 Python 스크립트를 만들었습니다.

  3. 3단계: 변환 입력 기능 향상: 이 단계는 PEcAn의 변환 입력 기능의 복잡성으로 인해 가장 어려운 단계임이 입증되었습니다. 저는 우리가 직면했던 다양한 문제를 해결하기 위한 좋은 접근 방식을 찾는 데 상당한 시간을 투자했습니다. 하지만 이 단계는 코드베이스에 대한 훨씬 더 깊은 이해 덕분에 가장 생산적이기도 했습니다.

이 단계에서 저는 유연성을 높이기 위해 #3324로 site.info를 선택적으로 검색하는 새로운 기능을 제안했습니다. 또한 현재는 단종된 BrownDog 패키지를 리팩터링하고 제거하여 #3348을 통해 깨끗하고 현대적인 코드베이스를 보장했습니다. 멘토들과 이러한 변경 사항에 대해 적극적으로 논의하면서 BrownDog의 모든 인스턴스를 성공적으로 제거했습니다.

convert_input 함수의 모듈성을 더욱 향상시키기 위해 #3338에서 이를 더 작은 도우미 함수로 나누기로 결정했습니다. 이러한 재구성을 통해 코드베이스 탐색 및 이해가 단순화되어 향후 개발자가 더 쉽게 작업할 수 있습니다.

GSoC 기간 동안 저는 멘토들과 정기적인 회의(매주 수요일)를 갖고 주간 진행 상황과 향후 계획, 프로젝트 진행 전략에 대해 논의했습니다. 멘토님들의 정기적인 도움은 제가 프로젝트에 집중하는 데 큰 도움이 되었습니다.

다른 사람들과 함께 성장하고, 배우고, 협력할 수 있는 놀라운 기회를 주신 PEcAn 팀 전체에 깊은 감사를 드립니다. GSoC를 진정으로 독특하게 만드는 것은 여행 자체의 즐거움입니다. 저는 새로운 프로그래밍 언어에 능숙해졌을 뿐만 아니라 매주 회의와 멘토와의 상호 작용을 통해 익숙한 영역에서 벗어나 한 인간으로서도 성장했습니다. 이 경험은 기술적으로나 개인적으로 큰 변화를 가져왔습니다.

앞으로 저는 PEcAN과 장기적으로 계속 협력하여 제가 할 수 있는 모든 역량을 다해 PEcAN의 역량을 향상시킬 계획입니다!! 지금은 이게 끝이에요!! ??

PEcAn 프로젝트 내 홍보 목록 ?

ID 제목 상태 3359 DEV-INTRO.md 업데이트
IDs Title State
3359 Update DEV-INTRO.md MERGED
3312 Combine multiple PEcAn.db calls in a single query MERGED
3308 Remove db.site.lat.lon function and replace all usages with query.site MERGED
3301 Add test suites for met2Cf.csv.R MERGED
3300 Remove dependency on data.atmosphere from data.land MERGED
3291 Add Script to Identify Orphaned Functions in Codebase MERGED
3290 Remove unused inst/met2CF.R MERGED
3283 Update API endpoint URLs MERGED
3281 Fix file extension search in met2model.SIPNET function MERGED
3276 Update Documentation for cos_solar_zenith_angle Function MERGED
3246 Fix Typo Errors and Errors in Markdown documentations MERGED
3243 Update book.yml MERGED
3348 Remove Browndog OPEN
3338 Refactor convert_input to Perform tasks via helper function OPEN
3324 Add function to Optionally get site.info if not present OPEN
3319 Refactor met.process and dbfiles OPEN
통합 3312 단일 쿼리에서 여러 PEcAn.db 호출 결합 통합 3308 db.site.lat.lon 기능을 제거하고 모든 사용법을 query.site로 대체 병합 3301 met2Cf.csv.R에 대한 테스트 모음 추가 통합 3300 data.land에서 data.atmosphere에 대한 종속성을 제거 통합 3291 코드베이스에서 고아 함수를 식별하는 스크립트 추가 통합 3290 사용하지 않는 inst/met2CF.R 제거 통합 3283 API 엔드포인트 URL 업데이트 통합 3281 met2model.SIPNET 함수의 파일 확장자 검색 수정 통합 3276 cos_solar_zenith_angle 함수에 대한 문서 업데이트 통합 3246 마크다운 문서의 오타 및 오류 수정 통합 3243 book.yml 업데이트 통합 3348 브라운독 제거 열기 3338 도우미 함수를 통해 작업을 수행하기 위해 Convert_input을 리팩터링 열기 3324 site.info가 없으면 선택적으로 가져오는 기능 추가 열기 3319 met.process 및 dbfiles 리팩터링 열기

위 내용은 나의 GSoC 경험 : PEcAn 프로젝트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.