Golang ile API Yazmak 🚀 MongoDB | Fiber | Mock | Unit Test | DI

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 24 āļ˜.āļ„. 2024

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 47

  • @bulutcangocer
    @bulutcangocer āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +4

    Usta yeni bitirdim ve gerçekten çok iyi bir video olmuş. Eline koluna sağlÄąk. Çok kaliteli bir videoydu ve çok şey kattÄą bana

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      FaydalÄą olmasÄąna çok sevindim. 🚀 bu gÞzel yorum için teşekkÞr ederim 😊

    • @bulutcangocer
      @bulutcangocer āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@ahmetikrdg ne demek usta devamÄąnÄą da bekleriz GO projelerinin, izlemesi çok keyifli oluyor.

  • @omerfarukozturk9720
    @omerfarukozturk9720 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +4

    Ä°nanÄąlmaz faydalÄą bir içerik, çok teşekkÞrler gerçekten

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      faydalÄą olmasÄąna sevindim, rica ederim 😊

    • @omerfarukozturk9720
      @omerfarukozturk9720 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@ahmetikrdg Dersinizi şimdi tam manasÄąyla bitirdim. Parça parça ilerliyordum. Normalde mobil alanÄąnda çalÄąÅŸan birisiyim ancak kendimi geliştirme ve hobi amaçlÄą biraz daha Go bakmaya başlamÄąÅŸtÄąm. Sunumuzunu, kod bilginizi ve anlatÄąÅŸ şeklinizi çok beğendim. Ellerinize sağlÄąk. Abone oldum zaten ^^ daha sÄąk video atmanÄązÄą bekliyorum :)

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@omerfarukozturk9720 gÃķrÞşÞn ve yorumun mutlu ve motive etti çok teşekkÞr ederim 😊 bu projede client tarafÄąnda Fiber paketini kullanmÄąÅŸ farklÄą bi videoda Fiber'den Gorm
      paketine hÄązlÄąca nasÄąl geçirebiliriz onu detaylandÄąrmak istiyorum. içerik Ãķnerisi vb olursa her zaman yazabilirsin 😄

  • @anonymous-lq2tp
    @anonymous-lq2tp āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Dipaendaenci, yeah

  • @techn9ne632
    @techn9ne632 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +3

    TeşekkÞrler hocam emekleriniz için. Kaliteli bir video olmuş. Bir çok api Ãķrneğinde gorillaMux kur marshal unmarshal yap tamam mantığı var. Sağolun tekrardan.

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Rica ederim. FaydalÄą olduysa ne mutluðŸĪ™ðŸ˜Š

  • @omi7780
    @omi7780 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Selamlar, faydalÄą bir videoydu teşekkÞrler.
    Bir sorum olacak; bu projede mock paketini neden kullandÄąk tam anlamadÄąm. Test yaparken mock veriler ile gerçek veriler karÅŸÄąlaştÄąrÄąlÄąr veya bir mock db oluşturup veriler orada da bulunabilir de. Servisi veya repository i mock lamaktaki amaç nedir? Şimdiden teşekkÞrler.

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      selamlar, yorumu kaÃ§ÄąrmÄąÅŸÄąm geç dÃķnÞyorum afedersin. evet mock paketini kullansaydÄąk işimiz çok çok daha kolay olurdu. fakat fark ettiysen test Þzerinde çok fazla durup içeriği uzatmak istemedim. sadece girişi gÃķstermek istedim. belki başka bir içerikte test ağırlÄąklÄą gideriz😄

  • @recepsen0
    @recepsen0 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    type Todo struct {
    Id primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
    Title string `json:"title,omitempty" bson:"title,omitempty"`
    Content string `json:"content,omitempty" bson:"content,omitempty"`
    }
    Modeli bu şekilde tanÄąmlarken bson alanlarÄąnÄą verirseniz ikinci bir ID oluşmamÄąÅŸ olur ve karmaÅŸÄąklÄąklarÄąn ÃķnÞne daha rahat geçebilirsiniz.

  • @enesberkeinal580
    @enesberkeinal580 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Configleri onden yazmak db bağlantÄąsÄą için çok iyiydi fakat devamÄąnda uygulamanÄąn calÄąÅŸma stili gibi devam etse daha doğru olurdu, mainden başlayÄąp controller service gibi, şimdi sen alttan başladığında neden bunu yapÄąyoruzun cevabÄąnÄą veriyosun direkt olarak, sorusunu sordurtman lazÄąm ilk Ãķnce, controllerda buna ihtiyacÄąmÄąz var o zaman gidip service de yazalÄąm gibi

  • @yunusemremert
    @yunusemremert āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    42:28 de alınan hata da "go mod tidy" dediğimizde sorun olmuyor.

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      katkÄąn için teşekkÞrler🙌

  • @meyva183
    @meyva183 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Hocam hangi seviyeden sonra "golangÄą iyi biliyorum" diyebiliriz? Hangi seviyeden sonra Jr. pozisyonlarÄąna başvurabiliriz, ne tarz bi proje geliştirdikten sonra? API yazmanÄąn Ãķtesinde ne tarz projeler yapabiliriz. Video için çok teşekkÞrler

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      Bence hiçbir zaman iyi biliyorum diyemeyiz sÞrekli gÞncel olmalÄąyÄąz. Eğer amaç işe girmekse takÄąldığın yerde bakarak bir api yazabiliyorsan bence Junior pozisyonlara başvurabilirsin. Zaten her mÞlakat bi tecrÞbe olacaktÄąr ve aÃ§ÄąklarÄąnÄą hÄązlÄąca kapatmanÄą sağlayacaktÄąr, dostum ðŸĪ™

  • @Eren-ts4pg
    @Eren-ts4pg 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Emeğinize sağlÄąk. 15:30 da "golangAPI" yazdığımÄąz kÄąsÄąmda sizde otomatik olarka Name: geliyor pasif bir şekilde. Bu bir eklenti sanÄąrÄąm değil mi?

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      teşekkÞrler 😊 name: eklenti değil aslÄąnda "goland" kullandığım için otomatik getiriyor. editÃķrle alakalÄą

  • @oktay9784
    @oktay9784 3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    hocam selamlar. umarÄąm eski yorumlarÄą gÃķrÞyorsundur. Linkedin'den gÃķrdÞğÞm kadarÄąyla şu an Trendyol'da çalÄąÅŸÄąyorsun. Trendyol'da hangi Go frameworkÞ kullanÄąlÄąyor? stdlib mi fiber mÄą gin mi vs vs?

  • @furkansade
    @furkansade 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Merhabalar 45:30 anÄąnda benim collections sekmeme herhangi bir veri gelmedi. (database: 0 collections: 0) Sebebi ne olabilir acaba? Şimdiden teşekkÞr ediyorum.
    Not1: Hem kendi yazdığım kodla hem de sizden klonladığım kodla bir sonuç alamadÄąm.
    Not2: Sizden klonladığım kodda .env dosyasÄąnÄą kendime gÃķre dÞzenledim.

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      selamlar, mongodb tarafÄąnda network access kÄąsmÄąnÄą kontrol ettinmi? orada ip adresini girmen lazÄąm eğer projeyi tek gÞnde tamamlamadÄąysan veya ip değiştiyse bağlantÄą gerçekleşmeyebilir

    • @begumozturk7422
      @begumozturk7422 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@ahmetikrdg selamlar, her yerden gelebilecek isteklere erişimi seçmeme rağmen ya da kendi ip adresimi girmeme rağmen ikisinde de collection oluşmadÄą

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@begumozturk7422 selam, istersen projeni githuba atÄąp link paylaş bi bakayÄąm. Bu tÞr problemle karÅŸÄąlaşan diğer arkadaşlarda link paylaşabilir. MÞsait zamanda inceleyeyim

  • @nsh2401
    @nsh2401 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    Hocam golang-node.js-django bu 3Þ hakkÄąnda ne dÞşÞnÞyorsunuz? Hangisine yatÄąrÄąm yapsak daha iyi olur sizce?

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      TÞrkiyede veya Avrupada birçok şirketin servislerini Go'ya taÅŸÄądığınÄą gÃķrÞyorum dostum fakat saydÄąklarÄąnÄąn kullanÄąm alanÄą çok yaygÄąn zaten. Ben olsam Go'yu çok iyi Ãķğrenir diğer iki Node.js ve Djangoyada hakim olmaya çalÄąÅŸÄąrdÄąm. Dil bağımlÄą geliştirici olmaktan kaÃ§ÄąnmalÄąyÄąz bugÞn Go olur yarÄąn Node.js zaten birini Ãķğrendikten sonra diğerlerinde yazmakta çok kolay. GÞzel soruymuş bu arada teşekkÞr ederim ðŸĪ™ belki bu konuyla ilgili uzun bir video çekerim 😄

    • @meyva183
      @meyva183 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@ahmetikrdg Genelde hangi dilden golanga taÅŸÄąnma yapÄąlÄąyor? PHP sanÄąrsam? C# veya javadan geçiş oluyor mu bilginiz var mÄą

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@meyva183 genelleme yapmak yanlÄąÅŸ olur fakat ben C# ve Javadan geçtim hatta şÃķyle bir videom var - - > th-cam.com/video/-qXd0BzUUx8/w-d-xo.html

    • @nsh2401
      @nsh2401 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hocam ben de onu soracaktÄąm size. GolangÄą iyi yapÄąp da nodejs'in kÃķtÞ yaptığı ne konu var ki golang şuan daha popÞler?

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ​@@nsh2401 her dilin birbirine gÃķre artÄąlarÄą eksileri var direk ikisi arasÄąndaki farkÄą anlamak için şu makaleyi Ãķnerebilirim --> www.qulix.com/about/blog/golang-vs-node-js/ birçok programlama dili Garbage Collector işini framework aracÄąlığı ile yaparken Golang direk dil seviyesinde bunu sağlÄąyor. Concurrency yapÄąlarÄąnÄąda dil seviyesinde sağlÄąyor. Makalede gÃķrÞldÞğÞ gibi Node.js aslÄąnda bir dil veya freamework değildir. şu makalede'de direk o konudan bahsediyor --> www.effectussoftware.com/blog/node-js-a-framework/ Node Js is a Javascript Runtime Environment, and it’s used to execute JavaScript code outside of a browser.

  • @venomeux
    @venomeux āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

    abi keşke kod satÄąrlarÄąnÄą yazarken o satÄąrÄąn çalÄąÅŸma mantığından bahsetseydin. Genel proje yapÄąsÄąnda sorunum yok .net'ten katmanlÄą mimariyi ve dependency injectionÄą bildiğim için ancak test yazma kÄąsmÄąnda kodlarÄą mantığa oturtmakta oldukça zorlanÄąyorum.

    • @ahmetikrdg
      @ahmetikrdg  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      doğrudur kardeşim test kÄąsmÄąnda sonlara doğru geliyorduk belki bendede odak kaybÄą olmuş olabilir. olmadÄą ileride sadece testle ilgili bi bÃķlÞm çeker kanala atarÄąz 😄

  • @5gkhn2
    @5gkhn2 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    omitempty zorunluluk sağlamaz. Değer vermediğimiz field ların json a eklenmemesini sağlar.

    • @ahmetikrdg
      @ahmetikrdg  7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      yorumuna sağlÄąk GÃķkhan direk dakikasÄąnÄąda yazarsan gÞzel olur. videoyu çektiğim sÄąrada Ãķğrenme aşamasÄąnda bilgilerimi aktarmaya çalÄąÅŸÄąyordum bazÄą yerlerde eksik hatalÄą bilgi olmasÄą muhtemel dakika dakika tekrar izlemedim bu şekilde dÞzeltilmesine katkÄą sağladığın için teşekkÞr ederim🙌

    • @5gkhn2
      @5gkhn2 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

      ​@@ahmetikrdg 19:00 dan itibaren model oluştururken. Emeğinize sağlÄąk.

  • @sensedit
    @sensedit 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Hocam golang için dinamik bir eklenti sistemi bulunmuyor.
    â€Ē plugin var lakin hem Windows desteği hem de golang sÞrÞmÞ aynÄą olmasÄą gibi kÄąsÄątlamalarÄą var.
    â€Ē bu konuda bir video ve ayrÄąntÄąlÄą olarak embeddeb language sistemleri Þretirsen sevirinim

    • @sensedit
      @sensedit 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Tengo vb. Birkaç sistemle ( lua da olabilir) Ãķrnek sistem oluşturursanÄąz sevirinim

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Öneri için teşekkÞrler dostumðŸĪ™

  • @mustafaemin7389
    @mustafaemin7389 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    hocam result == false yazmanızın ayrı bi olayı var mı? !result ile aynı değil mi

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      KaÃ§ÄąncÄą dakikadan bahsediyorsun acaba? 10:01 gibi yazarsan daha gÞzel olur nokta atÄąÅŸÄą yaparÄąz ðŸĪ™

    • @mustafaemin7389
      @mustafaemin7389 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@ahmetikrdg 53:02 result.Status == false mesela. !result.Status olsa da olur mu

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@mustafaemin7389 !result.Status bu kullanÄąmda doğru 👍 aÃ§Äąk aÃ§Äąk belli olsun diye == false yÃķntemiyle gittim

    • @mustafaemin7389
      @mustafaemin7389 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@ahmetikrdg AnladÄąm teşekkÞrler 🙂

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@mustafaemin7389 rica ederim. keyifli izlemelerðŸĪ™ðŸ˜Š

  • @sensedit
    @sensedit 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Hocam ayrÄąca golang Þzerinde direkt olarak bir file comment sistemi olduğunu gÃķrmÞştÞm. Bu magic comment line ( bazÄą overflow sorularÄąnda bu şekilde hitap etmişler golang compiler yorum satÄąrlarÄąnÄą
    //go: ...
    )
    Bu magic commentler içerisinden direkt olarak fs veya ioutil ile okutmak zorunda kalmadan direkt olarak python gibi kullanabilirsiniz diyordu.
    //go:embed config.yml
    yaml.Marshall()...
    gibisinden bu konuda bir bilginiz var mÄą yani bunun fs için artÄąsÄą eksisi var mÄądÄąr

    • @ahmetikrdg
      @ahmetikrdg  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Go'yu Ãķğrenmeye başladığımda beni en çok şaÅŸÄąrtan Ãķzellik aradığın bir konuyla ilgili istemediğin kadar paketin olmasÄąydÄą 😄 sÃķylediğin konu dil seviyesinde desteklenmiyordur fakat onunla ilgilide paket vardÄąr. o paket aracÄąlığı ile kullanabilirsin