Açık Kaynak Projeleri Geliştirirken Öğrendiğim 6 Ders

Bir Veri Bilimcisinin Bakış Açısı

Açık kaynak çok muhteşem bir kavram! Tüm bir topluluğun kaynaklarını, becerilerini ve bilgilerini bir araya getirerek, tek başına yapamayacağımız araçlar oluşturulabilir. Bu işbirliklerinden ortaya çıkan araçlar gerçekten de parçaların toplamından daha fazlasıdır.

Sonuç olarak, biz veri bilimcileri, pek çok teknolojiyi yönlendiren ve aynı zamanda geliştirilmesine dahil olma fırsatına sahip olan, ücretsiz olarak kullanılabilen bu yazılımı kullanıyoruz.

Son birkaç yılda açık kaynakla ilgilenecek kadar şanslıydım ve çeşitli paketler geliştirme ve yönetme fırsatına sahip oldum!

Açık kaynak geliştirmek kodlamadan daha fazlasıdır

Bu süre zarfında aşılması gereken pek çok engel ve öğrenilecek dersler vardı. Zorlu bağımlılıklardan ve API tasarım seçimlerinden kullanıcı tabanıyla iletişime kadar.

İster yazar, ister bakımcı veya geliştirici olarak açık kaynak üzerinde çalışmak oldukça göz korkutucu olabilir! Açık kaynak geliştirmek isteyenlere yardımcı olacağını umduğum bu yazıyla bu alandaki bazı deneyimlerimi paylaşıyorum.

Açık kaynaklı yazılım oluşturduğunuzda genellikle paketi yalnızca kendiniz için yapmıyorsunuz. Her türden farklı geçmişe sahip kullanıcılar yazılımınızı kullanacak. Uygun dokümantasyon, bu kullanıcıların başlangıç ​​yapmasına yardımcı olmak için uzun bir yol kat eder.

Ancak dokümantasyonun paketinizin kullanılabilirliği üzerindeki etkisini hafife almayın! Karmaşık algoritmaları açıklamak, kapsamlı eğitimler vermek, kullanım örneklerini göstermek ve hatta etkileşimli örneklere izin vermek için kullanabilirsiniz.

Özellikle veri bilimi ile ilgili yazılımlar karmaşık algoritmalar içerdiğinde anlaşılması zor olabiliyor. Bu açıklamalara bir hikaye gibi yaklaşmak çoğu zaman onları daha sezgisel hale getirmemde bana yardımcı oldu.

İnanın bana, iyi dokümantasyon yazmak başlı başına bir beceridir.

Diğer bir fayda ise sağlam belgeler yazmanın sorunlara harcanan zamanı azaltmasıdır. Yanıtları belgelerinizde bulabilirlerse kullanıcıların soru sorması için daha az neden olur.

Nasıl olduğuna dair genel bir bakış KeyBERT çalışmalar belgelerde bulunur.

Ancak dokümantasyon oluşturmak, onu yazmaktan daha fazlasıdır. Algoritmanızı veya yazılımınızı görselleştirmek, onu sezgisel hale getirmede uzun bir yol kat eder. Ondan çok şey öğrenebilirsiniz jay alammar belgelerinizde algoritmik ilkeleri görselleştirmek istediğinizde. Onun görselleştirmeleri resmi olarak bile sona erdi Dizi belgeler!

Kullanıcı tabanınız, yani topluluk, yazılımınızın önemli bir bileşenidir. Açık kaynak geliştirdiğimizden onların da geliştirme sürecine dahil olmalarını istediğimizi rahatlıkla söyleyebiliriz.

Toplulukla etkileşim kurarak onları sorunları ve hataları paylaşmaya teşvik edersiniz, aynı zamanda daha fazla gelişme için istekler ve harika fikirler de sunarsınız! Bütün bunlar onlar için bir şeyler yaratmaya yardımcı oluyor.

Açık kaynak topluluğu gerçekten parçalarının toplamından daha fazlasıdır

BERTopic'teki birçok temel özellik, çevrimiçi konu modellemekullanıcıları tarafından yoğun talep görmesi nedeniyle hayata geçirilmiştir. Sonuç olarak topluluk oldukça aktif ve sorunların tespit edilmesinde ve yeni özelliklerin geliştirilmesinde çok yardımcı oldu.

Topluluk tarafından yapılan özellik isteklerinin uygulanması uzun bir yol kat ediyor! Tartışmadan bir alıntı okuyun.

Paketiniz ister milyonlarca kez ister birkaç kez kullanılacak olsun, bir paket oluşturmak açık kaynak, MLOps, birim testi, API tasarımı vb. hakkında daha fazla bilgi edinmek için mükemmel bir fırsattır. Açık kaynak geliştirirken bu beceriler hakkında daha fazla şey öğrendim. günlük işimde sahip olabileceğimden daha fazla.

Ayrıca topluluğun kendisiyle etkileşime girerek büyük bir öğrenme fırsatı da var. Hangi tasarımları beğenip beğenmediklerini size söyleyenler onlar. Bazen aynı sorunun birkaç ay boyunca birkaç kez ortaya çıktığını gördüm. Bu, tasarımın beklediğim kadar kullanıcı dostu olmaması nedeniyle yeniden düşünmem gerektiğini gösteriyor!

Üstelik açık kaynaklı projeler geliştirmek bana diğer geliştiricilerle işbirliği yapma fırsatı verdi.

İş dışında kendi açık kaynak projelerinizde çalışmanın dezavantajları da vardır. Bana göre en önemlisi paketi muhafaza etmek, soruları yanıtlamak ve tartışmalara katılmak oldukça fazla iş gerektirebilir.

İçsel olarak motive olmanız kesinlikle yardımcı olur ancak her şeyin bir arada tutulduğundan emin olmak yine de oldukça zaman alır.

Neyse ki, soruları yanıtlarken, kullanım örneklerini sergilerken vb. konularda topluluğunuzdan yardım alabilirsiniz.

Son birkaç yıldır, konu değişiklikleri kırmaya geldiğinde biraz daha rahat olmayı öğrendim. Özellikle bağımlılıklar söz konusu olduğunda bazen yapabileceğiniz o kadar çok şey vardır ki!

Paketinizin ne sıklıkta kullanıldığını bilmek, ne kadar popüler olduğunu anlamanıza çok yardımcı olur. Ancak birçoğu, bir paketi kalite ve popülerlikle eşitlemek için hala Github yıldızlarını kullanıyor.

Doğru metriği tanımladığınızdan emin olun. GitHub yıldızları, doğru pazarlama nedeniyle abartılabilir. Birçok yıldız popülerlik anlamına gelmez.

Veri bilimcileri olarak öncelikle tam olarak neyi ölçtüğümüzü anlamalıyız. GitHub yıldızları, kullanıcının bir pakete yıldız vermesinden başka bir şey değildir. Bu, yazılımı kullandıkları ya da yazılımın gerçekten çalıştığı anlamına bile gelmez!

KeyBERT için indirme sayısı. Github yıldızlarından çok daha iyi bir gösterge.

Teknik olarak depolarıma yıldız koymaları için bin kişiye ödeme yapabilirim. Bunun yerine, indirmeler ve çatallar gibi çeşitli istatistiklere ve aynı zamanda günlük olarak karşılaştığım sorunların sayısına odaklanıyorum.

Örneğin, paketlerinizin öne çıkması harika bir şey. Hacker Haberler ancak sürekli kullanılıp kullanılmadığını size söylemez.

Bir psikolog olarak paketlerimin tasarımına daha çok odaklanma eğilimindeyim. Buna dokümantasyon ve eğitimler gibi şeyler dahildir, ancak bu aynı zamanda nasıl kod yazdığıma da yansır.

Paketin kullanımının ve kurulumunun kolay olduğundan emin olmak, benimsemeyi çok daha basit hale getirir. Özellikle modülerlik ve şeffaflık gibi tasarım felsefelerine odaklandığınızda bazı paketlerin kullanımı çok eğlenceli hale gelir.

Konu modellemenin modüler tasarımı BERKonu.

Yeni özellikler geliştirirken bir psikoloğun bakış açısını almak, neye odaklanılacağını bilmeyi çok daha kolay hale getirdi. Kullanıcılar ne arıyor? Algoritmayı açıklayacak şekilde nasıl kod yazabilirim? Kullanıcılar aslında bu paketi neden kullanıyor? Kodumun en büyük dezavantajları nelerdir?

Ortalama kullanıcının benimsenmesini anlamak için zaman ayırmak

Yukarıdakilerin tümü genellikle temel ancak önemli bir kurala yol açar;
Süper Basit Tutun

Kişisel olarak, yeni bir paketin kurulumu ve kullanımı zor bulursam, onu iş akışımda benimseme olasılığım azalır.

Eğer siz de benim gibi yapay zeka, veri bilimi veya psikoloji konusunda tutkuluysanız lütfen beni eklemekten çekinmeyin. LinkedIn ya da beni takip et Twitter. Ayrıca içeriğimin bir kısmını web sitemde bulabilirsiniz. Kişisel web sitesi.

Kaynak belirtilmeyen tüm görseller yazar tarafından oluşturulmuştur

Açık Kaynaklı Projeler geliştirirken öğrendiğim 6 Ders Kaynaktan Yayınlandı https://towardsdatascience.com/6-lessons-i-learned-from-developing-open-source-projects-4617e26f247c?source=rss—-7f60cf5620c9—4 aracılığıyla https://towardsdatascience.com/feed

<!–

->

Zaman Damgası:

Den fazla Blockchain Danışmanları