27 Nisan 2017 Perşembe

Extreme Programing Nedir?


Extreme Programing  (XP): Kent  Beck  tarafından  bir  yazılım  geliştirme  disiplini olarak  XP  ortaya  çıkarılmıştır ve grup  içi  iletişime  çok  önem  veren  bir  yazılım  geliştirme  yöntemidir. XP ile proje  yaşam döngüsü (life cycle) çerçevesinde proje geliştirimi sağlanır. Proje  yaşam döngüsü bazı uygulamalara (practices) bağlıdır. Yazılım geliştirmede kolaylığı ve esnekliği sağlamak için; XP 12 farklı uygulamayı öngörür.

Extreme Programing Avantajları

Hata oranını azaltma
Yazılımın erken safhasında somut gelişmeler sağlaya bildiğinden, oluşan hataların farkına varabilir.Bu hataları da kendi içerisinde oluşturduğu küçük yaşam döngüleri ile telafi edebilir.
Projenin gelişme süresini kısaltır.
Artırımsal yaklaşım sayesinde hızlı bir şekilde genel planın oluşması sağlanır.Burada aynı bütün ekip tarafından proje süresi tahmini de yapılır.
Değişikliklere izin verir.
Esnek iş yürütme ve fonksiyonellik sayesinde, işletmenin değişen ihtiyaçlarına cevap verir
Yazılımsal olarak ortaya çıkabilecek tıkanıklıkları azaltır.
Müşteriler ile birlikte monitörlerden programcılar ve müşteriler ortak bir şekilde test yaparak ileride tıkanıklıkların ortadan kaldırılmasını sağlarlar.




Extreme Programing 4 Temel Noktası

İletişim
XP in ilk temel taşı iletişimdir. Projelere baktığımızda ortaya çıkan önemli problemlerin insanların birbirleriyle tam olarak anlaşamaması nedeniyle olduğunu görünür. Bazen programcılar sormaları gereken doğru soruyu soramazlar. Bazen de projenin yapısıyla ilgili önemli bir gelişmeyi söylemezler. Bu yüzden projelerde çeşitli tıkanma noktaları olabilir. Bazen de proje yöneticileri programcılara belirtmeleri gerekenleri tam olarak belirtemezler. Bu da projenin gelişme sürecilerini olumsuz etkiler. XP de iletişim yüz yüze olmalıdır. İletişim sürekliliği olmalıdır. Yazılım ekibi ile yazılımı kullanacaklar arasında sıkı bir iletişim bağı olması esastır. Bu sayede sorunlar erken fark edilir.


Basitlik
XP in ikinci temel taşı basitliktir. Aslında basitlik sağlanması zor olan bir konudur. Basitlik, zorunlu işlerin yapılmasıdır. Gerekli olmayan bir şey varsa, kesinlikle bu konu XP basitlik ilkesi içerisinde olmamalıdır. Dünyadaki en zor şey gelecekte ne gibi ihtiyaçlarla karşılaşacağımızı bilmemektir. Bu nedenden dolayı oluşturulacak yapı, gelecekte ne gibi isterlerin ortaya çıkacağını tam olarak bilmeden oluşur. Buna göre esnek zaman ve maliyeti göz önüne alınmış bir yapı oluşturmak gerekmektedir. XP en iyi şekilde bu basitliği sağlamak için, bu günün ihtiyaçlarını hedef alarak esnek ve basit bir sistem gerçekleştirmeye çalışır. 


Geri Besleme
Sistemlerin geri dönüşümü olması sistemler için paha biçilemez bir fırsat yaratır. Geri dönüşüm sayesinde optimizasyonun oluşmasına engel olan tehlikeler ortadan kaldırılır. Öncelikle programcılar bütün sistemin mantıksal yapısını içeren bölüm testleri oluşturur. Programcılar sistem hakkında somut bilgiler elde ederler. Müşteriler yeni bir “stories” hikâye ile geldikleri zaman, programcılar hemen bu yeni gelen hikâyenin gerçekleşmesi ile ilgili çalışma yapıp bu “stories” e uygun bir çalışma gerçekleştirirler.


Cesaret
XP in dört temel noktasından en zoru cesarettir. Projelerin üzerine yılmadan gidilmesi projelerin geliştirilmesi açısından son derece önemlidir. Cesaretin olmadığı projelerde korku gelişir ve gelişen bu korku projeyi başarısızlığa iter. Yazılım işlerindeki başarısızlık ise; yazılımın çöpe gitmesidir ve maalesef genel duruma da baktığımızda yazılımların büyük bir kısmının çöpe gittiğini görünyorur. Başarısızlık, genel tabiat içerisinde olan bir durumdur. Başarısızlıktan korkmak yerine başarısızlığı oluşturan nedenler üzerine gitmek yerinde olacaktır. Başarısızlıkla mümkün olunan en kısa sürede karşılaşmak, daha sonra telafi etme şansını arttırır.

Extreme Programing 12 Uygulama
Planlama Oyunu
Ekipte müşteri
Müşteri Testi
Basit Tasarım
Çiftli Programlama
Sürekli Tümleştirme
Kısa sürümler
Yeniden yapılandırma
Ortak sahiplenme
Metaphor
Kodlama standardı
Kırk saat haftada  



Extreme Programing  Çalışma Mantığı

 


 









Riskler ve Risk çözümleri

Extreme Programing Korkmadıkları
Kodlama
Değişen fikirler
Geleceği bilmeden yol alabilmek
Çalışan bir sistemin yapısının değişmesi
Testler yazılması



Extreme Programing Roller
Müşteri
Yazılım geliştirme sorumlusu
Test sorumlusu
Ölçüm sorumlusu
Koç
Danışman
Yönetici

Agile Sistemler

Agile sistemler klasik methodlara duyulan eleştiriler nedeniyle ortaya çıkmıştır.

Klasik Metotlara Olan Eleştiriler

Sürüm yani çalışan program çok geç ortaya çıkıyor.
Sürüm çok geç çıktığı için hatalar çok geç anlaşılıyor.
Verimli değil.
Esnek değil, yeni gelen isterler doğrultusunda kendi yapısını değiştiremediği için yeni isterleri karşılayamıyor.
Değişiklik geç ve zor yapılıyor.




Agile Metodolojiler

Extreme Programing
Scrum
Crystal Family
Rup

17 Nisan 2017 Pazartesi

Milli İmkanlarla Üretilen Bilişim Sistemleri

1-)Linux Tabanlı İşletim Sistemi Pardus



2-) Mini Bilgisayar Poyraz



3-) Virüs Programı Chomar



Web Sayfası: https://www.chomar.com.tr/en/page.aspx


4-) Mount & Blade 2




10 Nisan 2017 Pazartesi

GitHub Kodları & GitHub Kullanımı



Git bir versiyon kontrol programıdır. Git sayesinde proje içerisinde bulunan dosyaların gelişimi takip edilebileceği gibi aynı zamanda eski versiyonlara kolayca erişilip o versiyonlar üzerinden değişiklikler yapılabilir.

---- Git Kurulum----
Git Kurulumu oldukça basittir.Kullandığınız Windows yada Linux işletim sistemine göre https://git-scm.com/downloads sitesinden ücretsiz olarak bilgisayarınıza Git programını indirebilirsiniz.
Kurulum sırasında sadece "Use Git from Git Bash only" seçeneğinin seçili olduğunu kontrol edin.



----Git ilk Kullanım----
Git programı MS Dosta bulunan CMD ekranına benzeyen ve Git Bash adı verilen bir konsol ekranına sahiptir. Git Bash programını kullanmak için aşağıdaki temel komutları bilmemiz gerekmektedir.




----Gitte Kullanılan Temel Komutlar----
pwd  (Bulunan dizinin pathini listeler)
ls   (list kelimesinden üretilmiştir. Hangi dosyaların çalıştırılan klasörde olduğunu gösterir.)
ls -la  (klasördeki gizli dosyalarıda gösterir.)
cd Deneme  (Deneme isimli klasörün içerisine girilmesi için kullanılır.(örnek cd Deneme) Bu komutun doğru çalışması için bulunan dizinde Deneme diye bir klasörün bulunması gerekmektedir. (Ms Dos taki aynı komut cd .. diyerek üst klasöre geçilebilir.))
git --version (Kullanılan Git'in versiyonu öğrenilir.)
git init (Seçilen dosyada Git'in kullanılacağı söylenmiş olunur.)
git add . (Seçilen klasörün içerisindeki her şeyi Git kullanımına ekle)
git commit -m "ilk mesajı ekle" (ilk mesajı ekle yazısı git içerisine kim tarafından oluşturulmuşsa o kişi ile ilgili bir log olarak Git'e eklenir. Bu komut sayesinde zamanda bir kayıt oluşturmuş olunur bu sayede eğer projede geri dönmek istersek kolay bir şekilde o noktaya geri dönebiliriz.)
git diff (Dosyanın içerisindeki farklı kısmı gösterir. Listelerde çıkan kırmızı olan yazılar silinen yeşil olan yazılar ise mevcut yada yeni eklenen yazıları göstermektedir. Özetle git diff çalışan sürüm ile represorory arasındaki farktır.)
git diff --staged (represorory ile staged arasındaki farklı gösterir.)
git rm dosyaadi.uzantisi (örnek rm deneme.txt) (deneme.txt isimli dosyayı diskten siler.)
git mv home.txt first.txt (home.txt adını first.txt olarak değiştirir.)
git mv home.txt deneme/first.txt (home.txt dosyasını deneme isimli klasörün içerisine first.txt olarak kayıt eder.)
exit (Ekrandan çıkış.)
clear (Ekranı temizleme)
git log (Daha önceden kayıt edilen mesajları listeler)
git log --authour="Murat" (Murat adı ile yapılan mesajları listeler)
gir status (Mevcut durum hakkında bilgi verir.)
git checkout --Dosya.uzantısı (Çalışan dosyayı en son kayıtlı haline getirir. Yeni yapılanları siler.)
git commit -am "Veriler kurtarıldı" (Mesajı dierk olarak çalışan dosyaya ve repository ye mesaj kaydı olarak ekler.)
git reset HEAD dosya.txt  (Dosyayı eski çalışan haline resetleyererk geri getirir.)
Eski versiyonları geri getirmek
git log (Eski alınan kayıtlara bakmak için git komutu kullanılarak komutlar listelenir. Listelenen komutlardan git checkout komut mumarasının ilk 5-6 hanesi yazılarak (Örnek checkout e292939) o zamanki hali tekrardan yüklenmiş olur.
Dosyaları Github'a yüklemek
Github üzerinden açacağınız bir hesaba dosya eklemek için hesap açıldıktan sonra bir repository oluşturmanız gerekmektedir. Oluşturulan repositoryye dosya eklemek için
git remote add githubsf (githubsf sizin tarafınızdan oluşturulacak isim) https://github.com/sizin hesabınız/sizin repositoryniz.git
(Örnek $ git remote add githubsf https://github.com/Yazilimcilardunyasi/SF.git)
Oluşturulan repositoryye uzaktan bağlantı için
git remote sizin repositori adınız
(Örnek $ git remote githubs)
Dosyalar göndermek için
git push -u sizin reporisotory isminiz master
(Örnek $ git push -u githubsf master)
Enter dedikten sonra kullanıcı adınızı ve şifrenizi girmeniz için bir ekran çıkacaktır. Şifre bilgileri doğru olarak girildikten sonra dosyalarınız githubın sistemine yüklenmeye başlayacaktır.
Bu işlemin sonucunda StreetFigther isimli oyunun kodları github sitesine eklenmiş olacaktır.
Eklenen kodların bulunduğu repository https://github.com/Yazilimcilardunyasi/SF

--------Github-GUI-------
Github Bash haricinde Github GUI programı kullanılarakta Githuba dosya yüklenebilir.


----www.github.com Kullanımı----
İstenirse www.github.com sitesinde yüklenen repository üzerinde kopyalar oluşturulabilir. Proje ile ilgili web adresi varsa o adrese link verilebilir. Başka kullanıcıdan gelen değişiklikler yada güncellemeler sisteme eklenebilir.




Bir ekip halinde aynı proje üzerinde çalışılabilir. Görevler eklenip kişilere ataması yapılabilir.Başkalarının geliştirdiği github projelerine katkı yapılabilir yada önerilerde bulunulabilir.Projeyi geliştiren kişilerle karşılıklı mesajlaşılabilir.

-----Git Eğitimi-----

25 video videoların uzunluğu 5-10 dk (Eğitim dili İngilizce)



 23 video (Eğitim dili Türkçe)


---Git Türkiye İstatistikleri---

Programlama Dillerine Göre İl Bazlı Dağılım


Detaylı Bilgi https://alpcanaydin.github.io/github-stats-for-turkey/#/





3 Nisan 2017 Pazartesi

Youtube Kanallarının Gelirlerini Öğrenin

Youtube kanallarının ne kadar gelir elde ettiğini merak ediyorsanız; Socialblade sitesi bu sorunun cevabı tahmini  bir değer aralığı ile gösteren güzel bir site (sitenin adresi: https://socialblade.com). Sitenin kullanımı için tek yapmanız gereken, aranan Youtube kanalını sitenin sağ üst köşesinde bulunan kısma yazıp aratmak. Çıkan listeden aranan kanalın bulunduğu linke tıklandığında sitenin aylık ve yıllık kazancı ekranın alt kısmında (Estimated Earnings olarak) gösterilmektedir. Buradaki aralık değeri çok büyük olduğu için genellikle az olan tutarın dikkate alınması daha doğru bir bilgi verecektir. (2.4K nın anlamı 2400$). Sitede ayrıca aranan kanal hakkında detaylı bilgilere erişilebilmektedir. (izleme sayısı, kanılın sınıfı, derecesi, vb)