«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Мой опыт GSoC: Проект PEcAn

Мой опыт GSoC: Проект PEcAn

Опубликовано 31 августа 2024 г.
Просматривать:201

My GSoC Experience : PEcAn Project

О ПЕКАН:

Прогнозирующий анализатор экосистем (PEcAn) — это научная система рабочих процессов для управления огромными объемами общедоступных данных об окружающей среде и байесовская система ассимиляции данных для синтеза этой информации в рамках современных моделей экосистем.

Резюме проекта

Организация: PecAn Project

Наставники: Кристофер Блэк (#infotrop), Шашанк Сингх (#moki1202)

Соавтор: Абхинав Пандей (#Sweetdevil144)

Продолжительность проекта: 350 часов

Название проекта: Оптимизация PEcAn для автономного использования одиночных
пакеты

Большое спасибо, Крис, за то, что внимательно выслушал мои подходы и усовершенствовал их в лучшую сторону !!

Особая благодарность другим наставникам: Дэвиду ЛеБауэру, Шашанку Сингху и Майклу Дитце

О проекте:

Целью этого проекта было улучшение проекта PEcAn путем оптимизации его модулей для автономного использования. Несмотря на надежную структуру PEcAn и взаимосвязанные модули, росла потребность в том, чтобы эти модули работали независимо. Этот сдвиг был необходим для упрощения использования, тестирования и разработки модулей, делая систему более доступной и эффективной для пользователей и участников. Основное внимание уделялось оптимизации модулей для автономного использования, повышению их индивидуальной работоспособности в рамках взаимосвязанной структуры PEcAn. Нашим главным приоритетом было «снова ослабить эти связи», пересмотрев дизайн и интерфейс пакетов PEcAn.

Обзор

Этим летом мне выпала честь принять участие в Google Summer of Code, 2024 вместе с PEcAn Project. Среди многих талантливых кандидатов, отобранных для участия в программе этого года, я был одним из тех, кого выбрали для внесения вклада в создание реального программного обеспечения с открытым исходным кодом, которое имеет значительное глобальное влияние. Поскольку программа подходит к концу, я хотел бы поразмышлять над тем, чему я научился за последние три месяца с PEcAn.

Мое путешествие с Проектом PEcAn началось задолго до официального периода GSoC, а мой первый PR был объединен уже в декабре 2023 года, то есть на пять месяцев раньше срока GSoC. Это раннее участие дало мне ценный опыт работы со сложной архитектурой PEcAn и сложным дизайном кодовой базы. Это также позволило мне ознакомиться с работой организации, в частности, с языком программирования R. С тех первых дней мне хотелось глубже погрузиться в проект и внести значимый вклад.

Самый ценный урок, который преподал мне GSoC, заключается в следующем: Мы учимся на практике и прокладываем путь вперед, даже когда путь вперед кажется неопределенным. Мой опыт во время этого путешествия GSoC показал мне, что Изначально я планировал достичь лишь части того, чего я в конечном итоге достиг.

Благодаря 15 запросам на включение, 6 решенным проблемам и бесчисленным часам, проведенным на встречах с моими наставниками, я постепенно стал соответствовать целям PEcAn Project.


Мой вклад в PEcAn

(Все мои работы, которые я буду обсуждать, находятся по ссылкам внизу этой страницы.)

Период GSoC был разделен на три ключевых этапа:

  1. Этап 1: Период взаимодействия с сообществом : На этом этапе я ознакомился с проектом и установил прочные связи со своими наставниками. Это время позволило мне получить четкое представление о целях и тонкостях проекта. Я начал с внесения небольших изменений в кодовую базу, одновременно понимая ключевые аспекты PEcAn. Мои усилия были сосредоточены на сборе данных, которые впоследствии сыграли решающую роль в решении задач проекта.

  2. Фаза 2: Разделение пакетов PEcAn : Моей главной задачей на этом этапе было начать разделение пакетов PEcAn, при этом моей отправной точкой был пакет data.land. Это включало тщательное изучение пакетов, которые требовали улучшения модульности и гибкости в рамках проекта. На этом этапе я удалил зависимость data.land из пакета data.atmSphere, выяснив мельчайшие экземпляры зависимостей и вместо этого перенаправив их обратно на вызовы БД, что привело к уменьшению общего количества зависимостей. В дополнение к этому я также внес некоторые незначительные изменения в Добавление наборов тестов для met2Cf.csv.R и в Удаление функции db.site.lat.lon и замена всех использований на query.site . Я также объединил несколько вызовов БД, что еще больше помогло сократить количество вызовов базы данных в нашей системе и еще больше снизить задержку в БД. Я также создал собственный скрипт Python для выявления потерянных функций, которые больше не используются в базе кода, и выполнил очистку таких экземпляров.

  3. Этап 3: Улучшение функции Convert_input : Этот этап оказался самым сложным из всех из-за сложности функции Convert_input в PEcAn. Я посвятил значительное время поиску хорошего подхода к решению различных проблем, с которыми мы столкнулись. Однако этот этап также оказался наиболее продуктивным благодаря гораздо более глубокому пониманию кодовой базы, которое я получил к этому моменту.

На этом этапе я предложил новую функцию для дополнительного получения site.info по номеру #3324, что повышает гибкость. Кроме того, я помог провести рефакторинг и удалить пакет BrownDog, выпуск которого уже прекращен, обеспечив чистый и современный код через #3348. Я успешно удалил все экземпляры BrownDog, активно обсуждая эти изменения со своими наставниками.

Чтобы еще больше улучшить модульность функции Convert_input, я решил разбить ее на более мелкие вспомогательные функции в #3338. Эта реструктуризация упрощает навигацию и понимание кодовой базы, упрощая работу будущим разработчикам.

На протяжении периода GSoC я регулярно встречался (каждую среду) с моими наставниками, чтобы обсудить наш еженедельный прогресс, планы на будущее и стратегию продвижения проекта. Регулярная помощь моих наставников действительно помогла мне сосредоточить внимание на проекте.

Я глубоко благодарен всей команде PEcAn за то, что они предоставили мне эту невероятную возможность расти, учиться и сотрудничать с другими. Что действительно делает GSoC уникальным, так это радость самого путешествия. Я не только овладел новым языком программирования, но и вырос как личность, выйдя из зоны комфорта благодаря еженедельным встречам и общению с моими наставниками. Этот опыт изменил ситуацию как в техническом, так и в личном плане.

Двигаясь дальше, я планирую продолжать работать с PEcAN в долгосрочной перспективе и улучшать возможности PEcAN всеми возможными способами !! На этом пока закончим!! ??

Список моих рекламных предложений в проекте PEcAn?

Идентификаторы Заголовок Состояние
3359 Обновить DEV-INTRO.md ОБЪЕДИНЕНЫ
3312 Объедините несколько вызовов PEcAn.db в одном запросе ОБЪЕДИНЕНЫ
3308 Удалите функцию db.site.lat.lon и замените все ее использование на query.site ОБЪЕДИНЕНЫ
3301 Добавить наборы тестов для met2Cf.csv.R ОБЪЕДИНЕНЫ
3300 Удалить зависимость от data.atmосферы из data.land ОБЪЕДИНЕНЫ
3291 Добавить скрипт для идентификации потерянных функций в базе кода ОБЪЕДИНЕНЫ
3290 Удалить неиспользуемый inst/met2CF.R ОБЪЕДИНЕНЫ
3283 Обновить URL-адреса конечных точек API ОБЪЕДИНЕНЫ
3281 Исправлен поиск расширения файла в функции met2model.SIPNET ОБЪЕДИНЕНЫ
3276 Обновить документацию для функции cos_solar_zenith_angle ОБЪЕДИНЕНЫ
3246 Исправить опечатки и ошибки в документации Markdown ОБЪЕДИНЕНЫ
3243 Обновить book.yml ОБЪЕДИНЕНЫ
3348 Удалить Браундога ОТКРЫТЬ
3338 Рефакторинг Convert_input для выполнения задач с помощью вспомогательной функции ОТКРЫТЬ
3324 Добавьте функцию для дополнительного получения site.info, если она отсутствует ОТКРЫТЬ
3319 Рефакторинг met.process и dbfiles ОТКРЫТЬ
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devrx/my-gsoc-experience-pecan-project-bi0?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3