Selamlar Bu makaledeki örnek üzerinden bir sorum var:
Consuming the API kısmında
pp = PixelPeeper.new
şeklinde bir kullanım mevcut. Her ihtiyacımız olduğunda bir instance yaratmak yerine bir kez yaratıp nasıl inject edebiliriz doğru kullanımına bakabileceğim bir örnek bulamadım, yardımcı olabilir misiniz?
Senin örnekte belki instance methodları değil de class methodları olarak yazılsaydı new’lemek gerekmeyecekti. Direk çağırabilirdik diye düşündüm hızlıca.
GitLab/GitHub özelinde düşünürsek örneğin:
1- token ile initialize edilmesi
2- ihtiyacım olduğunda gerekli kullanıcı commitlerini etc. çekebilmem.
Fakat her seferinde Gitlab.new Github.new gibi instance oluşturunca bir şeyler doğru gelmiyor. Doğrusu bu ise bu şekilde kullanabilirim.
Sürekli new’lemek doğrusu değilse örneğin bu instance nerede oluşturulmalı: application controller? Birkaç örnekte ‘services’ klasörü oluşturanları da gördüm.
Ben dediğinin dışında farklı bir kullanım görmedim. Senin yerinde olsam nerede ihtiyacım varsa oraya koyardım Client’ı new’leme işini. Bunu service koymak daha iyi olacaktir. Çünkü kullandığın API’nin servis içine başarılı olduğu ya da fail ettiği durumlarda neler yapacağını belirtmek gerekecektir.
Gitlab gibi initializers da olur ama orası sadece uygulama ilk ayağa kalktığında bir kere çalışıyor. O yüzden kullanımına göre değişecek nasil implemente edeceğin. Public bir repoysa yaptığın şey bence yazdıktan sonra paylaşırsan daha iyi yorum yapabilir gibi geliyor bana.