oguzhantasci.com

Taşındık efendim. Buralar güzeldi hoştu lakin daha güzelleşecek bir yere geçtik.

Sizi şu adrese alalım:

http://oguzhantasci.com

Advertisements

NODE.JS Installation and First Project

Firstly Node.js powerful javascript version for servers. Node.js is used Google’s V8 javascript engine. If you want learn more information for node.js, you can use this link.

Installation

First we use this link for node.js setup.

0

Second we use terminal/cmd my computer is used unix system. Maybe, other platforms have a different rules. I write for unix/linux system. We will create project folder this code:

“mkdir computerLogWebPage”

1

Then we go to project folder and write this folder for express framework:

sudo npm install -g express2

Express is a framework for node.js. More information is here.

And we should install express-generator with this code:

sudo npm install -g express-generator

3

and we create express project with this code:

express blog

4

Then go to blog folder and write this code:

npm install” 

This code is installed what we need.

5

Third we should fix index.js and add this code:

“router.get(‘/blog’, function(req, res) {
res.render(‘blog’, { title: ‘Computer Log’ });
});”

 6

Then we create blog.jade file like this picture:

Screen Shot 2014-09-02 at 22.54.21

Jade like HTML.

Last we start project on localhost.

Go to terminale and write “npm start

Screen Shot 2014-09-02 at 23.23.05

And open browser go to http://localhost:3000/blog

Screen Shot 2014-09-02 at 22.54.45

Lazy Load

Objects when needed, loading on runtime.

Lazy Load tüm nesneleri yüklemek yerine nesne ile kullanıcının etkileşimi gerçekleştiği zaman yüklenmesi işlemine verilen isimdir.

Lazy Load bir trigger(tetikleyici) yapıya ihtiyaç duyar.

Lazy Load belli bir tetik noktasını bulduğu zaman sayfanın belli bir kısmını daha yükleyecektir. Bu sayede sayfa yüklenmesinde performans sağlanmış olur.

Aynı zamanda gereksiz sunucu trafiğini de azaltacaktır.

 

SOLID(Object-Oriented Design)

Screen Shot 2014-08-18 at 11.50.25

 

– Single Responsibility Principle (Tek Sorumluluk)

Temel olarak anlamı bir nesne ya da sınıfı değiştirmek için birden fazla neden olmamalıdır. Yazılım içinde yer alan her yapının tek bir görevi olmalıdır da denilebilir. Başka bir deyişle her bir yazılım elemanına düşen yük eşit olmalıdır.

SRP esneklik, güncelleme ve yenileme maliyetini düşürme, tekrar kullanılabilirlik ve daha okunur, daha verimli bir yapı için tercih edilir.

-Open-Closed Principle

Yazılımı oluşturan birimler geliştirilmeye açık, kod değiştirmeye kapalı olmalıdır. Yani yeni ek özellikler için kod değiştirilmemeli anlamındadır.

OCP esneklik kazandırır, yeniden kullanılabilirlik sağlar ve yazılımcı için zamandan tasarruf demektir.

-Liscov Substitution Principle

Alt sınıfların üst sınıfların birbirleri ile uyumlu olması durumudur. Başka bir deyişle alt sınıflar üst sınıflar gibi kullanılabilmelidir.

-Interface Segregation Principle

Alt sınıfların yalnızca ihtiyaçları olan arayüzleri kullanması ve ya alt sınıfların ihtiyaçları olan arayüzlere(interface) ait metodlardan ihtiyaç fazlası olanların kullandırılmaya zorlanmamasıdır. Kısaca bir arayüze tek bir sorumluluk yüklenmelidir.

ISP yüksek uyum az bağlantı ve verimlilik, okunabilirlik sağlar.

-Dependency Inversion Principle

Sistem üzerindeki yapıların bağımlılıklarını soyut sınıf ve yapılar ilke azaltmak anlamındadır. Yeniden kullanılabilirlik için uygulanır.

Django Installation and First Project

First of all, django powerful framework for python on web. Sometimes django structures is complex and I need to remember rules. For this I decided write blogpost.

First we should be install some package for linux I used debian for this and my download command for debian.

sudo apt-get install python-dev

sudo apt-get install python-virtualenv

sudo apt-get install vim

I am using text editor vim. If you don’t enjoy vim, you should gedit, sublimetext or atom editor.

Virtualenv is used for reserve a space. This method create area like virtual machine.

 

Second we go to system files. Then “cd opt” and write this command:

1

virtualenv ProjectName

 

3

 

Then we cd ProjectName and download django. For this we used “pip install Django==1.6.5”

4

5

 

Control django installation

1- open python shell

2- >>> import django

3->>>django.get_version()

6

Create django project

1- django-admin.py startproject FirstProject

2- cd FirstProject

3-python manage.py runserver

7

Control project

1- open browser

2-localhost:8000

8

Kalıtım

Kalıtımın temeli yazdığımız kodların tekrar kullanılıp kod tasarrufu sağlamamızdır.

Kalıtım türetilen sınıfın kullanılması anlamına gelir.

 

Super Class Kavramı: Özelliklerin devralındığı sınıftır.

Sub Class Kavramı: Özellikleri devralan sınıftır. Türetilen sınıf olarakta düşünülebilir.

Tüm sınıfların super classı Object sınıfıdır.

Kısacası bir sınıfın özelliklerini bir hiyerarşi çerçevesinde alt sınıflar da kullanabilmeye kalıtım denir.

Kalıtım konusunda dikkat edilmesi gereken konu tüm sub classlar bir super classtan üretilir.

RESİM1

 

RESİM2

 

Javada ki tüm sınıflar OBJECT sınıfından oluşur. Bütün sınıflar da bir hiyerarşi olmak zorunda değildir.

@Override : Override işlemi java API’sinde yer alan bir metodun değiştirilerek aynı isimde kullanılması demektir. Asıl super classın devre dışı bırakılması durumudur.

 

PROTECTED KAVRAMI: Sub ve super classın elemanları tarafından kullanılanbilmesi durumudur. Private ve public arasında bir konuma sahiptir.

Extends: Superclasstan türetme yapmamızı sağlayan anahtar kelimedir.

! –> Constructerlar türetilemez kalıtım aracılığıyla.

! –> Protected tipli değişkenler sub classlarda kullanılır.

! –> Protected tip private tipe göre daha verimli çalışır. Performansı yüksektir.

! –> Protected daha zahmetli bir tiptir. Eğer bir değişiklik yapılmak istenirse tüm değişkenlerin değiştirilmesi ekstra bir yük oluşturulacağı için dezavantaja sahiptir. Protected tipinde hata olasılığı çok daha fazladır.

! –> Sub classlar super class olabilir. Yani bir sub class başka bir classın super classı olabilir.

! –> clone method işlemi bir metodu kopyalamak olarak nitelendirilebilir.

–> shallow copy: Yüzeysel bir kopyalama işlemidir. Referanslar değişir. Örneğin diziler. Referansların kopyalandığı kopyalama yöntemidir.

–> deep copy: Tüm yapının kopyalanması işlemidir. Her şey olduğu gibi alınıp kopyalanır.

! –> Serileştirme: Bir yapının bellekte saklanma haliyle başka bir yere taşımak ve ya kopyalamak için kullanılır.

! –> equals: Karşılaştırma için kullanılan yapıdır. Referans olarak == operatörünü kullanır.

! –> finalize: Çöp toplayıcılar devreye girmeden işlemin kaydedilmesini sağlayan yapıdır. Çok tavsiye edilen bir yöntem değildir.

! –> getClass() Sınıf hakkında bilgileri veren metoddur.

! –> wait, notify, notifyAll: Threadlerde kullanılan yapılardır.

! –> toString: Stringe dönüştürme işlemini yapar.

! –> Thread: İşlemciyi eş zamanlı paylaşmak için kullanılan yöntemler bütünüdür.

 

Faydalı olması dileğiyle…

Kodlu günler.

 

 

 

 

Nesne Yönelimli Programlama Temelleri

Bu yazımda nesne yönelimli programlamanın temelleri hakkında bilgi vereceğim.

Nesne yönelimli programlamanın 4 temel özelliği vardır.

SOYUTLAMA

Nesneyi bazı karakteristik özellikleri olan ve bazı eylemleri gerçekleştirebilen bir veri tipi olarak düşünmek demektir. Soyutlama işlemi sınıf yapısı ile oluşturulur.

 

SARMALAMA-PAKETLEME

Paketlemenin anlamı oluşturulan sınıf ve metodların bu sınıfı kullanacak olan kullanıcılardan gizlemek demektir.

VERİ+METODLAR–>NESNE ==> Nesne yönelimli programlamanın temelidir.

 

MİRAS ALMA

Bir nesne bir sınıfa ait alt küme demektir. Bir nesnenin üretildiği sınıfa ait özellikleri taşımasına miras alma denir.

Kendisinden alt kümeler üretilen sınıfa temel sınıf(base class), süper sınıf(super class) ve ya ana sınıf(parent class) adı verilir.

 

ÇOK BİÇİMLİLİK

Farklı nesnelerin aynı mesaja ve ya metoda farklı şekil de cevap vermesi durumudur.

 

Bir sonraki yazıda görüşmek üzere

Kodlu günler.