Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
Selamlar,

Laravel ile unit test nasıl yapılır ? Basit uygulamalar için kod örnekleri paylaşabilir misiniz ? Biraz yapısını da anlatırsanız çok sevinirim. Küçük projeler için gerek yok diyebilirsiniz ama öğrenmek istiyorum o yüzden sormak istedim.
Ben bir şeyler yazmaya başladım sizin için. Daha sonra baktım ki sizin istediğinizden ziyade yazdıklarım yazılım nasıl geliştirilir gibi bir şeylere dönüştü, içinden çıkamadım. O kadar çok yazılacak şey vardı ki, vazgeçtim.

Bana göre önce TDD (Test Driven Development) nedir, BDD (Behavior Driven Development) nedir konularını araştırmalısınız. Türkçe kaynak bu konularda mevcut. Bunları araştırmaya başladığınızda unit test nasıl yapılır, feature test nedir, browser test nedir, automated test nedir... gibi sorulara otomatik olarak cevap alıyorsunuz ve yüzlerce satır kod örneği okumuş oluyorsunuz. Bu sırada test araçlarını, nasıl kullanıldıklarını öğreniyorsunuz. Diğer programlama dillerinde bu işin nasıl yapıldığını öğreniyorsunuz. Yavaş yavaş vizyonunuz değişmeye başlıyor ve daha fazla öğrenme isteği uyanıyor.

Ben bir şeyleri öğreneceğim zaman bu şekilde öğreniyorum.

Öteki türlü kestirip atmamı isterseniz Laravel dokümanlarından birkaç kopyala/yapıştır yapıp "böyle" deyip bir sonraki konuya geçeceğim.
@mgsmus tavsiye ettigin konular icin tesekkur ederim hocam incelemeye basliyorum umarim ogrenebilirim.
Test yazmak nedir?
Cevap; Kodun davranışını her an izleyebilmektir.

Büyük projelerde test yazmak kaçınılmaz bir gerçektir.Çünkü kod büyüdükçe kontrol edilebilmesi zayıflar ve bunu insan yerine makineye bırakmak zorunda kalırsın.işte makine senin yerine yazdığın tüm olasılıkları her an tespit eder ve sana hata varsa söyler.Travis etc.. gibi hizmetler yazdığın kodu belirlediğin her zaman diliminde yada her 5 dakikada bir senin yerine çalıştırırlar ve sana mail atarlar.

Test yazmak hayat kurtarır.

public function testIndex()
 {
 $this->assertTrue(true,request()->isFromTrustedProxy());
 }

böyle bir test yazdıgınızda.
vendor/bin/phpunit
ile çalıştırırsınız.ve size request methodu ile proxynin güvenilir olup olmadığını söyler sana.eğer güvenilir değilse hata basar.cunku condition olarak true bekliyor testimiz.

Bunun gibi 100 lerce 1000 lerce test..her olasılık her durum yazılmalı.
Evet test yazmak zordur ama yapabileceğiniz bir şey yok.Kurumlar bu zamanı developera mutlak ölçüde azami olarak verebilmeli.

Aksi durumda,bir geliştirme yaptığınızda kodunuzun hangi kısımları etkilenir diye kara kara düşünürsünüz.
Bir geliştirme yaptım ama her zaman doğru çalışır mı diye düşünürsünüz.

UnitTestler yazılmalı en basitinden.Yazmak zorundasın.Yazdıgın endpointe istek attır ve doğru değerler dönüyor mu diye testine bunları belirtmek zorundasın.

$content = $this->get('/users');

$this->assertSame(200,$content->status);


users endpointine istek atsın ve statusu 200 beklesin.Yaz bunu birde getle postla parametreler gönderttir farazi.
200 harici gelirse demek ki bir yerde bir sıkıntı var diye hata atsın sana...

sende gir belirtilen satıra kodunu refactor et.
-------

Neyse sürer gider,test yazmaya alışın.Test yazınca sevdiklerinize daha çok zaman ayırırsınız.
@deathisonitsway web programlamada bazi seyler gercekten uzmanlik istiyor sanirim test yazmakta onlardan biri. Bakalim ogrenmeye calisiyorum yazilim derya deniz tesekkur ederim.

Ayrica hocam ve diger degerli ustatlar php ve laravel ile ilgili gercekten senior developer, uzman olmak icin tavsiyeniz nedir ? Bu sekilde test, queue gibi onemli seyleri ve standartlara uygun kod yazabilmek icin nereden egitim almaliyim ? Laracasti onerir misiniz ?

Ben makale ve blog yazilari okumaya calisiyorum yabanci dil de olsa ama genelde onlar tanitiyor ve fikir veriyor ben egitim almak ve ogrenmek istiyorum.

Udemy de turkce bi kac turkce kurs var ama inceledigim kadariyla temel duzeyde ogretiyorlar ? Tavsiye verirseniz cok sevinirim.

Laracast benim gibi baslangic ve orta duzey gelistiricileri bir ust duzeye yukseltir mi ?
uzman olmak kelimesi güldürdün beni.Öyle bir kelime yok @neri kardeşim.
Şu andan itibaren unut o kelimeyi.Kimse gelişen teknolojide ben uzman bir yazılımcıyım diyemez.
Lakaplarada karşıyım junior,senior neye göre kime göre.
İlla bir tanım istiyorsan senior - aradığını bulabilen ve sorunu daha çabuk çözebilen insandır.

Makale kısımlarına çok karısamam.Ben laraveli core'undan öğrendim sayılır.
Nasıl çalışıyor diye merak ettim icine girdim öyle öğrendim.Ha illa laravel de öğrenmek zorunda değilsiniz.Laravel php ile yazılmış bir framework.
Programlama dilinin konseptlerini öğrenin,object oriented tecrübenizi geliştirin.Yazılımış kodları inceleyin.Kendiniz harmanlama usulü bir şeyler yazın.


Birşeyi öğrenmek için en iyi yol onun dökümanlarını iyice okuyup uygulamaktır.
Yabancı dil bilmiyorum türkce kaynak olsa diye bir şey,baştan kaybettiğinizin belgesidir.
Olmaz yürümez.Ama şimdi artık öyle bir şey de kalmadı.Google translate baya geliştirdi kendini,eskiden çok kötü çeviriyordu.
Şimdi komple bir web sayfasını ingilizce bile gormeden direkt türkceye çevirip sana öyle gösteriyor.
Bahane olamaz yani.Araştırın öğrenin.Yaşınız nedir bilemem ama çok büyük devasa bir kaynak var önünüzde.Yapamayacağınız şey yok.

Patlayana kadar kod yazmak zorundasınız.
Başka türlü orta seviyenin üstüne çıkamazsınız.

İyi akşamlar.
@deathisonitsway dili bahane etmiyorum haklisin abi bazen teknik terimler zorlasa da tercume edilebilir. Peki laracasti onerir misin ? Sanirim cok meshur bi kurs.. Bize nasil katkilar saglar ? Biraz once inceledim tdd ile uygulama gelistiriyor. Sanirim udemy deki turkce kurslardan daha deneyimli ve derin bi kurs. Web programlama ile ilgili ufkumuzu gelistirmemize yardim eder mi ?
Udemyden hiç video satın almadım hiç,ihtiyaç duymadığımdandır.
O yüzden şu kişinin videolarına bak diyebileceğim bir bilgiye sahip değilim.
Bana göre en etkili çözüm okumaktır.Videonun öğreticiliğine tabiki bir şey demem.Ama sonuçta para vererek satın alabileceğiniz bir şeyse,ben orda ahkam kesemem.Araştırın en iyisi hangisiyse onu satın alın izleyin.Tabiki katkı sunacaktır size.
Bu zamana kadar hiç bir udemy kursundan verim alamadım. Ne öğrendiysem öğrendiğim şeyin kendi dökümantasyonundan öğrendim. Ama bu öğrenme şekliyle alakalı birşey. Kimisi de dökümandan bişe anlamaz.

Laraveli anlamak için https://laravel.com/api/5.8/ bu api dökümantasyonunu okuyun. Normal dökümantasyonda göremeyeceğiniz yüzlerce şey var.
Konsepti anlamanın yolu burası. Öteki türlü ne işe yarıyor bakıyorsun kopyalayıp kullanıyorsun. Ezbere gidiyorsun. Metod ezberliyorsun. Ama bu linkten bakarak neyin nereden geldiğini daha iyi görebilirsin.
@alihankoc tavsiyen icin tesekkur ederim hocam. Acikcasi api dokumanina bakinca anlayabilir miyim bilmiyorum kendimden o kadar emin degilim ama iyi bi yazilimci olmak bu yollardan geciyor sanirim.
Alihanın dediği kısmı şu an anlayamazsın.Seviyeni ilerlettikten sonra anlarsın o kısmı.
Laravelin tüm sınıf ve methodlarının ne iş yaptığını anlatan kısmı ancak php object oriented bilginizin geliştiği durumda anlayabilirsiniz.
Hocam neyse basit web uygulamalari yapiyoruz ki zaten ben de motivasyonumu kaybettim oturup dokumantasyon okuyabilecegimi sanmiyorum ihtiyacim degilse.

Zaman ayirip cevap veren herkese tesekkurler.
bir ay sonra
Bende sizin gibi kendimi daha üst düzeye taşımak istiyorum. Naçizane tavsiyem kod yazın. Profesyonel değilim fakat Laravel işleri alıyorum ve para aldığım için mecburen sistemi yazmak zorunda kalıyorum. Yazdığım her site de farklı yollar ve farklı konular öğreniyorum.
Kod yazdıkça sorunlar çıkıyor , sorunlar çıktıkça çözüm ü araştırıyorum ve araştırdıkça da yeni şeyler çıkıyor karşıma.
En güzel test örneklerini Laravel'in kendi testlerine bakarak görebilirsin.

https://github.com/laravel/framework . test klasöründe. Örneğin https://github.com/laravel/framework/blob/5.8/tests/Support/SupportStrTest.php sayfasında Str class testi var.

Laravel'in kendine özel test örnekleri için https://laravel.com/docs/5.8/testing sayfasında sol menüde testing başlıklarını inceleyebilirsin.

Test çeşitleri, ne nasıl test edilir hakkında bilgiler için JeffreyWay tarafından yazılan https://leanpub.com/laravel-testing-decoded öneririm.

Artık ciddi paket ve frameworklerin hepsinde test standart haline geldi. En iyi öğrenim şekli var olanları incelemek olabilir.
mahmutbayri yazdıEn güzel test örneklerini Laravel'in kendi testlerine bakarak görebilirsin.

https://github.com/laravel/framework . test klasöründe. Örneğin https://github.com/laravel/framework/blob/5.8/tests/Support/SupportStrTest.php sayfasında Str class testi var.

Laravel'in kendine özel test örnekleri için https://laravel.com/docs/5.8/testing sayfasında sol menüde testing başlıklarını inceleyebilirsin.

Test çeşitleri, ne nasıl test edilir hakkında bilgiler için JeffreyWay tarafından yazılan https://leanpub.com/laravel-testing-decoded öneririm.

Artık ciddi paket ve frameworklerin hepsinde test standart haline geldi. En iyi öğrenim şekli var olanları incelemek olabilir.
Tesekkurler hocam video serisine devam edecek misiniz ?
neri yazdı
mahmutbayri yazdıEn güzel test örneklerini Laravel'in kendi testlerine bakarak görebilirsin.

https://github.com/laravel/framework . test klasöründe. Örneğin https://github.com/laravel/framework/blob/5.8/tests/Support/SupportStrTest.php sayfasında Str class testi var.

Laravel'in kendine özel test örnekleri için https://laravel.com/docs/5.8/testing sayfasında sol menüde testing başlıklarını inceleyebilirsin.

Test çeşitleri, ne nasıl test edilir hakkında bilgiler için JeffreyWay tarafından yazılan https://leanpub.com/laravel-testing-decoded öneririm.

Artık ciddi paket ve frameworklerin hepsinde test standart haline geldi. En iyi öğrenim şekli var olanları incelemek olabilir.
Tesekkurler hocam video serisine devam edecek misiniz ?
Elbette. Temel bir kaç konuyu hallettikten sonrakiler çok eğlenceli olacak. Seriyi tamamladıktan sonra (28 konuluk bir seri) gelen isteklere göre serbest konular olarak. Görüşlerinizi video altlarında belirtebilirseniz benim için serbest konuları onlardan seçebilirim.

Teşekkürler.
@mahmutbayri ben abone oldum kanaliniza detayli anlatmaniz cok guzel olmus emeginize saglik.