GIT HOOK'LARI İLE KOD KALİTESİNİ KORUMAK

Slides:



Advertisements
Benzer bir sunumlar
SGB.NET’İN TEKNİK ALTYAPISI
Advertisements

SADETTİN DEMİR Bir FTP Arama Motoru için Uygun, Hızlı ve Verimli FTP Sunucusunun Bulunması SADETTİN DEMİR
Hüseyin Gömleksizoğlu
PHP VE MYSQL.
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
Mysql, PhpMyAdmin, PHP, Dinamik Web Sayfası, PHPNuke Kullanımı
Filezilla Client & Server
Sosyal Ağların Eğitimde Kullanımı
WEB SAYFASI NASIL HAZIRLANIR?
BBY 152 Bilginin Düzenlenmesi
VER İ ML İ DERS ÇALI Ş MA YOLLARI. Önce kendinize güvenin. Önce kendinize güvenin. Başarılı olacağım diyerek başlayın. Unutmayın ki kendine güven başarının.
İnternet Programcılığı
Temel Linux Sunucusu Kurulumu
Spam Protection with OpenBSD and PF (spamd)‏ Gökhan ALKAN
GAMZE KAYA JSON.
Çalışmayı Öğrenmeye , HOŞGELDİNİZ.
Araştırma ve Değerlendirme Formu
Çerez(Cookie) Kullanımı Oturum Yönetimi
Nesne Tabanlı Programlama
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Lınux Command arch:Makine mimarisi hakkinda bilgi verir. “uname -m” komutu ile ayni isleve sahiptir. cat [dosya]:Dosyalari ardarda siralayarak standart.
WEB SUNUCU KURULUMU.
.NET Teknolojileri .NET mimarisi VB.NET, C.NET, C#.NET
Send Response LogCompress NTLMBasic Determine Handler CGI Static File Authentication Anon Ya hepsi ya hiç! Sunucuya işlev eklemenin tek yolu: ISAPI… ASP.NET.
PHP İş Başında (Formlarla PHP)
KOBİ – ŞİRKET PORTALI BİTİRME PROJESİ EMRE UYUMAZ & ANIL GÜR.
1.Adım: Yukarıdaki araç çubuğundan kayıt ekle sekmesine basılır.
 Bilgisayarlar arasında bilgi alışverişini, dosya iletimini sağlamaktadır.  Bu protokol kullanılarak, internet üzerinde bulunan herhangi bir bilgisayarda.
Erman Yukselturk1 PHP NEDİR? Scripting / Progralama dilidir (C’ye benzer) C ++ ortamında geliştirilmiştir Bedava / Açık Kod Hızlı, açık, dengeli (stable),
Adnan TUTCAN Web 2.0 Nedir ? Toplulukları bir araya getiren, standart tasarım anlayışına yepyeni bir boyut kazandıran, daha dinamik özelliklere.
CensorNet Linux Internet Güvenlik Duvarı ve Kayıt Tutma Semineri
web dünyasında yeni bir yaklaşım: AJAX
YAZIM KURALLARI.
AMAÇ BELİRLEME.
Dokuz Eylül Üniversitesi Web Sitesi Projesi 2009.
7. BÖLÜM KAVRAM, BECERİ ve SOSYAL BECERİ ÖĞRETİMİ ÖZEL EĞİTİM GÜZEL GELECEK.
ADIM ADIM RANZA NASIL KURULUR ?
Dosya şifreleme Ftp/Telnet Özelliği Çoklu Pano Desteği Sadece Okuma Modu Otomatik Kod Tamamlama.
1 E-Ticaret ve Güvenli Ödeme Kısım I. E-Ticaret Kısım II. Güvenli Ödeme Umur YILMAZ Comtech Tic. Ltd
NOT: Bu slayt üzerindeki resmi değiştirmek için resmi seçin ve silin. Ardından, kendi resminizi eklemek için yer tutucudaki Resimler simgesini tıklatın.
Web Teknolojileri Hafta İçerik  Temel Kavramlar  PHP’ye Giriş  Web Sunucusu (XAMPP) Kurulumu  PHP Temel Komutları 2.
GYTE Programlama dilleri Can GÜLŞE PHP Parser Hypertext Preprocessor.
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
Web Önyüzü Nasıl Olmalı? : İskelet {css} : Görünüm JavaScript() : Etkileşim.
UNICASE... kapsamlı bir CASE* aracı * UNICASE.
Finans Dünyasında Linux ve Özgür Yazılımlar Volkan Uygun Linux Kullanıcıları Derneği.
Özgür / Açık Kaynak Kodlu Sistem İzleme Araçları Feyza Eryol – Altay Ş. Özaygen ODTÜ Bilgi İşlem D. Bşk. V. Linux ve Özgür Yazılım Şenliği Mayıs.
DÖRT İŞLEM PROBLEMLERİ
Uygun Teknoloji Özgür Yazılım'ın Ekonomik ve Sosyal Yönleri Hakan Uygun.
MUHASEBE YEDEKLEME.
C Programlama Dili Bilgisayar Mühendisliği.
PHP İş Başında (Formlarla PHP)
Web Tasarımı Giriş.
Neden Linux? Nerelerde Kullanılır?
DevOps’un GG’ye Kazandırdığı Çeviklik
BİYOELEKTRİK Yrd.Doç.Dr. Ziynet PAMUK BMM307-H01
Windows Server 2012 R2 FILE SERVER
WEB TASARIMI – HTML BİLGİSİ SAVAŞ TUNÇER
İNTERNET PROGRAMCILIĞI 2
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı
Tasarım: Ali Topal.
YAZILIM KOD ÜRETEÇLERİ
Eğitim Sunusunun Başlığı
ELA SERCAN 2 – G ANNELER GÜNÜ.
Milli Eğitim Bakanlığı Eğitek Haydar TUNA Teknik Öğretmen ve Yazar
1. Workshop Emre JILTA.
Emre AKADAL Şebnem ÖZDEMİR Dr. Zerrin AYVAZ REİS
FİLLER.
Sunum transkripti:

GIT HOOK'LARI İLE KOD KALİTESİNİ KORUMAK VE MUHAFIZ OSMAN YÜKSEL NİSAN'13 - Özgür YAZILIM VE LİNUX günlerİ

Neden? GIT HOOK'LARI AlternatİF YÖNTEMLER “YAZARIM LAN BEN BUNU!” MUHAFIZ NASIL KURULUR? RUNNER'LAR AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ SORULAR

NEDEN? Daha önce çalıştığımız çoğu yerde kod standartları belirlendi

NEDEN? Ama hiçbir yerde uygulanmadı Daha önce çalıştığımız çoğu yerde kod standartları belirlendi Ama hiçbir yerde uygulanmadı

NEDEN? Ama hiçbir yerde uygulanmadı Production ortamında syntax error Daha önce çalıştığımız çoğu yerde kod standartları belirlendi Ama hiçbir yerde uygulanmadı Production ortamında syntax error var_dump($badwords); console.log yüzünden “patlayan” ödeme sayfası Virgül yüzünden parse edilemeyen JSON

NEDEN? Ama hiçbir yerde uygulanmadı Production ortamında syntax error Daha önce çalıştığımız çoğu yerde kod standartları belirlendi Ama hiçbir yerde uygulanmadı Production ortamında syntax error var_dump($badwords); console.log yüzünden “patlayan” ödeme sayfası Virgül yüzünden parse edilemeyen JSON “Bunlar Sonsuzdöngü'de olmayacak”

NEDEN? Ama hiçbir yerde uygulanmadı Production ortamında syntax error Daha önce çalıştığımız çoğu yerde kod standartları belirlendi Ama hiçbir yerde uygulanmadı Production ortamında syntax error var_dump($badwords); console.log yüzünden “patlayan” ödeme sayfası Virgül yüzünden parse edilemeyen JSON “Bunlar Sonsuzdöngü'de olmayacak” Ama bunun için code review'da süre harcamamalı!

GİT HOOK'LARI pre-commit pre-receive post-update pre-apply-patch .... Git, çoğu işlemin öncesinde ve sonrasında “araya işlem sokmanıza” izin veriyor pre-commit pre-receive post-update pre-apply-patch ....

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk İlk başta her şey çok güzel gidiyordu :)

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk İlk başta her şey çok güzel gidiyordu :) Ama bazı sorunlar vardı

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk İlk başta her şey çok güzel gidiyordu :) Ama bazı sorunlar vardı Çalışmıyordu :(

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk İlk başta her şey çok güzel gidiyordu :) Ama bazı sorunlar vardı Çalışmıyordu :(

ALTERNATİF YÖNTEMLER ARAŞTIRDIK https://github.com/jish/pre-commit'i bulduk İlk başta her şey çok güzel gidiyordu :) Ama bazı sorunlar vardı Çalışmıyordu :( Ruby ile geliştirilmişti, biz çok Ruby bilmiyorduk Genelde Ruby ile geliştirilen projeler için “Runner”lar vardı Sunucu tarafında çalışmıyordu :(

“YAZARIM LAN BEN BUNU!” Bildiğimiz bir dil ile geliştirilmeliydi (PHP?) Sonsuzdöngü'de belirlediğimiz standartları desteklemeliydi Sunucu tarafında da çalışmalıydı Açık kaynak olmalıydı!!1

“YAZARIM LAN BEN BUNU!” Bildiğimiz bir dil ile geliştirilmeliydi (PHP?) Sonsuzdöngü'de belirlediğimiz standartları desteklemeliydi Sunucu tarafında da çalışmalıydı Açık kaynak olmalıydı!!1 Oturduk yazdık :/

“YAZARIM LAN BEN BUNU!” Bildiğimiz bir dil ile geliştirilmeliydi (PHP?) Sonsuzdöngü'de belirlediğimiz standartları desteklemeliydi Sunucu tarafında da çalışmalıydı Açık kaynak olmalıydı!!1 Oturduk yazdık :/

MUHAFIZ http://sonsuzdongu.github.com/muhafiz

NASIL KURULUR? $ git clone git://github.com/sonsuzdongu/muhafiz.git ~/muhafiz $ cp ~/muhafiz/git-hooks/* /your/project/.git/hooks Round Robin – sunucuları listeye koyar. Gelen isteği ilk sunucuya aktarır ve bu sunucuyu sırann en arkasına gönderir Asymetric Loading : Sunucuların yüküne ve gücüne göre gelen yükü farklı dağıtır.

NASIL KURULUR? $ git clone git://github.com/sonsuzdongu/muhafiz.git ~/muhafiz $ cp ~/muhafiz/git-hooks/* /your/project/.git/hooks $ git config muhafiz.bootstrap-file ~/muhafiz/src/bootstrap.php Round Robin – sunucuları listeye koyar. Gelen isteği ilk sunucuya aktarır ve bu sunucuyu sırann en arkasına gönderir Asymetric Loading : Sunucuların yüküne ve gücüne göre gelen yükü farklı dağıtır.

NASIL KURULUR? $ git clone git://github.com/sonsuzdongu/muhafiz.git ~/muhafiz $ cp ~/muhafiz/git-hooks/* /your/project/.git/hooks $ git config muhafiz.bootstrap-file ~/muhafiz/src/bootstrap.php $ git config muhafiz.active-runners 'phpcs, jshint, consolefoo' Round Robin – sunucuları listeye koyar. Gelen isteği ilk sunucuya aktarır ve bu sunucuyu sırann en arkasına gönderir Asymetric Loading : Sunucuların yüküne ve gücüne göre gelen yükü farklı dağıtır.

RUNNER'LAR Dosya adında veya içeriğinde işlem yapan PHP sınıfları

RUNNER'LAR

RUNNER'LAR Dosya adında veya içeriğinde işlem yapan PHP sınıfları bom: ByteOrderMark consolefoo: console.log(), console.debug() forbiddenfile: İzin verilmeyen dosyalar. foo.~ gibi jshint: JavaScript check lineend: Unix/Windows Satır sonu phpcsfixer: php-cs-fixer phpcs: PHP Code Sniffer php: Php Syntax Check vardump: var_dump(), print_r()

RUNNER'LAR Dosya adında veya içeriğinde işlem yapan PHP sınıfları bom: ByteOrderMark consolefoo: console.log(), console.debug() forbiddenfile: İzin verilmeyen dosyalar. foo.~ gibi jshint: JavaScript check lineend: Unix/Windows Satır sonu phpcsfixer: php-cs-fixer phpcs: PHP Code Sniffer php: Php Syntax Check vardump: var_dump(), print_r() Nasıl çalışıyor bir görelim?

AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Volkan Altan Yeni Runner'lar

AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Sercan Virlan Bugfix Volkan Altan Yeni Runner'lar

AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Sercan Virlan Bugfix Volkan Altan Yeni Runner'lar Adil Ilhan Yeni Runner'lar

AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Sercan Virlan Bugfix Volkan Altan Yeni Runner'lar Eser Özvataf SVN Desteği Adil Ilhan Yeni Runner'lar

Sorular ? Teşekkürler http://github.com/yuxel http://twitter.com/yuxel http://yuxel.net