Php ve Go





Go Hakkında Genel Bilgi

Go’nun 28 Mart 2012’de versiyon 1.0’ı yayınlanmıştır ancak bundan önce 2009 yılında production ortamında kullanılmaya başlanmıştır.
Ken Thompson, Rob Pike ve Robert Griesiemer tarafından Google çatısı altında geliştirilmiştir.
Unix işletim sistemi, C programlama dili ve UTF 8’i tasarlayan kişilerdir.
Tamamen açık kaynaktır. Go
Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD ve Windows ortamlarında çalıştırılabilir.



Kod:
package main

import "fmt"

func main() {
fmt.Println("Merhaba")
}


Nesne Tabanlı veya Fonksiyonel Programlama

PHP
PHP nesne tabanlı bir dil olup Class’lar ile kalıtım vardır.


Kod:
 setMarka($marka);
        $this->setPlaka($plaka);
    }

    public function arabaBilgileriniGoster() {
        echo 'Araba Markası:'.$this->marka."
Araba Plakası:".$this->plaka;
    }

    private function setMarka($marka) {
        $this->marka = $marka;
    }

    private function setPlaka($plaka) {
        $this->plaka = $plaka;
    }
}

$araba1 = new Araba("Mercedes","06 THT 06");
$araba1->arabaBilgileriniGoster();
echo "
";
$araba2 = new Araba("Porche","42 THT 42");
$araba2->arabaBilgileriniGoster();

?>


Go
Go’da nesne tabanlı değil, fonksiyonel programlama kültürü vardır.
 Class ve kalıtımdan ziyade, Struct ve Interface vardır.


Kod:
package main

import (
"fmt"
)

type Araba struct {
marka string
plaka string
}

func ArabaBilgileri(araba Araba) (string, string) {
return araba.marka, araba.plaka
}
func (araba *Araba) setMarka(yeniMarka string) {
araba.marka = yeniMarka
}
func (araba *Araba) setPlaka(yeniPlaka string) {
araba.plaka = yeniPlaka
}
func main() {
metcedesAraba := Araba{
  marka: "Mercedes",
  plaka: "06 THT 06",
}
porcheAraba := Araba{
  marka: "Porche",
  plaka: "42 THT 42",
}

model, plaka := ArabaBilgileri(mercedesAraba)
fmt.Printf("%s %s \n", model, plaka)

porcheAraba.setPlaka("42 THT 042")
porcheAraba.setMarka("Turkiye")
model, plaka = ArabaBilgileri(porcheAraba)
fmt.Printf("%s %s \n", model, plaka)


Paket Yönetimi, Kod Yapısı, Framework

PHP
PHP’nin bünyesinde hazır bir paket yöneticisi yoktur, Composer kullanılır.
Kodlar paternlere uygun olarak yazılabildiği gibi, onlarca HTML dosyasının içine serpiştirilebilir.
Büyük projeler için MVC mantığı ile çalışan Framework’ler (Laravel, Symfony, WordPress) tercih edilir veya ek paketlerle sıfırdan Framework yazılır.
Routing, template gibi önemli özellikler ancak ek paketlerle kazandırılır.


Go
Go’nun kendi paket yöneticisi vardır ve kullanılmak istenen paketler “go get …” komutu ile kolaylıkla kurulabilir. Go Modules ile de tüm bağımlılıklar rahatlıkla yönetilebilir.
Düzensiz kod yazmaya müsade etmez. Özellikle fmt paketi kodun otomatik olarak uygun şeklde dönüştürülmesini sağlar.
Boşluk (Space) yerine Tab kullanılır.
Kendi routing özelliği (net/http) ve template sistemi vardır.
Routing ve template sistemi sayesinde herhangi bir framework kullanmadan da oldukça sağlam ve stabil projeler üretilebilir.


 
Son düzenleme:

kst132

Junior Hunter
12 Haz 2023
923
555




Go Hakkında Genel Bilgi

Go’nun 28 Mart 2012’de versiyon 1.0’ı yayınlanmıştır ancak bundan önce 2009 yılında production ortamında kullanılmaya başlanmıştır.
Ken Thompson, Rob Pike ve Robert Griesiemer tarafından Google çatısı altında geliştirilmiştir.
Unix işletim sistemi, C programlama dili ve UTF 8’i tasarlayan kişilerdir.
Tamamen açık kaynaktır. Go
Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD ve Windows ortamlarında çalıştırılabilir.



Kod:
package main

import "fmt"

func main() {
fmt.Println("Hello World")
}


Nesne Tabanlı veya Fonksiyonel Programlama

PHP
PHP nesne tabanlı bir dil olup Class’lar ile kalıtım vardır.


Kod:
 setMarka($marka);
        $this->setPlaka($plaka);
    }

    public function arabaBilgileriniGoster() {
        echo 'Araba Markası:'.$this->marka."
Araba Plakası:".$this->plaka;
    }

    private function setMarka($marka) {
        $this->marka = $marka;
    }

    private function setPlaka($plaka) {
        $this->plaka = $plaka;
    }
}

$araba1 = new Araba("Mercedes","06 THT 06");
$araba1->arabaBilgileriniGoster();
echo "
";
$araba2 = new Araba("Porche","42 THT 42");
$araba2->arabaBilgileriniGoster();

?>


Go
Go’da nesne tabanlı değil, fonksiyonel programlama kültürü vardır.
 Class ve kalıtımdan ziyade, Struct ve Interface vardır.


Kod:
package main

import (
"fmt"
)

type Araba struct {
marka string
plaka string
}

func ArabaBilgileri(araba Araba) (string, string) {
return araba.marka, araba.plaka
}
func (araba *Araba) setMarka(yeniMarka string) {
araba.marka = yeniMarka
}
func (araba *Araba) setPlaka(yeniPlaka string) {
araba.plaka = yeniPlaka
}
func main() {
metcedesAraba := Araba{
  marka: "Mercedes",
  plaka: "06 THT 06",
}
porcheAraba := Araba{
  marka: "Porche",
  plaka: "42 THT 42",
}

model, plaka := ArabaBilgileri(mercedesAraba)
fmt.Printf("%s %s \n", model, plaka)

porcheAraba.setPlaka("42 THT 042")
porcheAraba.setMarka("Turkiye")
model, plaka = ArabaBilgileri(porcheAraba)
fmt.Printf("%s %s \n", model, plaka)


Paket Yönetimi, Kod Yapısı, Framework

PHP
PHP’nin bünyesinde hazır bir paket yöneticisi yoktur, Composer kullanılır.
Kodlar paternlere uygun olarak yazılabildiği gibi, onlarca HTML dosyasının içine serpiştirilebilir.
Büyük projeler için MVC mantığı ile çalışan Framework’ler (Laravel, Symfony, WordPress) tercih edilir veya ek paketlerle sıfırdan Framework yazılır.
Routing, template gibi önemli özellikler ancak ek paketlerle kazandırılır.


Go
Go’nun kendi paket yöneticisi vardır ve kullanılmak istenen paketler “go get …” komutu ile kolaylıkla kurulabilir. Go Modules ile de tüm bağımlılıklar rahatlıkla yönetilebilir.
Düzensiz kod yazmaya müsade etmez. Özellikle fmt paketi kodun otomatik olarak uygun şeklde dönüştürülmesini sağlar.
Boşluk (Space) yerine Tab kullanılır.
Kendi routing özelliği (net/http) ve template sistemi vardır.
Routing ve template sistemi sayesinde herhangi bir framework kullanmadan da oldukça sağlam ve stabil projeler üretilebilir.


Ellerine sağlık güzel bir konu olmuş.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. 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.