Motivasyonunuzu Kaybetmeden Evden Çalışmanın 8 Yolu

Herkese Selamlar! Son zamanlarda pandemi koşullarının hem ülkemizde hem yurtdışında ağırlaşması sebebi ile evden çalışmaya devam ediyoruz. Hatta bazı şirketler tamamen evden çalışma modeline bir diğer deyiş ile uzaktan çalışma yöntemine geçtiler. Şirketler açısından bakıldığında ofis giderleri düşünülecek olursa ve personelde işine sadıksa gayet makul bir çözüm olarak duruyor. İşin birde çalışan kısmı var tabi. Kimisi ofiste daha disiplinli, odaklamış ve verimli çalışacağını söylerken kimisi ise evden çalışmanın daha kısa sürede çok işler başarıldığını, yol, kıyafet, yemek gibi ofis içerisinde vakit kaybettiren bazı durumlardan kurtulduklarını dile getiriyorlar. Şahsen ben işe gitme taraftarıyım tabiki de sağlıklı koşullar sağlandığında. Durduk yere kimsenin sağlığını tehlikeye atmaya gerek yok şu an. Sosyal hayatımız ciddi anlamda düşüşte, yakın arkadaşlarımız ile çoğu zaman online olarak birbirimizi görüp, dertleşebiliyoruz. O da yüz yüze sohbetin yerini alamıyor ve bizi rahatlatamıyor elbette. Tüm bunlar etrafımızda olup biterken işimize nasıl odaklanır, evden çalışırken motivasyonumuzu nasıl yüksek tutarız sizinle 9 başlık altında ona bakacağız şimdi.

1.Dikkat Dağıtıcı Unsurları Ortadan Kaldırın
Sabah kalktınız, güzel bir kahvaltı, artık iş vakti ama her yerden bir ses geliyor ve düzenli olarak işinizin başından kalkıyorsunuz. Ofiste olsanız belkide 1 saat içerisinde yapacağınız iş 3 saatinize maal oluyor. Bunun için ilk olarak neler dikkatinizi dağıtıyorsa onları ortadan kaldırmalısınız. Eğer ki bu dikkat dağıtıcı gerçekten yapmanız gereken bir şey ise, çocuğunuz ile ilgilenmek evde bir sorundan dolayı ustanın gelmesi ya da ona benzer bir şey ise ilk önce o işleri ivedilikle çözüp ondan sonra bölmeden işinize başlayın. Tabi birde işin sosyal meday boyutu var. Gerçekten işinizi bölüyorsa telefonunuzu çalıştığınız odaya en uzak başka bir odaya koyun. Aralarda ve her bir parça işinizi tamamladığınızda telefonunuzu kontrol edin. Bu şekilde basit bir adım atarak işlerin bir parçada olsa hızlandığını siz de göreceksiniz.

2.Müzik ile Beraber Çalışın
Bilimsel olarak ispatlanmış bir şeydir müzik ile çalışmanın motivasyonun arttırdığı. Özellikle önceden başarılı olduğunuz bir işi yaparken dinlediğiniz şarkıyı dinlemek sizi daha çok motive etmektedir. Kulaklıkla dinliyorsanız anında çevresel sesleri elimine edeceksiniz demektir. Aynı zamanda da kafanızın içerisinde çalışmanızı etkileyen düşüncülerede bir nebze olsun zincir vuracaksınız anlamına gelir. Hatta bazı online müzik yayın kanallarında motivasyon arttıran ve odaklanmanızı kolay saglayabilecek olan listelerde var. Bakmanızı tavsiye ederim.

3.Sandviç Teoremini Uygulayın
İşinizi ne kadar sevsenizde zaman zaman can sıkıcı görevler illaki olacaktır. Bu genele back-end developer için css geliştirme, ya da bir front-end developer için sql üzerinde sorgu yazmak olabilir. Böyle bir duruma düşmüşseniz sandviç teoremini uygulamak ciddi anlamda işinize yarayacaktır. Sıraya sokun ve 2 eğlenerek yapabileceğiniz işinizin arasına bir tane yapmak istemediğiniz ama yapmak zorunda olduğunuz işi yerleştirin. Bu sayede aradan çıkmış olacak o iş ve bir taraftanda işleriniz akışına devem edecek.

4.Küçük, Gerçekleştirilebilir Hedefler Belirleyin
Uzaktan büyük bir resime bakmak ya da onun hayalini kurmak sizi ciddi anlamda motive eder. Büyük resime odaklanarak çalışmaya başlamak ciddi bir hatadır. Küçük ve gerçekleştirilebilir hedeflerden başlayarak büyük resmin izini kaybetmeden yavaş bir şekilde ilerlemek sizi her zaman tatmin edecek ve siz fark etmesenizde hedefinize daha hızlı ilerlemenize olanak tanıyacaktır.

5.Sık Sık Ara Verin
Yapılan bir araştırmaya göre insan beyni sürekli çalışmaya dayanabilecek türden bir organ değil. Sebebi ise şu sürekli çalışmak aslında bir nevi sürekli düşünmek demek ve insan bedeninde en fazla enerjiyi düşünürken harcıyoruz. Enerji elde etmek için ise iyi bir oksijen kaynağına ihtiyacımız var. Sık sık ara verip hava almak iyi bir çözüm olabilir. Hatta bu tekniğe pomodor tekniğide denir. Tabi vermiş olduğunuz bu aralarda telefondan uzak durmanız sizin yararınızadır. Çünkü telefon içerisinde dikkatinizi dağıtacak ve vermiş olduğunuz aranın süresini uzatacak çok fazla uygulama vardır. 15 dakikalık bir aranın 60 dakikaya birden sıçramasını sağlayan en temek problemlerden biri de budur.

6.Kendinizi Ödüllendirin
Yukarıda yer alan maddeler arasında en çok ikna edici olanı budur diyebilirim bence. Bunu gerçekleştirirken zaman sınırlaması koymayı kesinlike unutmayın. Muhtemelen kendinize vereceğiniz hediyede vakit alacak çünkü. 1 saat içerisinde kodda yer alan hatayı çözersem favori animemden bir bölüm izleyeceğim ya da güzel bir akşam yemeği ısmarlayacağım gibi küçük şeyler sizi motive edebilir ya da kendinize artık tam olarak ne ödül vermek istiyorsanız o ödüle giden yolda gereken çabayı göstermenizi sağlayın.

7.Sabahları Kendinizi Zinde Hissedin
Ben tam olarak bir sabah insanıyım. Çok fazla uyumam ve neredeyse her gün erken kalkarım(evet hafta sonlarıda dahil bu sürece). Özellikle sabahları erken kalkıp spor yapmak günün geri kalanında zinde hissetmenize ciddi anlamda katkı sağlıyor. Günün ilk ışıklarında spor yapmak henüz kendinizi mental anlamda çok yormadan vücudunuza fazlasıyla oksijen almak demek. Bu da günün geri kalanında aslında sizi idare edecek kadar yeterli oluyor.

8.Gün Boyu Bir Planınız Olsun ve Ona Uyun!
En az bir gün önceden bir sonra ki günü planlayın ve ona göre harekete geçin. Gün içerisinde plan yapmak kesinlikle sizi yavaşlatacaktır ve hatta o günün yarısının çöpe gitmesini sebep olur. O yüzden bir sonra ki gün ne yapacağınızı bilerek ilerlemek size çok büyük katkı sağlayacaktır. Ne kadar bunalırsanız bunalın o plana sadık kalmaya çalışın. Adım adım görevlerinizi tamamladıkça bunalma katsayınız düşecek ve muhtemelen gün sonunda kendinizi çok daha rahat hissedeceksiniz. Günlük planınızı fiziksel bir yere yazarak ilerlemeye çalışın, ajanda ya da bir kağıt parçası fark etmez. Görevleri tamamladıkça tatminkarlık hissi sizi iyi hissettirecektir.
Bu yazılıkta bu kadar. Yazımı okuduğunuz için teşekkür ediyorum. Bu yazıyı post ederken dinlediğim şarkı ise: The Lumineers – Full Performance Sonra ki yazılarda görüşmek üzere hoşçakalın !

0  

Yazılımsal Hata Tipleri ve Aralarındaki Farklar

Herkese Selamlar ! Bugün sizler ile beraber tam olarak bu hata tipleri neler? Bunları çözmek için neden önceliklendirmek ve sınıflandırmak zorunda olduğumuza bir bakacağız.


Yazılım Hatalarını 3 Temel Sınıfı

Temel olarak yazılımsal hataları 3 ana sınıf altında toplarız. Her bir sınıfın kendine ait alt sınıflarıda tabikide söz konusu. Peki bu 3 hata tam olarak nedir? Burada sadece bir seferlik türkçe olarak nitelendireceğim ve ardından ingilizce olarak bahsetmeye devam edeceğim. Sebebi ise bu kavramlar genelde çalıştığımız ortam içerisinde ingilizce olarak kullanılmakta, buna uygun olarakta sizlerin bunları duyar duymaz yabancılık çekmenizi istemiyor oluşumdan kaynaklı. Uzatmadan hemen 3 hata ne onları söyleyelim; Doğası gereği (By Nature), önceliği gereği (by priority), önemi gereği (by severity). Yazımızın kalan kısımlarında bu terimlerin ingilizcelerni kullancağımı bir kez daha hatırlatmak isterim.

Doğası Gereği Yazılımsal Hatalar (Software Defects by nature)

Fonksiyonel Hatalar (Functional Defects)
Fonksiyonel hatalar, tasarlanmış ya da kodlanmış olan yazılımın kendisinden beklenen işlevsel gereksinimlere uygun olmaması durumuna ortaya çıkan hatalardır. Bu tür hatalar genelde QA yani quality assuarance daha da açıklayacak olursak kendi firmamızda yer alan tester, iş analisti ya da kalite sorumluları tarafından tespit edilen hatalardır. Örnek verecek olursak şu an üzerinde çalıştığım projede Login butonu tıklandığında dashboard sayfasına gitmesini beklerken çok farklı bir alana gittiğini fark ettik. Aslında çalışıyordu ama yanlış bir şekilde. Sonra kodu kontrol ettiğimizde buton tıklanıldığında yanlış bir kod satırına gidip işlem yaptığını gördük. Bunu düzellttiğimizde ise artık sorun, sorun olmaktan çıktı.

Performans Hataları (Performance Defects)
Performans hataları, yazılımın hızına, kararlılığına, sistemden talep etmiş olduğunuz herhangi bir hizmetin respone yani geri dönüş süresine ve tüm bunları gerçekleştirirken hangi bilgisayar üzerinde çalışıyorsa o bilgisayarın donanım gücünü nasıl kullandığı ile alakalıdır. Performans testleri genelde kişiler tarafından gerçekleştirilmez. Bariz bir şekilde yavaşlık söz konusu ise tabiki de bunun üzerinde çalışmaya başlanır ama çok geniş kapsamlı bir test söz konusu ise;

  • Test edilecek sistemin yapısının belirlenmesi
  • Normal ve maksimum yük seviyelerinin belirlenmesi
  • Senaryoların ve sanal kullanıcıların yaratılması
  • Kullanılacak toolun seçiminin yapılması
  • Testin execute edilmesi
  • Test sonuçlarının incelenmesi ve yorumlanması

Şeklinde daha detaylı ve işlevsel bir test yapılması iyileştirme yapacağınız alanı tespit etme ve ona uygun bir çözüm üretmede size net bir cevap verecektir.

Kullanılabilirlik Hataları ( Usability Defects)
Komik bir tanım olacak ama kullanılabilirlik hataları genelde yazılımın kullanımının uygunsuz hale getiren hatalardır. Gözlemlemesi ve takip etmesi zor bir menu, giriş bilgilerinin düzensiz girmeye zorlayan üyelik sistemi prosedürü ya da sayfa üzerinde tüm işlerinizi yaptıktan sonra bulamadığınız “gönder” butonu bunların tamamı sayılabilir ve genelde bunlara ilk müdahele müşteriden gelir. Onun isteği doğrultusunda yeniden tasarımınız yapar ve kullanıma sunarsınız.

Uyumluluk Hataları (Compatibility Defects)
Uyumluluk hataları geliştirdiğimiz herhangi bir yazılım ürününün, donanım,
işletim sistemi, web tarayıcıları, farklı aygıtlar ya da belirli ağ kofigürasyonu altında çalışırken ortaya çıkan hatalardır. Benim gerçekten hoşlanmadığım hatalardan biridir. Gerçekten başarılı bir şekilde çalışan yazılımın bir gecede web tarayıcı ya da işletim sistemine gelen güncelleme ile çalışmadığına defalarca kez tanık oldum. Bu tarz durumlarda elimine etmek zorunda kalacağınız sistemler olabilir. Müşteriniz ile tartışarak bu durumu netleştirmek ve ona göre geliştirme sürecine devam etmek mantıklı bir davranış şekli olacaktır.

Güvenlik Hataları (Security Defects)
Güvenlik hataları ya da açıklarıda diyebiliriz bir yazılım projesi içerisinde güvenlik saldırısına izin veren zayıflıklardır. Güvenlik testi yapılan projelerde en çok karşılaşılan güvenlik kusurları, şifreleme hataları SQL Injection, XSS açıkları, rol tabanlı erişimlerde yaşanan mantık hataları ve kimlik doğrulamalara ortaya çıkmaktadır. Bu tarz açıkları düşünerek kodlamay yapmak projelerinizi daha güvenli bir ortam haline dönüştürecektir.
Önemi Gereği Yazılımsal Hatalar (Software Defects by severity)
Genelde şirketler içerisinde hatanın sistem üzerinde ki teknik etkisine dayalı olarak hataları/kusurları önem sırasına göre sınıflandırılır ve bu önem sırasına göre müdahele edilir. Önem sıralaması ise;
Kritik Hatalar: Genellikle tüm projenin ya da bir proje içerisinde yer alan modülün tamamının işlevselliğini engelleyen hatalardır. İster production ortamında olsun ister development ortamında bu hatalar giderilmeden projenin ilerleyen modüllerinde geliştirme yapılamaz, ilerlenemez. Login olduktan sonra dashboard sayfasına gitmek yerine sunucu hatası almak buna örnek olarak gösterilebilir.
Yüksek Önem Dereceli Hatalar: Bir uygulamanın temel işlevi etkilenmiştir. Uygulama davranması gerektiğinden çok farklı bir şekilde davranıyordur. Aynı zamanda sistem çalışmaya devam eder fakat yanlış çalışır.
Orta Önem Dereceli Hatalar: Proje içerisinde yer alan belirli bir modül üzerinde akışı ve işleyişi bozmayan ama mümkün olan ilk fırsatta düzeltilmesi gereken hatalardır.
Düşük Önem Dereceli Hatalar: Projenin işleyişi ile kesinlikle ilgisi yoktur. Genellikle ara yüz üzerine müşteriyi rahatsız eden butonun konumu, rengi ya da son kullanıcıya verilecek olan bir mesajın konumu ile ilgili olabilir.

Öncelikleri Gereği Yazılımsal Hatalar (Software Defects by priority)
Genellikle bir hatanın önceliğini belirlemekte ki esas amaç o hatanın proje üzerinde ki ticarı etkinisi karakterize etmektir. Şirketlerde bir proje içerisinde yer alan testciler, iş analistleri ya da kalite sorumluları müşteriler ile girdikleri toplantılarda bunlara karar verirler ve en kısa sürede çözmeye çalışırlar. 4 ayrı alt başlıkta inceleriz.
Acil Hatalar: Genelde bildirildikten sonra ki 24 saat içerisinde düzeltilmesi gereken hatalardır. Kritik önem derecesine sahip olan hatalar bu kategori içerisinde de yer alabilir fakat bazı zamanlarda ilginç bir şekilde düşük önem derecesine sahip hatalarda bu kategoriye girebilir mesela müşterinizin firmasının ismi proje üzerine yanlış yazılmışsa zor bir şey değildir bu gerçi ama müşteriniz bunun en kısa süre içerisinde düzeltilmesi için size ateş püskürebilir. Ciddi bir teknik sorun değildir ama can sıkar. Yine de ciddi bir teknik sorun ile karşılaşıp saatlerce debug yapmaktansa bu tarz acil hatalar çok daha iyidir.
Yüksek Öncelikli Hatalar: Geliştirilen proje ilk defa gerçek hayatta kullanılacaksa yani minimum value product, türkçesi ile kullanılabilir en basit sürüm olacaksa bu tarz hatalar giderilmeden ürünleştirme söz konusu olamaz. Proje zaten canlı ortamda çalışan bir proje ise bu hata acil hatalardan sonra gelen ilk hatadır. Örnek verecek olursak, kullanıcı login ekranı üzerinde giriş bilgilerini doğru girmesine rağmen giriş yapamıyorsa ya da sayfa üzerinde bazı bilgileri belirli bir dosya formatında indirebilme yeteneğine sahipken bunu yapamıyorsa gibi örnekler vererek bunları çoğaltabiliriz.
Orta Öncelikli Hatalar: Mevcut sürüm içerisinde değil fakat bir sonra ki sürüm üzerinde düzeltilebilecek olan hatalardır. Uygulamanın doğru çalışması ama ara yüz üzerinde göstereceği bir verinin yanlış formatta göstermesi bu tarz hatalar arasında gösterilebilir.

Düşük Öncelikli Hatalar: Uygulamanın ürünleşme kritlerini etkilemeyen ama yine de ürünleşmeden önce düzeltilmesi beklenen hatalardır. Yazı tipi, hizalar, bazı ara yüz elementlerinin boyutu genel olarak kozmetik hatalar bu gruba dahil edilir.

Hataları Doğru Sınıflandırmak Neden Önemlidir?
Genellikle bu tarz sınıflandırma yapmayan ve doğaçlama çalışan şirketler hataları yanlış çalışanların üzerine atadıkları için çok vakit kaybettikten sonra müşterilerine karşı mahçup olmaktalar. Bunu bir alışkanlık haline getiren şirketler ise hatalarını ciddi anlamda çabuk düzeltmekte, test ve geliştirme sürecinin verimliliğini arttırmaktadırlar. Bu yazılıkta bu kadar. Yazımı okuduğunuz için teşekkür ediyorum. Bu yazıyı post ederken dinlediğim şarkı ise: Caro Emerald – I Belong To You Sonra ki yazılarda görüşmek üzere hoşçakalın !

0  

10/02/2021 Data Science Earth “From Idea to Product, Software Development Lifecycle” Webinar

Bu sefer uluslar arası bir webinarda konuşmacıyım! 10 Şubat 2021 saat 20:00’ de #datascienceearth tarafından organize edilen etkinlikte “From Idea to Product, Software Development Lifecycle” konulu bir oturumda konuşmacıyım. Vaktiniz varsa sizleri de beklerim. Afiş üzerinde yer alan sosyal medya hesaplarından erişebilirsiniz. NOT:Webinar ingilizce yapılacaktır.

0  

.Net Core Üzerinde Fluent Migrator Nasıl Yapılır?

Herkese Selamlar! Son zamanlarda herkesin ihtiyaç duyduğu bir yapıdan bahsetmek istedim size fluent migrator. Video içerisinde gördüğünüz örneği ise kendi github hesabımdan paylaştım. Teşekkür ederim sonra ki yazılarda ve videolarda görüşmek üzere, hoşça kalın….

0  

Visual Studio 2019 Presentation Mode Nasıl Kullanılır?

Herkese Selamlar! Visual Studio 2019 üzerinde güzel bir eklenti ile beraber kullanabileceğimiz presentation mode var artık! Eklentinin ismi Tweaks. Visual Studio marketplace üzerinden kolayca buraya tıklayarak indirebilirsiniz. Nasıl kullanacağınız ise aşağıda yer alan videoda yer almakta. İzlediğiniz için şimdiden çok teşekkürler. Başka videolarda ve yazılarda görüşmek üzere hoşça kalın.

0  

IEEE Ege Computer Society Web Development Webinar

Herkese Selamlar, 11.01.2021 tarihinde saat 21:00′ de IEEE Ege Computer Society’nin duzenledigi Webinar’ da konusmaciyim. Web Development hakkinda bilmedikleriniz, merak ettikleriniz varsa sizleri de beklerim. Yayin Google Meets uzerinden gerceklestirlecek ve baglanti linki saat 20.30 da “ieeecsege” instagram sayfasinda bioda paylasilacak. Katiliminiz icin simdiden tesekkurler…

0  

Microservice Mimarinin Dezavantajları

Herkese Selamlar! 2021 yılının ilk yazısına başladık. Bu sene blog yazılarına çok daha fazla önem vermeye çalışacağım. Bundan yaklaşık 6 hafta kadar önce microservice mimari nedir ve neden önemlidir diye bir yazı kaleme almıştım. Yazıyı paylaştıktan sonra şöyle bir yorum geldi.

Ben bu yorumun çok mantıklı olduğunu düşünerek, microservice mimarinin dezavantajlarına değinmeye karar verdim. Okuyucumuz yapıcı eleştirisi ve önerisi sayesinde sizlerle beraber bir bakalım ne gibi dezavantajları var microservice mimarinin.

1.Microserviceler Karmaşık Yapıdadır

Microservice mimarinin yapısı gereği monolitik mimariye göre zaten daha karışık bir yapısı vardır. Teorik olarak monolitik mimaride tek bir yapı üzerinde çalışırız. Microservice üzerinde ise içerisinde yer alan ayrı servislerin sayısı arttıkça karmaşıklık daha da artar. Farklı hizmetler üzerinde kullanılmış olan programlama dillerini ve frameworklerini birbirleri ile problem çıkarmadan çalışmasını sağlamak ciddi anlamda zordur. Projeniz içerisinde kullanılan her bir servis yine o servise özgü olan test ve izleme ortamına ihtiyaç duyacaktır bu da sizin projenize ya da firmanıza ek kaynak oluşturmanız anlamına gelir ve maliyetiniz artar ki bu problem iş verenlerin gerçekten hoşlanmadığı durumlardan bir tanesidir.
Peki şimdi sizden küçük bir hayal kurmanızı istiyorum. Gerçekten projenizde microservice yapısını gayet güzel kurguladığınızı varsayalım ama bazı servisler farklı işletim sistemi üzerine koşmakta ya da farklı veri tabanı üzerinden veriler çekmektesiniz. Buraya kadar gayet güzel problem şu veri tutarlılığından %100 emin olabilecek misiniz? Genelde microservice mimari üzerinde çalışan kişiler ile konuştuğumda bunu genelde takip etmeye çalıştıklarını bir problem çıkmaması için fazladan çaba sarf ettikleri dönemler ile karşılaştıklarını dile getirdiler. Karmaşık yapı başlığı altında toplayabileceğimiz alt başlıklardan bir taneside yazılımcıların korkulu rüyası dökümantasyon. Sürekli farklı hizmetlerin çalışması çalışan üzerinde ki dökümantasyon yükünü arttıracaktır.

2.Alışkanlıkların Dışına Çıkmak/Kültürel Değişiklik

Gerçekten kızdığım bir konu var en başta onu söylemek istiyorum. Sırf populer diye bu servise geçmek isteyen firmalar tanıyorum. Bu servise geçiş yapabilmek ve layığıyla kullanabilmek için firmanız içerisinde olgunlaşmış bir agile ve DevOps kültürünüzün olması gerekmekte. Bunlar yoksa ciddi anlamda problem yaşarsınız ki, microservice mimari ile başlayıp projeyi bir yere kadar getirdikten sonra “İşler çok karıştı keşke monolitik üzerinden gitseymişiz” diyenleri gerçekten çok gördüm. Her bir microservice yapısı bağımsız olarak çalışır. Bu mimari üzerinde ki esas fikir zaten ekiplerin küçük, bağımsız olarak çalışmasını sağlamaktır. Tabi bu bağımsızlık aynı zamanda fazladan bir kontrol de gerektirir. Şahsen microservice mimari yapısı üzerinde en önemli dezavantaj yetkinliklerin ve karar alma gücünün yöneticilerden, yazılım mimarlarından alır ve küçük ekiplere kaydırılmasını içerir. Geleneksel yöntemler ile yönetilen 25-49 kişilik firmalarda bunu üst düzey yöneticilere kabul ettirmek ciddi bir problemdir.

3.Maliyetler

Genellikle microservice mimari monolitik yapıya göre daha maliyetlidir. Biraz öncede söylediğimiz gibi farklı ve bağımsız hizmetlerin birbirleri ile problem çıkmadan haberleşmesi gerekir. Zaman zaman network latency yani ağ gecikmesine sebep olabilir. Problemin çözümü tabi ki her zaman bu olmaz ama genelde bu gecikmeleri güçlü ve maliyeti yüksek bir alt yapı ile çözmeye kalkarsak proje bütçesinden fedakarlık yapmak zorunda kalabiliriz.

4.Microservice ve Güvenlik

Monolitik yapıya kıyasla birbiri arasında sürekli haberleşen servisler sebebi ile hem uygulamanın güvenliğini sağlamak hem de servisler arasında yer alan güvenliğide sağlamak zorundayız. Daha detaylı ele alacak olursak birden fazla container ile çalışıyoruz. Uygulama ve iç yapısı içerisinde ki servislerin birbirleri ile veri paylaşması sürekli ağ üzerinde veri trafiğine sebep olacak bu da art niyetli kişileri aklımıza getirdikçe bizi biraz daha tedirgin edebilir.

Yukarıdaki 4 maddede microservice mimarisinin dezavantajlarından bahsetmeye çalıştım. Şunu kesinlikle unutmamalıyız sadece populer diye bu tarz bir mimariye geçmeye çalışmamalıyız. Doğru eğitim ve araçlar olmadan microservice mimari bizi çıkmaza sürükleyebilir. Yazımı okuduğunuz için teşekkür ediyorum. Bu yazıyı post ederken dinlediğim şarkı ise: Adamlar-Sarılırım Birine Sonra ki yazılarda görüşmek üzere hoşçakalın !

0  

IEEE TRSB Computer Society Web Development 101 Canlı Yayını

Herkese Selamlar ! 23.10.2020 tarihinde saat 21:00 de IEEE TRSB Computer Society youtube kanalinda Web Development 101 konusu ile canli yayinda olacagim ! Vaktiniz varsa beklerim, linke tiklayarak erisebilirsiniz. Katılan arkadaşlara şimdiden çok teşekkürler.

0  

Microservice Mimari Nedir ? Neden Önemlidir ?

Herkese Selamlar ! Bugün sizler ile beraber son zamanlarda ciddi anlamda herkes tarafından merak edilen, hatırı sayılır sayıda şirketin şu an aktif olarak kullandığı microservice mimari nedir ? Neden önemlidir ? bir bakalım istedim bu yazı içerisinde. Yavaş yavaş başlayalım o zaman !

Microservice Mimari Nedir ?

Microservice, service oriented architecture (SOA) yapısının bir çeşididir aslında. Bir uygulama içerisinde ki o uygulamanın çalışmasını stabil bir sekilde götürebilen, belirli hizmet, tek bir amaç ve en önemlisi birbirinden bağımsız olarak çalışan alt hizmetlerdir. Aslında ben en çok bunu SOLID principles içerisinde yer alan Single Responsibilitye benzetiyorum. Tek bir sorumluluk alacak kurguladığımız yapı ve tamamen buna dayalı olarak yoluna devam edecek. Normalde kullandığımız yapı ise monolithic. Tam olarak aşağıda ki resimde yer aldığı gibi.

Monolithic yapıyı şu an hali hazırda herkes kullanıyordur zaten. Çok büyük projelerde ise bu yapı sorun olmaya başladı. Mesela Amazon tamamen bu yapı üzerindeydi fakat proje ciddi anlamda çok büyüdü. Amazon mühendisleri ortalama olarak her 11.7 saniyede bir kod gönderirler proje içerisine yani production ortamına kod pushlamaktan ve ardından deploy almaktan bahsediyorum. Büyük bir proje içerisinde çalışıyorsanız ve bu büyük projeyi yönetmek için büyük bir ekibiniz var ise monolithic yapı size uygun değildir. Sebebi ise katmanlar üzerinde birbirine bağımlı çok fazla alt hizmetler vardır. Yapmış olduğunuz basit bir değişiklik diğer katmanları gereksiz yere etkileyebilir ve sürekli birbirini ezmeye çalışan kodlar üzerinde ki problemleri çözmeye harcayabilirsiniz vaktinizi. Şu an ise Amazon, Netflix, Google, PayPal ve Uber bu mimariyi oldukça benimsemiş durumda. Ülkemiz içerisinde de büyük, orta ölçekli ya da küçük geliştirmenlik firmaları projelerinde bu mimariyi uygulamak için ellerinden geleni yapıyorlar.

Microservice mimarisini daha detaylı bir çizim ile gösterecek olursak ise;

Esneklik (Flexibility)
Microserviceler iç yapısında birbirinden bağımsız olduğu için farklı servisler kullanmaya ihtiyaç duyduğumuz da en uygun teknolojinin kullanımına izin verir. Bunu biraz daha detaylı olarak incelemek istersek; belirli bir servisi oluşturan her ekibin bağımsız olarak çalıştıkları için tercih ettikleri programlama diline ve frameworke karar verebileceği anlamına gelir. Bu bağımsızlık kolaylıkla birbirleri arasında iletişimin sağlanmasının yanı sıra servislere kolay bir şekilde bakım yapılmasını da olanak tanır. Aynı zamanda bir web uygulamasının işlevselliğini etkilemeden ona ek bir özellik eklemek ya da artık kullanılmayan bir özelliği ortadan kaldırmak anlamına da gelir.

Yeniden Kullanılabilirlik (Reusability)
Bir şirket mikroservice mimarisini bir proje için geliştirip uyguladığında, diğer projeler için genişletilebilir bir referansa yani en azından şematik diyagrama sahip olur. Farklı projelerde programlama dili, geliştirme araçları farklı olsa bile çekirdek mimarinin çoğunu koruyabileceği ve yeniden kullanabileceği anlamına gelir.

Riski Azaltmak (Reduces Risk)
Yazının başından itibaren sürekli bağımsızlık diyorum ya aslında her bir servis microservices içerisinde yer alan ayrı bir servis ayrı bir nesnedir. Bu sebeple birbirinden bağımsız çalışırlar. Bağımsızlık sebebi ile herhangi bir bileşen, diğer bir ismiyle component kendi problemini tüm uygulamaya yayamaz. Diğer componentler başarılı bir şekilde çalışmaya devam ederler. Tabi bu hatayı gidermek ya da yeniden yazmak kolaylaşır. Problemi tüm yapı üzerinde aramak yerine sorumlu olan componente gidersiniz ve çözersiniz. Uygulamanın tamamen durması sorununu ortadan kaldırmış olursunuz.

Ölçeklenebilirlik (Scalability)
Bu madde benim favori maddem diyebiliriz. Monolithic mimari üzerinde ölçeklendirme yapmak isterseniz eğer ihtiyacınız olsa da olmasada istemsizce tüm uygulama üzerinde yapmanız gerekir tabi ona göre bir maliyet çıkar ya da en azından ona göre vakit harcarsınız fakat microservice içerisinde istediğiniz component üzerinde istediğiniz oranda ölçekleme yapabilirisiniz.

Continuous Delivery
Microserviceler, bir uygulamanın tüm yaşam döngüsünü yönetmek için sabit bir delivery model kullanır. Bu cümle kısa olmasına rağmen biraz anlamsız gelebilir ama demek istenilen geliştirmenler ve test ekipleri tek bir servis üzerinde birlikte çalıştığında, test süreci kolay ve hızlı bir şekilde tamamlanır. Üzerinde çalıştığımız mikroservice belirli bir amaca yönelik hizmet verdiği için kolay test edilebilir hale gelir. Bu da genel anlamda süreci hızlandırır.

Çeşitli Veri Depolama (Various Data Storage)
Yukarıda yer alan resimde de görebileceğiniz gibi microservice mimari monolithic mimarinin aksine uygulama içerisinde kullanacağınız verilerin farklı konumlarda depolanmasını sağlar. Bazı durumlarda iş yaptığımız şirketler büyük veri kümeleri ile ilgilenir ve bu verilerin kendine has özellikleri olabilir. Bu nedenle bazı sorunlara ortaya çıkabilir. Buna rağmen microservice mimari her servisin ihtiyaç duyduğu en uygun depolama yöntemini kullanarak bu sorunu da çözebilir.

Ekip İşbirliği (Easy Team Collaboration)
Bir servis üzerinde çalışan ekip üyeleri yeteneklerine göre o servise atanır. Aynı amaca hizmet eden ekip üyeleri odaklanma problemi yaşamaz ve servis kısa sürede tamamlanır. Netflix’in microservice mimarisi kullanmasının ana sebeplerinden bir tanesi budur. 25 mühendisleri aynı proje üzerinde çeşitli sorunlar ile karşılaşırken birlikte ve uyum içerisinde çalışmak zorundaydılar. Tabi bu biraz zor. Microservice mimarisine geçtikten sonra ise bir sürü küçük mühendislik ekibi kurdular ve sorunlarda ekip işbirliğide ekiplere özgü olarak güncellendi.

Çeviklik (Agility)
Yukarıda da söylediğimiz gibi, microservice mimarisinde ki her bir servis sadece bir işlev üzerinde çalışır. Üzerinde değişiklik yapmış olduğunuz kod parçacığını ölçeklendirme yapmak (scalability), test etmek ve release etmek çok daha kolaydır. Amazon sadece bu yüzden monolithic mimarisini microservicelere taşıdı. Karmaşık ekip yapılarının ve kod mimarisinin yerine daha küçük, daha verimli ve yapılar arası işlevliği olan bir mimari yer aldı.

Bildiğim kadarıyla ve elimden geldiğince sizlere microservice mimarinin önemini 8 madde ile açıklamaya çalıştım.Bu yazılıkta bu kadar ! Vakit ayırıp yazımı okuduğunuz için çok teşekkür ederim. Bu yazıyı post ederken dinlediğim şarkı ise: Mike WiLL Made-It, Nas, Rick Ross – Check Sonra ki yazılarda görüşmek üzere hoşçakalın !

0  

Bilişim Sektöründe Sertifikaların Önemi

Herkese Selamlar ! Bugün sizler ile beraber tarafıma abartmıyorum yüzlerce kez sorulmuş bir soruyu cevaplamak istiyorum. Aranızda özel ya da devlet, mühendislik ya da ilgili benzer bölümlerden mezun olmuş ama sertifikası olmayan yüzlerce kişi var ve özellikle şu sıralar pandemi dönemindeyiz ve evde vakit geçiren kişi sayısı arttığı için herkes sertifika almaya başladı. Bu yüzden olduğunu düşünüyorum ki sosyal medya hesaplarımdan tarafıma çok fazla bunun üzerine soru geldi. Sizinle çeşitli amaçla alabileceğiniz ya da almayı planladığınız sertifikaları ayrı başlıklar altında inceleyelim şimdi.

  1. Katılım Sertifikaları
    Yeni mezunsanız ve cvnizde aslında gerçekten de ben ilgilendiğim bu meslek adına bir şeyler yapıyorum ya da yenilikçiyim, sürekli bir öğrenme durumu söz konusu diyorsanız katılım sertifikaları sizin için işe yarayabilir. Şunu unutmayınız yalnız. Katılım sertifikalarının somut tek faydası budur. Teknik anlamda donanımlı olduğunuzu göstermez. Katıldığınız bir eğitim ya da konferansta bulunduğunuza dair belge, bir nevi yoklama diyebiliriz aslında peki katıldığınız o eğitim size ne kadar faydalı oldu ? İşte bu gerçekten tam bir muamma o yüzden katılım sertifikalarınızı yeni mezunsanız cvnize ekleyiniz onun haricinde pek tavsiye etmiyorum açıkçası.
  2. Özel Bir Kurum Tarafından Verilmiş Başarı Sertifikaları
    Aslında bu nokta cidden çok önemli. Herkes herhangi bir kurumua gidip onun maddi karşılığını ödedikten sonra eğitimi alabilir. Başarı kısmında ise o alan özgü kuruma ait sertifika bulunduğunuz şehirde ya da çalışmayı planladığınız şehirde ne kadar biliniyor. Çok biliniyorsa ve gerçekten az kişide varsa her şey çok güzel demektir. Peki aksi senaryoyu düşünecek olursak yani sertifika bilinmek ile beraber herkeste varsa ? İşte bu gerçekten iyi bir durum olmaz sizin açınızdan. Sebebi ise o kurum sertifikaları kolay veriyor demektir. Bu sizin cvnizde yer alsada kendinizi ispatlamak için çaba sarfetmenize sebep olablir. İspatlamaktan kasıt ise herhangi bir iş görüşmesine gittiğinizde o sertifikayı gerçekten hak ederek aldığınıza dair eğitim süreniz boyunca yaptığınız ciddi çalışmaları gösterebilirsiniz. Mülakatı yapan kişi açısından etkileyici olacaktır.
  3. Uluslararası Firmalardan Alınan Sertifikalar & Ünvanlar
    Daha önce yurtdışında bir firmada yazılım geliştirmeni pozisyonunda çalışmış biri olarak şunu söyleyebilirim ki herhangi bir ülkede almış olduğunuz eğitim ya da eğitim sonunda almış olduğunuz diploma (bir üniversite eğitiminden bahsediyorum) başka bir ülkede geçerli olmayabilir. Mesela ben Ege Üniversitesi mezunuyum eğer ki değişmediyse America’da bulunduğum dönemlerde bazı eyaletlerde diplomam geçerli iken bazılarında kabul edilmiyordu. İşte tam olarak bu noktada uluslararası çapta bir sertifikanınızın olması sizi kurtaracaktır. Çünkü o tarz bir belgenin elinizin altında olması sizin mülakata davet edilmenizi sağlayabilir. Bu tarz sertifikalar almanın bir diğer avantajı ise çalışmak istediğiniz firma ile sertifikasına sahip olduğunuz firma arasında ortaklık ( partnerlik ) sözleşmesi olabilir. O tarz durumlarda bazı firmaların belirli sayılarda sertifikalı personel çalıştırması gerekmekte ve sizde eğer ki o sertifikaya sahipseniz biraz değerli olabilirsiniz.
  4. Çok Fazla ve Farklı Alanlarda Sertifikalar Almayın !
    Çok samimi bir şekilde söylüyorum ki bu yazının en can alıcı noktası burası diyebilirim. Neden derseniz sertifika almak iş görüşmelerinde etkiler karşı tarafı fakat şunu unutmayınız ki çok fazla ve farklı alanlarda sertifika almanın gerçekten somut bir zararı vardır. Bu tarz sertifikaları almak zordur ve vakit ayırıp çalışmanız gerekir. Eğer ki çok fazla varsa bu sertifikalardan mülakatı yapan kişi muhtemelen “Bu aday ne zaman proje geliştirdi acaba ?” diye bir düşünecektir.

    Farklı alanlarda sertifika almak ise sizin uzmanlaşmak için kararsız kaldığınızı bir uzmanlığınız olmadığı için kariyerinizde ilerleme konusunda problem yaşayacağınızı gösterir ki bu tarz bir şey yaşamanızı hiç istemeyiz.

  5. Bonus !
    Diploma ya da sertifika neye sahip olursanız olun. Bunlar sadece sizi mülakat masasına kadar götürecektir. İçeriye esas girmenizi sağlayacak olan bilginiz, proje tecribeniz kısacası iş hayatında tam olarak neler yaptıklarınızdır. Daha önce de dediğim gibi eğer ki iş tecrübeniz yoksa karar verdiğiniz bir uzmanlık alanınıza yönelik sertifikaları alarak cvnizde yer almasını sağlayabilirsiniz. Vermiş olduğum her seminerde, webinerde ya da eğitimde sürekli dile getirdiğim bir söz var ve burada bir kez daha söylemek istiyorum. İş, işte, iş yaparak öğrenilir.  Siz kariyeriniz için elinizden geleni yapın gerisi kendiiliğinden gelecektir. Bu yazılıkta bu kadar ! Vakit ayırıp yazımı okuduğunuz için çok teşekkür ederim. Bu yazıyı post ederken dinlediğim şarkı ise: Michael Kiwanuka Love & Hate Sonra ki yazılarda görüşmek üzere hoşçakalın !
0  
EnglishGermanTurkish