Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Muhafiz

1,456 views

Published on

Özgür Yazılım ve Linux Günleri 2013'deki sunum

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Muhafiz

  1. 1. GIT HOOKLARI İLE KOD KALİTESİNİ KORUMAK VE MUHAFIZ OSMAN YÜKSEL NİSAN13 - Özgür YAZILIM VE LİNUX günlerİ
  2. 2. Neden?GIT HOOKLARIAlternatİF YÖNTEMLER“YAZARIM LAN BEN BUNU!”MUHAFIZNASIL KURULUR?RUNNERLARAÇIK KAYNAK VE TOPLULUĞUN GÜCÜSORULAR
  3. 3. NEDEN? Daha önce çalıştığımız çoğu yerde kod standartları belirlendi
  4. 4. NEDEN? Daha önce çalıştığımız çoğu yerde kod standartları belirlendi Ama hiçbir yerde uygulanmadı
  5. 5. NEDEN? 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
  6. 6. NEDEN? 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”
  7. 7. NEDEN? 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 reviewda süre harcamamalı!
  8. 8. GİT HOOKLARIGit, çoğu işlemin öncesinde ve sonrasında“araya işlem sokmanıza” izin veriyor pre-commit pre-receive post-update pre-apply-patch ....
  9. 9. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti bulduk
  10. 10. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti buldukİlk başta her şey çok güzel gidiyordu :)
  11. 11. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti buldukİlk başta her şey çok güzel gidiyordu :)Ama bazı sorunlar vardı
  12. 12. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti buldukİlk başta her şey çok güzel gidiyordu :)Ama bazı sorunlar vardı Çalışmıyordu :(
  13. 13. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti buldukİlk başta her şey çok güzel gidiyordu :)Ama bazı sorunlar vardı Çalışmıyordu :(
  14. 14. ALTERNATİF YÖNTEMLER ARAŞTIRDIKhttps://github.com/jish/pre-commiti 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 :(
  15. 15. “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
  16. 16. “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ı!!1Oturduk yazdık :/
  17. 17. “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ı!!1Oturduk yazdık :/
  18. 18. MUHAFIZhttp://sonsuzdongu.github.com/muhafiz
  19. 19. NASIL KURULUR?$ git clone git://github.com/sonsuzdongu/muhafiz.git ~/muhafiz$ cp ~/muhafiz/git-hooks/* /your/project/.git/hooks
  20. 20. 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
  21. 21. 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
  22. 22. RUNNERLARDosya adında veya içeriğinde işlem yapan PHP sınıfları
  23. 23. RUNNERLAR
  24. 24. RUNNERLARDosya 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()
  25. 25. RUNNERLARDosya 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?
  26. 26. AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Volkan Altan Yeni Runnerlar
  27. 27. AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Volkan Altan Sercan Virlan Yeni Runnerlar Bugfix
  28. 28. AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Volkan Altan Sercan Virlan Yeni Runnerlar Bugfix Adil Ilhan Yeni Runnerlar
  29. 29. AÇIK KAYNAK VE TOPLULUĞUN GÜCÜ Volkan Altan Sercan Virlan Yeni Runnerlar Bugfix Adil Ilhan Eser Özvataf Yeni Runnerlar SVN Desteği
  30. 30. Sorular ? Teşekkürler http://github.com/yuxel http://twitter.com/yuxel http://yuxel.net

×