5 Madde ile Kodlama ve Uygulama Geliştirme Üzerine

ekranda kod
PRO

5 Madde ile Kodlama ve Uygulama Geliştirme Üzerine

İlk tıklamayla başlar serüven, planlanmış bir tasarımın harika işler yapmasını umduğunuz bir başlangıçtır bu.
Teknoloji devlerinin rekabetlerinden nasibini almış, hırs ve tutkuyu peşinden getiren kazançların (beklentilerin) ilk adımıdır… Seviye ve yeteneklerin sınırlarının zorlandığı, zirveye yürüyüşün, hayallere atılan adımların geri sayımıdır!
Doğru teknolojileri ve programlama dillerini kullanıp kullanmadığınızdan bir türlü emin olamayıp, bin parçaya bölünüşünüzün hüznüdür bu! Ayrıca buna neden gerek kaldığınızı sorgularken yaşadığınız ikilemler mesleğinizin devrinin yaşandığı bir dönemde belki de en önemli çıkmazınız!
Evet, geliştirme ve kod yazmak; bu kavramları irdeliyoruz!
Geliştiriciler için kodlama ve kişisel yetenekler, istediği işi elde etmek veya bir girişime yelken açmak için en kuvvetli referanslar arasında yer almaktadır. Özellikle bulut ve mobil çağında öğrenilmesi gereken programlama dilleri ve altyapı çeşitliliği, rekabete ayrı bir boyut kazandırdığı gibi geliştiricilerden beklentileride arttırmaktadır. Bu kapsamda; dağıtık – çoklu platformlar (Cross Platform), geliştirme operasyonları (DevOps), versiyonlama ve devamlı entegrasyon (CI, ALM) vb. süreçler yeni dilleri, teknolojik altyapıları beraberinde getirip yetenek silsileri bağı oluşturmaktadırlar.
​Teknolojinin yaygınlaşması, girişimlerin getirileri, mobil platformlar, ağ erişim hızları ve aktif kullanıcı sayılarının artmasıyla birlikte internet üzerinden sunulan hizmetler ve bu hizmetleri bir araya getiren öğeler büyük önem kazanmıştır. Bu öğelerin başta gelen iki üyesi, kod ve geliştirme süreçleri için birkaç konu başlığını derleyelim.
1 – Açık Kaynak (Open Source – Topluluğun Gücü)
Bir gün geçmiyor ki teknoloji devlerinden her hangi biri yeni bir platformu topluluk ile paylaşmasın!
Son dönemlerde devasa ve popüler kod deposu GitHub’ı değerlendirdiğimizde karşımıza net bir tablo çıkmaktadır. Microsoft .NET platformu, Apple Swift programlama dili, Google’ın ve Facebook’un web, mobile ve UI konulu geliştirmeleri açık kaynak kodlu projeler olarak paylaşılmış durumda.
Topluluk desteğini arkasına almış bir çok açık kaynak kodlu proje aktif süreçlerine hızla devam etmekte ve her geçen gün yeni özellikler kazanmaktadır. Böylece paydaşların, destekçi ve son kullanıcıların ihtiyaçlarını karşılayabilen, esnek, verimli ve hızlı geliştirme ortamları, kütüphaneler ve dokümanlar oluşturulabilmektedir.
2 – Kalite
“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
Evet, herkes kod yazabilir ancak iyi bir geliştirici tarafından yazılan kod herkes tarafından okunabilir. Geliştirme sürecinde bir şeye dikkat çekmek gerek; kodu okumanın yazmadan daha fazla yapılıyor olması. Farklı kaynaklardan derlenen (Referanslar, Kütüphaneler) programlar, takım arkadaşlarınız tarafından yazılan kodlar ve entegre çalıştığınız her bir kaynak (API) incelenmek ve keşfedilmek üzere sizleri beklemektedir. İlk değişikliği belirgin olarak kendinizde yapar ve uygularsanız, beraberinde yorum satırına dahi ihtiyaç duymayan ortak bir dil meydana getirmiş olursunuz! Fakat göreceli değerlendirme ve yorumları göz ardı etmeden!
3 – Standardizasyon
“When you come to work, you are not writing code for you, you’re writing code for those who come after you” – Nicolas C. Zakas
Prensiplere uyan ve gereksinimleri karşılayan kodlar yazmak! Evet ama tam bu noktada ince bir husus sizi bir üst seviyeye taşıyacaktır. Sürdürülebilir, bakımı kolay ve hızla anlaşılabilen bir kod! Bunun içinde her ne olursa olsun sadık kaldığınız bir yapı her hangi bir serbestlikten çok daha iyi olacaktır. (Coding Conventions)
4 – Odaklanma
Tam zamanlı olarak yeni bir proje için bir araya gelen bir ekibin, etkin ve hedef odaklı yönetilmesi, emeklerin boşa harcanmaması ve nihai son açısından büyük önem taşımaktadır. Ekibin beklenen çıktıları üretebilmesi için yeteneklerin doğru katmanlarda iş paylaşımı yaptığından emin olunmalıdır. Herkes her işi yapabilir tarzı makul gelebilir fakat bu seçenek teoride iki tam zamanlı işi aynı anda yapmanızla eşdeğer! Sizce böyle bir durumda her hangi birinden fedakarlık yapmadan iş kalitenizi koruyabilir misiniz?
Hiçbir şeyin tam zamanlı işinizdeki performansınızı etkilemesine müsaade etmeyin! Böylelikle her bir gününüz size katkı sağlamaya devam edecektir. O an için öğrendiğiniz ve geliştirdiğiniz ne ise o yolda ilerleyin ve bunu en iyi şekilde yapmaya gayret edin.
Detayları gözden kaçırmayarak fark yaratın!
5 – Destek
“The purpose of software engineering is to control complexity, not to create it” – Dr. Pamela Zave
Bu zamana kadar üzerinde çalıştığınız altyapı, sistem ve kodlama; analiz, geliştirme ve test süreçlerini tamamlayıp kullanıcıların hizmetine sunulduğunda artık bir proje olarak adlandırılmış ve yepyeni bir dünyada görücüye çıkmıştır. Her şey bugünler için yapılmış bir yatırım gibidir. Doğru mimari her anlamda etkin ve hızlı destek verebilmenize olanak sağlayacaktır.
Bu noktada; sadık kaldığınız prensipler (SOLID), uyguladığınız yöntemler ve standartlar bu süreçte sırdaşınız ve en etkin yardımcınız olarak safınızda yer alacaktır.
​Sonuç:
“Failure is not an option; It’s included with the software.”
Elbette elinizden geleni yaptınız! Çok çalıştınız ve güzel bir projenin üyesi olarak sektörde yerinizi aldınız. Öyle bir an ile karşılaştınız ki; kendinizden, ailenizden ve dostlarınızdan çaldığınız zamanı ve emeklerinizi, oynadığınız bu masada kaybetmek üzeresiniz! İşler istediğiniz gibi gitmedi ve elinizde olmayan bir sebeple projeyi hayata geçiremediniz!
Bunun bu işin bir parçası olduğunu unutmazsanız her zaman size bir çıkış kapısı verecek, size daha iyisini yapma şansı tanıyacaktır…​

 

Arşivler

X