Re: [golang-tr] PHP den Go'ya!

166 views
Skip to first unread message

mert çalışkan

unread,
Sep 27, 2023, 7:45:23 AM9/27/23
to gola...@googlegroups.com
merhaba ben golang  mux ile güclü api'lar geliştirmişliğim olmuştu , mux kullanımı daha kolaydır başlangıç için tavsiye ederim.

Volkan GÜRGÖR <gurgor....@gmail.com>, 27 Eyl 2023 Çar, 14:35 tarihinde şunu yazdı:
Merhabalar,

Yazılım mühendisi olarak 6 yıldır devam eden php developer profesyonel sürecime artık Golang ile devam etmek istiyorum. PHP laravel ve diğer frameworkler ile düzenli web projeleri ve API'ler üretmeye yardımcı oluyordu. Ama yetmediği yerler artık göze batmaya başladı. Golang güncel ve  fazla övülen bir dil olması nedeniyle hedefimde. Dilin temelini incelediğimde gayet güzel gözüküyor ama büyük bir proje için nereden devam etmeliyim emin değilim. Medium ve diğer platfromlarda frameworkler için çeşitli yazılar var ama hangisinden seçim yapacağım konusunda kararsızım. PHP geçmişimi göz önünde bulundurunca sizce büyük bir proje için Golang ile hangi frameworkü kullanmalıyım? 

Önerilerinizi bekliyorum

Saygılarımla

--
Bu iletiyi Google Grupları'ndaki "Golang Türkiye" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için golang-tr+...@googlegroups.com adresine e-posta gönderin.
Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/golang-tr/9cc3d3a4-4d86-498d-a8fc-e91340310691n%40googlegroups.com adresini ziyaret edin.

selam

unread,
Sep 28, 2023, 2:23:17 AM9/28/23
to gola...@googlegroups.com
Merhaba,

öncelikle her hangi bir şey için kaynak olarak medium'dan uzak dur,
para kazanmak isteyenlerin otomatik yazı yayınladıkları bir yer
bilgiden çok çöplük var, burası gibi mail listeleri, irc kanalları
(gerçi discord'a kaydı çoğu ama neyse), hackernews, slashdot, man
sayfaları vb. yerleri kaynak olarak kullan.

Php'nin yetmediği yerlerde go yerine python'ı tercih etsen daha iyi
olur, hem kullanması kolay hemde php mantığına yakın, en azından php
gibi izole bir çalışma biçimi yerine süreçler arası kaynak paylaşımına
dair biraz tecrübe edinirsin, veri yapıları, algoritmaları
hatırlarsın, bakımı kolay, birilerini bulmak yardım almak kolay iş
bulmak kolay, proje geliştirmek kolay. eğer php'de yaptığın gibi web
servisleri yazayım diye yola çıkarsan GO ile GET/POST'la iş yapan
script elemanı gibi bişi olursun, ne memory yönetimini,, ne işlemciyi,
ne mimariyi, ne veri yapılarını ne algoritmaları öğrenemezsin
ihtiyacın olmaz çünkü, hatta çoğu zaman db'ye bile ihtiyacın yokken
eski alışkanlıkların nedeni ile yine bir db'ye bağlanma ihtiyacı
hissedersin, e elde ettiğin kazancı az önce network'de yedin zaten, ne
anlamı kaldı ki?

Hiç bir büyük projeye bilmediğin bir dil/platform ile girişme kendi
kişisel işlerin için uğraş tabii ama bilmediğin tecrübenin olmadığı
dil/platform kullanman kovulma sebebi, evet makaleler çok güzel, iki
satırla off dünya oynuyor ama o makalelerde context switch'in neye mal
olduğu, gc'nin maliyeti, scheduler'ın kendi açısından adil
davranmasının neye mal olabileceği konularına değinilmiyor, 10 satır
kod, iki ekran görüntüsü üff ne güzel işler yaptık deniyor, inanma
bunlara.

Büyük bir projeye ancak ve ancak en iyi bildiğin dil ve platform'la
başlamalısın, belki iş için doğrusu bu değil ama senin için en doğrusu
bu aksi halde yukarıdaki konuların daha yanına gelmeden tosyalacağın
çok yer var (data race bunlardan biri mesela) hatta direk GC'nin
olağan davranışlarına bile anlam veremezsin.

bu konulara aşinalığın artsın, php gibi başla/bitir gibi bir dil
değilde çalış ve ben kapatıncaya kadar da çalışmaya devam et diye
çalışan her hangi bir dil ile biraz memory biraz veri yapıları tecrübe
et kurcala sonra çok fazla trafik almayan ufak tefek app'ler
hazırlayıp ortama alış. sonra büyük projelere girersin.

laravel/symfony veya herhangi bir dildeki herhangi bir framework
genel olarak bir çok sorunu senden gizler kendi içinde çözer geçer,
kullanıcı o soruna kendi projesi içinde denk gelemez yada gelse bile
milyonda bir olasılık yaa diye düşünür, sen o sorunlara takıldığında
çözümüde kolay kolay bulamazsın ve bazen sorun o framework'ler,
kütüphanelerdir zaten. sen framework'mü öğreneceksin dil'mi
öğreneceksin buna karar vermen lazım, herhangi dili öğrenmek
print("merhaba dünya!") değil. eğer öyle olsaydı yüzlerce dil
biliyorum diyebilirdim :) go get hebelüp import hebelüp o ne güzel
dünya diye bir şey yok.

Dil öğreneceksen bir framework üzerinden değil, mümkün olduğunca
standart kütüphane dışına çıkmadan öğrenmelisin, sonuçta o
frameworkleri yapanlarda o dili kullanarak yaptılar bu işleri değil
mi? üff ne biçim hızlı, off ne performanslı falan, onların ürünlerini
kullanarak o framework'ü geliştirenler kadar bilgi sahibi olamazsın. o
kadar bilgi sahibi olamazsan da o framework'lerin sana
sağladıklarından tam anlamı ile faydalamazsın.

cache mi lazım, kendin yaz, database'mi lazım, kendin yaz, kullan
sıkıntısını çek düzelt böylece dili öğren.

Dünyanın en yüksek trafik alan sitelerinin bazıları halen php ve
canavar gibi çalışıyorlar. yetmemesi bir yerde yukarıdaki konulara
uzak kalmış olman.













On Wed, Sep 27, 2023 at 2:35 PM Volkan GÜRGÖR <gurgor....@gmail.com> wrote:
>
> Merhabalar,
>
> Yazılım mühendisi olarak 6 yıldır devam eden php developer profesyonel sürecime artık Golang ile devam etmek istiyorum. PHP laravel ve diğer frameworkler ile düzenli web projeleri ve API'ler üretmeye yardımcı oluyordu. Ama yetmediği yerler artık göze batmaya başladı. Golang güncel ve fazla övülen bir dil olması nedeniyle hedefimde. Dilin temelini incelediğimde gayet güzel gözüküyor ama büyük bir proje için nereden devam etmeliyim emin değilim. Medium ve diğer platfromlarda frameworkler için çeşitli yazılar var ama hangisinden seçim yapacağım konusunda kararsızım. PHP geçmişimi göz önünde bulundurunca sizce büyük bir proje için Golang ile hangi frameworkü kullanmalıyım?
>
> Önerilerinizi bekliyorum
>
> Saygılarımla
>
> --
> Bu iletiyi Google Grupları'ndaki "Golang Türkiye" grubuna abone olduğunuz için aldınız.
> Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için golang-tr+...@googlegroups.com adresine e-posta gönderin.
> Bu tartışmayı web'de görüntülemek için https://groups.google.com/d/msgid/golang-tr/9cc3d3a4-4d86-498d-a8fc-e91340310691n%40googlegroups.com adresini ziyaret edin.



--
Saygılar && İyi Çalışmalar
Timu EREN ( a.k.a selam )

Özmüzik Plakçılık

unread,
Sep 28, 2023, 3:51:50 AM9/28/23
to gola...@googlegroups.com
Merhaba ,
Piyasadan uzak olduğum için değerlendirmem daha çok teorik çerçeve üzerinden olacaktır.

PHP ve Go lang arasındaki en önemli fark monolith yapı ile micro-service arasındaki fark ile açıklanabilir olduğunu düşünüyorum.  Buna kanıt olarak PHP nin oluşturulduğu yıllarda micro-service mimarisinin henüz yaygın olmadığını verebilirim.

Bu açıdan ele aldığında Go lang'in bir framework ile kullanılması micro-service mantığı açısından çelişik bir durum oluşturur.
Ayrıca Go lang'ta "functions are first citizens" mottosu önemlidir . Bunu biraz açarsak  Go-lang  OOP (object oriented programming) yerine functional programming  yaklaşımı üzerine  kuruludur. Bu açıdan herhangi bir  framework'un üç temel özelliği "inheritance - encapsulation  - polymorphism"   go-lang için kullanışlı özellikler değildir.

PHP dili temelde özellikle dinamik html üretimi üzerine  kurulu olduğundan bu HTML'in üretilmesinde MVC ( Model - View - Controller) genellikle framework'ler üzerinden en çok tercih edilen pattern dir. 
Buna karşılık Go-lang çoğunlukla backend kısmı için kullanılır. HTML üretimi için gömülü HTML template parser'ı bulunsa da , front-end'in react , angular vb nodejs framework'lerine bırakılması micro-service mimarisi tarafından daha tercih edilen bir yöntemdir. 

Micro-service mimarisinin yanlızca bir kod yazma biçimi olmayıp  Kafka   , dağıtık veri tabanı , docker , kubernetes , traefik gibi araçların bir arada kullanılmasını sağlayan bir mimari olduğunu hatırınızda tutmanız önemlidir.

Özetlersek  
 Eğer framework ile çalışıyorsanız muhtemelen ya küçük bir ekiptesinizdir ya da tek başınıza çalışmaktasınızdır. Go-lang'a geçiş yapmayı düşünüyorsanız , verimlilik - üretkenlik gibi konuların yanı sıra bilgi açısından konfor alanınızdan çıkmayı göze almanız ve bunun bedelini iyi hesaplamanız gerekir.
Saygılarımla
Osman Çorluk



Volkan GÜRGÖR <gurgor....@gmail.com>, 27 Eyl 2023 Çar, 14:35 tarihinde şunu yazdı:
Merhabalar,
Reply all
Reply to author
Forward
0 new messages