- enterId:145572 Çözüm Yolları ve Bakış Açısı « KOODLA | BLOG

Çözüm Yolları ve Bakış Açısı

Date25 / Nisan / 2009 Author İsa Engiz    Category Genel     Tags YorumlarYorumlar kapalı

Bir sorunla karşılaştığımızda hedefimiz bellidir, bu sorunu en kısa yoldan çözmek. Veya bazen en “akılcı” yoldan çözmek de olabilir eğer en kısa yol makul olarak kabul ettiğimiz sınırlar içerisinde değilse.

bakis-acisi

Sorunumuzu tam olarak belirledikten sonra çözüm için çalışmaya başlarız, tasarladığımız cevapları soruna uygularız ve hedefimize ulaşıp ulaşmadığımızı değerlendiririz.

Ancak çözüm yolları arayışında probleme bakış açımız o kadar önemlidir ki, bazen bakış açımızı değiştirmediğimiz sürece en basit problemlerin bile altından kalkamayabiliriz. Benim yaşadığım ve bu yazıyı da yazmama vesile olan basit bir örnek ile bu duruma bir örnek vermek istiyorum.

Son günlerde üzerinde çalıştığım sunucuya dosya yükleme sınıfını geliştirirken bir problemle karşılaştım. Problem şöyle; kullanıcı, dosyayı yükleyeceği dizinin ismini belirtirken sonuna bir slash “/” işareti koymak zorunda. Koymazsa program çalışmıyor. Slash işaretini kullanmadığı durumda da programın çalışması için basit bir şey yapılabilir:

if(if($hedef[strlen($hedef) - 1] != '/')) {
    //degerin sonuna slash karakteri eklenecek.
} else {
    //program normal olarak çalışacak...
}

$hedef değişkeninin son karakterinin ‘/’ olup olmadığını kontrol edeceğiz, değilse sonuna bir ‘/’ karakteri ekleyeceğiz.

İşte bakış açısı burada devreye giriyor. Başlarken $hedef değişkenini array olarak ele alıp son karakterini kontrol ettim, dolayısıyla devamında $hedef değişkenini devamlı array olarak düşünüp ona göre işlem yapmaya çalıştım. Bir kaç denemeden sonra şöyle bir fonksiyon algoritması tasarladım:

  • fonksiyon, kendisine gelen stringi array yapsın.
  • Daha sonra bu değişkenin sonuna istediğimiz kadar karakteri for döngüsü ile yerleştirelim.
  • Sonunda oluşturduğumuz arrayi stringe dönüştürelim

Probleme bakış açım öylesine sabitti ki, aşağıdaki fonksiyonu yazarak problemi çözmem yaklaşık 1 saat sürdü. Lütfen fonksiyonu dikkatlice inceleyelim:

function _sonaKarakterEkle($yazi, $karakter)
{
	$yazi = str_split($yazi); //string -> array
	for($i == 0; $i<strlen($yazi); $i++) {
		array_push($yazi, $karakter[$i]); //son karakteri ekle
	}
	$yazi = implode('', $yazi); //array -> string
 
	return $yazi;
}

Problemi tekrar hatırlayalım, $hedef değişkeninin sonua bir / karakteri ekleyecektik. Probleme bakış açım beni bu fonksiyonu yazmaya sürükledi.

Ama bundan daha inanılmazı, fonksiyonu yazdıktan sonra daha “basit” bir çözümü hatırlamam ile ortaya çıktı. Problemi çözmek için gereken sadece şu satır idi:

$yazi . $karakter

Sadece ‘.’ (nokta) karakteri ile iki değişken değerini birleştirebilirsiniz, ya da daha açık olursak, iki string değerini sadece nokta ile birleştirebilirsiniz!

Probleme bakış açım öylesine sabitti ki, 1 saate yakın bir süre boyunca aklıma dahi gelmedi! Üstelik o kadar sık kullanmama rağmen…

Kıssadan hisse; bir problem çözümü ile uğraştığınızda (bu problem yazılımla da ilgili olabilir, başka bir konuda da) olabildiğince farklı bakış açılarına sahip olmaya çalışın. Farklı açılardan bakamıyorsanız, biraz ara verin, bir kahve için sonra kafanızı toplayıp tekrar bakın. Yüksek olasılıkla daha kolay bir yol vardır, sadece siz göremiyorsunuzdur…

- Bu blogda yer alan yazıları RSS ile takip edebilirsiniz. RSS aboneliği için tıklayın.

- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!

Bu yazı yorumlara kapalı.

Arama


E-Posta Aboneliği


RSS Aboneliği

En Çok Yorumlanan Yazılar

Etiketler

404 ajax apache arama butonu as astrofizik açık kaynak banner blogger blogger/blogspot Blogger / Blogspot blogspot case chmod css date dosya yükleme editör etiket etkinlik favicon featured form ftp galeri Genel gimp hata sayfası header htaccess htpasswd ilişkisel veritabanı index innodb javascript join JQuery kategori koodla linux mysql opacity php resim url

Son Yorumlar

  • Murat: Güzel bir teknik, şu ana kadar sınırsız alt kategori lazım olmadı ama olmayacağı anlamına gelmiyor :)
  • iilyas: Bu kodlar çalışmıyor arkadaşım. Localde olduğu içinmi acaba ?
  • iilyas: Arkadaşım çok teşekkür ediyorum. Harika anlatmışsın ajaxla çalışmalara başlamak lazım estetik açısından.....
  • Nuri: bende bu şekilde bir çalışma yaptım ancak bir sorunum var ne yaptıysam url den index.php bölümünü kaldıramadım....
  • Kemal: Makale için çok teşekkürler, resimleri div tagları ile yapabilirmiyiz. Bu arada imagelara link verirsek daha...

Sayfalar


Faydalı Bağlantılar