Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitim içeriği olup, konuşmacı Proxyman adlı ağ izleme ve test aracının kullanımını adım adım göstermektedir. Konuşmacı, izleyicilerden gelen soruları da yanıtlamaktadır.
- Video, Proxyman'ın temel özelliklerinden başlayarak, ağ trafiğini nasıl izleyebileceğimizi, API isteklerini nasıl değiştirebileceğimizi ve çeşitli test tekniklerini göstermektedir. İçerikte breakpoint oluşturma, "Map Local" ve "Map Remote" özellikleri, scripting, SSL proxying sorunları ve bunların çözümleri gibi konular detaylı olarak anlatılmaktadır.
- Eğitim, hem iOS hem de macOS cihazlarında Proxyman'ın kullanımını kapsamakta ve özellikle bankacılık gibi uygulamalarda edge senaryoları test etmek, farklı ortamlarda (staging, production) test yapmak isteyen geliştiriciler için faydalı bilgiler sunmaktadır. Ayrıca, Proxyman'ın GraphQL API'lerini nasıl kullanabileceğinizi ve network conditions ile kötü ağ koşullarını simüle etmeyi de göstermektedir.
- 00:01Proxyman ile Ağ Kodunu Debug Etme
- Bu canlı yayında, kod tabanında tek bir değişiklik yapmadan ağ kodunu debug etme teknikleri anlatılacak.
- Proxyman adlı bir araç kullanılarak ağ kodu debug edilecek ve bu araç sponsor olarak bu canlı yayını destekliyor.
- Proxyman, birçok ücretsiz özelliği olan ve ağ kodunu proxing yöntemiyle debug etme yaklaşımı sunan bir araçtır.
- 02:19Proxyman'ın Çalışma Prensibi
- Proxyman, ağ trafiğini izlemek için bir araç gerektirir ve ağ trafiğini proxy olarak ele alarak hem istekleri hem de yanıtları izler.
- Proxyman, ağ trafiğini izleyerek tetikleme uyarıları oluşturabilir, yanıtları değiştirebilir ve ağ isteklerini yerel dosyalara yönlendirebilir.
- Bu yaklaşım, kod tabanında değişiklik yapmadan ağ trafiğini izlemeyi sağlar ve özellikle kaynak koduna erişim olmayan testçiler veya ürün yöneticileri için faydalıdır.
- 04:06Proxyman ile Ağ Trafik İzleme
- Proxyman başlatıldığında, ağ trafiğini kaydetmek için "Start Recording" seçeneği kullanılır.
- HTTPS trafiği şifrelenir ve Proxyman varsayılan olarak bu trafiği izleyemez, ancak özel bir sertifika ile bu engeli aşılabilir.
- Proxyman, ağ trafiğini izleyerek sadece domain bilgilerini gösterir, ancak HTTPS trafiği şifrelenir ve içeriği görüntülenemez.
- 06:03Xcode Projesi ile Proxyman Kullanımı
- Xcode'da basit bir komut satırı aracı oluşturuldu ve bu araç MovieDB.org API'sine tek bir ağ çağrısı yapıyor.
- Proxyman, ağ trafiğini izleyerek sadece belirli bir yürütücünün (Proxyman Test) yaptığı tek ağ çağrısını gösterir.
- HTTPS trafiği şifrelenir ve içeriği görüntülenemez, ancak özel bir sertifika ile bu engeli aşılabilir.
- 10:21Proxyman ile API Yanıtlarını İnceleme
- Proxyman'da sertifika etkinleştirildiğinde, ağ trafiği izlenebilir ve yanıt içeriği görüntülenebilir.
- İlk API çağrısı için HTTP yanıt kodu 200'dir, ancak ikinci çağrı için 304 (Not Modified) kodu görüntülenir.
- 304 kodu, API çağrısının önceden kaydedilmiş (hapsedilmiş) olduğunu gösterir.
- 11:58Proxyman'da Caching Sorunu ve Çözümü
- Proxyman'da aynı API çağrısını tekrar yapınca, sunucu verinin hala aynı olduğunu belirterek tekrar veri göndermiyor.
- Caching sorununu çözmek için iki yöntem vardır: kodu değiştirerek farklı bir API endpoint'i kullanmak veya Proxyman'da caching özelliğini devre dışı bırakmak.
- Proxyman'da caching özelliğini devre dışı bırakmak için menüden "No Caching" seçeneğini işaretlemek yeterlidir.
- 14:22Caching'in Çalışma Prensibi
- Proxyman, caching'i devre dışı bırakmak için HTTP header'larından "Cache-Control" header'ını kaldırır ve "Cache-Control: No-Cache" header'ını ekler.
- Caching, hem sunucu hem de kullanıcı için kaynak tasarrufu sağlar; sunucu veri çekme maliyetini azaltırken, kullanıcı da veri transferi miktarını düşürür.
- Caching, özellikle büyük veri planları olan kullanıcılar için önemli bir tasarruf sağlar ve bu nedenle birçok API ve sunucu tarafından kullanılır.
- 18:31Caching'in Zorlukları ve Avantajları
- Caching, bilgisayar biliminde zor bir konudur çünkü cache'leri devre dışı bırakmak gerekir.
- Caching, özellikle büyük sunucular için maliyet tasarrufu sağlar; örneğin AWS veya Google Cloud faturalarını düşürebilir.
- Caching, gerçek zamanlı API'ler veya rastgele veri döndüren sorgular gibi durumlarda mantıklı olmayabilir.
- 21:08Proxyman'ın Diğer Faydaları
- Proxyman, JSON verilerini daha okunabilir bir şekilde gösterir; syntax coloring ve indentation gibi özellikler sunar.
- Proxyman'da bir ağ isteğine sağ tıklayarak "Copy CURL" seçeneği ile, aynı isteği tekrar çalıştırmak için gerekli komut satırı komutunu kopyalayabilirsiniz.
- Bu özellik, özellikle bir arka plan ekibiyle çalışırken, aynı ağ çağrısını tekrar çalıştırmak için gerekli tüm bilgileri (headers, body, kullanıcı ajanı) paylaşmanızı sağlar.
- 24:33Proxyman'ın Komut Satırı Özellikleri
- Proxyman'ın komut satırı uygulaması, backend ekibinin aynı çağrıyı tekrar tekrar yapabilmesini sağlar.
- Bu özellik, büyük takımlarda çalışırken URL'nin yeterli olmadığı durumlarda veya header gibi ek bilgilerin önemli olduğu durumlarda çok faydalıdır.
- Proxyman'ın CURL özelliği, otomatik test için de kullanılabilir ve backend ekibi, client uygulamasının yaptığı gibi API'yi test edebilir.
- 26:29Proxyman Logları ve Kaydetme
- Proxyman'da yapılan istekler farklı şekillerde dışa aktarılabilir, örneğin Proximan log olarak kaydedilebilir.
- Kaydedilen log dosyası, Proximan'da tekrar açılarak aynı şekilde görüntülenebilir.
- Bu özellik, takım içinde çalışırken ve her iki taraf da Proximan kullanıyorsa, logları paylaşarak sorunları çözmeye yardımcı olur.
- 27:45iOS Uygulaması ile Proxyman Kullanımı
- İkinci bölümde, Proxyman'ın bir iOS uygulamasıyla nasıl kullanılacağı gösterilecektir.
- Xcode'da "Live iOS App Architecture" adlı proje kullanılarak, navigasyon ve iki ekran arasında geçiş yapabilen basit bir iOS uygulaması oluşturulmuştur.
- Uygulama, MovieDB API'sini kullanarak gelecek filmleri ve detaylı bilgileri göstermektedir.
- 30:16iOS Uygulamasında SSL Sorunları
- Proxyman ile iOS uygulamasını izlerken, HTTPS trafiği nedeniyle SSL proxying etkinleştirilmelidir.
- SSL proxying etkinleştirildiğinde, iOS sistemi "sistem güveni değerlendirmesi başarısız oldu" uyarısı verir ve güvenli bağlantı kurulamaz.
- iOS, potansiyel saldırıları önlemek için SSL proxying'i otomatik olarak engeller, bu da uygulamanın doğru verileri göstermesini sağlar.
- 33:15Sertifika Kurulumu ve Sorun Çözümü
- iOS'un SSL proxying'i engellemesi sorununu çözmek için, proxyman'da sertifika kurulumu yapılmalıdır.
- Sertifika önce Mac'te, sonra da iOS simülatöründe kurulmalıdır.
- Sertifika kurulduktan sonra, iOS uygulaması tekrar çalıştırıldığında trafik doğru şekilde çalışır ve proxyman üzerinden izlenebilir.
- 35:30Proxyman'ın Ek Özellikleri
- Proxyman'da uygulamaları kolayca bulmak için pinleme özelliği bulunmaktadır.
- Breakpoints özelliği, Xcode'daki gibi kodun belirli noktalarında durmasını sağlar.
- Breakpoint, programın yürütme akışının belirli bir noktaya ulaştığında tetiklenen bir kod parçasıdır.
- 36:49Proxyman'da Breakpoint Kullanımı
- Proxyman'da sembolik breakpoint özelliği, belirli bir istek tetiklendiğinde uygulamayı durdurarak debug yapmayı sağlar.
- Xcode'daki sembolik breakpoint'e benzer şekilde, Proxyman'da da belirli bir URL veya istek için breakpoint oluşturulabilir.
- Breakpoint, belirli bir URL veya istek için tetiklenebilir ve hem istek hem de yanıt için kullanılabilir.
- 39:52Breakpoint Testi
- Breakpoint sadece belirli bir URL için tetiklenir, bu nedenle farklı bir film açıldığında breakpoint tetiklenmez.
- Breakpoint tetiklendiğinde, istek ve yanıt görüntülenebilir ve içeriği incelenebilir.
- İstek ve yanıt üzerinde değişiklik yapılabilir, ancak bu değişiklikler uygulamada etkili olabilmesi için "execute" butonuna tıklanması gerekir.
- 45:30İstek ve Yanıt Değiştirme
- "Continue" butonu, isteği orijinal verilerle devam ettirir ve yapılan değişiklikleri görmezden gelir.
- "Execute" butonu, isteği ve yanıtını yeni verilerle gönderir ve bu değişiklikler uygulamada etkili olur.
- Breakpoint özelliği, özellikle bankacılık gibi uygulamalarda zor senaryoları test etmek için kullanışlıdır.
- 47:46İstek Değiştirme Örneği
- Breakpoint kullanılarak istekteki film ID'si değiştirilebilir.
- Değiştirilen istek, gerçek arka plana gönderilir ve uygun yanıt alınır.
- Hem yanıt hem de istek üzerinde değişiklik yapılabilir.
- 49:13Proxyman'ı iOS Cihazında Kullanma
- Proxyman'ı iOS cihazında kullanmak için iki seçenek vardır: bir uygulamayı simülatörde izlemek veya cihazın tüm trafiğini izlemek.
- iOS cihazında Proxyman'ı kullanmak için App Store'dan indirilen bir uygulama gereklidir.
- SSL pinning gibi güvenlik teknikleri nedeniyle bazı uygulamaların trafiğini izlemek zor olabilir.
- 52:06Breakpoint Kullanımı
- Breakpoint'ler, belirli isteklerin tetiklenmesini sağlar ve bu isteklerin içeriği incelenebilir.
- Wildcard kullanılarak (yıldız karakteri) belirli bir kural oluşturulabilir, böylece belirli bir film ID'si olmadan da breakpoint tetiklenebilir.
- Breakpoint'ler, belirli bir isteğin ne zaman tetiklendiğini anlamak için de kullanılabilir.
- 54:56Map Local Özelliği
- Map Local özelliği, seçilen istek için bir yerel dosya veya dizin kullanmayı sağlar.
- Bu özellik sayesinde, istekler arka plana gitmeden yerel dosyadan yanıt alabilir.
- Map Local, kaynak koduna müdahale etmeden ağ çağrılarını taklit etmeyi sağlar ve özellikle mevcut mocks olmayan kod tabanlarında faydalıdır.
- 1:00:49Proxyman İndirme İndirimi
- Proxyman'ın fiyatı oldukça yüksek olsa da, 1 Aralık 2023'e kadar özel bir indirim kodu mevcuttur.
- İndirim kodu, video açıklamasında bulunabilir.
- 1:01:14Wireshark ve Proxyman Özellikleri
- Wireshark lisansı için %50 indirim sunuluyor ve bu indirim sadece canlı yayının sonunda geçerli.
- Wireshark'ın hem Intel hem de macOS için mevcut olduğu belirtiliyor.
- Proxyman'ın "Map Remote" özelliği, bir URL'yi başka bir URL'ye yönlendirmeyi sağlıyor.
- 1:02:29Map Remote Özellikleri
- Map Remote özelliği, bir URL'yi tamamen farklı bir domaine yönlendirmeyi sağlıyor.
- Bu özellik, uygulama yapılandırması zor olduğunda veya farklı ortamlar arasında geçiş yapmak gerektiğinde faydalı olabilir.
- Map Remote ile protokol, host, port, path ve query gibi detaylar ayarlanabilir ve orijinal URL veya host header korunabilir.
- 1:04:02Map Remote Kullanım Alanları
- Map Remote, yerel bir dosya yerine başka bir HTTP arka planı çağırarak yanıt almayı sağlıyor.
- Bu özellik, birden fazla ortam arasında geçiş yapmak gerektiğinde çok faydalı olabilir.
- Her gün bu özelliği kullanmak, mimari veya geliştirme sürecinde bir sorun olduğunu gösterir.
- 1:05:24Scripting Özelliği
- Scripting, Map Local'ın dinamik versiyonu olarak düşünülebilir ve JavaScript ile kod çalıştırılabilir.
- Scripting ile istek ve yanıt üzerinde kod çalıştırılabilir, yeni başlıklar eklenebilir, sorgu değerleri değiştirilebilir ve yanıt gövdesi oluşturulabilir.
- Scripting, belirli bir URL'ye göre dinamik olarak farklı bir dosya yönlendirmeyi sağlayabilir.
- 1:07:06Scripting Örneği
- Konuşmacı, Napolyon filmi için 500 geri bildirim kodu döndürmeyi deniyor.
- Script çalıştırıldığında, Napolyon filmi için 500 geri bildirim kodu döndürülüyor.
- Script çalıştırıldığında, yanıt gövdesi boş bırakıldığında bile uygulama hata vermiyor çünkü URL Session'da hata kontrolü yapılıyor.
- 1:14:33Proxima ve GraphQL Kullanımı
- GraphQL'de sadece bir endpoint kullanılır ve istenen schema bu endpoint üzerinden gönderilir.
- Proxima'da endpoint isimleri açıklayıcı değilse, geliştiriciye geri bildirim paylaşmak önemlidir.
- Proxima'da tüm URL'ler aynı olurken, GraphQL API'sinde farklı URL'ler kullanılır ve istekte hangi özelliklerin istendiği belirtilir.
- 1:16:34Proxima'nın Network Koşulları Özelliği
- Proxima'da "Network Conditions" özelliği sayesinde kötü ağ simüle edilebilir.
- Bu özellik, iOS cihazlarında geliştirici menüsünden simüle edilemeyen kötü ağ durumunu simüle etmek için kullanışlıdır.
- Network Conditions özelliği sadece belirli hostlar için etkinleştirilebilir, böylece tüm ağ trafiğine uygulanmaz.
- 1:18:12Network Koşulları Örneği
- Proxyman'da "Network Conditions" özelliği kullanılarak "movie.db.org" için kötü ağ simüle edildi.
- Simüle edilen kötü ağ durumunda, uygulama verileri daha yavaş yükler ve daha fazla gecikme yaşar.
- Simüle edilen kötü ağ durumu, gerçek bir canlı yayın sırasında WiFi kesilmesi gibi durumları simüle etmek için kullanılabilir.
- 1:23:35Proxima'nın iOS Cihazlarıyla Kullanımı
- Proxima, iOS cihazlarıyla iki farklı şekilde kullanılabilir: Xcode'dan uygulama çalıştırma veya proxyman.ios uygulaması kullanma.
- Xcode'dan uygulama çalıştırma için, iOS cihazına sertifika kurulumu gereklidir.
- Proxyman.ios uygulaması, iOS cihazlarında ağ trafiğini izlemek için kullanılabilir ve özellikle testçiler ve ürün yöneticileri için faydalıdır.
- 1:26:53Proximan Sponsorluk ve İndirimler
- Sunucu, Proximan'ın bu canlı yayın için sponsorluğunu tekrar teşekkür ediyor.
- İzleyiciler, açıklama kısmındaki kodu kullanarak Proximan'ın tam özelliklerine erişim sağlayan bir lisans için %15 indirim kazanabilirler.
- Daha fazla bilgi edinmek veya denemek isteyenler için Proximan'ın web sitesine erişim sağlayan bir link de açıklama kısmında bulunmaktadır.
- 1:27:34İzleyicilere Teşekkür
- Sunucu, izleyicilere canlı yayın sırasında sorular sormaları ve yorumlarda bulunmaları için teşekkür ediyor.
- İzleyicilerin katkıları sayesinde canlı yayın daha canlı ve değerli hale geldiğini belirtiyor.
- İzleyicilerin yorumları, canlı yayınların replaylarını izleyenlerin dikkatini çekecek önemli noktalar içeriyor.
- 1:28:22Kapanış
- Sunucu, izleyicilerin bu canlı yayından keyif aldığını umduğunu belirtiyor.
- İzleyicilerden, sunucunun ele almasını istedikleri diğer araçları yorumlarda paylaşmalarını istiyor.
- Sunucu, izleyicilere teşekkür ederek videoyu sonlandırıyor.