오픈 소스 프로젝트 개발을 통해 배운 6가지 교훈

데이터 과학자의 관점

오픈 소스는 정말 놀라운 개념입니다! 전체 커뮤니티의 소스, 기술 및 지식을 묶음으로써 우리가 단독으로 만들 수 없었던 도구를 만들 수 있습니다. 이러한 협업을 통해 나오는 도구는 실제로 각 부분의 합 그 이상입니다.

결과적으로 우리 데이터 과학자들은 개발에 참여할 기회를 가지면서 수많은 기술을 주도하는 이 무료 소프트웨어를 사용합니다.

지난 몇 년 동안 저는 운이 좋게도 오픈 소스에 참여하고 여러 패키지를 개발하고 운영할 수 있는 기회를 가졌습니다!

오픈소스 개발은 단순한 코딩 그 이상입니다.

그동안 극복해야 할 어려움도 많았고, 배워야 할 교훈도 많았습니다. 까다로운 종속성 및 API 디자인 선택부터 사용자 기반과의 커뮤니케이션까지.

작성자, 관리자 또는 개발자로서 오픈 소스 작업은 매우 어려울 수 있습니다! 이 기사를 통해 나는 이 분야에서의 내 경험 중 일부를 공유하여 오픈 소스를 개발하려는 사람들에게 도움이 되기를 바랍니다.

오픈 소스 소프트웨어를 만들 때 일반적으로 자신만을 위한 패키지를 만드는 것은 아닙니다. 다양한 배경을 가진 모든 유형의 사용자가 귀하의 소프트웨어를 사용하게 될 것입니다. 적절한 문서화는 사용자가 시작하는 데 큰 도움이 됩니다.

그러나 문서화가 패키지의 유용성에 미칠 수 있는 영향을 과소평가하지 마십시오! 이를 사용하여 복잡한 알고리즘을 설명하고, 광범위한 튜토리얼을 제공하고, 사용 사례를 보여주고, 대화형 예제도 허용할 수 있습니다.

특히 데이터 사이언스 관련 소프트웨어는 복잡한 알고리즘이 포함되면 이해하기 어려울 수 있습니다. 이러한 설명을 이야기처럼 접근하는 것은 종종 설명을 더 직관적으로 만드는 데 도움이 되었습니다.

저를 믿으십시오. 좋은 문서를 작성하는 것은 그 자체로 기술입니다.

또 다른 이점은 견고한 문서를 작성하면 문제에 소요되는 시간이 줄어든다는 것입니다. 문서에서 답을 찾을 수 있다면 사용자가 질문할 이유가 줄어듭니다.

방법 개요 키버트 작품은 문서에서 찾을 수 있습니다.

그러나 문서를 작성하는 것은 단순히 작성하는 것 이상입니다. 알고리즘이나 소프트웨어를 시각화하면 직관적으로 만드는 데 큰 도움이 됩니다. 당신은에게서 꽤 많은 것을 배울 수 있습니다. 제이 알람마 문서에서 알고리즘 원리를 시각화하려는 경우. 그의 시각화는 공식적으로도 끝났습니다. 누피 선적 서류 비치!

사용자 기반인 커뮤니티는 소프트웨어의 중요한 구성 요소입니다. 우리는 오픈 소스를 개발하고 있기 때문에 그들이 개발에 참여하기를 원한다고 해도 무방합니다.

커뮤니티에 참여함으로써 문제와 버그를 공유하도록 유도할 수 있을 뿐만 아니라 향후 개발을 위한 기능 요청과 훌륭한 아이디어도 제공할 수 있습니다! 이 모든 것은 그들을 위한 무언가를 만드는 데 도움이 됩니다.

오픈 소스 커뮤니티는 정말로 각 부분의 합 그 이상입니다

BERTopic의 많은 핵심 기능은 다음과 같습니다. 온라인 주제 모델링, 사용자들의 요청이 많아 구현되었습니다. 결과적으로 커뮤니티는 매우 활발하며 문제를 발견하고 새로운 기능을 개발하는 데 큰 도움이 되었습니다.

커뮤니티의 기능 요청을 구현하는 것은 큰 도움이 됩니다! 토론 발췌 여기에서 지금 확인해 보세요..

패키지를 수백만 번 사용하든 몇 번만 사용하든 패키지를 만드는 것은 오픈 소스, MLOps, 단위 테스트, API 디자인 등에 대해 자세히 알아볼 수 있는 좋은 기회입니다. 저는 오픈 소스 개발에서 이러한 기술에 대해 더 많이 배웠습니다. 일상 업무에서 받는 것보다요.

커뮤니티 자체와 상호 작용함으로써 엄청난 학습 기회도 있습니다. 그들은 어떤 디자인이 마음에 드는지 아닌지를 알려주는 사람들입니다. 때로는 몇 달 동안 동일한 문제가 여러 번 나타나는 것을 보았습니다. 이는 예상했던 것만큼 사용자 친화적이지 않았기 때문에 디자인을 다시 생각해야 함을 나타냅니다!

게다가 오픈 소스 프로젝트를 개발하면서 다른 개발자들과 협업할 수 있는 기회도 생겼습니다.

직장 밖에서 자신만의 오픈 소스 프로젝트를 진행하는 데에는 단점이 있습니다. 나에게 가장 중요한 것은 패키지를 유지 관리하고, 질문에 답하고, 토론에 참여하는 것이 꽤 많은 작업이 될 수 있다는 것입니다.

본질적으로 동기가 부여되어 있으면 확실히 도움이 되지만 모든 것이 함께 유지되는지 확인하는 데는 여전히 꽤 시간이 걸립니다.

다행스럽게도 질문에 답하고 사용 사례를 소개하는 등의 작업을 할 때 커뮤니티에서 도움을 받을 수 있습니다.

지난 몇 년 동안 저는 변화를 깨뜨릴 때 좀 더 여유를 갖는 법을 배웠습니다. 특히 의존성과 관련하여 할 수 있는 일이 너무 많은 경우가 있습니다!

패키지가 얼마나 자주 사용되는지 아는 것은 해당 패키지가 얼마나 인기가 있는지 이해하는 데 엄청난 도움이 됩니다. 그러나 많은 사람들은 여전히 ​​Github 스타를 사용하여 패키지를 품질과 인기와 동일시하고 있습니다.

올바른 측정항목을 정의하세요. GitHub 스타는 적절한 마케팅으로 인해 단순히 과장될 수 있습니다. 많은 스타가 인기를 의미하지는 않습니다.

데이터 과학자로서 우리는 먼저 우리가 정확히 측정하고 있는 것이 무엇인지 이해해야 합니다. GitHub 별은 사용자가 패키지에 별표를 부여하는 것에 지나지 않습니다. 그것은 그들이 소프트웨어를 사용했거나 실제로 작동하고 있다는 것을 의미하지도 않습니다!

KeyBERT의 다운로드 수입니다. Github 별보다 훨씬 더 나은 지표입니다.

기술적으로, 나는 내 저장소에 별표를 표시하기 위해 천 명에게 돈을 지불할 수 있습니다. 대신, 저는 다운로드 및 포크와 같은 다양한 통계뿐만 아니라 매일 접하는 문제의 수에도 중점을 둡니다.

예를 들어, 귀하의 패키지가 해커 뉴스 하지만 지속적으로 사용되는지는 알려주지 않습니다.

심리학자로서 나는 패키지 디자인에 많은 관심을 기울이는 경향이 있습니다. 여기에는 문서 및 튜토리얼과 같은 내용이 포함되지만 이는 심지어 내가 코딩하는 방식에도 적용됩니다.

패키지를 사용하고 설치하기 쉬운지 확인하면 채택이 훨씬 간단해집니다. 특히 모듈성 및 투명성과 같은 디자인 철학에 중점을 두는 경우 일부 패키지는 사용하기에 매우 좋습니다.

주제 모델링의 모듈식 설계 BER주제.

새로운 기능을 개발하는 동안 심리학자의 관점을 취하면 무엇에 집중해야 할지를 훨씬 쉽게 알 수 있습니다. 사용자는 무엇을 찾고 있나요? 알고리즘을 설명하는 방식으로 코딩하려면 어떻게 해야 합니까? 사용자가 실제로 이 패키지를 사용하는 이유는 무엇입니까? 내 코드의 주요 단점은 무엇입니까?

평균 사용자를 이해하는 데 시간을 투자하면 채택이 촉진됩니다.

위의 모든 사항은 종종 기본적이지만 중요한 규칙으로 이어집니다.
아주 단순하게 유지하세요

개인적으로 새 패키지를 설치하고 사용하기 어렵다면 내 작업 흐름에 이를 채택할 가능성이 줄어듭니다.

저처럼 AI, 데이터 과학, 심리학에 열정이 있다면 언제든지 저를 추가해 주세요. 링크드인 또는 나를 따라 트위터. 내 콘텐츠 중 일부는 내 페이지에서도 찾을 수 있습니다. 개인 웹 사이트.

출처 표시가 없는 모든 이미지는 작성자가 제작한 것입니다.

소스 https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-6e4617f26c?source=rss—-247f7cf60c5620—9에서 다시 게시된 오픈 소스 프로젝트 개발을 통해 배운 4가지 교훈 https://towardsdatascience.com/feed

<!–

–>

타임 스탬프 :

더보기 블록 체인 컨설턴트