• 27-04-2015, 05:31:03
    #1
    Edit:
    Sanırım konuyu yanlış yere açtım server side dillere taşınırsa sevinirim.
    --------------------------------------------

    Merhaba arkadaşlar.

    Yaklaşık 7 yıldır php ile websiteler kodluyorum ve php konusunda iyiyim ama son bikaç yıldır gerçek bi yazılım dili öğrenme konusunda bi'kaç ayda bir gaza gelip bi' dile sarıyor ama kısa zamanda vazgeçiyorum.

    Anladım ki önce c, d vs tarzında geniş kapsamlı bir yazılım dili öğrenip sonra php öğrenseymişim php çerez gibi gelecekmiş ama tersi epey can sıkıcı. 33 yaşındayım ve öğreneceğim bu yeni dil belki de hiçbi işime yaramayacak ama yine de içimde deli bi öğrenme isteği var.

    Yine gaza geldiğim şu son bikaç gün içinde golang'a kafayı fena taktım. go turu yardımı ile dil hakkında epey bilgi sahibi oldum ve sytaxa alışmaya başladım.

    Ama php ile kodlama yaparken düşünmeme hiç gerek olmayan şeyleri go gibi bir dille proje geliştirirken kendim yapmam gerektiğini anladım ve bunu anlamam da anlamadığım biçok şeyi farketmeme sebep oldu.

    Koddan ziyade matık istiyorum. Sanıyorum ki Go bilmese de Python, Ruby vs. dilleri bilenler de mantığı anlama konusunda bana yardımcı olabilir.

    Şöyle bir main.go sayfam var.
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/", homeHandler)
        http.HandleFunc("/blog/", blogHandler)
        http.ListenAndServe(":8080", nil)
    }
    
    func homeHandler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "<html><head></head><body><h1>Ana sayfa</h1></body></html>")
    }
    func blogHandler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "<html><head></head><body><h1>Blog modülü</h1></body></html>")
    }
    Şimdi url
    localhost:8080 şeklinde girilirse ekranda ana sayfa
    localhost:8080/blog/xxx şeklinde girilirse ekranda blog modülü yazısını görüyorum.

    Anlmaya çalıştığım en önemli nokta sanırım şu:
    Şimdi kullanıcı blog modülünde bir makalenin urli ile geldi. url şöyle bi'şey olsun: localhost:8080/blog/view?id=77

    main.go sayfasında urlden gelen ilk parametre blog ise blog modülünün ana sayfası diyebileceğim blog.go sayfasındaki kodları çalıştırmak, sonra da burda htmli yazmak ya da gerekli ise örneğin modules/blog/view.go alt dosyasını da çekip, o dosyadaki kodları çalıştırmak istiyorum.

    Ama main.go'da fonksiyon içinde import işlemi yapamıyorum. Yeni illa sayfanın en üstünde import etmem gerekiyo kullanacağım paketleri. Şimdi ben geniş kapsamlı bir site yapıyosam, örneğin sitede blog, foto galeri, üye paneli, yardım modlülü, account modülü vs gibi birçok modül varsa main.go'da hepsini import edip gelen urle göre sadece bir tanesindeki fonksiyonları kullanmak çok anlamsız gibi geldi.

    Yazı epey uzun oldu ve kafam epey karışık, saat de bu konuda kafa yormak için pek müsait değil ama umarım derdimi anlatabilmişimdir.

    Gorilla vs. herhangi bi web çatısı kullanmak istemiyorum her şeyi kendim yaparak öğrenmek istiyorum. Sonuçta bu dili hemen kullanacağım bi proje düşünmüş falan değilim, amacım sadece öğrenmek.

    Yardımcı olabilecek arkadaşlar varsa temel hatlarıyla en azından mantığı bi anlatabilirse çok sevinirim.

    İyi çalışmalar.
  • 09-05-2015, 06:53:51
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bahsettiğiniz konunun benzeri şurada tartışılmış ve belli koşullar gerçekleşince kullanılmayacak olan kütüphanelerin import edilmesinin endişe edilecek bir konu olmadığı sonucuna varılmış.

    Projeye fazladan kütüphane eklemek derleme süresini uzatabiliyor ancak programın çalışma performansını çok az etkiliyor.