Açık Kaynak Kodlu Yazılım Geliştirme

Embed Size (px)

Citation preview

Ak Kaynak Kodlu Yazlm Gelitirme

Ak Kaynak Kodlu Yazlm Gelitirme

Bilgisayar Yksek MhendisiSerkan KABA

[email protected]@gentoo.org

Ak Kaynak Kodlu Yazlm Ne Deildir?

Bir gazetenin internet sitesinde yerald gibi bir yazlmn ad deildir.

Sadece koda eriim demek deildir.

Ak Kaynak Kodlu Yazlm Nedir?

Ak kaynak kodlu yazlmlar Ak Kaynak nsiyatifi (Open Source Initiative) tarafndan belirlenen kriterlere uymaldr.http://opensource.org/docs/osd

Projelere Nasl Katk Salayabilirim?

Kullanma/Test etme

Belgeleme

eviri

Sorun bildirme

Sorunlar giderme

Gelitirme

Nasl letiim Kurabilirim?

E-posta

E-posta listeleri

IRC

Blog

http://www.gentoo.org/main/en/lists.xmlhttp://groups.google.com/group/zemberek_dev

Kullanma/Test Etme

Program kullanrken karlatnz sorunlar gzard etmeyin. Unutmayn ki gzard ederseniz o hatadan kurtulma ansnz azalr.

Karlatnz sorunla ilgili arama yapn. Ayn ya da benzer sorunla sizden nce karlam biri olabilir.

n srmleri deneyin. Hatalar kararl srmden nce yakalayabilirsiniz.

Belirlenmi bir test sreci varsa katln.(Pardus: http://tinyurl.com/cm9hxm)

Belgeleme

Katk salamak iin yazlm gelitirme kod yazabilmeye de ihtiya yok.

Gndelik kullandnz programlarla ilgili kapsaml dkmanlar ya da basit nasl belgeleri hazrlayabilirsiniz.

Kullanm dkmanlar (Guide/Manual)

Nasl belgeleri (Howto)Bir kullanm senaryosu zerine olabilir.

Kurulum aamalarn anlatabilir.

Ak kaynak kodlu yazlmlar hali hazrda pek ok belge iermektedir. Bu belgeleri dilimize kazandrabilirsiniz.

eviri/Yerelletirme

ou program i18n (internationalization) destekli tasarlanr. Programn dier dillere evrilmesi ise yerelletirme (localization l10n) olarak adlandrlr.

Kullandnz herhangi bir program i18n destekliyor ve Trke evirisi yok ise bu da katkda bulunmak iin bir frsattr.

Ayrca daha byk projeler iin eviri takmlar da oluturulmutur.KDE Trkiye, GNOME Trkiye, Mozilla Trkiye, OpenOffice.org Trkiye

Launchpad Translations

https://translations.launchpad.net/

Sorun Nedir?

Sorundan kast "bug" kelimesi deildir. Bu sunumda kullanlan sorun kelimesi daha ok "issue" kelimesini karlamaktadr.

Sorun gerek anlamda derlenmeme, hatal alma, hi almama gibi bir problem olabilir.

Yeni bir zellik istei olabilir.

Belgelemelerle ilgili gncelleme, dzeltme olabilir.

Programn arayzndeki bir yazm hatas olabilir.

Sorun Bildirme - 1

Doru sorun bildirme sorunun giderilmesinde nemlidir. Bu tekrar tekrar bildirilen sorunlarn nne geer.

Sorun bir hata ise tekrar oluturulabilmesi iin mmkn olduunca bilgi verin. (Programn srm, iletim sistemi, masast ortam...)

Hatann kendisi ile ilgili bilgi verin.Hata mesaj, numaras

Varsa gnlk dosyalar

Hata detay (Gdb backtrace, Java stacktrace)

Google: "how to report a bug"http://sourceforge.net/tracker/index.php?func=detail&aid=1940695&group_id=87005&atid=581684

Sorun Bildirme - 2

Hata bildireceiniz yazlma zel hata bildirme srelerini inceleyin.Gentoo: Gentoo Bug Reporting Guide

Pidgin: Getting A Backtrace

Eer yeni bir zellik istiyorsanz genellikle o zellik ile ilgili gerekletirim beklenebilir. rnek olarak Gentoo'da yeni bir paket istiyorsanz sorun kaydna bir ebuild eklerseniz daha faydal olacaktr.

http://developer.pidgin.im/wiki/GetABacktracehttp://www.gentoo.org/doc/en/bugzilla-howto.xmlGoogle aramasnda dahas da var

Sorun Giderme

Hatay dzeltebileceinizi dnyorsanz deneyin. (Kaynaklar AIK)

Son srmn veya eriilebilir ise SCM srmn inceleyin. Hata hali hazrda giderilmi olabilir.

Son srme yama olarak gnderin. Son hali yerine yama gndermek gelitiriciye deiimleri gsterecek bylece bu srada olan dier deiimleri etkilemeyecektir.

Demo: Diff ?

Gelitirme Programlama Dilleri

Assembly

C/C++

Java

Python

Perl

Ruby

C#

Haskell, Lisp, TCL, Groovy, Clojure ....

statistikler

https://www.ohloh.net/languages/compare

Gelitirme - GUI Toolkit

AWT, Swing, SWT (Java)

GTK+, Qt, WxWidgets, Tk, FLTK, Fox...

Gelitirme Srm Ynetimi - 1

Srm ynetimiEkip olarak bir ortak proje stnde allmasna

Zaman iinde yaplan deiikliklerin kaydnn tutulmasna

Belli bir andaki haline dnlmesine

olanak salar.

Yaplan deiiklik nedir? (Diff)

Deiiklii yapan kimdir? (Committer)

Deiiklik ne zaman yaplmtr?

Gelitirme Srm Ynetimi - 2

Klasik srm ynetim sistemlerinde merkezi bir sunucu vardr. Ayn projenin deiik dallar yine ayn sunucuda tutulur.

evirim d almaz. Yaplan commitler sunucuya annda yansr.

CVS, Subversion

Gelitirme Srm Ynetimi - 3

Datk srm ynetim sistemlerinde merkezi bir sunucu olma zorunluluu yoktur. Projenin dallar farkl yerlerde (hatta yerel dosya sisteminde) barndrlabilir.

evirimd allarak birden ok commit atomic olarak sunucuya yanstlabilir.

Bazaar, Git, Mercurial, Darcs ...

Gelitirme Gelitirme Ortamlar (IDE) 1

Eclipse"Compete on the products but collaborate on the platform."

Netbeans

Kdevelop

Anjuta

Vim, Emacs

Meta-IDE

Gelitirme Gelitirme Ortamlar (IDE) - 2

Gnmzde gelitirme ortamlar pek ok programlama dilini birden destekleyebilmektedir.

Pek ok srm ynetimi ile entegrasyonlar mevcuttur.

Meta-IDE

Gelitirme - Kod Barndrma Siteleri

Sourceforge

Google Code

Launchpad

BerliOS

Java.net

Gna!

CIA.vc

Ohloh

Gelitirme Tantm

Freshmeat

GnomeFiles

http://www.gtk-apps.org/

http://www.kde-apps.org/

http://www.qt-apps.org/

http://www.java-apps.org/

http://www.opendesktop.org/

Google Summer of Code

Her yl yaz aylarnda dzenlenir.

rencilerin ak kaynakl projelere katk salamasn (kod yazarak) hedefler.

Projelerin belirledii alanlarda alabilir ya da kendi teklifinizi sunabilirsiniz.

Projeden size yol gsteren (mentor) ile alp tecrbe edinip yeni insanlar tanyabilirsiniz.

lkemizden Pardus GSOC organizasyonuna katlmaktadr.

Zemberek ile Demo

Dil Java

IDE Eclipse

Srm ynetimi Subversion

Eclipse SVN eklentisi Subeclipse

Kod barndrma Google Code

Dinlediiniz iin teekkrler

Bu sunu Creative Commons (by-nc-sa) ile lisanslanmtr.