Fatihsoysal.com

Freelance Proje İş Alımı


Merhaba, şu anda anahtar teslim freelance proje iş alımları için uygunum.
Tekliflerinizi buradan yada fatihsoysal@outlook.com e-posta adresi üzerinden benimle paylaşabilirsiniz. Çok kısa bir süre içerisinde tarafınıza geri dönüş sağlanacaktır.

Kategoriler


Organize Bir Web Projesinde Düzenli Yapı Nasıl Kurulmalıdır?

Fatih SoysalFatih Soysal

Her türde organizasyon kodun verimli çalışmasını sağlamak için anahtardır ve bu özellikle web uygulamaları için geçerlidir. Birçok web geliştiricisi, CodeIgniter gibi önceden oluşturulmuş kodlama frameworklerini kullanarak belirli bir yapıya sadık kalırlar ve diğer alanlarda organizasyon sağlayarak  uygulamanın daha hızlı kodlamasına yardımcı olurlar. Bir fremawork ile olsun veya olmasın, web uygulamalarının organize oluşturulmuş yapılara ihtiyacı vardır.

Her geliştirici bir web uygulamasının organizasyonunu nasıl düzenleyeceği konusunda kendi standartlarına sahip olabilir, ancak bu makalede en iyi uygulamaları, yaygın uygulamaları ve bazı web uygulamalarının belirli yönlerinin belirli bir şekilde düzenlenmesinin nedenini daha ayrıntılı olarak ele alacağız. Son olarak, bir uygulama oluştururken organizasyon yapısının neden bu kadar faydalı olabileceğini de inceleyeceğiz.

Dizin Yapısı
1

Projenizi hazırlarken ve çalıştırma aşamasında bir numaralı kriterin birden fazla proje için yeniden kullanabileceğiniz sağlam bir dizin yapısına sahip olmanız olduğunu söyleyebilirim. Bir framework kullanıyorsanız, genellikle sahip olduğunuz hazır bir yapı mevcut olacak, ancak bu senaryoda basit bir site veya uygulama üzerinde çalışıyoruz.

 

Analiz

Muhtemelen public_html yapısını çok iyi biliyorsunuzdur. Bu, tüm genel dosyalarınızın erişildiği belge kök dizinidir. (/public_html/page.php = fatihsoysal.com/page.php anlamına gelir.)

img – Tüm görüntü dosyalarınız, içerik resimleriniz bu dizinde.
css – Tüm css dosyalarınız.
js – Bütün javascript dosyalarınız.
resources dizini, tüm üçüncü parti kütüphaneleri, özel kütüphaneleri, yapılandırmaları ve projenizde bir kaynak görevi gören diğer tüm kodları tutmalıdır.

config.php – Ana yapılandırma dosyası. Site çapında ayarları burada saklamalıyız.
library – Tüm özel ve üçüncü parti kütüphaneleri için merkezi konum burası olmalı.
templates – Düzeni oluşturan, tekrar kullanılabilir bileşenler.

Yapılandırma Dosyası (Config)
Tasarımcılar ve geliştiriciler olarak asıl amacımız olabildiğince kısıtlı zamanda olabildiğinde çok iş yapmaktır. Bu hedefe ulaşmanın bir yolu da yapılandırma dosyalarındadır. Yapılandırma dosyasının nasıl olması gerektiğine dair daha iyi bir fikir edinmek için lütfen aşağıdaki örneği gözden geçirin.

Bu, temel açılır bir yapılandırma dosyasıdır. Çok boyutlu bir dizi, veritabanı kimlik bilgileri gibi çeşitli yapılandırma öğelerine erişmek için esnek bir yapı sağlar.

db – Veritabanınıza ait olan veritabanı kimlik bilgilerini saklayın.
paths – Siteniz için çeşitli kaynaklara yaygın olarak kullanılan yollar. (log dosyaları, upload dizinleri, kaynaklar)
urls – Sitenizde uzak kaynaklara başvururken URL’leri saklamak gerçekten kullanışlı olabilir.
emails – Hataları işlerken veya iletişim formlarında kullanmak için hata ayıklama veya yönetici e-postalarını saklayın.

Birden Fazla Ortam İçin Farklı Yapılandırma Dosyalarını Kullanma
Birden fazla ortam için farklı yapılandırma dosyaları kullanarak mevcut çevreye bağlı olarak ilgili ayarları alabilirsiniz. Bunun anlamı, eğer her bir ortam için farklı veritabanı kimlik bilgileri veya farklı yollar kullanırsanız, ilgili yapılandırma dosyalarını ayarlayarak, kodunuzun canlı yayındaki sitenizi güncellerken güçlük çekmeden çalışmasını sağlayabilirsiniz. Bu ayrıca mevcut çevreye dayalı farklı hata raporlama ayarlarına sahip olmanızı sağlar. Asla canlı yayındaki sitenizde hataları göstermeyin!  Hataları canlı sitede görüntülemek, hassas verileri kullanıcılara gösterebilir (örneğin, şifreler gibi). Bu konuda ayrıntılı bilgi almak isterseniz daha önce yazmış olduğum Güvenli PHP Uygulamaları Oluşturmak İçin Yararlı İpuçları makaleme göz atabilirsiniz.

Tasarım
Yeniden kullanılabilir şablonlar büyük bir tasarruf sağlayıcısıdır. Şablon oluşturmak için harika kütüphaneler (Smarty gibi) vardır ve genellikle tekerleği yeniden icat etmek yerine böyle bir kütüphaneyi kullanmak daha akıllıca olandır. Bu kütüphaneler geliştiricilere oldukça çok işlevsellik sunar (para birimini biçimlendirmek veya e-posta adreslerini gizlemek için yardımcı yöntemler gibi). Ancak örneğimiz basit bir site olduğundan, kütüphaneyi kurmak için zaman ayırmak istemiyoruz bundan dolayı en temel temel şablonları kullanıyor olacağız.

2Sitemizin sayfalarına ortak bölümler veya modüller ekleyerek organize yapıyı tasarım anlamında kurmayı başarabiliriz.

Peki bu bize nasıl bir esnek yapı sunar?

Örneğin, header modülünde bir şey değiştirmek istiyorsanız, genel gezinme bağlantısını ekleme gibi, bu güncelleme tek dosyadan site geneline yayılır.

Bunu örnek bir uygulamada açıklayalım.

header.php

rightPanel.php

footer.php

index.php

Daha İleriye Götürmek

Bu temel şablon sistemi size harika bir başlangıç yaparken sizi daha da ileri götürülebilir. Örneğin, tüm şablon dosyalarını içeren bir sınıf veya fonksiyonlar oluşturabilir, bir içerik dosyasını mizanpaj içinde oluşturulacak argüman olarak kabul edebilirsiniz. Bu şekilde, şablon dosyalarını sitenizin her sayfasına eklemenize gerek yoktur. Size hızlı bir örnek göstereceğim.

/resources/library/templateFunctions.php

index.php

Şablon dizininizde bir içerik şablonu görevi gören home.php adlı bir dosyanız olduğunu varsayıyorum.

home.php

Bu Metodun Avantajları:
Mantık ve görünüşün daha fazla ayrılması (php ve html). Şablon mantığını bir işleve dahil etmek, şablonun sitenizin her sayfasında güncellenmeden nasıl gösterildiğini değiştirmenize olanak tanır.

Semboller
Unix tabanlı sistemler (os x, linux) üzerinde sembolik bağlar olarak adlandırılan ufak bir özellik taşır. (Sembolik Bağlantıları). Simge bağlantıları, dosya sistemindeki gerçek dizinlere veya dosyalara yapılan atıflardır. Birden fazla proje arasında kullanılan bir kitaplık gibi paylaşılan bir kaynağınız olduğunda bu gerçekten harika olur. Sembolik bağlarla yapabileceğiniz birkaç somut şey:

Kaynak dizininizin iki sürümü var. Canlı sunucunuzu güncellerken en son dosyalarınızı keyfi bir dizine yükleyebilirsiniz. Sembolik bağlantınızı, kod tabanımızı anında güncelleyen bu yeni dizine yönlendirin. Bir şeyler ters giderse, anında önceki (çalışan) dizine geri dönebilirsiniz.

Paylaşılan kaynaklar, sembolik bağlarla kolayca yönetilir. Üzerinde üzerinde çalışmakta olduğunuz özel bir kütüphaneniz olduğunu ve bir projede yaptığınız kitaplıktaki güncellemelerin başka bir kütüphanede derhal bulunabileceğini düşünün.

Sembolik Bağları Kullanma
Symlink’ler vs Hardlink’ler

Symlink’ler veya softlinkler, dosya sistemindeki tam yollara referanslar gibi davranırlar. Birden fazla lokasyonda sembolik bağları kullanabilirsiniz ve dosya sistemi, başvuru yaptıkları gerçek dosya veya dizinmiş gibi davranır. Diğer yandan Hardlinkler disk üzerindeki bir dosyaya işaretçilerdir (pencerelerdeki kısayolları düşünün); Sizi dosyanın gerçek konumuna götürürler.

Sembolik bağları kullanırken göz önüne almanız gereken birkaç şey var. Sunucu yapılandırmanızın sembolik bağları izleyecek şekilde ayarlanmış olması gerekir. Apache için bu işlem httpd.conf dosyasında yapılır. Dizin bloğunu bulun ve Options FollowSymLinks‘in orada olduğundan emin olun. Ekleme işlemini yapın ve Apache’yi yeniden başlatın.

Sonuç
Bu ipuçları, yeni başlayanla, basit siteler veya uygulamalar oluşturanlar içindir. İdeal olarak büyük uygulamalar veya siteler için MVC mimarisi ve Nesne Yönlendirmeli programlama gibi daha gelişmiş bir şey düşünmek zorundasınız. Tek başına oldukça geniş bir konu olduğu için kaynak denetimini kapsamamaya karar verdim, ancak bu ipuçları dosyalarınızı daha kolay kaynak denetimi için organize etmenize yardımcı olacak.Tüm projeleriniz için git gibi kaynak denetimi kullanmaya kesinlikle dikkat edin.

Bir sonraki PHP Projenizi başlatırken bu ipuçlarını göz önünde bulunduracağınızı umut eder, buraya kadar okuduğunuz için teşekkürlerimi sunarım.

Kullanım ve kodlama mükemmeliyetini odak alan uygulamalar oluşturma deneyimine sahip, profesyonel olarak 15+ yıl üzeri deneyime sahip bir yazılım mühendisi.

    Subscribe
    Bildir
    guest

    0 Yorum
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x