Web geliştirmeyi öğrenme konusundaki konuşmamıza devam ederken, belirli programlama dillerinden uzaklaşacağız ve bunun yerine web uygulamalarının çalıştırıldığı ve geliştirildiği ortama odaklanacağız. Bu bölüm birkaç büyük konuyu kapsar:
- Her geliştiricinin aşina olması gereken temel geliştirme araçları.
- Uygulamalarımız Web’de yaşadığından, ağ ile ilgili bazı temel konuları gözden geçireceğiz;
- Uygulamalarımızın çalıştırıldığı ortamlar.
İçindekiler
📒 Geliştirme araçları
En başından itibaren geliştirme araçlarınızda rahat olduğunuzdan emin olmak için, böylece kod yazmada ve uygulamanızda hata ayıklamada hızlı bir şekilde ilerleyebilirsiniz. Geliştirdiğiniz her platform, o platforma özgü birçok araca sahip olacaktır, ancak neredeyse tüm geliştiriciler tarafından kullanılan bazı araçlar vardır. Onların üzerinden geçelim.
📒 Kod Düzenleyicileri
Kod düzenleyici, her yazılım geliştiricisinin evidir. Sihir yapılan yer burasıdır. Temel kod düzenleyicileri, kod vurgulama, yeniden düzenleme ve hata ayıklama yetenekleri gibi en gerekli özellik setini sağlar. Ayrıca, çok çeşitli güçlü tümleşik araçlar ve yeteneklere sahip, entegre geliştirme ortamları (IDE’ler) olarak bilinen daha gelişmiş düzenleyiciler de vardır. İşte en popüler kod düzenleyicilerden bazıları.
- 📒 Visual Studio Code , Microsoft tarafından oluşturulan ücretsiz bir çapraz platform kod düzenleyicisidir. JavaScript, TypeScript, CSS ve HTML için yerleşik desteğe sahiptir, uzantı olarak başka birçok dil desteği mevcuttur. VS Code, sözdizimi vurgulama, kod tamamlama, kod üretmek için kod parçacıkları, yeniden düzenleme yetenekleri ve yerleşik bir terminal sunar. Ayrıca, uygulamanızdaki hataları gidermenize yardımcı olacak entegre bir hata ayıklayıcıya sahiptir. Özellik seti ticari IDE’lerde olduğu kadar geniş olmasa da, başlamanız için kesinlikle yeterlidir.
- 📙 JetBrains IDE’leri – JetBrains tarafından farklı platformlar için geliştirilen bir IDE ailesi. Ön uç geliştirme için WebStorm , Java için Intellij IDEA ve PHP için PhpStorm vb. Var . Bunların her biri ilgili dilleri, çerçeveleri ve araçları desteklemeye odaklanıyor. Bunu sürüm kontrol sistemleriyle entegrasyon, yerel değişiklik geçmişi veya çalışan görevler gibi daha da faydalı özelliklerle tamamlayın ve son derece verimli bir çalışma ortamı elde edin. Bu ürünlerin ücreti ödenir, ancak IntelliJ Community Edition ücretsiz olarak kullanılabilir.
- 📙 Visual Studio IDE – Microsoft tarafından geliştirilmiş ticari bir IDE’dir. Üç teklif halinde sunulur: ücretsiz topluluk sürümü, profesyonel ve kurumsal. Uygulamalarınızı geliştirmek ve hata ayıklamak için çok çeşitli programlama dillerini ve farklı araçları destekler. Bunun da ötesinde, Azure veya Azure DevOps gibi diğer Microsoft ürünleri ve hizmetleriyle yararlı entegrasyonlar sağlar. C # ve TypeScript, VS’deki birinci sınıf vatandaşlardır.
📒 Sürüm Kontrol Sistemleri
Sürüm kontrol sistemleri (VCS), her geliştirme sürecinde önemli bir rol oynar. VCS, tüm kod değişikliklerinizin eksiksiz bir geçmişini uzak bir depoda saklamanıza olanak tanır. Değişiklik geçmişini incelemek, farklı sürümleri karşılaştırmak veya daha eski bir sürüme geri dönmek için havuza göz atabilirsiniz. Birden çok geliştirici, yerel kod tabanlarını senkronize tutarak bir proje üzerinde işbirliği yapmak için değişiklikleri aynı depoya gönderebilir. Günümüzde VCS, kod tabanı için nihai doğruluk kaynağı olarak kullanılmaktadır ve modern geliştirme süreçlerinin omurgasını oluşturmaktadır.
VCS sistemleri bir komut satırı arayüzü aracılığıyla kullanılabilir, ancak farklı GUI istemcilerinin yanı sıra farklı kod düzenleyicilerle entegrasyonlar da mevcuttur.
İki popüler sürüm kontrol sistemi vardır:
- 📒 Git açık ara en popüler VCS’dir . Bu dağıtılmış bir sistemdir, yani bir kullanıcı depoyu kopyaladığında projenin tam geçmişini de alır ve onunla çevrimdışı çalışabilir. Bazen kullanıcılar, değişikliklerini merkezi uzak depoda yayınlamalı ve başkaları tarafından yapılan değişiklikleri indirmelidir. Barındırılan Git depolarını kanıtlayan birçok hizmet vardır. Bunların en popülerleri GitHub ve BitBucket’tir .
- 📓 Subversion (SVN) başka bir versiyon kontrol sistemidir. Git’in aksine, SVN yalnızca tek bir dalı kontrol etmenize izin verir. Farklı bir şubeye geçmek için, onu uzak depodan indirmeniz gerekir. Endüstride hala kullanılsa da Git çok daha popülerdir ve etrafında inşa edilmiş çok daha fazla araç ve hizmete sahiptir.
📒 Terminal veya Komut İstemi
Bir geliştirici olarak, terminali OS X veya Linux’ta veya Windows’ta komut isteminde kullanmakta kendinizi rahat hissetmeniz önemlidir. İşinizin çoğunu GUI’den yapabilseniz bile, yalnızca bir komut satırı arayüzü sunan birçok kullanışlı araçla karşılaşacaksınız. Ayrıca kendinizi hiç GUI’si olmayan bir uzak makineyle çalışırken bulabilirsiniz. Dosya sisteminde gezinme, dosya oluşturma veya kaldırma, içeriklerini görüntüleme ve CLI araçlarını çalıştırma gibi temel şeyleri yapabildiğinizden emin olun.
📙 Kabuk komut dosyası oluşturma
Komut kabuğunu kullanmakta kendinizi rahat hissettiğinizde, dağıtım, altyapı sağlama veya geliştirme görevlerini yürütme gibi rutin görevleri otomatikleştirerek kendinize çok zaman kazandırabilirsiniz. İşletim sisteminize bağlı olarak, Bash kullanarak Linux ve OSX için veya toplu iş dosyaları veya PowerShell kullanarak Windows için nasıl yazılacağını öğrenmelisiniz. Genellikle diğer yazılımlar, onu kullanmak için bir dizi bu tür komut dosyalarıyla birlikte gelir, bu nedenle, temeldeki komutları okuyup anlayabilmek de yardımcı olacaktır.
📙 Linux
Linux, Linux çekirdeğine dayalı olarak oluşturulmuş ücretsiz bir açık kaynaklı işletim sistemi ailesidir. Ubuntu, Debian, CentOS, Mint, openSUSE vb. Gibi farklı Linux dağıtımları mevcuttur. Gömülü elektronik ve cihazlardan akıllı telefonlara ve sunuculara kadar her tür cihaz üzerinde çalışan Linux dağıtımlarını bulabilirsiniz. Linux, birçok yönden Windows’tan farklıdır, bu nedenle bir Windows arka planından geliyorsanız, dosya sisteminin nasıl yapılandırıldığı, erişim kontrolünün nasıl çalıştığı, yazılımın nasıl kurulacağı vb. Gibi bazı temel bilgileri öğrenmeniz gerekir.
Bir web geliştiricisi için, web sunucularını çalıştırmak için son derece popüler işletim sistemleri olduğundan Linux’a aşina olmak önemlidir. Linux için pek çok kitap ve öğrenme kaynağı var, ancak onu gerçekten tanımak için kullanmaya başlamalısınız. Linux’u birincil veya ikincil işletim sistemi olarak kurabilir ve günlük görevler için kullanabilirsiniz. Başladığınızda, ayrıntıları yol boyunca anlayacaksınız.
📒 Ağ oluşturma
Web geliştirmeden bahsettiğimiz için, ağlar hayatımızda önemli bir rol oynayacak. Uygulamanızın kullanıcıları, bir kablo veya kablosuz ağlar üzerinden İnternet’i kullanarak ona erişecekler. Uygulamanızın kendisi bir ağ üzerinden diğer hizmetlerle iletişim kurabilir. Bunun nasıl çalıştığını anlamak için bazı temel ağ teknolojilerini öğrenmeniz önemlidir.
📒 Protokoller
Bir protokol, uygulamaların birbirleriyle nasıl iletişim kurması gerektiğine dair bir dizi kuraldır. Bir bağlantının nasıl başlatılması gerektiğini, gönderilen mesajların sırasını ve biçimini açıklarlar. Web uygulamalarında sıklıkla kullanılan birkaç önemli protokol vardır.
- 📒 Köprü Metni Aktarım Protokolü (HTTP), World Wide Web’in temelindeki protokoldür ve tarayıcıların veya diğer istemcilerin web sunucularından nasıl kaynak talep edebileceğini tanımlar. Bir tarayıcıya bir web sitesinin URL’sini girdiğinizde, aslında HTML, CSS, komut dosyaları ve diğer varlıkları yüklemek için sunucuya bir veya birkaç HTTP isteği gönderir. Onun muadili olan Hypertext Transfer Protocol Secure (HTTPS), güvenli iletişime izin vermek için aktarılan bilgilerin şifrelenmesine izin verir.
- 📙 HTTP / 2, web uygulamalarının performansını artırmayı amaçlayan önemli bir HTTP güncellemesidir. Çoğullamaya olanak tanır, yani farklı içeriği aynı anda tek bir açık istek üzerinden aktarabilirsiniz. Protokol, şifrelemeyi zorlar ve başlık alanlarını sıkıştırarak protokol ek yükünü en aza indirir.
- 📙 İletim Kontrol Protokolü (TCP), farklı uygulamalar arasında paketlerin güvenilir, sıralı ve hatasız bir şekilde gönderilmesine izin veren bir taşıma katmanı protokolüdür. HTTPS ve HTTPS, TCP üzerinde çalışır.
- 📙 İnternet Protokolü (IP) , bir paketin bir ana bilgisayardan diğerine nasıl yönlendirilmesi gerektiğini tanımlayan bir internet katmanı protokolüdür. TCP, yönlendirme için IP kullanır. Şu anda kullanımda olan protokolün iki ana sürümü vardır: IPv4 ve IPv6.
📒 Alan Adı Sistemi
Etki Alanı Adı Sistemi (DNS), İnternet kaynaklarının insan tarafından okunabilir adlarını karşılık gelen IP adreslerine çevirmekten sorumludur. Bir etki alanını bir adrese çözümlemek oldukça karmaşık bir süreçtir ve uygulamanızı doğru bir şekilde yapılandırabilmek için en azından nasıl çalıştığı konusunda bazı temel bilgilere ihtiyacınız olacaktır.
📒 Web Sunucuları
Web sunucusu, farklı protokoller kullanarak gelen bağlantıları dinlemekten ve istenen içerikle yanıt vermekten sorumlu özel bir yazılım türüdür. Bir web sunucusu HTML, JavaScript dosyaları veya görüntüler gibi statik dosyalar sunabilir, farklı dillerde yazılmış dinamik komut dosyaları çalıştırabilir veya ayrı uygulamalar olarak çalışan işlemler için bir proxy işlevi görebilir.
Web sunucuları ayrıca sıkıştırma, önbelleğe alma ve yük dengelemeyi etkinleştirerek uygulamanızın performansını artırmada önemli bir rol oynayabilir.
Bunlar daha popüler web sunucularından bazılarıdır.
- 📒 Apache HTTP Sunucusu , Apache Software Foundation altında geliştirilen ücretsiz bir açık kaynaklı web sunucusudur. Statik içerik sunmak için yapılandırılabilen hızlı ve güçlü bir web sunucusudur, ancak aynı zamanda PHP, Python vb. İle yazılmış komut dosyalarını çalıştırmak için de sıklıkla kullanılır.
- 📒 Microsoft IIS , Microsoft’un Windows Server işletim sistemlerinde bulunan genel amaçlı bir web sunucusudur. IIS, Microsoft teknoloji yığınını kullanan şirketler için popüler bir seçimdir.
- 📒 NG INX , genellikle yüksek performanslı statik içerik sunucusu veya dinamik uygulamalar için proxy olarak kullanılan web sunucusudur. Apache’nin aksine, dinamik içeriği tek başına sunamaz, ancak bazen daha iyi performans sağlayabilir. NGINX, ücretsiz ve açık kaynaklı bir web sunucusudur ancak NGINX Plus adlı daha gelişmiş bir ücretli sürüm sunar.
📒Ağ Sorunlarını Giderme
Bazen kendinizi uygulamanızın veya web sunucunuzun herhangi bir nedenle kullanılamadığı bir durumda bulabilirsiniz. Bu tür durumlarda hata ayıklamak zor olabilir ve kesintilerin birçok nedeni olabilir, ancak durumu teşhis etmek ve sorunun kaynağına ulaşmak için kullanabileceğiniz bazı araçlar vardır.
- 📒 Ping , belirli bir IP adresinin erişilebilir olup olmadığını doğrulamak için kullanılabilen, platformlar arası bir CLI aracıdır. Ayrıca paket kaybını ve bağlantının sağlığı hakkında bir fikir verecek gidiş dönüş süresini ölçer.
- 📙 Ncat , farklı protokoller kullanarak mesajlar göndermenize, açık portları taramanıza, tüneller oluşturmanıza ve çok daha fazlasını yapmanıza olanak tanıyan güçlü bir Linux CLI aracı, bir İsviçre ağ aracı bıçağıdır.
📙 Sanallaştırma
Sanallaştırma, kaynakların yönetilme şeklini kökten değiştiren bilgi işlemde önemli bir kavramdır. Sanallaştırmayı kullanarak tek bir donanım parçası üzerinde ayrı sunucular, iş istasyonları, dosyalar, ağlar veya diskler oluşturabiliriz. Kullanıcılar için bu kaynakların tümü gerçek fiziksel kaynaklar olarak görünür, ancak bunlar gerçekten temel donanımdan soyutlanmış bir yazılım kullanılarak sağlanır.
📙 Sanal Makineler
Sanallaştırma için en sık kullanılan kullanım durumlarından biri, tek bir fiziksel makinede farklı yazılımları ve hatta farklı işletim sistemlerini çalıştırma ihtiyacıdır. Bunlara sanal makineler denir ve kendi belleği, disk alanı ve kurulu yazılımı ile tamamen izole edilmiş ortamlar sağlar. Sanal makineler, iş istasyonunuzda farklı işletim sistemlerini çalıştırmak için geliştirme amacıyla kullanılabilir, ancak daha da önemlisi, birden çok uygulamayı tek bir donanım sunucusunda birbirine müdahale etmeden çalıştırmak için kullanılabilir. Sanal makineler oluşturmak ve çalıştırmak için kullanılan yazılıma hipervizör adı verilir.
- 📙 VirtualBox , şu anda Oracle tarafından geliştirilen ücretsiz bir açık kaynaklı çapraz platform hiper yöneticisidir. Sanal makineler oluşturmayı ve çalıştırmayı ve ayrıca klasörler veya pano gibi kaynakları ana makine ile paylaşmayı destekler.
- 📓 Parallels Desktop for Mac , Mac’inizde Windows uygulamalarını sorunsuz bir şekilde çalıştırmanıza olanak tanır. Mac’inizde bir Windows geliştirme ortamı kurmanız veya Windows’ta bir şeyi test etmeniz gerekiyorsa Parallels kullanışlıdır.
📙 Konteynerler
Kapsayıcılar, yazılımı çalıştırmak için farklı bir sanallaştırma mekanizmasıdır, ancak sanal makinelerden farklı olarak, kapsayıcılar tam bir işletim sistemi çalıştırmazlar, ancak aynı kapsayıcı çalışma zamanını paylaşırlar. Bu, onları çok daha hafif ve daha hızlı başlatır, yani çok fazla kaynağı boşa harcamadan tek bir makinede birçok konteyneri çalıştırabilirsiniz. Kapsayıcılar için en iyi uygulamalar, uygulamanızın arka uç hizmeti, web sunucusu veya veritabanı gibi her bir parçasını diğerlerinden ayrı olarak çalıştırarak daha ayrıntılı denetim ve yalıtım sağlamaktır.
- 📙 Docker , Docker, Inc. tarafından geliştirilen en popüler platformlar arası konteyner çalışma zamanıdır. Docker ile, bir Docker dosyası kullanarak uygulamanızı çalıştırmak için gereken bir konteyner imajı oluşturabilirsiniz. Bu görüntüler daha sonra başkaları tarafından çalıştırılmak veya bir web sunucusuna dağıtılmak üzere bir kayıt defterinde yayınlanabilir. Docker’ı kullanarak uygulamanızı geliştirmek için kolayca temiz, önceden tanımlanmış, tek kullanımlık bir ortam oluşturabilir ve ardından aynı görüntüyü üretimde çalıştırmak için kullanabilirsiniz. Görüntüleri ve çalışan kapsayıcıları yönetmek için kullanılabilen çok çeşitli araçlar ve kapsayıcıya alınmış uygulamaları barındırmanıza olanak tanıyan hizmetler vardır.
- 📙 Kubernetes , kapsayıcıları bir makine kümesi üzerinde dağıtmak için açık kaynaklı bir platformdur. Konteyner görüntüleri ve yapılandırma parametrelerine dayalı olarak hizmetleri tanımlamanıza ve ayrıca sanal depolama veya ağ kaynakları oluşturmanıza olanak tanır. Ayrıca ölçekleme, yük dengeleme ve günlük kaydı gibi operasyonel yetenekler de sağlar. Kubernetes’i kendi makinelerinizde barındırabilir veya bulut tabanlı hizmetlerden birini kullanabilirsiniz. Şu anda hızla gelişen son derece esnek ve güçlü bir platformdur.
Bu bölümde, çoğunlukla farklı platformlardaki geliştiriciler için faydalı olabilecek araçlara ve platformlara odaklandık. Ancak, belirli bir platformla çalışmaya başladığınızda, kendi bağlamınızda faydalı olacak birçok yeni araç keşfedeceksiniz.
Dilerseniz Bir Sonra Ki Blog Sayfalarımıza Göz Atabilirsiniz..
Görüşmek Üzere Hoşçakalın WebOdasıyla Kalın..
Hata!
Yorumunuz Çok Kısa, Yorum yapabilmek için en az En az 10 karakter gerekli