Bir ürünü baştan sona geliştirmekte zorlanıyorum. Bu zorluğu nasıl aşabilirim?

Bu durumun iki nedeninin olabileceğini düşünüyorum. Birincisi, öğrenmek istenilen çok şey olması ve bu sebeple bir türlü tek bir projeye odaklanamamak durumu… İkincisi de tecrübe eksikliği

Cevaplamaya en zoru ile başlayayım; tek bir projeye odaklanamamak durumu

Tecrübe eksikliğini gidermek için…

You can find the height and width values of an orthographic camera using the way shown below.

public class CameraManager : MonoBehaviour {
public Camera MainCamera;
void Start ()
{
float height = 2f * MainCamera.orthographicSize;
float width = height * MainCamera.aspect;
Debug.Log("Height = " + height + " / Width = " + width);
}

}

Singleton’ı şu iki maddede özetleyebiliriz.

  1. Bir sınıfın bir örneği olacağını garanti eder.
  2. Bu sınıfı global bir erişim noktası yapar.

Bir design pattern’ı kullanmadan önce onun zayıf yanlarını iyi bilmek gerek. Profesyonel hayatta, her yanından Singleton fışkıran kodlara gülündüğüne bir çok kez şahit oldum. Bu kahkahaların sebebini araştırırken okuduğum ve içlerinden…

Unity3D’de Nesneleri yaratmanın ve öldürmenin yükü bir hayli ağır. Saniyede yüzlerce nesneye bellekte yer açıp, sonra o nesneleri bellekten tekrar silmek, performans penceresinden bakıldığında pek de hoş karşılanmayabilir. Eğer nesne yaratma ve silme işlemini çok sık yapıyorsak, Nesne Havuzu(Object pool) işte tam da burada yardımınıza koşuyor.

Senaryo

Bir silah nesnesimiz…

Robert C. Martin’in Functional Programming mi, Object Oriented Programming mi sorusuna iyimser ve birleştirici bir yaklaşım sunduğu bu makalesini tavsiye ediyorum. Ben yalnızca okurken altını çizdiğim yerleri sizinle paylaşacağım.

İyi bir fonksiyonel programlama nesne yönelimli olmalıdır. İyi bir nesne yönelimli programlama, fonksiyonel olmalıdır.

Çok biçimlilik(polymorphism) olmadan nesne yönelimli programlama olmaz.

Sınıfımıza, onun yapısını bozmadan yeni bir fonksiyonellik kazandırmak istiyoruz. Bu problemi nasıl çözeceğimize dair iki örneğim var; birincisi, bahsi geçen sınıftan alt sınıflar türeterek ona yeni fonksiyonellikler kazandırmak, ikincisi ise Decoreator Design Pattern kullanmak. Bu yazıda ikinci çözümü açıklayacağım.

Decorator Design Pattern, giriş paragrafında da bahsettiğimiz gibi, bir sınıftan alt…

Biz yazılım geliştiriciler için hafıza yönetimi, üzerinde itinayla durulması gereken bir konu. Hafızayı yönetebilmek için de onun temellerine inmek gerek. .Net’te hafıza yönetimine dair bir çok yazı okudum, ancak bunlar arasında en çok John Skeet’in Memory in .NET yazısını beğendim. Bu yazıyı dilim döndüğünce, Türkçe’ye kazandırmak istedim. Buyrunuz efendim. :)

Memory in .NET — what goes where (John Skeet)

Eğer yazdığımız modülleri yeni projelerimizde kullanabiliyorsak, doğru yoldayız. Tekrar kullanılabilirlik biz yazılımcılar için çok önemli.

Unity3D ile geliştirdiğim projelerimde, oyun verilerimi yerel diske kaydedip okurken, json tabanlı bir sistem kullanıyorum. Fakat bu güne kadar, bu sistemin en önemli kısmını kolayca tekrar kullanılabilir hale getirmediğimi fark ettim. Önce utancımı yaşadım, sonra…

Halil Coşgun

Game Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store