[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:backend\u002Fgo-stdlib-http":4,"config":254},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":148,"samples":168},"backend","Backend","","go-stdlib-http","Go Stdlib Http","tr",75,3300,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145],{"key":19,"name":20,"count":11},"api-design","API Tasarımı",{"key":22,"name":23,"count":11},"caching","Caching",{"key":25,"name":26,"count":11},"concurrency","Eşzamanlılık",{"key":28,"name":29,"count":11},"csharp-concurrency-async","Csharp Concurrency Async",{"key":31,"name":32,"count":11},"csharp-exceptions","Csharp Exceptions",{"key":34,"name":35,"count":11},"csharp-generics-interfaces","Csharp Generics Interfaces",{"key":37,"name":38,"count":11},"csharp-memory-performance","Csharp Memory Performance",{"key":40,"name":41,"count":11},"csharp-stdlib-http","Csharp Stdlib Http",{"key":43,"name":44,"count":11},"csharp-testing-tooling","Csharp Testing Tooling",{"key":46,"name":47,"count":11},"databases-sql","Veritabanı \u002F SQL",{"key":49,"name":50,"count":11},"go-concurrency","Go Concurrency",{"key":52,"name":53,"count":11},"go-errors","Go Errors",{"key":55,"name":56,"count":11},"go-interfaces-generics","Go Interfaces Generics",{"key":58,"name":59,"count":11},"go-memory-performance","Go Memory Performance",{"key":8,"name":9,"count":11},{"key":62,"name":63,"count":11},"go-testing-tooling","Go Testing Tooling",{"key":65,"name":66,"count":11},"java-concurrency","Java Concurrency",{"key":68,"name":69,"count":11},"java-exceptions","Java Exceptions",{"key":71,"name":72,"count":11},"java-generics-interfaces","Java Generics Interfaces",{"key":74,"name":75,"count":11},"java-memory-jvm","Java Memory Jvm",{"key":77,"name":78,"count":11},"java-stdlib-http","Java Stdlib Http",{"key":80,"name":81,"count":11},"java-testing-tooling","Java Testing Tooling",{"key":83,"name":84,"count":11},"messaging-queues","Mesajlaşma \u002F Kuyruklar",{"key":86,"name":87,"count":11},"networking-http","Ağ \u002F HTTP",{"key":89,"name":90,"count":11},"nodejs-error-handling","Nodejs Error Handling",{"key":92,"name":93,"count":11},"nodejs-event-loop-async","Nodejs Event Loop Async",{"key":95,"name":96,"count":11},"nodejs-memory-performance","Nodejs Memory Performance",{"key":98,"name":99,"count":11},"nodejs-modules-streams","Nodejs Modules Streams",{"key":101,"name":102,"count":11},"nodejs-stdlib-http","Nodejs Stdlib Http",{"key":104,"name":105,"count":11},"nodejs-testing-tooling","Nodejs Testing Tooling",{"key":107,"name":108,"count":11},"php-concurrency-async","Php Concurrency Async",{"key":110,"name":111,"count":11},"php-exceptions","Php Exceptions",{"key":113,"name":114,"count":11},"php-generics-interfaces","Php Generics Interfaces",{"key":116,"name":117,"count":11},"php-memory-performance","Php Memory Performance",{"key":119,"name":120,"count":11},"php-stdlib-http","Php Stdlib Http",{"key":122,"name":123,"count":11},"php-testing-tooling","Php Testing Tooling",{"key":125,"name":126,"count":11},"python-concurrency-async","Python Concurrency Async",{"key":128,"name":129,"count":11},"python-errors-context","Python Errors Context",{"key":131,"name":132,"count":11},"python-memory-performance","Python Memory Performance",{"key":134,"name":135,"count":11},"python-stdlib-http","Python Stdlib Http",{"key":137,"name":138,"count":11},"python-testing-tooling","Python Testing Tooling",{"key":140,"name":141,"count":11},"python-typing-oop","Python Typing Oop",{"key":143,"name":144,"count":11},"security","Güvenlik",{"key":146,"name":147,"count":11},"testing","Test",[149,153,156,159,162,165],{"key":150,"name":151,"count":152},"csharp","C#\u002F.NET",450,{"key":154,"name":155,"count":152},"go","Go",{"key":157,"name":158,"count":152},"java","Java",{"key":160,"name":161,"count":152},"nodejs","Node.js",{"key":163,"name":164,"count":152},"php","PHP",{"key":166,"name":167,"count":152},"python","Python",[169,187,201,215,228,241],{"id":170,"topic":9,"difficulty":171,"body":172,"options":173,"correct_key":175,"explanation":186},"019f5b0c-5b67-7289-bbee-2f82a5c8cb42",1,"net\u002Fhttp paketinde http.HandlerFunc, tanımlı bir fonksiyon tipidir. Bununla ilgili hangi ifade doğrudur?",[174,177,180,183],{"key":175,"text":176},"a","func(http.ResponseWriter, *http.Request) imzalı bir fonksiyonu, bir ServeHTTP metoduyla http.Handler'a dönüştürür",{"key":178,"text":179},"b","Sarmalanan fonksiyonun ayrıca Read ve Write metotlarını uygulamasını gerektirir",{"key":181,"text":182},"c","Yalnızca error değeri döndüren fonksiyonlarla çalışır",{"key":184,"text":185},"d","Fonksiyonu otomatik olarak varsayılan ServeMux'a kaydeder","http.HandlerFunc(f), yalnızca f(w, r)'yi çağıran bir ServeHTTP metoduna sahip bir tiptir; sıradan bir fonksiyonu http.Handler'a dönüştürmenin standart yoludur. Read\u002FWrite gerektirmez, error dönüşü şart koşmaz ve kendi başına hiçbir şeyi kaydetmez — kayıt işini http.HandleFunc veya mux.HandleFunc yapar.",{"id":188,"topic":9,"difficulty":189,"body":190,"options":191,"correct_key":178,"explanation":200},"019f5b0c-5b68-777b-ba7f-1b48e59388b4",3,"Klasik bir http.ServeMux üzerinde (HTTP metodu içermeyen, 1.22 öncesi tarz pattern'ler), mux.HandleFunc(\"\u002Fusers\", usersHandler) ve mux.HandleFunc(\"\u002F\", rootHandler) kaydediliyor. \"\u002Fusers\u002F42\" path'ine bir istek geliyor. Hangi handler çalışır?",[192,194,196,198],{"key":175,"text":193},"usersHandler çalışır, \"\u002Fusers\"ı bir prefix olarak eşleştirerek",{"key":178,"text":195},"rootHandler çalışır, \"\u002F\" catch-all pattern'i üzerinden",{"key":181,"text":197},"Hiçbir handler çalışmaz; ServeMux 404 döner",{"key":184,"text":199},"usersHandler çalışır, en uzun eşleşen pattern üzerinden","Klasik ServeMux kuralları: \"\u002F\" ile biten bir pattern, altındaki her şeyi kapsayan bir subtree eşleşmesidir; sonunda \"\u002F\" olmayan bir pattern ise yalnızca o tam path'i eşler. \"\u002Fusers\" sonunda \"\u002F\" olmadığı için \"\u002Fusers\u002F42\" ile eşleşmez; istek, daha spesifik hiçbir pattern'e uymadığı için kayıtlı \"\u002F\" pattern'ine düşer.",{"id":202,"topic":9,"difficulty":203,"body":204,"options":205,"correct_key":181,"explanation":214},"019f5b0c-5b69-7595-aa5d-826b2443ac77",2,"```go\nfunc handler(w http.ResponseWriter, r *http.Request) {\n    w.Write([]byte(\"hello\"))\n    w.WriteHeader(http.StatusTeapot)\n}\n```\nClient gerçekte hangi status kodunu alır?",[206,208,210,212],{"key":175,"text":207},"418 I'm a Teapot",{"key":178,"text":209},"500 Internal Server Error",{"key":181,"text":211},"200 OK",{"key":184,"text":213},"Hiçbir yanıt gönderilmez; bağlantı status satırı olmadan kapanır","Bir handler, WriteHeader'ı hiç çağırmadan önce Write çağırırsa net\u002Fhttp önce örtük bir WriteHeader(http.StatusOK) gönderir. Header bölümü bir kez yazıldıktan sonra sonraki WriteHeader çağrıları yok sayılır (bir uyarı loglanır), bu yüzden client, sonradan yapılan w.WriteHeader(http.StatusTeapot) çağrısından bağımsız olarak 200 OK görür.",{"id":216,"topic":9,"difficulty":203,"body":217,"options":218,"correct_key":184,"explanation":227},"019f5b0c-5b6a-75c8-8ae2-6129a9427169","```go\nfunc handler(w http.ResponseWriter, r *http.Request) {\n    w.WriteHeader(http.StatusOK)\n    w.Header().Set(\"X-Custom\", \"value\")\n}\n```\nClient, X-Custom header'ını alır mı?",[219,221,223,225],{"key":175,"text":220},"Evet, handler içinde herhangi bir anda",{"key":178,"text":222},"Evet, ama yalnızca body boş bırakılırsa",{"key":181,"text":224},"Hayır, ama bunun tek nedeni \"X-Custom\"'ın büyük harfle başlaması",{"key":184,"text":226},"Hayır, header bölümü zaten gönderilmişti","w.Header(), response header'larının arkasındaki map'i döndürür; ama bu map yalnızca WriteHeader (veya ilk Write) header'ları gerçekten telin üzerine gönderdiğinde okunur. Bu noktadan sonraki her Header().Set çağrısı artık başvurulmayan bir map'i değiştirir, dolayısıyla değişiklik sessizce kaybolur.",{"id":229,"topic":9,"difficulty":203,"body":230,"options":231,"correct_key":175,"explanation":240},"019f5b0c-5b6b-714c-be6a-bf594e814386","Bir http.HandlerFunc döndükten sonra, r.Body.Close()'u açıkça çağırmak handler'ın sorumluluğunda mıdır?",[232,234,236,238],{"key":175,"text":233},"Hayır, net\u002Fhttp sunucusu her zaman kapatır",{"key":178,"text":235},"Evet, aksi halde TCP bağlantısı asla serbest bırakılmaz",{"key":181,"text":237},"Evet, aksi halde json.NewDecoder bir sonraki sefer panic verir",{"key":184,"text":239},"Hayır, ama yalnızca body'siz GET istekleri için","net\u002Fhttp, handler body'yi okumuş olsun ya da olmasın, handler fonksiyonu döndükten sonra Server'ın request body'sini kapatacağını garanti eder. r.Body.Close()'u açıkça çağırmak zararsızdır ve bazen netlik için yapılır, ama standart sunucuda kaynak sızıntısını önlemek için gerekli değildir.",{"id":242,"topic":9,"difficulty":203,"body":243,"options":244,"correct_key":178,"explanation":253},"019f5b0c-5b6b-7a16-99b6-e2930b785b84","```go\ntype payload struct {\n    Name string `json:\"name\"`\n    age  int    `json:\"age\"`\n}\nvar p payload\njson.NewDecoder(r.Body).Decode(&p)\n```\n{\"name\":\"Ali\",\"age\":30} request body'si verildiğinde Decode sonrası p.age nedir?",[245,247,249,251],{"key":175,"text":246},"30 olur, json tag'i alanı adreslenebilir yaptığı için",{"key":178,"text":248},"0 olur, zero value'sunda",{"key":181,"text":250},"Decode hata döner",{"key":184,"text":252},"30 olur, ama bunun tek nedeni struct'ın pointer olarak geçirilmesi","encoding\u002Fjson reflection kullanır ve bu, paket dışından unexported struct alanlarını set edemez. `age` alanı küçük harfle başladığı (unexported) için Decode onu sessizce atlar — hata vermez ama atama da yapmaz — bu yüzden p.age zero value'su olan 0'da kalır.",{"fields":255,"seniorities":424,"interview_shapes":425,"locales":430,"oauth":432,"question_count":435,"coach_enabled":436,"jd_match_enabled":436},[256,267,287,303,327,340,359,378,398,405,411,418],{"key":5,"name_tr":6,"name_en":6,"sort":171,"specializations":257},[258,261,262,263,264,265,266],{"key":259,"name":260,"field":5},"general","Genel",{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":268,"name_tr":269,"name_en":269,"sort":203,"specializations":270},"frontend","Frontend",[271,272,275,278,281,284],{"key":259,"name":260,"field":268},{"key":273,"name":274,"field":268},"javascript","JavaScript",{"key":276,"name":277,"field":268},"typescript","TypeScript",{"key":279,"name":280,"field":268},"react","React",{"key":282,"name":283,"field":268},"vue","Vue",{"key":285,"name":286,"field":268},"angular","Angular",{"key":288,"name_tr":289,"name_en":289,"sort":189,"specializations":290},"fullstack","Fullstack",[291,292,293,294,295,296,297,298,299,300,301,302],{"key":259,"name":260,"field":288},{"key":154,"name":155,"field":5},{"key":166,"name":167,"field":5},{"key":157,"name":158,"field":5},{"key":150,"name":151,"field":5},{"key":160,"name":161,"field":5},{"key":163,"name":164,"field":5},{"key":273,"name":274,"field":268},{"key":276,"name":277,"field":268},{"key":279,"name":280,"field":268},{"key":282,"name":283,"field":268},{"key":285,"name":286,"field":268},{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"devops-cloud","DevOps \u002F Cloud",4,[308,309,312,315,318,321,324],{"key":259,"name":260,"field":304},{"key":310,"name":311,"field":304},"aws","AWS",{"key":313,"name":314,"field":304},"gcp","GCP",{"key":316,"name":317,"field":304},"azure","Azure",{"key":319,"name":320,"field":304},"kubernetes","Kubernetes",{"key":322,"name":323,"field":304},"terraform","Terraform",{"key":325,"name":326,"field":304},"linux","Linux",{"key":328,"name_tr":329,"name_en":329,"sort":330,"specializations":331},"ai-engineer","AI Engineer",5,[332,333,334,337],{"key":259,"name":260,"field":328},{"key":166,"name":167,"field":328},{"key":335,"name":336,"field":328},"llm-rag","LLM\u002FRAG",{"key":338,"name":339,"field":328},"mlops","MLOps",{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"database","Veritabanı","Database",6,[346,347,350,353,356],{"key":259,"name":260,"field":341},{"key":348,"name":349,"field":341},"postgresql","PostgreSQL",{"key":351,"name":352,"field":341},"mysql","MySQL",{"key":354,"name":355,"field":341},"mongodb","MongoDB",{"key":357,"name":358,"field":341},"redis","Redis",{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"mobile","Mobil","Mobile",7,[365,366,369,372,375],{"key":259,"name":260,"field":360},{"key":367,"name":368,"field":360},"ios-swift","iOS (Swift)",{"key":370,"name":371,"field":360},"android-kotlin","Android (Kotlin)",{"key":373,"name":374,"field":360},"flutter","Flutter",{"key":376,"name":377,"field":360},"react-native","React Native",{"key":143,"name_tr":144,"name_en":379,"sort":380,"specializations":381},"Security",8,[382,383,386,389,392,395],{"key":259,"name":260,"field":143},{"key":384,"name":385,"field":143},"appsec","AppSec",{"key":387,"name":388,"field":143},"offensive-pentest","Offensive \u002F Pentest",{"key":390,"name":391,"field":143},"cloud-security","Cloud Security",{"key":393,"name":394,"field":143},"devsecops","DevSecOps",{"key":396,"name":397,"field":143},"blue-team-incident","Blue Team \u002F Incident",{"key":399,"name_tr":400,"name_en":401,"sort":402,"specializations":403},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[404],{"key":259,"name":260,"field":399},{"key":406,"name_tr":407,"name_en":407,"sort":408,"specializations":409},"data-engineer","Data Engineer",10,[410],{"key":259,"name":260,"field":406},{"key":412,"name_tr":413,"name_en":414,"sort":415,"specializations":416},"game-dev","Oyun Geliştirme","Game Development",11,[417],{"key":259,"name":260,"field":412},{"key":419,"name_tr":420,"name_en":420,"sort":421,"specializations":422},"ml-engineer","ML Engineer",12,[423],{"key":259,"name":260,"field":419},[14,15,16],{"junior":426,"mid":428,"senior":429},{"questions":427,"median_sec":3},20,{"questions":427,"median_sec":3},{"questions":427,"median_sec":3},[10,431],"en",[433,434],"google","github",21750,true]