{"id":396,"date":"2023-07-31T10:25:26","date_gmt":"2023-07-31T07:25:26","guid":{"rendered":"https:\/\/kamp.linux.org.tr\/2023-yaz\/?page_id=396"},"modified":"2023-08-01T10:12:06","modified_gmt":"2023-08-01T07:12:06","slug":"golang-101-egitimi","status":"publish","type":"page","link":"https:\/\/kamp.linux.org.tr\/2023-yaz\/kurslar\/golang-101-egitimi\/","title":{"rendered":"Golang 101 E\u011fitimi"},"content":{"rendered":"\n<p><strong>E\u011fitmenler: <a href=\"https:\/\/kamp.linux.org.tr\/2023-yaz\/egitmenler\/ugur-ozyilmazel\/\">U\u011fur \u00d6zy\u0131lmazel<\/a>, <a href=\"https:\/\/kamp.linux.org.tr\/2023-yaz\/egitmenler\/erhan-akpinar\/\">Erhan Akp\u0131nar<\/a><\/strong><\/p>\n\n\n\n<p><br><strong>Kat\u0131l\u0131mc\u0131lar i\u00e7in \u00f6n \u015fartlar:<\/strong><br>Herhangi bir programlama dili ile temel seviyede program yazabilme<\/p>\n\n\n\n<p><strong>Kat\u0131l\u0131mc\u0131lar\u0131n e\u011fitime bilgisayar d\u0131\u015f\u0131nda getirmesi gereken donan\u0131m\/yaz\u0131l\u0131m<\/strong><br>Bir k\u0131s\u0131m kurulum yapmalar\u0131 laz\u0131m, go, docker, kod edit\u00f6r\u00fc.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>E\u011fitim i\u00e7eri\u011fi<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00d6ne \u00c7\u0131kan K\u0131s\u0131mlar\u0131<\/li>\n\n\n\n<li>Proverbs<\/li>\n\n\n\n<li>Go&#8217;nun Paradigmas\u0131<br>Go uygulamas\u0131na genel bak\u0131\u015f<\/li>\n\n\n\n<li>Paket Kavram\u0131<\/li>\n\n\n\n<li>main Paketi<\/li>\n\n\n\n<li>Executable ve library Kavramlar\u0131<\/li>\n\n\n\n<li>Go Uygulamas\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rmak<br>Dil Kurallar\u0131<\/li>\n\n\n\n<li>Unicode<\/li>\n\n\n\n<li>Anahtar Kelimeler<\/li>\n\n\n\n<li>Operat\u00f6rler ve \u0130\u015faret\u00e7iler<\/li>\n\n\n\n<li>G\u00f6m\u00fcl\u00fc Gelen Veri Tipleri<\/li>\n\n\n\n<li>Kod Stili<\/li>\n\n\n\n<li>Sabitler<\/li>\n\n\n\n<li>De\u011fi\u015fkenler<br>Veri Tipleri<\/li>\n\n\n\n<li>String<\/li>\n\n\n\n<li>Boolean<\/li>\n\n\n\n<li>N\u00fcmerikler<\/li>\n\n\n\n<li>Array ve Slice Kavramlar\u0131<\/li>\n\n\n\n<li>Struct<\/li>\n\n\n\n<li>Pointer<\/li>\n\n\n\n<li>Struct Metodlar\u0131 ve Receiver Metodlar<\/li>\n\n\n\n<li>Map<\/li>\n\n\n\n<li>Tip D\u00f6n\u00fc\u015ft\u00fcrme<\/li>\n\n\n\n<li>Reflection<br>Fonksiyonlar<\/li>\n\n\n\n<li>Signature<\/li>\n\n\n\n<li>Parametre \/ Arg\u00fcman<\/li>\n\n\n\n<li>Return Values<\/li>\n\n\n\n<li>Naked Return<\/li>\n\n\n\n<li>Recursivity<\/li>\n\n\n\n<li>Closure, Anonim ve Scope<\/li>\n\n\n\n<li>Tip ya da Arg\u00fcman olarak Fonksiyon<\/li>\n\n\n\n<li>defer()<br>Durum Kontrolleri ve \u00c7al\u0131\u015fma S\u0131ras\u0131<\/li>\n\n\n\n<li>if, else, else if<\/li>\n\n\n\n<li>Short Declaration if<\/li>\n\n\n\n<li>switch ve case<\/li>\n\n\n\n<li>Label ve break<\/li>\n\n\n\n<li>goto<br>D\u00f6ng\u00fcler ve \u0130terasyonlar<\/li>\n\n\n\n<li>C style loop<\/li>\n\n\n\n<li>range<\/li>\n\n\n\n<li>break<\/li>\n\n\n\n<li>continue<\/li>\n\n\n\n<li>for ve Durum Kontrol\u00fc<\/li>\n\n\n\n<li>Label Kullan\u0131m\u0131<\/li>\n\n\n\n<li><\/li>\n<\/ul>\n\n\n\n<p>Interface<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tip Olarak Kullan\u0131m<\/li>\n\n\n\n<li>Type Checking<\/li>\n\n\n\n<li>Davran\u0131\u015f Tan\u0131m\u0131 Olarak Kullan\u0131m<\/li>\n\n\n\n<li>Stringer<\/li>\n\n\n\n<li>Formatter<\/li>\n\n\n\n<li>Interface Satisfaction<\/li>\n\n\n\n<li>Interface i\u00e7inde Interface (Embedding)<br>Error\u2019ler<\/li>\n\n\n\n<li>\u00d6zelle\u015ftirilmi\u015f Error Tipleri (Custom Error Types)<\/li>\n\n\n\n<li>Error\u2019leri Sarmalama (Wrapping Errors)<\/li>\n\n\n\n<li>Error Sarmal\u0131n\u0131 A\u00e7mak (Unwrap)<\/li>\n\n\n\n<li>Error De\u011feri Kontrol\u00fc: errors.Is<\/li>\n\n\n\n<li>Error Tipi Kontrol\u00fc: errors.As<\/li>\n\n\n\n<li>En Yayg\u0131n Pratikler<\/li>\n\n\n\n<li>panic ve recover<br>nil<br>\u0130simlendirme Kurallar\u0131<\/li>\n\n\n\n<li>De\u011fi\u015fken Adland\u0131rmas\u0131<\/li>\n\n\n\n<li>Fonksiyon Adland\u0131rmas\u0131<\/li>\n\n\n\n<li>Metod\u2019lar\u0131n (Method) Adland\u0131rmas\u0131<\/li>\n\n\n\n<li>Paket \u0130simleri<br>JSON ile \u00e7al\u0131\u015fmak<\/li>\n\n\n\n<li>JSON Tag\u2019leri<\/li>\n\n\n\n<li>Encoding (Marshal)<\/li>\n\n\n\n<li>Decoding (Unmarshal)<\/li>\n\n\n\n<li>Generic Interface<\/li>\n\n\n\n<li>Reference Types<\/li>\n\n\n\n<li>Streaming Encoders ve Decoders<br>Test<\/li>\n\n\n\n<li>\u0130lk Test<\/li>\n\n\n\n<li>Testlerin Tamam\u0131n\u0131 ya da Bir K\u0131sm\u0131n\u0131 \u00c7al\u0131\u015ft\u0131rmak<\/li>\n\n\n\n<li>Examples ve Dok\u00fcman Sunucusu<\/li>\n\n\n\n<li>Data Race Detection<\/li>\n\n\n\n<li>Table Driven Tests<\/li>\n\n\n\n<li>Sub Tests<\/li>\n\n\n\n<li>SetUp ve TearDown<\/li>\n\n\n\n<li>Paralel Test<\/li>\n\n\n\n<li>Code Coverage<\/li>\n\n\n\n<li>Benchmarking ve Profiling<\/li>\n\n\n\n<li>Escape Analysis<\/li>\n\n\n\n<li>Memory ve CPU Profiling Temelleri<br>Concurrency<\/li>\n\n\n\n<li>Goroutine<\/li>\n\n\n\n<li>go func(){\u2026}()<\/li>\n\n\n\n<li>sync.WaitGroup<\/li>\n\n\n\n<li>go func(arg T){\u2026}(X) ve parametre<\/li>\n\n\n\n<li>Channels<\/li>\n\n\n\n<li>Unbuffered Channels<\/li>\n\n\n\n<li>Deadlock<\/li>\n\n\n\n<li>Channel value ve open\/close Kontrol\u00fc<\/li>\n\n\n\n<li>Range over Channels<\/li>\n\n\n\n<li>Send \u0130\u015feminin de Bloklamas\u0131<\/li>\n\n\n\n<li>Buffered Channels<\/li>\n\n\n\n<li>Semaphore Pattern<\/li>\n\n\n\n<li>Fan Out Pattern<\/li>\n\n\n\n<li>Select<\/li>\n\n\n\n<li>Worker Pattern<\/li>\n\n\n\n<li>Context<\/li>\n\n\n\n<li>WithTimeout<\/li>\n\n\n\n<li>WithCancel<\/li>\n\n\n\n<li>WithDeadline<\/li>\n\n\n\n<li>WithValue<br>Mutex<\/li>\n\n\n\n<li>sync\/atomic<\/li>\n\n\n\n<li>sync.Map<\/li>\n\n\n\n<li>Channel Kendi i\u00e7inde Mutex Kullan\u0131r<br>Final<br>in-memory Production Grade Key-Value Store REST-API servisi yap\u0131yoruz<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n<a href=\"https:\/\/kayit.linux.org.tr\" target=\"_blank\" class=\"btn btn-lyk\">Ba\u015fvur<\/a>\n","protected":false},"excerpt":{"rendered":"<p>E\u011fitmenler: U\u011fur \u00d6zy\u0131lmazel, Erhan Akp\u0131nar Kat\u0131l\u0131mc\u0131lar i\u00e7in \u00f6n \u015fartlar:Herhangi bir programlama dili ile temel seviyede program yazabilme Kat\u0131l\u0131mc\u0131lar\u0131n e\u011fitime bilgisayar d\u0131\u015f\u0131nda getirmesi gereken donan\u0131m\/yaz\u0131l\u0131mBir k\u0131s\u0131m kurulum yapmalar\u0131 laz\u0131m, go, docker, kod edit\u00f6r\u00fc. E\u011fitim i\u00e7eri\u011fi Interface<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":11,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-396","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/pages\/396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/comments?post=396"}],"version-history":[{"count":6,"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/pages\/396\/revisions"}],"predecessor-version":[{"id":633,"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/pages\/396\/revisions\/633"}],"up":[{"embeddable":true,"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/pages\/11"}],"wp:attachment":[{"href":"https:\/\/kamp.linux.org.tr\/2023-yaz\/wp-json\/wp\/v2\/media?parent=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}