https://www.buraksenyurt.com/Burak Selim Şenyurt - CodeKata2018-08-09T13:30:20+00:00Matematik Mühendisi Bir Bilgisayar Programcısının NotlarıBurak Selim SenyurtBlogEngine.Net Syndication Generatorhttps://www.buraksenyurt.com/opml.axdBurak Selim SenyurtMatematik Mühendisi Bir Bilgisayar Programcısının Notlarıtr-TRBurak Selim Şenyurt0.0000000.000000https://www.buraksenyurt.com/post/simple-stack-ile-tdd-pratigiSimple Stack ile Bir Başka TDD Pratiği2018-08-09T13:18:00+00:00bsenyurt<p>Merhaba Arkadaşlar,</p>
<p>Code Kata pratiklerine ara vermeden devam etmekte yarar var. Bu videomuzda da Test Driven Development odaklı bir pratiği icra etmeye çalışıyoruz. Çok basit ve ilkel bir Stack sınıfını yazmaya çalışacağız. Bildiğiniz üzere Stack veri yapısı Last In First Out(LIFO) ilkesine göre çalışan bir nesne modeli. Bu code kata senaryomuz için dört farklı test senaryomuz olacak. Stack'e son giren nesnenin çekilmesi, Stack'e birden fazla nesnenin atılıp eklenme sıralarına göre çekilmeleri, boş bir stack oluşturulması halinde null döndürülmesi ve sonr olarak null bir öğenin Stack'e eklenememesi. Bu kez dinlendirici Study Soundtrack listesi eşliğinde ilerliyoruz.</p>
<p><iframe src="https://www.youtube.com/embed/JvR1LNYb9rY?rel=0" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Tekrardan görüşünceye dek hepinize mutlu günler dilerim.</p>2018-08-09T13:18:00+00:00tddtest driven developmentcode kataunit testmstestc#.net corevisual studio codetestingbsenyurtCode Kata pratiklerine ara vermeden devam etmekte yarar var. Bu videomuzda da Test Driven Development odaklı bir pratiği icra etmeye çalışıyoruz. Çok basit ve ilkel bir Stack sınıfını yazmaya çalışacağız. Bildiğiniz üzere Stack veri yapısı Last In First Out(LIFO) ilkesine göre çalışan bir nesne modeli. Bu code kata senaryomuz için dört farklı test senaryomuz olacak. Stack'e son giren nesnenin çekilmesi, Stack'e birden fazla nesnenin atılıp eklenme sıralarına göre çekilmeleri, boş bir stack oluşturulması halinde null döndürülmesi ve sonr olarak null bir öğenin Stack'e eklenememesi. Bu kez dinlendirici Study Soundtrack listesi eşliğinde ilerliyoruz.https://www.buraksenyurt.com/pingback.axdhttps://www.buraksenyurt.com/post.aspx?id=335db1cb-0967-40c6-8a81-47e36f64b6540https://www.buraksenyurt.com/trackback.axd?id=335db1cb-0967-40c6-8a81-47e36f64b654https://www.buraksenyurt.com/post/simple-stack-ile-tdd-pratigi#commenthttps://www.buraksenyurt.com/syndication.axd?post=335db1cb-0967-40c6-8a81-47e36f64b654https://www.buraksenyurt.com/post/fizzbuzz-ile-basit-bir-tdd-pratigiFizzBuzz ile Basit Bir TDD Pratiği2018-08-09T07:52:00+00:00bsenyurt<p>Merhaba Arkadaşlar,</p>
<p><a href="https://medium.com/@burakselyum/devops-e%C4%9Fitiminden-akl%C4%B1mda-kalanlar-6853070d89d6" target="_blank">DevOps felsefesinin</a> içerdiği önemli pratiklerden birisi de test süreçleridir ve bu noktada TDD<strong><em>(Test Driven Development)</em></strong> büyük önem taşımaktadır. TDD, temel olarak Unit Tests, Integration Tests, User Acceptance Tests gibi pratikleri içerir ve en azından bunların DevOps süreçlerine dahil edilmesi beklenir. Ancak TDD ve DevOps söz konusu olunca daha bir çok test tekniği vardır. Smoke Testing, Penetration Testing, Stress Testing, A/B testing, Fuzz Testing ve Boundary Testing gibi.</p>
<p>Geliştiriciler olarak bizlerin TDD'ye yatkın olması bu açıdan önemlidir. Yazılım geliştirmeye yeni başlayanlar için TDD pratiklerini öğrenmenin güzel yollarından birisi de Code Kata'sı yapmaktır. Ben daha önceden verdiğim eğitimlerde de basit Code Kata'ları ile TDD pratiklerini anlatmaya çalışmıştım. Bu pratikler bize önemli bir test odaklı bakış açısı disiplini kazandırmak için idealdir. Geçtiğimiz günlerde şirkette yakaladığım yaklaşık 20 dakikalık bir boşluk olunca hemen FizzBuzz katasını bir hatırlayayım istedim. </p>
<p>Açtım Spotify'ı başladım Toto'dan Africa ile kodlamaya. OBS ile ekran kaydı da almayı ihmal ettim. FizzBuzz katası temel olarak aşağıdaki sayı dizilimini içeren kod parçasının geliştirmek için kullanılıyor.</p>
<p>1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,FizzBuzz,16,17,Fizz,19,Buzz,...</p>
<p>Algoritma oldukça basit. 3 ile tam bölünebilen sayılar için Fizz, 5 ile tam bölünebilen sayılar için Buzz, hem 3 hem 5 ile tam bölünebilen sayılar için FizzBuzz yazılması isteniyor. Dizideki diğer sayılar içinse sayının kendisi yazılmalı. Pek tabii bu pratiği TDD felsefesi ile geliştirmemiz bekleniyor. Önce hata aldıracak şekilde testlere başlayıp, sonrasında bunları çalışır hale getirip en sonunda kodu refactor etmeyi öğreniyoruz. Temel olarak Red Green Blue ilkelerini kullanmaya çalışıyoruz. Hatta Fake değer ve çok basit anlamda Triangulation'e yer veriyoruz. </p>
<p><iframe src="https://www.youtube.com/embed/eyeSAFc4N3I?rel=0" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Bu katayı siz de yapmaya çalışın. Daha önceden yapmadığınız bir kata ise adım adım bakarak ilerlemeli sonrasında ise bakmadan yapmaya çalışmalısınız. Umarım yazılım tarafında TDD ile ilk kez tanışan ve Code Kata'sı yapmak isteyen arkadaşlarımız için yararlı olur. Tekrardan görüşünceye dek hepinize mutlu günler dilerim.</p>2018-08-09T07:52:00+00:00tddtest driven developmentunit testmstestdotnetdotnet core.net corec#code katatriangulationtestingbsenyurtDevOps felsefesinin içerdiği önemli pratiklerden birisi de test süreçleridir ve bu noktada TDD(Test Driven Development) büyük önem taşımaktadır. TDD, temel olarak Unit Tests, Integration Tests, User Acceptance Tests gibi pratikleri içerir ve en azından bunların DevOps süreçlerine dahil edilmesi beklenir. Ancak TDD ve DevOps söz konusu olunca daha bir çok test tekniği vardır. Smoke Testing, Penetration Testing, Stress Testing, A/B testing, Fuzz Testing ve Boundary Testing gibi.https://www.buraksenyurt.com/pingback.axdhttps://www.buraksenyurt.com/post.aspx?id=1e3e9fb7-793c-4026-b829-fdec03c9880e1https://www.buraksenyurt.com/trackback.axd?id=1e3e9fb7-793c-4026-b829-fdec03c9880ehttps://www.buraksenyurt.com/post/fizzbuzz-ile-basit-bir-tdd-pratigi#commenthttps://www.buraksenyurt.com/syndication.axd?post=1e3e9fb7-793c-4026-b829-fdec03c9880e