Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Herkese selam ,

Bir soru sormak istiyorum özellikle tecrübesi olan kişilere ben bu ara acaba framework kullanmak yerine 0 dan yaza yaza gitsem çok daha mı eğitici/öğretici olur diye düşünmeye başladım.İllaki ortaya tam çalışan bir şey koymak değil amacım.Belki daha tecrübeliler ne dediğimi anlayamaz demek istediğim şu siz örnek olarak frameworkler yaygın değil yada yok iken mecburen kendi yapınızı mı kuruyordunuz ? Yani bu durum insan için çok eğitici ve geliştirici olmaz mı ? sanki Laravel bunu yok ediyor gibi geliyor bana.Ben bir tasarım deseni kullanma ihtiyacı hissetmiyorum yazılım yazarken bunun nedeni nedir neyi yanlış yapıyorum ?

Yani ihtiyacım olan her şeyi vermiş bana bu durum hız için çok önemli buna asla lafım yok fakat ben bilgisayar müh okuyan 1.sınıf bir öğrenciyim acelem yok ve derdim Laravelden ziyade PHP & Desenler .Yetiştirmem gereken bir yazılımda yok henüz bu işte çalışmadığım için yani benim aslında uğraşacağım ve beni gerçekten geliştirebilecek işleri Laravel'in fonksiyonları yada yapılarının kolayca şaak diye halletmesi sanki önümü kesiyor yanlış mı düşünüyorum ?

Ben uzun zamandır static methodları kullanıyordum mesela en basit bir user modelinde User::find() derken buradaki find() bir static method.Ya ben 3 aydır bunu kullanıyormuşum ama bana static method içeren bir class yaz deselerdi sıkıntı yaşardım laravel'i salıp php ye odaklanmasaydım şu son zamanlarda.Ayrıyetten yapılar sayesinde bir methodda arkada neler neler oluyorda farkında olmuyoruz yani zaten istenen gelmiş arkada döneni kim ne yapsın.Ya şimdi bu durum ezber değil midir bu durumda olan bir sürü yazılımcıda vardır eminin Laravel'e balıklama daldıkları için yada bu bir sorun değil mi önemli olan amaç mı yani veri geldiyse tamam methodun özelliğini bilmesemde olur mu ??

Laravel zaten sana bir çerçeve veriyor bunu böyle şunu şöyle yap diyor fakat bu durum sanki php yi iyi öğrenmenin önüne geçiyor gibi geliyor.Sana hazır fonksiyonlar veriyor o fonksiyonların içi asıl önemli olan değil mi ? Tamam o fonksiyonlar amacını yerine getiriyor bunda sorun yok ama php yi giriş seviyesi ile öğrenip Laravel'e geçince sanki bir tık yanlış gibi hissetirdi siz ne düşünüyorsunuz ?

Ben kolaylık düşmanı değilim ama sanki bana bu Framework'ün sunduğu kolaylıkları önceden zor yolla yırtınarak halletmem gerekiyordu gibi bir his var içimde sanki Laravel sayesinde emeklemekten kan ter içinde kalmadan koşuyoruz gibi geliyor ve bu hiç içime sinmiyor.

Yada 2 komutla login & register page yapılıyor tamam bunlar çalışıyorda bunu 0 dan inşa etmiceksem kendime yazılımcı diyebilir miyim ya ? Tamam buda zaman kazandırıyor ama sanki arada ince bir çizgi var ve çizginin diğer tarafında geliştiriciden ziyade sanki eline yazılım üretici kumanda verilmiş bir kişi oluyorsun ve tuşlara tıkladıkça ortaya yazılım çıkıyor sende aaa ben yapıyorum bu işi diyip kendini kandırıyorsun.

Framework'ün sunduğu kolaylıkları önceden zor yolla yırtınarak halletmem gerekiyordu

Burda kastımda bu işi uzun süredir yapanlar anlar herhalde zamanında çok uğraşıp zorlandığınız şeyleri şuan da tabii yerine daha kolay pratik yapılar geçtiği için çok daha rahat yapıyorsunuz.Fakat sizi deneyimli, hızlı sorun çözücü, eğer beğenmesse kullandığı şeyin derinine inerek onu customize edebilmek gibi özellikleri katanda şu eskiden uğraşıp zorlanmalarınız, çileleriniz değil mi yahu ?

Bu erken yaşta çok mu geri kafalılık ediyorum , saçmalıyor muyum tamda emin değilim ama içimde böyle bir düşünce var etrafımda sorabileceğim kimse olmadığı içinde buraya yazdım fikirlerinizi belirtirseniz en azından saçmalıyorsam anlayayım da bu düşüncem çürürsün 😀 .

    • mgsmus

      Seviye 1383
    • Düzenlendi

    ilhan_ersoy Framework kullanmanın amacı işi halletmek, öğrenmek değil. O yüzden yapmanız gereken bir dili öğrenmekten de öte, genel olarak programlama ve yazılım teknolojilerini öğrenmek. Ben 2012'ye kadar framework kullanmıyordum, kendi oluşturduğum kütüphanelerim vardı onları kullanıyordum, sonra CodeIgniter, Kohana, CakePHP, Yii, FuelPHP derken Symfony ve Laravel arasında seçim yapma durumuna geldim ve Laravel'i seçtim. Seçim yapmamın sebebi o zamanlar kendi işletmem vardı ve bu işi ticari olarak yapıyordum, hızlanmam ve bir düzene geçmem gerekiyordu.

    Framework'ü öğrenmek için değil de bir şeyleri hızlıca ortaya çıkarmak, ticari amaçlı vs kullanıyorsanız sıkıntı yok amacı o zaten ama açık kaynaklı bir framework'ün girip kaynak kodlarına bakmıyorsanız hata yapıyorsunuz demektir.

    User::find() static bir method değil sadece static bir çağırım. find yöntemi Builder içinde normal bir yöntemdir fakat __call/__callStatic kullanıldığı için static çağırımda kullanılan yöntem isminden normal, static olmayan yönteme ulaşılmaktadır:

    /**
     * Dynamically handle calls into the query instance.
     *
     * @param  string  $method
     * @param  array  $parameters
     * @return mixed
     */
    public function __call($method, $parameters)
    {
        if ($method === 'macro') {
            $this->localMacros[$parameters[0]] = $parameters[1];
    
            return;
        }
    
        if ($this->hasMacro($method)) {
            array_unshift($parameters, $this);
    
            return $this->localMacros[$method](...$parameters);
        }
    
        if (static::hasGlobalMacro($method)) {
            $callable = static::$macros[$method];
    
            if ($callable instanceof Closure) {
                $callable = $callable->bindTo($this, static::class);
            }
    
            return $callable(...$parameters);
        }
    
        if ($this->hasNamedScope($method)) {
            return $this->callNamedScope($method, $parameters);
        }
    
        if (in_array($method, $this->passthru)) {
            return $this->toBase()->{$method}(...$parameters);
        }
    
        $this->forwardCallTo($this->query, $method, $parameters);
    
        return $this;
    }
    /**
     * Find a model by its primary key.
     *
     * @param  mixed  $id
     * @param  array  $columns
     * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null
     */
    public function find($id, $columns = ['*'])
    {
        if (is_array($id) || $id instanceof Arrayable) {
            return $this->findMany($id, $columns);
        }
    
        return $this->whereKey($id)->first($columns);
    }

    Bu forumdaki arkadaşların ne büyük hatası Laravel'i büyülü bir kara kutu olarak görmesi. "Müthiş bir şey nasıl yapıyor bunu?" gibi bir düşünceye kapılıyorlar. Halbuki kaynak kodu açık, orada nasıl yaptığı kabak gibi ortada...

      mgsmus Sifirdan yazmaktan ziyade kaynagina girip dikdiklemem lazim sanirim.Dediklerinizden onu anladim yanitiniz icin tesekkurler..

      mgsmus programlama ve yazılım teknolojilerini

      Birde hocam burda kastiniz oop ile tasarim desenleri mi ?

        ilhan_ersoy OOP ve tasarım desenleri değil, her dilde olan şeyler değil bunlar. Anlatmak istediğim olaya sadece dil olarak değil daha dışarıdan, genel bakmanız. Bir yazılım nasıl kurgulanır, nasıl başlanır, nasıl servis edilir, bilgisayar-internet ve diğer alakalı teknolojiler nasıl çalışır gibi konular. Bir balığın peşinden koşmayın, balık tutmayı öğrenin.