Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Diğer Programlama Dilleri ve Databaseler




GOLang Nedir, Nerede Kullanılır ?

Diğer Programlama Dilleri ve Databaseler

Yeni Konu aç Cevapla
 
Seçenekler
Alt 14-07-2018 12:22   #1
  • AR-GE Tim (Bug.Res.)
  • Üye Bilgileri
Üyelik tarihi
07/2017
Nereden
$ebp
Mesajlar
Konular


  
Post GOLang Nedir, Nerede Kullanılır ?




Eminim ki hepiniz bir şekilde bu dili duymuşsunuzdur. GoLang ( konunun geri kalanında go diye belirteceğim ) 2007 yılında Robert Griesemer, Rob Pike, and Ken Thompson liderliğinde Google tarafından gelişitirilmiş çok amaçlı bir yazılım dilidir.

Burada vurgulamak istediğim şey, dilin geliştirilme tarihi. 2007. Yani multi-core architecturelara çoktan geçtiğimiz dönemler. Goyu Go yapan şey, goroutine denen özel bir tür multi threading aracı. Neyse oraya da geleceğiz.

Öncelikle obligatory hello world'ümüzü paylaşalım:
Kod:
package main
import (
    "fmt"
)
func main() {
    fmt.Println("Hello World!")
}
Şimdi biraz daha detaya girelim.

Şahsi deneyimim olarak, Goyu REST servisleri yazarken kullanıyorum, ki şuan aktif olarak yürttüğüm bir pojenin tüm backendi denebilir. Neden Goyu tercih ettiğimi özetlemem gerekirse, benchmarklarda en optimal sonucu veren kütüphaneler Goya ait. [ Gerçi şuan bakıldığında C h20 ile yok ediyor ortalığı ama ] Saniyede 50.000 isteğe cevap verebilme kapasitesinden bahsediyoruz, overheade sebep olmadan.

Bunun haricinde, Gonun syntaxı C ile hemen hemen aynı, ki Rust gibi C uyumluluğuna da sahip. Hatta go c diye bir komutla c de yazılmış api callarına gidip gelmenizi kolaylaştırmış yazarlar. Tabi ki C dediğimizde, önümüze pointerlar geliyor. Goda da fazlaca kullanıyoruz bu pointerları. Zaten performansının büyük bir kısmını buradan alıyor. Örneğin
Kod:
myVar := *[]collector.BaseModel
gibi. Bu kod, myVar değişkenini içerisinde collector paketinde bulunan basemodel objelerini tutan bir arraye çeviriyor. Ve evet fark edebileceğiniz üzere, syntaxı ters.
Kod:
// Alışık olduğumuz
BaseModel bm [] ;
// Go versiyonu
bm := []BaseModel
Son olarakta channel ve goroutineler ile ilgili bir örnek vereyim:
Kod:
package main
import "fmt"

func f(from string) {
    for i := 0; i < 3; i++ {
        fmt.Println(from, ":", i)
    }
}

func main() {
    f("direct")
    go f("goroutine")
}
Output, Direct 1-2-3 diye genişlerken, go ile yazılmış fonkisyonda, ouput goroutine 1-2-3 diye printlenecek buraya kadar tamamız. Ama, f(direct)i gorouitne den sonra çağırmış olsaydık
goroutine1, direct1-2 gouroutine2 direct3 gibi bir output alacaktık.
Go rutini verilen fonskiyonu alıp izole eder, daha sonra kendisine ait bir threadde çalıştırır. Threat içerisinde sonucu aldıkta channel yardımıyla tekrar çağrıldığı yere döner.


Özetle,  Tobias Lütke'nin de dediği gibi, Go geleceğin server dilidir. Nerde ne zaman kullanayım sorusu ise, eğer hedefiniz aynı anda birden fazla isteği, birden fazla kullanıcı için handle etmekse, performansı önemsiyorsanız (aksini iddia ediyorsanız bu işi zaten bırakın, performansı önemsemeyen şirket/geliştirici yanlış alandadır) ve derlenen bir dil ile uğraşmak istiyorsanız Go sizlik. İstediğiniz gibi kullanabilirsiniz.


Tabii ki performans açısından en iyi demiyorum. Şu aralar benchmark bazında C herkese toz yutturuyor yukarıda da belirttiğim ve beklenen üzere. Ama Rust'ında ondan pek aşağı kalır yanı yok. Burada yapacağınız trade off, sizin için neyin daha önemli olduğudur.


Not: Konuya resim, copy paste metinler & kodlar eklemiyorum, ilginizi çektiyse, dil, küçük bir google araştırması yapın. Amacım sadece dili tanıtmak.
    


___________________________________________


"Emacs > Vim"
(•_•)
( •_•)>⌐■-■
(⌐■_■)

Konu KeyLo99 tarafından (14-07-2018 15:23 Saat 15:23 ) değiştirilmiştir..
 Offline  
 
Alıntı ile Cevapla
Alt 14-07-2018 13:59   #2
  • Yüzbaşı
  • Üye Bilgileri
Üyelik tarihi
05/2018
Nereden
Netherlands
Mesajlar
Konular


  


Elinize Sağlık.
    


___________________________________________

How happy is the one who says I am a Turk
 Offline  
 
Alıntı ile Cevapla
Alt 14-07-2018 14:02   #3
  • Yüzbaşı
  • Üye Bilgileri
Üyelik tarihi
01/2018
Nereden
VideoTasarım
Mesajlar
Konular


  


Elinize SAĞLIK
    


___________________________________________


Milletimiz her güçlük ve zorluk karşısında, durmadan ilerlemekte ve yükselmektedir. Büyük Türk Milletinin bu yoldaki hızını, her vasıtayla arttırmaya çalışmak, bizim hepimizin en kutlu vazifemizdir.
Atatürk
 Offline  
 
Alıntı ile Cevapla
Alt 14-07-2018 14:14   #4
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
07/2017
Mesajlar
Konular


  



Bilmediğimiz bir konuyu daha öğrenmiş olduk
Eline sağlık
    
 Offline  
 
Alıntı ile Cevapla
Alt 14-07-2018 15:22   #5
  • AR-GE Tim Lideri
  • Üye Bilgileri
Üyelik tarihi
10/2015
Nereden
ntdll
Mesajlar
Konular


  


Elinize sağlık
    


___________________________________________

TürkHackTeam | Araştırma - Geliştirme Timi


 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2018

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı



Google+


Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.