Burcu Altınok Blog
  • Genel
  • Web Teknolojileri
  • Java
  • Mobil
  • Yazılım Etkinlikleri
  • Gezgin Rehberi
  • Hakkında
  • Genel
  • Web Teknolojileri
  • Java
  • Mobil
  • Yazılım Etkinlikleri
  • Gezgin Rehberi
  • Hakkında

Burcu Altınok Blog

bilgi paylaştıkça çoğalır

Java

Lambda Expression Nedir?

written by Burcu

Lambda expression ile Java8 sayesinde tanıştık. Lambda expressions, Java’nın ifade gücünü artıran syntax öğeleri ekledi. Bu yazıda, kodunuza lambda ifadeleri eklemeye başlayabilmeniz için aşina olmanız gereken temel kavramları anlatmaya çalışacağım.

Lambda ifadeleri, Stream API‘sindeki verilerdeki pipeline işlemlerinin desteğiyle, çok çekirdekli ortamların paralel işlem özelliklerinden yararlanır. Functional interface tarafından tanımlanan bir methodun implementasyonu için kullanılan anonim methodlardır (isimsiz methodlar). Lambda ifadelerine girmeden önce functional interface’in ne olduğunu bilmek önemlidir.

Functional interface nedir?

Functional bir interface, yalnızca bir soyut method içeren bir interface’dir.
Java standart Runnable interface’inin tanımına bakarsanız, functional arayüz tanımına nasıl düştüğünü fark edeceksiniz, çünkü sadece bir methodu tanımlar: run();

Ayrıca bir functional interface tanımlarken @FunctionalInterface anotasyonu da kullanılabilir. Bu anotasyonu kullanmak zorunlu değildir, validasyon yapmak amacıyla kullanılır. Eğer anotasyon eklenirse ve birden fazla soyut method eklenmeye çalışılırsa, compile error alınır.
Aşağıdaki kod örneğinde, computeName methodu dolaylı olarak soyuttur ve MyName’i işlevsel bir interface haline getiren tek methoddur.

1
2
3
interface MyName{
  String computeName(String str);
}

-> Operatörü

n -> n*n

Sol taraf, ifade için gerekli olan parametreleri belirtir ve parametre gerekmediğinde de boş olabilir. Sağ taraf, lambda ifadesinin eylemlerini belirten lambda gövdesidir. Bu operatör hakkında “olur” diye düşünmek faydalı olabilir. Örneğin, “n, n * n olur” ve ya “n, n kare olur”.
Functional interface ve -> operatörü kavramlarını akılda tutarak, basit bir lambda ifadesini bir araya getirebilirsiniz:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
interface NumericTest {
boolean computeTest(int n);
}
 
public static void main(String args[]) {
NumericTest isEven = (n) -> (n % 2) == 0;
NumericTest isPositive = (n) -> (n < 0);
 
// Output: true
System.out.println(isEven.computeTest(4));
 
// Output: false
System.out.println(isPositive.computeTest(-3));
}

Blok Lambda Expression


Şimdiye kadar, tek ifadeli lambda örnekleri ele aldık. -> operatörünün sağ tarafındaki kod, blok lambdas olarak bilinen birden fazla ifade içerdiğinde kullanılan başka bir ifade türü vardır:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
interface MyString {
String myStringFunction(String str);
}
 
public static void main (String args[]) {
// Block lambda to reverse string
MyString reverseStr = (str) -> {
String result = "";
for(int i = str.length()-1; i >= 0; i--)
result += str.charAt(i);
return result;
};
 
// Output: omeD adbmaL
System.out.println(reverseStr.myStringFunction("Lambda Demo"));
}

Generic functional interfaceler


Bir lambda ifadesi generic olamaz. Ancak lambda ifadesi ile ilişkili functional interface olabilir. Bir generic interface yazmak ve bunun gibi farklı dönüş türlerini işlemek mümkündür:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
interface MyGeneric<T> {
T compute(T t);
}
 
public static void main(String args[]){
 
// String version of MyGenericInteface
MyGeneric<String> reverse = (str) -> {
String result = "";
for(int i = str.length()-1; i >= 0; i--)
result += str.charAt(i);
return result;
};
 
// Integer version of MyGeneric
MyGeneric<Integer> factorial = (Integer n) -> {
int result = 1;
for(int i=1; i <= n; i++)
result = i * result;
return result;
};
 
// Output: omeD adbmaL
System.out.println(reverse.compute("Lambda Demo"));
 
// Output: 120
System.out.println(factorial.compute(5));
 
}

Arguman olarak Lambda expressions


Lambdaların yaygın bir kullanımı onları argüman olarak aktarmaktır.
Hedef türü sağlayan herhangi bir kod parçasında kullanılabilirler.
Lambda ifadelerini parametre olarak iletmek için functional interface’in türünün gerekli parametreyle uyumlu olduğundan emin olun.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface MyString {
String myStringFunction(String str);
}
 
public static String reverseStr(MyString reverse, String str){
  return reverse.myStringFunction(str);
}
 
public static void main (String args[]) {
// Block lambda to reverse string
MyString reverse = (str) -> {
String result = "";
for(int i = str.length()-1; i >= 0; i--)
result += str.charAt(i);
return result;
};
 
// Output: omeD adbmaL
System.out.println(reverseStr(reverse, "Lambda Demo"));

Bu kavramlar lambda expressionlarla çalışmaya başlamak için bir temel oluşturacaktır.

Lambda Expression Nedir? was last modified: Nisan 19th, 2020 by Burcu
18 Nisan 2020 0 comment
1 Facebook Twitter Google + Pinterest
Genel

Evden Çalışmak

written by Burcu

Herkese selam,

Dünya olarak zor bir süreçten geçtiğimiz şu dönemde home office olarak çalıştığımız 2. haftayı devirmiş bulunuyorum. Bunun üzerine biraz yazmak istedim. Keşke böyle bir salgın yüzünden evden çalışmak zorunda kalmış olmadan bunu deneyimleyip bu yazıyı yazabiliyor olsaydım ama şartlar maalesef 🙁

Benim evden çalışmak ile ilgili ilk 2 haftalık genel izlenimlerimden çıkardığım notlar:

  • Yolda harcanan süreyi sabah rahat rahat kahvaltı yaparak geçirebiliyorsunuz.
  • Rahat iletişim kurabildiğiniz iyi bi ekiple çalışıyorsanız yine olağan şekilde rahatça devam edebiliyorsunuz.
  • Arkadaşlarınızla kahve goygoyuna düşmeden bölünmeden çalışabiliyorsunuz ki en çok özlenenler arasında bu goygoy var 🙂
  • Bu süreçte aslında bu kahve muhabbetlerinin gerçekten çok motive edici olduğunu da farkettim.
  • Günlük kahve tüketimini azalttım, 3-4 kahveden günde sadece 1 kahveye düşürdüm.
  • Hiç dışarı çıkmadığımız şu dönemde hareketsizlik artıyor. Bunu öğle arası haftada 2 3 kez spor yaparak çözmeye çalışsam da kendimi harekete geçirecek motivasyonu henüz bulamadım 🙁
  • Sürekli evde olduğumuz için bunalım kat sayısı artıyor.
  • Açık ofis problemleri azaldı, gürültü sorunu ortadan kalktı.
  • Buna rağmen zaman zaman odaklanma problemleri yaşanıyor. Evde dikkat dağıtan ne çok şey varmış diyorum.
  • Pijamayla çalışma rahatlığı geldi, en güzeli bazen de en çekilmezi bu oluyor sanırım.
  • Kafa dağıtacak aktivite bulamıyorum zaman zaman.
  • Kendine ayıracak daha çok vaktin oluyor.
  • Çalışma saatleri çok esnek olabiliyor.
  • Happy hourlar özleniyor.

En yakın zamanda ofise dönmek dileğiyle diyorum şimdilik, güzel günler göreceğiz güneşli günler…

Evden Çalışmak was last modified: Mart 28th, 2020 by Burcu
28 Mart 2020 0 comment
1 Facebook Twitter Google + Pinterest
Genel

Kullanıcı Kabul Testi (UAT) Nedir?

written by Burcu

Mühendislik ve çeşitli alt disiplinlerinde kabul testi, bir şartnamenin ve ya sözleşmenin gerekliliklerinin karşılanıp karşılanmadığını belirlemek için yapılan bir testtir.

Yazılım mühendisliğinde, Uluslararası Yazılım Test Yeterlilik Kurulu(ISTQB) kabul testini şu şekilde tanımlar:
Bir sistemin kabul kriterlerini karşılayıp karşılamadığını belirlemek ve kullanıcının, müşterilerin ve ya diğer yetkili birimin sistemi kabul edip etmeyeceğini belirlemek için gerçekleştirilen kullanıcı ihtiyaçları, gereksinimleri ve iş süreçleri ile ilgili testlerdir.

Kabul testi aynı zamanda kullanıcı kabul testi (UAT), son kullanıcı testi, operasyonel kabul testi (OAT), kabul testine dayalı geliştirme (ATTD) ve ya alan (kabul) testi olarak da bilinir. Kabul kriterleri, bir sistem veya bileşenin kullanıcı, müşteri ve ya diğer yetkili bir kurum tarafından kabul edilebilmesi için yerine getirmesi gereken kriterlerdir.

Bir Smoke Test, ana test sürecine bir yazılım inşa etmeden önce bir kabul testi olarak kullanılabilir.

Test, test edilen bir ve ya daha fazla öğenin özelliklerinin keşfedilmesini ve değerlendirilmesini kolaylaştırmak için yürütülen bir dizi faaliyettir. Test durumu olarak bilinen her bir test, test hedeflerini karşılamak için test öğesinin yürütülmesini sağlamak için geliştirilmiş bir dizi önceden tanımlanmış test etkinliği gerçekleştirir. Doğru uygulama, hata tanımlama, kalite doğrulama ve bunlara ek diğer değerli detaylar. Test ortamı genellikle beklenen üretim ortamıyla aynı ve ya mümkün olduğunca yakın olacak şekilde tasarlanmıştır. Yazılım testini gerçekleştirmek için kullanılan tüm donanımı, yazılımı, prosedürleri ve belgeleri içerir.

UAT ve OAT test senaryoları, ideal olarak ticari müşteriler, iş analistleri, test uzmanları ve geliştiricilerle işbirliği içinde türetilir. Bu testlerin hem iş mantığı testlerini hem de çalışma ortamı koşullarını içermesi önemlidir. Ticari müşteriler (ürün sahipleri) bu testlerin ana paydaşlarıdır. Test koşulları kabul kriterlerini başarıyla yerine getirdikçe, paydaşların gelişimin doğru yönde ilerlediğine dair güvence verilmektedir.

Kullanıcı kabul testi (UAT) kriterleri (çevik yazılım geliştirmede) genellikle ticari müşteriler tarafından oluşturulur ve bir işletme etki alanı dilinde ifade edilir. Bunlar, bir sprint sırasında bir kullanıcı hikayesinin ve ya “oynatılan” hikayelerin eksiksizliğini doğrulamak için üst düzey testlerdir.
Operasyonel kabul testi (OAT) kriterleri (metodoloji kullanımına bakılmaksızın) fonksiyonel ve fonksiyonel olmayan gereksinimler açısından tanımlanır; işlevsel istikrar, taşınabilirlik ve güvenilirlik gibi temel kalite özelliklerini kapsar.

Tüm test senaryoları tek bir test iterasyonunda yürütülemeyebileceğinden, kabul test paketinin birden çok kez gerçekleştirilmesi gerekebilir.

Kabul test paketi, test vericilerini hangi verilerin kullanılacağını adım adım izlenecek süreçleri ve yürütülmesini takiben beklenen sonucu yönlendirmek için önceden tanımlanmış kabul testi prosedürleri kullanılarak çalıştırılır. Gerçek sonuçlar beklenen sonuçlarla karşılaştırılmak üzere korunur. Gerçek sonuçlar her test durumu için beklenen sonuçlarla eşleşirse test durumunun geçtiği söylenir. Geçmeyen test senaryolarının miktarı projenin önceden belirlenmiş eşiğini ihlal etmezse, test takımının geçtiği söylenir. Böyle bir durumda, sistem daha önce müşteri ile üretici arasında kararlaştırılan şartlarda reddedilebilir ve ya kabul edilebilir.

Başarılı bir test uygulamasının beklenen sonucu

  • Önceden belirlenmiş veriler kullanılarak test senaryoları yürütülür
  • Gerçek sonuçlar kaydedilir
  • Gerçek ve beklenen sonuçlar karşılaştırılır ve
  • Test sonuçları belirlenir.

Amaç, geliştirilen ürünün hem işlevsel hem de işlevsel olmayan gereksinimleri karşıladığına dair güven sağlamaktır. Kabul testinin amacı, tamamlandığında ve kabul kriterlerinin karşılanması koşuluyla, ürün geliştirmede tanımlanan gereksinimleri üreticinin yerine getirmesi beklenir.

Kullanıcı Kabul Testi (UAT) Nedir? was last modified: Mart 19th, 2020 by Burcu
19 Mart 2020 0 comment
1 Facebook Twitter Google + Pinterest
Java

Java 8 Stream API Nedir?

written by Burcu

Bu yazıda oldukça sık kullanılan Java 8 özelliği olan Stream API’dan bahsedeceğim. Stream API, Collection nesnelerini işlemek için kullanılır.

Stream bir veri yapısı değildir. Bunun yerine Collectionlar, diziler gibi yığın verileri girdi alır. Stream API orijinal veri yapısını değiştirmez, yalnızca ardışık düzen yöntemlerine göre sonuç sağlar.


Her ara işlem tembel olarak yürütülür ve sonuç olarak bir Stream nesnesi döndürür, bu nedenle çeşitli ara işlemler ardışık düzenlenebilir. Terminal işlemleri Stream’in sonunu işaretler ve sonucu döndürür.

Stream İşlemleri

Ara İşlemler

map()

Map methodu, verilen işlevi bu Stream öğelerine uygulama sonuçlarından oluşan bir stream’i döndürmek için kullanılır.

1
2
3
4
5
List num = Arrays.asList(2,3,4,5);
List sqr = num
.stream()
.map(x>x*x)
.collect(Collectors.toList());

filter()

Filter methodu, bağımsız değişken olarak iletilen Predicate’e göre öğeleri seçmek için kullanılır.

1
2
List names = Arrays.asList("Reflection","Collection","Stream");
List result =names.stream().filter(s>s.startsWith("S")).collect(Collectors.toList());

sorted()

Sorted methodu, stream nesnesini sıralamak için kullanılır.

1
2
List names = Arrays.asList("Reflection","Collection","Stream");
List result = names.stream().sorted().collect(Collectors.toList());

Terminal İşlemleri

collect()

Collect methodu, Stream’de gerçekleştirilen ara işlemlerin sonucunu döndürmek için kullanılır.

1
2
3
List num = Arrays.asList(2,3,4,5,3);
Set square = num.stream().map(x->x*x)
.collect(Collectors.toSet());

forEach()

ForEach methodu, Stream içerisindeki yığınsal veriyi tek tek tüketmek için yapılandırılmıştır.

1
2
3
4
List num = Arrays.asList(2,3,4,5);
num.stream()
.map(x->x*x)
.forEach(y->System.out.println(y));

reduce()

Reduce methodu, Stream öğelerini tek bir değere azaltmak için kullanılır. Reduce methodu bir BinaryOperator parametresi alır.

1
2
3
4
5
List num = Arrays.asList(2,3,4,5);
int even = num
.stream()
.filter(x->x%2==0)
.reduce(0,(ans,i)-> ans+i);
Java 8 Stream API Nedir? was last modified: Mart 1st, 2020 by Burcu
1 Mart 2020 0 comment
6 Facebook Twitter Google + Pinterest
GenelJava

Swagger API Nedir?

written by Burcu

Swagger API, yazılım geliştiricilerin RESTful web hizmetlerini tasarlamasına, oluşturmasına, belgelemesine ve kullanmasına yardımcı olan geniş bir araç ekosistemi tarafından desteklenen açık kaynaklı bir yazılım framework’udur.

Çoğu kullanıcı Swagger’ı, Swagger UI aracıyla tanımlasa da Swagger araç seti otomatik dokümantasyon, kod oluşturma ve test senaryosu oluşturma desteği içerir. SmartBear Software tarafından desteklenen Swagger, açık kaynaklı yazılımların güçlü bir destekçisi olmuştur ve yaygın bir şekilde kullanılır.

Swagger’ın açık kaynaklı takım kullanımı farklı kullanım durumlarına ayrılabilir. Bunlar geliştirme, API’lerle etkileşim ve ya dokümantasyon olabilir.

Swagger araçları şunları içerir:

Swagger Editor – OpenAPI özelliklerini yazabileceğiniz browser tabanlı editör sunar.
Swagger UI – OpenAPI özelliklerini etkileşimli API belgesi olarak sunar.
Swagger Codegen – bir OpenAPI’dan sunucu taslakları ve istemci kütüphaneleri oluşturur.

API Geliştirme

API oluştururken Swagger aracı, kodun kendisine göre otomatik olarak bir Açık API belgesi oluşturmak için kullanılabilir. Bu, API açıklamasını bir projenin kaynak koduna gömer. Böylece otomatik bir şekilde API oluşmaya başlar.

Alternatif olarak, Swagger Codegen kullanarak geliştiriciler kaynak kodunu Open API belgesinden ayırabilir ve doğrudan tasarımdan istemci ve sunucu kodu oluşturabilir.

API’larla etkileşim kurma
Swagger Codegen projesini kullanarak, son kullanıcılar istemci SDK’larını doğrudan OpenAPI belgesinden oluşturur ve kişiler tarafından oluşturulan istemci koduna olan ihtiyacı azaltır. Ağustos 2017 itibariyle, Swagger Codegen projesi, istemci SDK üretimi için 50’den fazla farklı dil ve formatı destekledi.

Dokümantasyon API’ları
Bir OpenAPI belgesi tarafından tanımlandığında Swagger API, Swagger kullanıcı arayüzü üzerinden doğrudan API ile etkileşim kurmak için kullanılabilir. Bu proje, etkileşimli HTML tabanlı bir kullanıcı arabirimi aracılığıyla doğrudan canlı API’lerle bağlantı kurulmasını sağlar. İstekler doğrudan kullanıcı arayüzünden ve arayüzün kullanıcısı tarafından keşfedilen seçeneklerden yapılabilir.

Swagger API Nedir? was last modified: Şubat 29th, 2020 by Burcu
29 Şubat 2020 1 comment
3 Facebook Twitter Google + Pinterest
Java

Backend Developer Ne İş Yapar? Nasıl Backend Developer Olurum?

written by Burcu

Backend developerın ne iş yaptığı merak edilen konular arasındaydı. Bu yazımda backend nedir, backend developer neler yapar bunları anlatmaya çalışacağım. En basite indirdiğimizde, şu an bu blogta bir makale okuyorsunuz. Yazı tipleri, renkler, tasarımlar vb. bu sayfanın front end kısmını oluşturur. Makalenin içeriği bir sunucudaki veritabanından getirilir. Bu veritabanı ve getirilme işlemleri back end kısmıdır diyebiliriz.

Bir backend developer bunlarla çalışır:

  • Bir programlama dili(Java,Python)
  • Veritabanı
  • Sunucu
  • API (REST ve ya SOAP)

Programlama Dilleri

Backend developer Java, Python gibi en az bir sunucu tarafı programlama dilini bilmelidir.

Veritabanı

Çeşitli veritabanı yönetim sistemleri teknolojilerinin bilinmesi backend developer için bir başka önemli gereksinimidir. MySQL, MongoDB, Oracle, SQLServer bu amaçla yaygın olarak kullanılmaktadır.

API (REST & SOAP)

Web servisleri ve ya API bilgisi full stack developerlar için de önemlidir. Backend developerlar web servislerle sık sık çalışmak durumunda kalırlar.

Nasıl Backend Developer Olurum?

Veri Yapıları ve Algoritmanın temelleri konusunda bilgili olun
Bilgisayar mühendisliği ya da ilgili bir bölümde okumayanların bir çoğu bu adımı atlar ve frameworklerle ilerler. Veri yapıları ve algoritma temellerini bilmek her zaman daha iyidir. Derinlemesine olmasa da, süreç hakkında temel bir fikre sahip olmalısınız. Bunlar bilgisayar mühendisliğinin en genel derslerindendir. Temel Veri Yapıları ve Algoritma Yığını, Kuyruğu, Bağlantılı Liste, Ağaç, Grafik, Karma, Sıralama-Arama algoritmalarını ve diğer temel programlama kavramlarını gözden geçirmelisiniz.

Programlama Dili öğrenin ve bir framework seçin
Developer olmak çaba, zaman ve bolca sabır gerektirir. Kimsenin bir gecede farklı kodlama dilleri öğrenmesini bekleyemezsiniz. Bu nedenle, bir zaman çizelgesine ve öğrenmek istediğiniz temel programlama dillerine karar verin. Son zamanlarda Python, PHP, Ruby ve JavaScript gibi programlama dilleri aranmaktadır.

Aynı anda birden fazla programlama dilini öğrenebilirsiniz. Ama en önemlisi programlamanın temellerini anlamanın bir zorunluluk olduğunu lütfen unutmayın. Onlara zaten aşina değilseniz C, Java veya Python gibi dillerle başlayın ve uygulama mantığının nasıl çalıştığını anlamaya çalışın.

Veritabanı temellerini öğrenin
Özgeçmişinize bir veritabanı sistemi eklemelesiniz. Veritabanı yönteim sistemleri arasında kullanımı kolay bir çok ilişkisel veritabanı yönetim sistemi vardır. Bugün neredeyse çoğu uygulamanın arkaplanında bir çeşit depolama alanına vardır, bu nedenle veritabanlarını öğrenmek her zaman gereklidir. Veritabanı temellerinin yanında Firebase gibi gerçek zamanlı bir sistem kullanmak size avantaj sağlayabilir.

Frameworkleri öğrenin
Seçtiğiniz programlama diline bağlı olarak, en az bir framework temellerini öğrenebilirsiniz. İster Django ister Spring Framework olsun, çoğu framework aynı MVC (Model-View-Controller) prensibini izler. Tüm uygulama kodunun bir programlama dilinde yazılmasına izin verilse de, kapsamlı kodlama ile birlikte daha fazla çaba ve zaman gerektirir. Bununla birlikte, frameworkleri kullanmak daha sonra tekrar kullanılabilecek şablonlar ve kodlar oluşturmanıza olanak tanır. Bu, yazmanız gereken kod satırlarını azaltır. Böylece daha verimli olur ve başlayacağınız işe daha kolay adapte olabilirsiniz. Bir framework koşulu genelde her iş ilanında da aranmakta. Bu nedenle bir framework öğrenmek de iyi bir fikirdir.

Bol bol pratik yapmaya çalışın
Pratik yapmaya başlamadan önce işlerin nasıl çalıştığını anlamayacaksınız. Şimdiye kadar öğrendiğiniz teorik bilgileri daha iyi anlamak için araçları ve pratikleri düzenli olarak kullanmanız gerekir. Bunu yapmanın en iyi yolu küçük projeler ve ya algoritmalar üzerinde çalışmaktır. Yapılacaklar listesi, basit bir blog uygulaması, fotoğraf galerisi web uygulaması, özgeçmiş oluşturucu, temel proje yönetimi uygulaması vb. projeler yaparak işe başlayabilirsiniz.

Yeni bir proje oluşturun
Yenilik ve özgün fikirler her alanda değerlidir. Zaten bir başlangıç ​​ve ya proje fikriniz varsa bunu hayata geçirmeye çalışın. Eğer yoksa her zaman düşünmek ve üzerinde çalışmak için zamanınız var.

Backend Developer Ne İş Yapar? Nasıl Backend Developer Olurum? was last modified: Ocak 6th, 2020 by Burcu
5 Ocak 2020 0 comment
4 Facebook Twitter Google + Pinterest
Gezgin Rehberi

Büyükada Turu

written by Burcu

Yazın ortasında bir günlük 15 temmuz tatilini değerlendirerek kalkıp İstanbul’a gittim. Gitmişken çok istediğim bi’ yerine yani Büyükada’ya artık gitmesem ayıp olurdu 🙂 Atladık Ada vapuruna Büyükada’ya gittik.

Adada ilk izlenimlerim faytonların maalesef hala var olmasıydı. Zaten yokuşu olan bi yerde atlar sıcakta can çekişiyor hala 🙁 İstanbul’da henüz her şey tam olarak çok güzel olamamış, üzüldüm. Gerçi bu yazıya Ağustos’ta başlamıştım. Başlığı atıp bırakmıştım umarım bir şeyler değişmiştir.

En merak ettiğim kısmı Hatırla Sevgili’de izlediğim o güzel evlerdi. Ahmet ve Yasemin’in karşılıklı olan evlerinin bulunduğu yeri Google’layıp başladık yokuş tırmanmaya. İkisi de devasa diyebileceğimiz evler. Büyükada hala dönem dizisi ruhunu taşıyor o evlerle. Yaseminler’in evinin önünde bir fotoğraf çekilmeden gidemezdim 🙂

Yemek yönüyle pek alternatifi olmayan bir yer bence. Ya da ilk gidişimiz olduğu için biz düzgün bir yer bulamadık.

Yemekten bahsetmişken kahve içebileceğiniz çok güzel manzaraya sahip bir Kahve Dünyası var. Yazın ortasında gidince soğuk kahve bu manzarada çok iyi gidiyor 🙂

Fotoğrafseverler için ayrıca olağanüstü bir yer. Fotoğraf çekebileceğiniz çok güzel manzaralar, evler var. Genelde evlerinde bahçelerinde begonviller var.

Yukarıdaki fotoğrafı dönüş yolunda vapurda çekmişim. Aslında manzarayı çekmek istemişim ama hiç tanımadığım iki çifti böyle yakalamışım. Böyle doğal fotoğraflar çekmeyi çok seviyorum.

Adalar vapuruna gelince, gerçekten İstanbul’un gereksiz olan boğucu kalabalığı bu vapura da hakim. Yol oldukça uzun ve sıkıcı geçti maalesef. Vapur yolculuğu olmasına rağmen o kadar kalabalıktı ki yazın sıcağında içerde oturmak zorunda kaldık. Fazlasıyla havasız ve boğucuydu. Dışarda otursak çok daha güzel geçeceğine emindim.

Bu yazıyı oldukça zaman geçtikten sonra yazdım farkındayım ama yine de baktığımda kendime bi anı bırakmak istedim. Umarım keyifle okursunuz siz de.

Büyükada Turu was last modified: Ekim 27th, 2019 by Burcu
27 Ekim 2019 1 comment
0 Facebook Twitter Google + Pinterest
Genel

MacOS’ta Java Sürümünü Nasıl Güncellerim?

written by Burcu

Bu yazıda sizlere MacOS üzerinde java sürümünü nasıl güncelleyebileceğinizden bahsedeceğim.

Öncelikle MacOS’ta, terminalde bu komutla, sisteme yüklenen tüm JVM’ler listelenebilir.

Homebrew aracılığıyla kurulumu nasıl yapabileceğimize bakalım:

Gradle ya da benzer bir tool tarafından kullanılan JDK, ortam değişkeni JAVA_HOME tarafından belirlenir. .bash_profile dosyasındaki benzer talimatlarla, versiyonlar kolayca değiştirilebilir.

MacOS’ta bash_profile dosyasını şu komutla açabilirsiniz:

1
touch ~/.bash_profile; open ~/.bash_profile

Homebrew aracılığıyla OpenJDK 11’i indirelim. Sırasıyla aşağıdaki komutları takip edebilirsiniz:

1
2
3
4
brew update
brew tap homebrew/cask-versions
brew search java
brew cask install java11

Şimdi .bash_profile dosyamızda güncellemek istediğimiz Java sürümünü gösterelim.

1
2
3
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
 
alias java11='export JAVA_HOME=$JAVA_11_HOME'

Daha sonra yeni terminal açalım. Şu komutları çalıştıralım.

MacOS’ta Java Sürümünü Nasıl Güncellerim? was last modified: Temmuz 29th, 2019 by Burcu
29 Temmuz 2019 0 comment
0 Facebook Twitter Google + Pinterest
Genel

Motive Kalabilmek

written by Burcu


Günün büyük bir kısmını bilgisayar başında geçiren biri için en zor şeylerden biri “motive kalabilmek“tir herhalde. Günün her dakikası verimli olamıyoruz. Dikkat dağınıklığı yaşadığımız zamanlarda dikkati tekrar toplamak için neler yapabiliriz?

Motive olmuş bir şekilde haftaya başlasak bile Pazartesi gün sonunda düşük pil moduna geçebiliyoruz. Motive kalabilmenin yollarını arıyoruz.

Bir developer için motive kalabilmenin bir kaç yolundan bahsedeceğim. Bunalıp, sıkıldığımız zaman kendimizi motive etmek için neler yapabiliriz bunları anlatacağım.

Güzel bir kahve için.

Developerın en büyük destekçisi kahve bence. Nasıl seviyorsanız o şekilde bir kahve yapın kendinize. Çok sıkıldığınızda ya da enerjiniz tükendiğinde hemen kendinize getirebilecek bir şey.

Hacker News’te vakit geçirin.

Mola verin. 20-25 dk Hacker News’te neler olmuş bitmiş bi göz gezdirin. Hem yeni şeyler keşfedip kendinizi geliştirmiş olursunuz hem de kafanızı biraz dağıtıp işinize daha iyi konsantre olabilirsiniz.

Uğraştığınız teknolojilerle ilgili blog okuyun.

Örneğin Java ile uğraşıyorsanız takip ettiğiniz Java blogları olsun, açıp yeni neler çıkmış neler yayınlanmış okuyun. Bu da işinizde gelişmenize ve yeni trendleri takip etmenizi sağlar. Motivasyon kaynağı da olabilir sizin için.

Uğraştığınız teknolojilerle ilgili yazılar yazın.

İster şu sıralar popüler olan Medium’da ister kendi blogunuzda kullandığınız teknolojilerle ilgili yazılar yazın. Bu da sizi öğrenip araştırmaya teşvik eder, motive eder.

Çıkıp bir hava alın 15-20 dk yaptığınız iş yerine başka şeyler düşünün.

Ben bunu çok uğraşıp bir çözüme ulaşamadığımda yapıyorum. Bilgisayar başına geri döndüğümde görmediğim bir şeyleri mutlaka görüyorum. Murphy yasası gibi bi şeydir bu bilgisayar başından kalkıp tekrar oturduğunda hatayı görürsün 🙂

Ekip arkadaşlarınızın tecrübelerinden yararlanın.

Bir konuda çok fazla takılı kalmayın. Bu da motivasyonu düşüren bir şey. Çabalayın, uğraşın ama soru sormaktan çekinmeyin özellikle Junior Developer’sanız mutlaka size yardımcı olabilecek birileri vardır.

Farklı teknolojilerle uğraşan arkadaşlarınızla konuşun.

Bu da sizin için ilham kaynağı olabilir çoğu zaman. Mutlaka başka başka teknolojilerle uğraşan developer arkadaşlarınız vardır. Onların tecrübelerinden yararlanın. Bilgi alışverişinde bulunun. Bunun da oldukça etkili ve motive edici olduğunu düşünüyorum.

Motive Kalabilmek was last modified: Temmuz 29th, 2019 by Burcu
22 Şubat 2019 0 comment
0 Facebook Twitter Google + Pinterest
GenelWeb Teknolojileri

Docker Nedir? Neden Kullanmalıyım?

written by Burcu

Hadoop’ta bir veri analizi üzerinde çalıştığınızı ve kodunuzu bir arkadaşınıza gönderdiğinizi düşünün. Ekip arkadaşınız aynı veri kümesinde tam olarak bu kodu çalıştırır, ancak biraz farklı bir sonuç alır. Bu; farklı bir işletim sistemi, bir Hadoop paketinin farklı bir versiyonu ve benzeri durumlar gibi çeşitli nedenlere sahip olabilir. Docker bu gibi problemleri çözmeye çalışıyor.

Bir Docker konteynerı, bilgisayarınızın içinde bir sanal bilgisayar olarak görülebilir. Bu sanal bilgisayarla ilgili en havalı şey, arkadaşlarınıza olduğu gibi gönderebilmenizdir. Ve bu bilgisayarı başlatıp kodunuzu çalıştırdıklarında yaptığınız gibi aynı sonuçları alacaklar.

Docker’ın gerçekten yaptığı şey, uygulama kodunu altyapı gereksinimlerinden ve ihtiyaçlardan ayırmaktır. Bunu, her bir uygulamayı ‘konteyner‘ adı verilen yalıtılmış bir ortamda çalıştırarak yapar. Bu, geliştiricilerin gerçekte çalışacakları sistem hakkında endişe duymadan, Docker kabında çalışacakları gerçek koda konsantre olabileceği ve DevOps’un Docker koyteynerında doğru programlar kurulur ve dağıtımdan sonra söz konusu sistemlerin bakımının yapılması gereken karmaşık sistemlerin sayısı azaltılır.

Kısacası, Docker kullanmalısınız çünkü işletim sisteminden başlayarak Hadoop paket sürümleri gibi ayrıntılara kadar bağımlılıklara izin verir.
Analizlerinizin tekrarlanabilir olmasını sağlar.

docker mimarisi nasıl calısır

Docker’ın yardımcı olduğu birkaç başka nokta var:

Taşınabilirlik: Bir Docker image’i başka bir makineye kolayca gönderilebildiğinden, her şeyi kendi bilgisayarınıza kurabilir ve ardından analizleri yapabilirsiniz. Örneğin daha güçlü bir makinede.


Paylaşılabilirlik: Docker kapsayıcısını (Docker ile nasıl çalışacağını bilen) herkese gönderebilirsiniz.

Yeniden Üretilebilirlik: Java Virtual Machine çalıştırabilen herhangi bir cihazda tam olarak aynı şekilde çalışacak olan bir Java uygulamasına benzer şekilde bir Docker konteyner’ının, Docker çalıştırabilen herhangi bir sistemde aynı olması garanti edilir. Bir konteynerın tam özellikleri Dockerfile’de saklanır. Bir şirket ya da kurum, bu dosyayı ekip üyeleri arasında dağıtarak, aynı Dockerfile’den oluşturulan tüm görüntülerin aynı şekilde çalışacağını garanti edebilir. Ek olarak, sürekli ve iyi belgelenmiş bir ortama sahip olmak, işinizi takip etmeyi ve sorunları tespit etmeyi kolaylaştırır.

Yalıtım: Bir kapsayıcıdaki bağımlılıklar veya ayarlar bilgisayarınızdaki veya çalışmakta olan diğer konteynerlardaki yüklemeleri veya yapılandırmaları etkilemez. Bir uygulamanın her bileşeni için ayrı konteynerlar kullanarak (örneğin bir web sunucusu, ön uç ve bir web sitesini barındırmak için veritabanı), birbiriyle çelişen bağımlılıklardan kaçınabilirsiniz. Sisteminizde çakışmalar hakkında endişe duymadan tek bir sunucuda birden fazla proje yapabilirsiniz.

Güvenlik: Önemli uyarılarla, büyük bir uygulamanın farklı bileşenlerini farklı kaplara ayırmanın güvenlik yararları olabilir: eğer bir kapsayıcı tehlike altındaysa diğerleri etkilenmez.

Docker Hub: LAMP yığını gibi yaygın veya basit kullanım durumlarında, görüntüleri kaydetme ve Docker Hub’a itme özelliği, hali hazırda bakımlı çok sayıda image’in mevcut olduğu anlamına gelir. Hazırlanmış bir image’i hızlıca çekebilmek ve ya resmi olarak bakımı yapılan bir Dockerfile’dan derlemek bu tür bir kurulum işlemini son derece hızlı ve basit hale getirebilir.

Çevre Yönetimi: Docker, nginx kullanan bir web sitesinin farklı sürümlerini korumayı kolaylaştırır.

Sürekli Entegrasyon: Docker; Travis, Jenkins ve Wercker gibi araçlarla sürekli entegrasyon pipelinenın bir parçası olarak iyi çalışır. Kaynak kodunuz her gün güncelleştirildiğinde, bu araçlar yeni sürümü Docker image olarak kaydedebilir, sürüm numarasıyla etiketleyebilir ve Docker Hub’a itebilir, ardından üretime dağıtabilir.


Docker Nedir? Neden Kullanmalıyım? was last modified: Ekim 20th, 2020 by Burcu
24 Aralık 2018 1 comment
0 Facebook Twitter Google + Pinterest
Newer Posts
Older Posts

Son Yazılar

  • TypeScript’i Doğru Kullanmak
  • MACH Mimarisi Nedir?
  • Unit Test Nedir? Nasıl Yazılır?

Kategoriler

  • Genel (19)
  • Gezgin Rehberi (7)
  • Java (12)
  • Mobil (6)
  • Web Teknolojileri (15)
  • Yazılım Etkinlikleri (3)

Arşivler

  • Şubat 2022
  • Ocak 2022
  • Eylül 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Şubat 2021
  • Ekim 2020
  • Eylül 2020
  • Temmuz 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Ekim 2019
  • Temmuz 2019
  • Şubat 2019
  • Aralık 2018
  • Kasım 2018
  • Ağustos 2018
  • Temmuz 2018
  • Nisan 2018
  • Mart 2018
  • Şubat 2018
  • Ocak 2018
  • Aralık 2017
  • Ekim 2017
  • Eylül 2017
  • Ağustos 2017
  • Temmuz 2017
  • Haziran 2017

Son Yorumlar

  • Facade Tasarım Deseni için baran
  • Apache Solr Nedir? için Burak
  • Facebook
  • Twitter
  • Instagram
  • Linkedin
  • Github
  • Stack-Overflow
Footer Logo

@2021 All Right Reserved. Burcu Altınok


Back To Top