- Herşeyden önce dikkat etmeniz gereken en önemli şey Eclipse ve JDK'nın son sürümlerini kullanmak.
- Bilgisayarınızda Eclipse dosyalarının içerisinde bulunan eclipse.ini isimli dosyayı açarak burada Eclipse için ayrılmış olan bellek boyutlarıyla ilgili ayarları değiştirebilirsiniz. Benim bilgisayarımdaki dosya aşağıdaki şekildedir. Burada -Xmx değeri önemlidir. Makinenizin RAM değeri ne kadar yüksekse bu değeri o kadar arttırabilirsiniz. Benim makinemin Ram değeri 2GB ben 512m olarak ayarladım bu değeri sizin makinenizin RAM değeri 4GB ise ve Eclipse'in çok rahat çalışmasını istiyorsanız bu değeri 1024 olarak ayarlayabilirsiniz. Sizin makinenizin RAM değerini tam olarak bilemediğimden kesin rakamlar vermem mümkün değil o yüzden bunları internetten araştırmanızı tavsiye ediyorum. Bu link bu konuda size yardımcı olabilir: http://stackoverflow.com/questions/477871/eclipse-ini-configuration Ayrıca eclipse.ini dosyasına -Xverify:none satırını ekleyerek bu VM ye yüklediği tüm dosyaların .class olanlarının doğrulama işlemini yapmamasını söyler. Bu Eclipse'in açılmasını hızlandırır. Bunun dışında XXMaxPermSize bellek miktarını arttırmayı da ihmal etmeyin.
- Eclipse de Window-Preferences-Validation izleyerek doğrulamayla ilgili ayarları değiştirebilirsiniz. Aşağıdaki resimde karşınıza çıkacak ekran görünmektedir. Buradan Manuel kısmında işinize yaramayan validation türlerinin karşısındaki tikleri kaldırabilirsiniz.
- Kullanmadığınız projeleri kapatmak performansda artış sağlayacaktır. Ayrıca server'a deploy edilmiş kullanılmayan projeleri de serverden silmeniz gerekir.
- Windows -> Preferences; General -> Appearance -> Label Decorations yolunu izleyerek gereksiz decoration'ları kaldırmanız Eclipse performansını aktarmanıza katkıda bulunabilir.
- Eclipse IDE'nizin açılış performansını arttıracak en önemli ayarlardan birisi de Windows -> Preferences; General -> Startup and Shutdown yolunu izleyerek açılış ve kapanış ayarlarını değiştirmeniz olacaktır. Burada açılış zamanı aktif olmasını istemediğiniz pluginlerin önündeki tiki kaldırın. Özellikle Subeclipse çok fazla yavaşlatıyor Eclipse'i onu kesinlikle deaktif etmenizi tavsiye ediyorum.
- Windows-->Preference-->General-->Editors-->Text Editors-->Spelling yolunu izleyerek spelling ayarını deaktif etmeniz gerekmektedir. Bu performans açısından çok faydalı olacaktır. Sonuçta Eclipse bir text editörü değil ve kelimelerin doğruluğunun kontrol edilmesi çok da önemli değil.
28 Ağustos 2012 Salı
Eclipse IDE Performans Arttırma Önerileri
Eclipse IDE kullanırken yaşadığım performans problemleri, Eclipse IDE nin aşırı derecede yavaş çalışması ve sık sık donması beni bu konuda araştırma yapmaya itti. Yaptığım araştırmalar sonucu bir sürü faydalı yöntem öğrendim. Türkçe bu konuda internette herhangi kaynağa rastlamadığımdan bu yazıyı yazmaya karar verdim. Uygulamanızı tavsiye ettiğim yöntemleri maddeler halinde açıklayacağım.
Eclipse IDE Performans arttırma önerileri
Eclipse IDE kullanırken yaşadığım performans problemleri, Eclipse IDE nin aşırı derecede yavaş çalışması ve sık sık donması beni bu konuda araştırma yapmaya itti. Yaptığım araştırmalar sonucu bir sürü faydalı yöntem öğrendim. Türkçe bu konuda internette herhangi kaynağa rastlamadığımdan bu yazıyı yazmaya karar verdim. Uygulamanızı tavsiye ettiğim yöntemleri maddeler halinde açıklayacağım.
- Herşeyden önce dikkat etmeniz gereken en önemli şey Eclipse ve JDK'nın son sürümlerini kullanmak.
- Bilgisayarınızda Eclipse dosyalarının içerisinde bulunan eclipse.ini isimli dosyayı açarak burada Eclipse için ayrılmış olan bellek boyutlarıyla ilgili ayarları değiştirebilirsiniz. Benim bilgisayarımdaki dosya aşağıdaki şekildedir. Burada -Xmx değeri önemlidir. Makinenizin RAM değeri ne kadar yüksekse bu değeri o kadar arttırabilirsiniz. Benim makinemin Ram değeri 2GB ben 512m olarak ayarladım bu değeri sizin makinenizin RAM değeri 4GB ise ve Eclipse'in çok rahat çalışmasını istiyorsanız bu değeri 1024 olarak ayarlayabilirsiniz. Sizin makinenizin RAM değerini tam olarak bilemediğimden kesin rakamlar vermem mümkün değil o yüzden bunları internetten araştırmanızı tavsiye ediyorum. Bu link bu konuda size yardımcı olabilir: http://stackoverflow.com/questions/477871/eclipse-ini-configuration Ayrıca eclipse.ini dosyasına -Xverify:none satırını ekleyerek bu VM ye yüklediği tüm dosyaların .class olanlarının doğrulama işlemini yapmamasını söyler. Bu Eclipse'in açılmasını hızlandırır. Bunun dışında XXMaxPermSize bellek miktarını arttırmayı da ihmal etmeyin.
- Eclipse de Window-Preferences-Validation izleyerek doğrulamayla ilgili ayarları değiştirebilirsiniz. Aşağıdaki resimde karşınıza çıkacak ekran görünmektedir. Buradan Manuel kısmında işinize yaramayan validation türlerinin karşısındaki tikleri kaldırabilirsiniz.
- Kullanmadığınız projeleri kapatmak performansda artış sağlayacaktır. Ayrıca server'a deploy edilmiş kullanılmayan projeleri de serverden silmeniz gerekir.
- Windows -> Preferences; General -> Appearance -> Label Decorations yolunu izleyerek gereksiz decoration'ları kaldırmanız Eclipse performansını aktarmanıza katkıda bulunabilir.
- Eclipse IDE'nizin açılış performansını arttıracak en önemli ayarlardan birisi de Windows -> Preferences; General -> Startup and Shutdown yolunu izleyerek açılış ve kapanış ayarlarını değiştirmeniz olacaktır. Burada açılış zamanı aktif olmasını istemediğiniz pluginlerin önündeki tiki kaldırın. Özellikle Subeclipse çok fazla yavaşlatıyor Eclipse'i onu kesinlikle deaktif etmenizi tavsiye ediyorum.
- Windows-->Preference-->General-->Editors-->Text Editors-->Spelling yolunu izleyerek spelling ayarını deaktif etmeniz gerekmektedir. Bu performans açısından çok faydalı olacaktır. Sonuçta Eclipse bir text editörü değil ve kelimelerin doğruluğunun kontrol edilmesi çok da önemli değil.
27 Ağustos 2012 Pazartesi
PHP Web Service
Merhaba, Size PHP ile web service (SOAP) hizmetinden bahsedeceğim. Web service bir haberleşme standardıdır. Standart bir yapı olması nedeniyle projelerinizde kullanmış olduğunuz yazılım dillerinden bağımsız olarak düşünmeniz gerekecektir. Projeler aynı dille yazılmış olmaksızın veri alışverişi sağlayabilirsiniz. Kapsamlı projelerde ihtiyaç olarak doğan veri alışverişini sağlayabileceğiniz güzel bir altyapıyı PHP ile örnekleyerek anlatmaya çalışacağım. Sözü fazla uzatmadan örneklemelerime başlamak istiyorum. Aşağıdaki iki sayfayı çalışma ortamınızda oluşturmanızı isteyeceğim.
- server.php
- client.php
<?php class MyWebService{ const STATIC_EXAMPLE_MESSAGE = "hello web service"; public function getMessage(){ return self::STATIC_EXAMPLE_MESSAGE; } } $server = new SoapServer(null,array("uri" => "http://www.project.mil/server.php")); $server->setClass("MyWebService"); $server->handle(); ?> Yukarıda ki örnekte MyWebService isimli class'ı web service de kullanılacak olan class olarak atadım. Yani client olarak bağlanan kullanıcılar "public" özelliğe sahip tüm methodları çağırabilirler. Bu arada web service altyapısı için illaki class kullanmak zorunda değilsiniz. Ancak ben class kullanmayı tercih ettim. Hizmete erişilecek olan adresi uri parametresi ile belirliyoruz ve class ismini atıyoruz. Bkz : http://php.net/soapserver Yukarıda ki aşamaları tamamladıysak artık dışarıdan gelen misafirleri karşılayabilir ve veri alışverişi sağlayabiliriz. <?php $options = array( "uri" => "http://www.project.mil", "location" => "http://www.project.mil/server.php" ); $client = new SoapClient(null, $options); $result = $client->getMessage(); echo $result; ?>Yukarıda ki örnekte az evvel oluşturduğumuz web service hizmetine bağlandık ve getMessage methoduna bağlanarak oradan dönen sonucu ekrana yazdırdık. Kodu çalıştırdığınızda ekrana "hello web service" yazdığını göreceksiniz. Görüldüğü üzere basit bir web service bağlantısı oluşturmuş olduk. Çeşitli hata ayıklama işlemleri, güvenlik işlemleri v.s. gibi çalışmalarla güçlendirerek projelerimizde ki veri alışverişi ihtiyacını gidermiş olabiliriz. Umarım faydalı olmuştur. Devamı için : PHP Web Service
25 Ağustos 2012 Cumartesi
PHP interface
Merhaba, Bugün PHP interface yapısından bahsetmek istiyorum. Bilindiği üzere interface Türkçe "arayüz" anlamına gelmektedir. Ancak burada görsel birşeyler düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz. Birden fazla adaptorü olacak bir yapımızın olduğunu düşünelim. Örnek vermek gerekirse bir veritabanı altyapısı hazırlıyorsunuz ve mysql,oracle gibi birden fazla adaptorünüz var. Bu adaptorlerde ki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir proje de birden fazla geliştiricinin olması gibi durumlarda standart bir yapının korunmasını sağlamış olacağız. Yapı dışında birşey yapılmak istenirse hata alınacaktır. Yapıda ki genel kuram bu şekilde. Şimdi kodlarla açıklamaya çalışacağım.
< ?php interface database{ public function setData($data);
public function getData($key);
} ?>Yukarıda ki örnekte "database" isimli bir interface oluşturduk ve bu interface kullanan tüm class larda "setData" ve "getData" methodlarının olmasının şart olduğunu söylemiş olduk. Burada methodlar süslü parantez açılarak tanımlanmaz. Sadece method ismi yazılır ve kapatılır. Yine en önemli özelliklerinden biri de methodlara gönderilecek parametreleri dahi burada belirleyebiliyor olmamız. Eğer class içinde eksik parametre tanımlarsak hata vererek bizi bu yapıya uygun kod yazdırmaya zorlayacaktır.
< ?php
class mysql implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example1(){ // başka methodlara ihtiyaç duyuyorsak ekleyebiliriz.
}
}
class oracle implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example2(){ // başka methodlara ihtiyaç duyuyorsak ekleyebiliriz.
}
}
?>Yukarıda ki örnekte oluşturduğum mysql ve oracle classlarının interface olarak "database" arayüzünü kullanmasını sağladım. Hata almamak için interface içinde belirtilen methodları tanımladım ve tüm classlarım standart bir yapıya kavuşmuş oldu. Yine örnekte görüldüğü üzere interface kullanmak için "implements" yazdıktan sonra interface adını yazmamız gerekiyor. Umarım faydalı olmuştur. Geliştirerek kendi projelerinizde de kullanabilirsiniz. Devamı için : PHP interface
PHP interface
Merhaba, Bugün PHP interface yapısından bahsetmek istiyorum. Bilindiği üzere interface Türkçe "arayüz" anlamına gelmektedir. Ancak burada görsel birşeyler düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz. Birden fazla adaptorü olacak bir yapımızın olduğunu düşünelim. Örnek vermek gerekirse bir veritabanı altyapısı hazırlıyorsunuz ve mysql,oracle gibi birden fazla adaptorünüz var. Bu adaptorlerde ki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir proje de birden fazla geliştiricinin olması gibi durumlarda standart bir yapının korunmasını sağlamış olacağız. Yapı dışında birşey yapılmak istenirse hata alınacaktır. Yapıda ki genel kuram bu şekilde. Şimdi kodlarla açıklamaya çalışacağım.
< ?php interface database{ public function setData($data);
public function getData($key);
} ?>Yukarıda ki örnekte "database" isimli bir interface oluşturduk ve bu interface kullanan tüm class larda "setData" ve "getData" methodlarının olmasının şart olduğunu söylemiş olduk. Burada methodlar süslü parantez açılarak tanımlanmaz. Sadece method ismi yazılır ve kapatılır. Yine en önemli özelliklerinden biri de methodlara gönderilecek parametreleri dahi burada belirleyebiliyor olmamız. Eğer class içinde eksik parametre tanımlarsak hata vererek bizi bu yapıya uygun kod yazdırmaya zorlayacaktır.
< ?php
class mysql implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example1(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
class oracle implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example2(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
?>Yukarıda ki örnekte oluşturduğum mysql ve oracle classlarının interface olarak "database" arayüzünü kullanmasını sağladım. Hata almamak için interface içinde belirtilen methodları tanımladım ve tüm classlarım standart bir yapıya kavuşmuş oldu. Yine örnekte görüldüğü üzere interface kullanmak için "implements" yazdıktan sonra interface adını yazmamız gerekiyor. Umarım faydalı olmuştur. Geliştirerek kendi projelerinizde de kullanabilirsiniz. Devamı için : PHP interface
PHP interface
Merhaba, Bugün PHP interface yapısından bahsetmek istiyorum. Bilindiği üzere interface Türkçe "arayüz" anlamına gelmektedir. Ancak burada görsel birşeyler düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz. Birden fazla adaptorü olacak bir yapımızın olduğunu düşünelim. Örnek vermek gerekirse bir veritabanı altyapısı hazırlıyorsunuz ve mysql,oracle gibi birden fazla adaptorünüz var. Bu adaptorlerde ki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir proje de birden fazla geliştiricinin olması gibi durumlarda standart bir yapının korunmasını sağlamış olacağız. Yapı dışında birşey yapılmak istenirse hata alınacaktır. Yapıda ki genel kuram bu şekilde. Şimdi kodlarla açıklamaya çalışacağım.
< ?php interface database{ public function setData($data);
public function getData($key);
} ?>Yukarıda ki örnekte "database" isimli bir interface oluşturduk ve bu interface kullanan tüm class larda "setData" ve "getData" methodlarının olmasının şart olduğunu söylemiş olduk. Burada methodlar süslü parantez açılarak tanımlanmaz. Sadece method ismi yazılır ve kapatılır. Yine en önemli özelliklerinden biri de methodlara gönderilecek parametreleri dahi burada belirleyebiliyor olmamız. Eğer class içinde eksik parametre tanımlarsak hata vererek bizi bu yapıya uygun kod yazdırmaya zorlayacaktır.
< ?php
class mysql implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example1(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
class oracle implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example2(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
?>Yukarıda ki örnekte oluşturduğum mysql ve oracle classlarının interface olarak "database" arayüzünü kullanmasını sağladım. Hata almamak için interface içinde belirtilen methodları tanımladım ve tüm classlarım standart bir yapıya kavuşmuş oldu. Yine örnekte görüldüğü üzere interface kullanmak için "implements" yazdıktan sonra interface adını yazmamız gerekiyor. Umarım faydalı olmuştur. Geliştirerek kendi projelerinizde de kullanabilirsiniz. Devamı için : PHP interface
PHP interface
Merhaba, Bugün PHP interface yapısından bahsetmek istiyorum. Bilindiği üzere interface Türkçe "arayüz" anlamına gelmektedir. Ancak burada görsel birşeyler düşünmeyelim. Yapı yani modelleme arayüzü olarak düşünebiliriz. Birden fazla adaptorü olacak bir yapımızın olduğunu düşünelim. Örnek vermek gerekirse bir veritabanı altyapısı hazırlıyorsunuz ve mysql,oracle gibi birden fazla adaptorünüz var. Bu adaptorlerde ki yapıların birbiri ile aynı olmasını istiyorsak burada interface devreye girecek. Bir proje de birden fazla geliştiricinin olması gibi durumlarda standart bir yapının korunmasını sağlamış olacağız. Yapı dışında birşey yapılmak istenirse hata alınacaktır. Yapıda ki genel kuram bu şekilde. Şimdi kodlarla açıklamaya çalışacağım.
< ?php interface database{ public function setData($data);
public function getData($key);
} ?>Yukarıda ki örnekte "database" isimli bir interface oluşturduk ve bu interface kullanan tüm class larda "setData" ve "getData" methodlarının olmasının şart olduğunu söylemiş olduk. Burada methodlar süslü parantez açılarak tanımlanmaz. Sadece method ismi yazılır ve kapatılır. Yine en önemli özelliklerinden biri de methodlara gönderilecek parametreleri dahi burada belirleyebiliyor olmamız. Eğer class içinde eksik parametre tanımlarsak hata vererek bizi bu yapıya uygun kod yazdırmaya zorlayacaktır.
< ?php
class mysql implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example1(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
class oracle implements database{ public function setData($data){ // ilgili işlemler burada yapılır.
}
public function getData($key){ // ilgili işlemler burada yapılır.
}
public function example2(){ // standart methodlar dışında başka methodlara ihtiyaç duyuyorsak buraya ekleyebiliriz.
}
}
?>Yukarıda ki örnekte oluşturduğum mysql ve oracle classlarının interface olarak "database" arayüzünü kullanmasını sağladım. Hata almamak için interface içinde belirtilen methodları tanımladım ve tüm classlarım standart bir yapıya kavuşmuş oldu. Yine örnekte görüldüğü üzere interface kullanmak için "implements" yazdıktan sonra interface adını yazmamız gerekiyor. Umarım faydalı olmuştur. Geliştirerek kendi projelerinizde de kullanabilirsiniz. Devamı için : PHP interface
Kaydol:
Kayıtlar (Atom)