
by wolfgang at 09-08-2024, 11:19 AM
1 comments
DNS over TLS (DoT), DNS (Domain Name System) sorgularının TLS (Transport Layer Security) protokolü üzerinden şifrelenmiş olarak iletilmesini sağlayan bir güvenlik protokolüdür. Bu teknoloji, kullanıcıların internet üzerinde yaptıkları DNS sorgularını gizlemeyi ve bu sorguların üçüncü taraflar tarafından izlenmesini veya değiştirilmesini önlemeyi amaçlar.
DNS over TLS (DoT) Teknik Yapısı
DoT, çeşitli DNS çözümleyiciler ve işletim sistemleri tarafından desteklenmektedir. Örneğin, Android 9 (Pie) ve sonrası sürümler DoT'u yerleşik olarak destekler. Ayrıca, birçok DNS çözümleyici (örneğin Cloudflare, Google Public DNS) DoT desteği sunmaktadır. Kullanıcılar, cihazlarında veya ağ cihazlarında DoT'u etkinleştirerek internet trafiğinin daha güvenli hale gelmesini sağlayabilirler.
Sonuç olarak, DNS over TLS (DoT), internet güvenliğini ve gizliliğini artırmaya yönelik güçlü bir protokoldür. DoH gibi alternatiflerle birlikte, kullanıcıların çevrimiçi faaliyetlerini daha güvenli hale getirmek için önemli bir araçtır.
DNS over TLS (DoT) Teknik Yapısı
- Protokol Katmanı: DoT, TLS protokolü üzerinden DNS sorgularını iletir. TLS, internet üzerindeki iletişimde yaygın olarak kullanılan bir güvenlik protokolüdür ve verilerin şifrelenmesini sağlar. Bu protokol, özellikle HTTPS gibi güvenli internet trafiğini sağlamak için kullanılır.
- Port Kullanımı: DoT, varsayılan olarak 853 numaralı TCP portunu kullanır. Bu, standart DNS'in kullandığı 53 numaralı porttan farklıdır ve güvenli DNS trafiğini normal DNS trafiğinden ayırt etmeyi kolaylaştırır.
- Bağlantı Güvenliği: DoT, DNS sorgularını ve yanıtlarını şifrelediği için, bu trafiğin ortadaki adam saldırılarına (Man-in-the-Middle) karşı korunmasını sağlar. Geleneksel DNS trafiğinde bu tür saldırılar mümkünken, DoT ile bu risk büyük ölçüde azaltılır.
- Bağlantı Durumu: DoT, bağlantı durumu olan bir protokoldür, yani her DNS istemcisi ile sunucusu arasında bir TLS bağlantısı kurulması gerekir. Bu, her bir bağlantının başlangıcında bir el sıkışma (handshake) işlemi gerektirir, bu da iletişimin biraz daha yavaş olmasına neden olabilir, ancak sağladığı güvenlik bu gecikmeyi telafi eder.
- Protokol Kullanımı: DoT, DNS trafiğini TLS üzerinden taşırken, DoH bu trafiği HTTPS üzerinden taşır. DoH, HTTP/2'nin avantajlarından faydalanırken, DoT daha spesifik olarak DNS trafiği için optimize edilmiştir.
- Port Kullanımı: DoH, standart HTTPS trafiğinde kullanılan 443 numaralı portu kullanır, bu da DoH trafiğinin diğer HTTPS trafiğiyle karışmasına ve gizlenmesine izin verir. Bu nedenle, DoH trafiğini ağ üzerinden izlemek veya engellemek daha zor olabilir. DoT ise 853 numaralı portu kullanarak DNS trafiğini daha kolay ayırt edilebilir hale getirir.
- Performans: DoT, spesifik bir port kullandığı için daha doğrudan bir yapıdadır ve DNS trafiğini etkili bir şekilde yönetir. Ancak, DoH gibi karmaşık bir katmanlı yapı sunmaz.
- Güvenlik ve Gizlilik: Her iki protokol de güçlü güvenlik ve gizlilik sağlar, ancak DoH'un HTTPS trafiği içinde saklanabilme yeteneği, bazı durumlarda gizliliği artırabilir. Öte yandan, DoT, ağ yöneticileri tarafından daha kolay yönetilebilir.
- Güvenlik: DoT, DNS sorgularını ve yanıtlarını şifreleyerek manipülasyona karşı koruma sağlar. Bu, DNS zehirleme (DNS poisoning) gibi saldırıları önlemede etkilidir.
- Gizlilik: Şifreli bağlantı sayesinde, kullanıcıların DNS trafiğini izlemek zorlaşır. Bu da çevrimiçi gizliliği artırır.
- Kolay Uygulama: DoT, standart TLS protokolü üzerine inşa edildiği için mevcut güvenlik altyapılarına kolayca entegre edilebilir.
- Performans: TLS el sıkışma işlemi, özellikle ilk bağlantıda, belirli bir gecikmeye neden olabilir. Bu da DNS sorgularının biraz daha yavaş yanıtlanmasına yol açabilir.
- Port Tabanlı Engellemeler: DoT'un kullandığı 853 numaralı port, belirli ağlarda veya ülkelerde engellenebilir. Bu durumda, DNS trafiği kesilebilir veya yeniden yönlendirilmesi gerekebilir.
- Ağ Yönetimi: DoT, ağ yöneticileri için DNS trafiğini izlemeyi ve yönetmeyi zorlaştırabilir. Bu da bazı kurumsal ağlarda ek zorluklar yaratabilir.
DoT, çeşitli DNS çözümleyiciler ve işletim sistemleri tarafından desteklenmektedir. Örneğin, Android 9 (Pie) ve sonrası sürümler DoT'u yerleşik olarak destekler. Ayrıca, birçok DNS çözümleyici (örneğin Cloudflare, Google Public DNS) DoT desteği sunmaktadır. Kullanıcılar, cihazlarında veya ağ cihazlarında DoT'u etkinleştirerek internet trafiğinin daha güvenli hale gelmesini sağlayabilirler.
Sonuç olarak, DNS over TLS (DoT), internet güvenliğini ve gizliliğini artırmaya yönelik güçlü bir protokoldür. DoH gibi alternatiflerle birlikte, kullanıcıların çevrimiçi faaliyetlerini daha güvenli hale getirmek için önemli bir araçtır.

by wolfgang at 09-08-2024, 10:57 AM
0 comments
DNS over HTTPS (DoH), internet üzerindeki DNS (Domain Name System) sorgularının HTTPS protokolü üzerinden şifrelenmiş bir şekilde iletilmesini sağlayan bir teknolojidir. DNS, internet üzerindeki domain isimlerini (örneğin, www.google.com) IP adreslerine çevirir, böylece bilgisayarlar bu adresleri kullanarak doğru sunucuya bağlanabilir. Ancak, geleneksel DNS sorguları şifrelenmemiş olarak iletilir, bu da üçüncü şahısların bu sorguları görmesini veya manipüle etmesini mümkün kılar. DoH, bu durumu ortadan kaldırmak amacıyla geliştirilmiştir.
DoH'un Teknik Yapısı
![[Resim: What-is-DNS-over-HTTPS.png]](https://bluecatnetworks.com/wp-content/uploads/2021/10/What-is-DNS-over-HTTPS.png)
DoH, çeşitli tarayıcılarda ve işletim sistemlerinde entegre edilmiştir. Örneğin, Google Chrome ve Mozilla Firefox gibi tarayıcılar, DoH'u varsayılan olarak etkinleştirebilir. Ayrıca, çeşitli işletim sistemleri de DoH desteği sunmaktadır. Kullanıcılar, DNS ayarlarını manuel olarak yapılandırarak veya üçüncü taraf uygulamalar kullanarak DoH'u etkinleştirebilir.
Özetle, DNS over HTTPS (DoH), internet güvenliğini ve gizliliğini artırmak için önemli bir adım olarak kabul edilir. Ancak, uygulaması ve potansiyel etkileri konusunda dikkatli olunması gereken bazı noktalar vardır.
DoH'un Teknik Yapısı
![[Resim: What-is-DNS-over-HTTPS.png]](https://bluecatnetworks.com/wp-content/uploads/2021/10/What-is-DNS-over-HTTPS.png)
- Protokol: DoH, DNS sorgularını HTTPS üzerinden ileterek bu sorguların şifreli bir şekilde taşınmasını sağlar. HTTPS, SSL/TLS (Secure Sockets Layer/Transport Layer Security) protokollerini kullanarak verilerin şifrelenmesini sağlar. Bu da üçüncü tarafların DNS sorgularını okumasını veya değiştirmesini zorlaştırır.
- HTTP/2 Desteği: DoH, HTTP/2 protokolü üzerinden çalışır. HTTP/2, daha hızlı veri iletimi ve daha verimli bağlantı yönetimi sunar. Bu, DoH'un hem güvenlik hem de performans açısından avantajlı olmasını sağlar.
- JSON Formatı: DoH, genellikle DNS sorgu ve yanıtlarını JSON formatında iletir. Bu da, verilerin yapılandırılmış ve anlaşılır bir biçimde taşınmasını sağlar.
- Bağlantı Güvenliği: DoH, DNS sorgularını standart DNS protokolüne göre çok daha güvenli hale getirir. Standart DNS sorguları, "Man-in-the-Middle" (Ortadaki Adam) saldırılarına karşı savunmasızdır. Bu tür saldırılarda, kötü niyetli bir aktör DNS sorgularını değiştirerek kullanıcıları sahte sitelere yönlendirebilir. Ancak DoH ile bu tür saldırılar zorlaşır çünkü veriler şifrelenmiştir.
- Gizlilik ve Anonimlik: DoH, kullanıcıların internette hangi sitelere girdiğini ISP’lerin (İnternet Servis Sağlayıcıları) veya diğer üçüncü tarafların izlemesini zorlaştırır. Bu da kullanıcının gizliliğini artırır. Özellikle ülkelerdeki sansür uygulamalarına veya çevrimiçi takip sistemlerine karşı bir koruma sağlar.
- Güvenlik: DoH, DNS zehirleme (DNS poisoning) ve diğer DNS tabanlı saldırılara karşı ekstra bir güvenlik katmanı sunar. DNS zehirleme, sahte DNS kayıtları oluşturarak kullanıcıları yanlış IP adreslerine yönlendiren bir saldırı türüdür. DoH ile bu saldırı türü etkisiz hale getirilir.
- Kullanıcı Kontrolü: DoH, kullanıcıların DNS trafiğini kimin yöneteceği konusunda daha fazla kontrol sahibi olmasını sağlar. Örneğin, kullanıcılar yerel ISP'lerinin yerine Google veya Cloudflare gibi DoH servis sağlayıcılarını seçebilirler.
- Gizlilikle İlgili Endişeler: DoH, gizliliği artırsa da, merkezi bir DoH hizmeti sağlayıcısına (örneğin Google, Cloudflare) olan bağımlılığı artırabilir. Bu da belirli büyük teknoloji şirketlerinin internet trafiği üzerindeki kontrolünü genişletebilir. Bu nedenle, bazı eleştirmenler DoH'un merkezileşme sorununa yol açabileceğini savunuyorlar.
- Ağ Yönetimi Zorlukları: Kurumsal ağ yöneticileri ve güvenlik uzmanları için DoH, ağ trafiğini izlemede ve yönetmede zorluklar yaratabilir. Çünkü DoH trafiği HTTPS trafiğiyle aynı kanalda taşındığı için, bu trafiğin analiz edilmesi zorlaşır.
- Zararlı Yazılım Riski: Kötü niyetli yazılımlar DoH'u kullanarak DNS sorgularını gizleyebilir ve güvenlik sistemlerinden kaçabilir. Bu da zararlı yazılımların tespit edilmesini zorlaştırabilir.
- Performans Sorunları: Her ne kadar DoH, HTTP/2'nin avantajlarından faydalansa da, ek şifreleme katmanı nedeniyle geleneksel DNS'e kıyasla biraz daha yavaş olabilir. Ancak, bu fark genellikle kullanıcı tarafından fark edilemeyecek kadar küçüktür.
DoH, çeşitli tarayıcılarda ve işletim sistemlerinde entegre edilmiştir. Örneğin, Google Chrome ve Mozilla Firefox gibi tarayıcılar, DoH'u varsayılan olarak etkinleştirebilir. Ayrıca, çeşitli işletim sistemleri de DoH desteği sunmaktadır. Kullanıcılar, DNS ayarlarını manuel olarak yapılandırarak veya üçüncü taraf uygulamalar kullanarak DoH'u etkinleştirebilir.
Özetle, DNS over HTTPS (DoH), internet güvenliğini ve gizliliğini artırmak için önemli bir adım olarak kabul edilir. Ancak, uygulaması ve potansiyel etkileri konusunda dikkatli olunması gereken bazı noktalar vardır.

by wolfgang at 09-08-2024, 10:51 AM
0 comments
API, "Application Programming Interface" (Uygulama Programlama Arayüzü) anlamına gelir. API, bir yazılımın veya sistemin diğer yazılımlarla veya sistemlerle iletişim kurmasını sağlayan bir dizi kural ve protokolü ifade eder. Detaylı olarak açıklamak gerekirse:
![[Resim: api.jpg]](https://caylakyazilimci.com/image.axd?picture=/Images/api.jpg)
1. API’nin Amacı:
API’ler, yazılımların birbirleriyle iletişim kurmasını, veri alışverişi yapmasını ve birbirlerinin işlevlerinden faydalanmasını sağlar. Bir API, belirli bir yazılımın belirli işlevlerine erişim sağlayan bir arayüz sunar. Bu arayüz sayesinde, geliştiriciler yazılımın iç işleyişine müdahale etmeden, belirli işlevleri çağırabilirler.
2. API Türleri:
API'lerin güvenliği oldukça önemlidir çünkü API’ler genellikle kritik verilere ve işlevlere erişim sağlar. Güvenlik sağlamak için:
İyi bir API, geliştiricilere nasıl kullanılacağını açıklayan ayrıntılı belgeler sunar. Bu belgelerde, API’nin sunduğu tüm işlevler, parametreler, dönen değerler ve örnekler yer alır.
Sonuç olarak, API'ler modern yazılım geliştirmede merkezi bir rol oynar, çünkü farklı sistemler arasındaki iletişimi ve veri paylaşımını mümkün kılar. Yazılımcılar için API’lerin nasıl çalıştığını anlamak, etkili ve uyumlu yazılımlar geliştirebilmek için kritiktir.
![[Resim: api.jpg]](https://caylakyazilimci.com/image.axd?picture=/Images/api.jpg)
1. API’nin Amacı:
API’ler, yazılımların birbirleriyle iletişim kurmasını, veri alışverişi yapmasını ve birbirlerinin işlevlerinden faydalanmasını sağlar. Bir API, belirli bir yazılımın belirli işlevlerine erişim sağlayan bir arayüz sunar. Bu arayüz sayesinde, geliştiriciler yazılımın iç işleyişine müdahale etmeden, belirli işlevleri çağırabilirler.
2. API Türleri:
- Web API'leri: Web üzerinden erişilebilen API'lerdir. Genellikle REST, SOAP gibi protokoller kullanılarak HTTP üzerinden çalışır. Örneğin, bir hava durumu API’si, belirli bir şehir için hava durumu verilerini dönebilir.
- Donanım API'leri: Donanım bileşenlerinin (örneğin, bir grafik kartı) yazılımlar tarafından kullanılmasını sağlar.
- Kütüphane API'leri: Belirli bir programlama dilinde yazılmış bir kütüphanenin fonksiyonlarına erişim sağlar.
- RESTful API: REST (Representational State Transfer), HTTP protokolünü kullanarak kaynaklara erişimi kolaylaştıran bir API mimarisidir. GET, POST, PUT, DELETE gibi HTTP metodlarını kullanır.
- SOAP API: XML tabanlı bir protokoldür. REST’e göre daha karmaşıktır ve genellikle daha fazla güvenlik gereksinimi olan uygulamalarda tercih edilir.
- GraphQL API: Facebook tarafından geliştirilen, istemcinin ihtiyacı olan veriyi tam olarak belirleyebildiği bir sorgulama dilidir. REST’ten farklı olarak, tek bir sorguda birden fazla kaynağa erişim sağlanabilir.
- Üçüncü Taraf Uygulama Entegrasyonları: Birçok web hizmeti, geliştiricilere API'ler sunarak kendi sistemlerine üçüncü taraf uygulamaların entegre edilmesini sağlar. Örneğin, bir ödeme sağlayıcısı olan PayPal, e-ticaret sitelerinin ödemeleri kabul etmesi için API sağlar.
- Mobil Uygulamalar: Mobil uygulamalar, bir sunucuyla iletişim kurmak için genellikle API'leri kullanır. Örneğin, bir mobil bankacılık uygulaması, kullanıcının hesap bilgilerini almak için bankanın API’sini kullanır.
- Veri Analizi ve Raporlama: Birçok analiz ve raporlama aracı, API'ler aracılığıyla verilere erişerek raporlar oluşturur.
API'lerin güvenliği oldukça önemlidir çünkü API’ler genellikle kritik verilere ve işlevlere erişim sağlar. Güvenlik sağlamak için:
- API Anahtarları ve Token’lar: Kullanıcıları ve uygulamaları doğrulamak için kullanılır.
- Rate Limiting: Bir API’ye belirli bir zaman diliminde yapılacak istek sayısını sınırlandırarak kötüye kullanımın önüne geçilir.
- Şifreleme: Veri iletimi sırasında güvenliği sağlamak için HTTPS gibi protokoller kullanılır.
İyi bir API, geliştiricilere nasıl kullanılacağını açıklayan ayrıntılı belgeler sunar. Bu belgelerde, API’nin sunduğu tüm işlevler, parametreler, dönen değerler ve örnekler yer alır.
Sonuç olarak, API'ler modern yazılım geliştirmede merkezi bir rol oynar, çünkü farklı sistemler arasındaki iletişimi ve veri paylaşımını mümkün kılar. Yazılımcılar için API’lerin nasıl çalıştığını anlamak, etkili ve uyumlu yazılımlar geliştirebilmek için kritiktir.
Forum: Kriptoloji

by wolfgang at 09-08-2024, 10:12 AM
0 comments
![[Resim: kod.jpg]](https://sdo.srspu.ru/pluginfile.php/613375/course/overviewfiles/kod.jpg)
Kriptoloji, verilerin güvenli bir şekilde iletilmesi, saklanması ve işlenmesi için kullanılan teknikleri ve yöntemleri inceleyen bilim dalıdır. Kriptoloji iki ana alanı içerir: kriptografi ve kriptanaliz.
- Kriptografi: Verileri şifreleme (şifreleme) ve şifre çözme (decryption) yöntemlerini geliştirir. Kriptografi, bilginin yetkisiz kişiler tarafından erişilmesini önlemek amacıyla kullanılır.
- Kriptanaliz: Şifrelenmiş bilgilerin çözülmesi veya şifreleme yöntemlerinin zayıflıklarını bulmaya yönelik çalışmaları içerir. Kriptanaliz, güvenliği sağlanan sistemlerin test edilmesi ve iyileştirilmesi için kullanılır.
Şifreleme Yöntemleri
1. Sezar Şifrelemesi (MÖ 1. Yüzyıl)
- Kullanım: Roma İmparatoru Julius Caesar tarafından kullanılan bu yöntem, her harfin alfabe içinde belirli bir sayıda kaydırılması esasına dayanır. Örneğin, 3 harf kaydırma ile "A" harfi "D" olur.
- Basitlik: Çok basit bir yöntemdir ve kolayca çözülebilir.
2. Atbash Şifrelemesi (MÖ 600)
- Kullanım: Eski Yahudiler tarafından kullanılan bu yöntem, alfabenin ters çevrilmesiyle şifreleme yapılır. Örneğin, "A" harfi "Z", "B" harfi "Y" olur.
- Simetri: Şifrelemede kullanılan yöntem, aynı zamanda şifre çözmek için de kullanılır.
![[Resim: atoz.jpg]](https://1.bp.blogspot.com/-C_-yAJgJp90/Tar1uu0bk1I/AAAAAAAAAKU/HBeG_6MeEIM/s1600/atoz.jpg)
3. Polybios Karesi (MÖ 150)
- Kullanım: Eski Yunan'da kullanılmıştır. Harfler bir 5x5 kare matris içine yerleştirilir ve her harf, matrisin satır ve sütun koordinatlarıyla temsil edilir.
- Gelişmişlik: Daha karmaşık ve daha fazla kombinasyon imkanı sunar.
![[Resim: slide_5.jpg]](https://images.slideplayer.com/25/7645440/slides/slide_5.jpg)
4. Vigenère Şifresi (1553)
- Kullanım: Fransız diplomat Blaise de Vigenère tarafından geliştirilen bu şifreleme tekniği, tekrarlayan bir anahtar kelimeye dayalı olarak metni şifreler.
- Güç: Uzun süre boyunca kırılması zor bir şifreleme yöntemi olarak kalmıştır.
5. Enigma Makinesi (1920'ler)
- Kullanım: II. Dünya Savaşı sırasında Alman ordusu tarafından kullanılan bu elektro-mekanik cihaz, metinleri şifrelemek ve şifrelerini çözmek için rotorlara dayanıyordu.
- Karmaşıklık: Çok karmaşık ve dinamik bir şifreleme yöntemi olup, savaşın sonuna kadar büyük ölçüde etkili olmuştur.
![[Resim: enigma-voennaya-nemeckaya-4613.jpg]](https://img.goodfon.com/original/1600x1200/a/2f/enigma-voennaya-nemeckaya-4613.jpg)
6. DES (Data Encryption Standard) (1977)
- Kullanım: ABD hükümeti tarafından 1977 yılında standart olarak kabul edilen bu simetrik anahtarlı şifreleme algoritması, blok şifreleme tekniğini kullanır.
- Standartlaşma: DES, birçok yıl boyunca veri şifrelemede bir standart olarak kullanılmıştır.
![[Resim: data-encryption-standard-des-l.jpg]](https://image3.slideserve.com/6635953/data-encryption-standard-des-l.jpg)
7. RSA (1977)
- Kullanım: Ron Rivest, Adi Shamir ve Leonard Adleman tarafından geliştirilen RSA, asimetrik şifreleme yönteminin temelini oluşturur ve günümüzde yaygın olarak kullanılmaktadır.
- Güvenlik: Günümüzde hala birçok güvenli iletişim protokolünün temelini oluşturur.
![[Resim: RSA+Algorithm+Key+Generation+Encryption+Decryption.jpg]](https://slideplayer.com/slide/6756473/23/images/55/RSA+Algorithm+Key+Generation+Encryption+Decryption.jpg)
8. AES (Advanced Encryption Standard) (2001)
- Kullanım: 2001 yılında ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından standart olarak kabul edilen AES, günümüzde en yaygın kullanılan simetrik şifreleme algoritmalarından biridir.
- Modern Şifreleme: 128, 192 veya 256 bit anahtar uzunlukları kullanarak yüksek güvenlik sağlar.
- Kullanım: Bitcoin ve diğer kripto paraların temelini oluşturan blockchain teknolojisi, modern kriptografi tekniklerini (SHA-256 gibi) kullanarak güvenli, dağıtık ve şeffaf bir veri yapısı oluşturur.
- Devrimsel: Özellikle finansal sistemler, tedarik zincirleri ve dijital kimlik yönetiminde devrim yaratmıştır.

by wolfgang at 09-06-2024, 10:56 AM
0 comments
![[Resim: 1200px-ARMCortexA57A53.jpg]](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/ARMCortexA57A53.jpg/1200px-ARMCortexA57A53.jpg)
ARM mimarisi ile ilgili lisans mevzusu, ARM Holdings şirketinin işlemci tasarımları ve bu tasarımların kullanım hakları ile ilgilidir. ARM lisansı, şirketin geliştirdiği işlemci mimarisini kullanmak isteyen firmalara belirli şartlar altında bu teknolojiyi kullanma izni verir.
Bu lisanslama modelinde iki ana tür vardır:
- ARM İşlemci Lisansı: Bu lisans türü, bir şirketin ARM tarafından tasarlanmış ve tamamlanmış işlemci çekirdeklerini kullanmasını sağlar. Bu durumda, lisans sahibi şirket ARM'ın tasarımını alır ve kendi ürünlerinde kullanır.
- ARM Mimari Lisansı: Bu lisans türü, bir şirketin ARM mimarisini alıp kendi işlemcilerini tasarlamasına olanak tanır. Bu, daha fazla esneklik sağlar çünkü şirket kendi ihtiyaçlarına göre özel bir işlemci tasarlayabilir, ancak yine de ARM'ın temel mimarisine dayanır.
Özetle, ARM lisansı ARM mimarisinin kullanım haklarını ve şartlarını tanımlar, bu da teknoloji geliştiren firmaların ARM'ın tasarımlarını veya mimarisini kullanarak işlemciler üretmesine olanak tanır.
![[Resim: Micro-Nano-Tech-Education-Center-MNT-Sem...scaled.jpg]](https://micronanoeducation.org/wp-content/uploads/2022/08/Micro-Nano-Tech-Education-Center-MNT-Semiconductor-Workshop-scaled.jpg)
ARM lisanslama modelinde, işlemci başına ödenen ücretler çeşitli faktörlere bağlı olarak değişir ve genellikle gizli tutulur. Ancak, genel olarak ARM'ın gelir modeli iki ana bileşenden oluşur:
- Lisans Ücretleri: Bu, ARM'ın tasarımlarını kullanma izni için ödenen başlangıç ücrettir. Bu ücret, lisansın kapsamına, işlemcinin karmaşıklığına ve lisans sahibinin taleplerine bağlı olarak milyonlarca dolara çıkabilir.
- Telif Ücretleri (Royalty Fees): Üretim sürecinde her üretilen işlemci başına ödenen bir ücret vardır. Bu ücret genellikle işlemcinin satış fiyatının %1 ila %2'si arasında değişir. Örneğin, eğer bir işlemci 10 dolar gibi bir fiyata satılıyorsa, ARM bu işlemciden 0.10 dolar ila 0.20 dolar arası bir telif ücreti alabilir.
Yaygın Olarak Kullanılan ARM tabanlı işlemciler
ARM tabanlı CPU'lar, özellikle mobil cihazlarda ve gömülü sistemlerde yaygın olarak kullanılır. İşte en çok kullanılan ARM tabanlı CPU modellerinden bazıları:
1. Apple Silicon (M1, M1 Pro, M1 Max, M2, vb.)
- Kullanım Alanı: Apple MacBook, iPad, iPhone
- Özellikler: Apple’ın ARM tabanlı kendi işlemci ailesidir. M1 ve M2 serisi, yüksek performansı ve enerji verimliliğiyle bilinir.
- Öne Çıkan Model: Apple M1, M2
- Kullanım Alanı: Android akıllı telefonlar, tabletler, IoT cihazları
- Özellikler: Snapdragon serisi, yüksek performanslı mobil cihazlar için tasarlanmıştır ve grafik işleme, yapay zeka, 5G gibi gelişmiş özelliklere sahiptir.
- Öne Çıkan Model: Snapdragon 8 Gen 1, Snapdragon 865
- Kullanım Alanı: Samsung Galaxy cihazları, bazı akıllı telefonlar ve tabletler
- Özellikler: Samsung’un kendi ARM tabanlı işlemci serisidir. Genellikle Qualcomm Snapdragon ile rekabet eder.
- Öne Çıkan Model: Exynos 2200, Exynos 2100
- Kullanım Alanı: Orta ve üst seviye Android cihazlar
- Özellikler: MediaTek'in ARM tabanlı işlemci ailesi, 5G desteği, yapay zeka ve oyun performansı gibi özelliklerle öne çıkar.
- Öne Çıkan Model: Dimensity 9000, Dimensity 1200
- Kullanım Alanı: Geniş bir yelpazede gömülü sistemler, akıllı telefonlar, tabletler
- Özellikler: ARM’ın kendi tasarladığı Cortex-A işlemciler, genellikle birçok üretici tarafından kullanılır. Bu seride farklı performans seviyelerinde çekirdekler bulunur.
- Öne Çıkan Model: Cortex-A78, Cortex-A76
- Kullanım Alanı: Oyun konsolları (örneğin Nintendo Switch), otomotiv sistemleri
- Özellikler: Yüksek performanslı grafik işleme ve yapay zeka özelliklerine sahiptir.
- Öne Çıkan Model: Tegra X1, Tegra K1
- Kullanım Alanı: Huawei ve Honor markalı akıllı telefonlar
- Özellikler: Huawei'nin kendi geliştirdiği ARM tabanlı işlemciler, özellikle AI performansı ve enerji verimliliği ile bilinir.
- Öne Çıkan Model: Kirin 9000, Kirin 990
- Kullanım Alanı: Raspberry Pi, gömülü sistemler
- Özellikler: Broadcom'un ARM tabanlı işlemcileri, özellikle Raspberry Pi gibi küçük bilgisayar sistemlerinde yaygındır.
- Öne Çıkan Model: BCM2711 (Raspberry Pi 4'te kullanılan)
Forum: Python

by wolfgang at 09-06-2024, 10:44 AM
0 comments
Python, hem standart kütüphaneleri hem de harici yüzlerce modülü ile çok güçlü bir dil. Bu modüller arasında özellikle web isteklerini yönetmek için kullanılan Requests modülü, oldukça popüler ve kullanışlı bir araçtır. Bu modül sayesinde, web üzerindeki API'lerle iletişim kurabilir ve GET, POST, PUT, DELETE gibi HTTP istekleri gönderebilirsiniz.
Requests Modülünün Kurulumu
Requests modülünü kullanmaya başlamadan önce, Python'un paket yöneticisi olan pip3 ile bu modülü yüklemelisiniz. Eğer pip3 sisteminizde kurulu değilse, aşağıdaki komut ile kurulumu gerçekleştirebilirsiniz:
Pip3 yüklendikten sonra, Requests modülünü şu komut ile yükleyebilirsiniz:
Artık Requests modülünü projelerinize dahil edebilir ve kullanmaya başlayabilirsiniz:
HTTP İstekleri Göndermek
Requests modülü ile farklı türde HTTP istekleri gönderebilirsiniz. Örneğin:
Bu örneklerde, GET, POST, PUT ve DELETE istekleri nasıl yapıldığını görebilirsiniz.
Parametre Gönderme
HTTP isteklerine parametre eklemek isterseniz, params sözlüğünü kullanabilirsiniz:
Bu örnekte, parametreler URL'nin sonuna eklenir ve isteğin tam URL'si r.url ile görüntülenebilir.
Yönlendirmeleri Yönetmek
Bir isteğin yönlendirilip yönlendirilmediğini kontrol etmek için allow_redirects parametresini kullanabilirsiniz:
POST İsteklerinde Form Verisi Göndermek
POST isteklerinde, bir form doldurup göndermiş gibi davranmak için data parametresini kullanabilirsiniz:
Timeout Belirlemek
Bir isteğin belirli bir süre içinde yanıt verip vermediğini kontrol etmek için timeout parametresini kullanabilirsiniz:
Eğer belirtilen süre içinde bir yanıt alınamazsa, bir hata meydana gelecektir.
JSON Verisi Göndermek
REST API'lerle çalışırken, genellikle JSON formatında veri göndermeniz gerekir. Bunun için json modülünü kullanarak veriyi JSON formatına dönüştürebilirsiniz:
Özel Header Bilgileri Göndermek
Bir isteği yaparken, headers parametresi ile özel HTTP header bilgileri gönderebilirsiniz:
HTTP İsteği Sonrası Kullanılabilecek Methodlar
İstek yaptıktan sonra, requests
modülü ile çeşitli bilgilere erişebilirsiniz:
Requests Modülünün Kurulumu
Requests modülünü kullanmaya başlamadan önce, Python'un paket yöneticisi olan pip3 ile bu modülü yüklemelisiniz. Eğer pip3 sisteminizde kurulu değilse, aşağıdaki komut ile kurulumu gerçekleştirebilirsiniz:
Kod:
sudo apt-get install python3-pip
Pip3 yüklendikten sonra, Requests modülünü şu komut ile yükleyebilirsiniz:
Kod:
pip3 install requests
Artık Requests modülünü projelerinize dahil edebilir ve kullanmaya başlayabilirsiniz:
Kod:
import requests
HTTP İstekleri Göndermek
Requests modülü ile farklı türde HTTP istekleri gönderebilirsiniz. Örneğin:
Kod:
r = requests.get('http://httpbin.org/get')
r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/put')
r = requests.delete('http://httpbin.org/delete')
Bu örneklerde, GET, POST, PUT ve DELETE istekleri nasıl yapıldığını görebilirsiniz.
Parametre Gönderme
HTTP isteklerine parametre eklemek isterseniz, params sözlüğünü kullanabilirsiniz:
Kod:
r = requests.get('http://httpbin.org/get', params={"kategori": "elektronik", "marka": "samsung"})
print(r.url)
Bu örnekte, parametreler URL'nin sonuna eklenir ve isteğin tam URL'si r.url ile görüntülenebilir.
Yönlendirmeleri Yönetmek
Bir isteğin yönlendirilip yönlendirilmediğini kontrol etmek için allow_redirects parametresini kullanabilirsiniz:
Kod:
r = requests.get("http://httpbin.org/redirect/1", allow_redirects=False)
print(r.status_code) # 302
r = requests.get("http://httpbin.org/redirect/1", allow_redirects=True)
print(r.status_code) # 200
POST İsteklerinde Form Verisi Göndermek
POST isteklerinde, bir form doldurup göndermiş gibi davranmak için data parametresini kullanabilirsiniz:
Kod:
r = requests.post("http://httpbin.org/post", data={"username": "selim", "password": "asd123"})
print(r.status_code) # 200
print(r.json()["form"]) # {'username': 'selim', 'password': 'asd123'}
Timeout Belirlemek
Bir isteğin belirli bir süre içinde yanıt verip vermediğini kontrol etmek için timeout parametresini kullanabilirsiniz:
Kod:
r = requests.get("http://httpbin.org/get", timeout=1)
Eğer belirtilen süre içinde bir yanıt alınamazsa, bir hata meydana gelecektir.
JSON Verisi Göndermek
REST API'lerle çalışırken, genellikle JSON formatında veri göndermeniz gerekir. Bunun için json modülünü kullanarak veriyi JSON formatına dönüştürebilirsiniz:
Kod:
import json
import requests
endpoint = "http://httpbin.org/post"
myData = {
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
}
r = requests.post(endpoint, data=json.dumps(myData))
print(r.status_code) # 200
Özel Header Bilgileri Göndermek
Bir isteği yaparken, headers parametresi ile özel HTTP header bilgileri gönderebilirsiniz:
Kod:
r = requests.post("http://httpbin.org/post", headers={"User-Agent": "Sinan-Chrome"})
print(r.status_code) # 200
HTTP İsteği Sonrası Kullanılabilecek Methodlar
İstek yaptıktan sonra, requests
modülü ile çeşitli bilgilere erişebilirsiniz:
- text: İsteğin dönen HTML içeriğini verir.
- headers: İsteğin HTTP başlık bilgilerini döner.
- url: İstek yapılan tam URL'yi döner.
- status_code: HTTP durum kodunu döner.
- history: İsteğin yönlendirilip yönlendirilmediğini gösterir.
- encoding: Sayfanın karakter kodlamasını döner.
- request: Yaptığınız isteğin türünü (GET, POST vb.) döner.
- elapsed: İsteğin gerçekleştirilme süresini döner.

by wolfgang at 08-18-2024, 12:57 AM
1 comments
![[Resim: MV5BMTg2MzYzNzgzOF5BMl5BanBnXkFtZTgwOTg4...@._V1_.jpg]](https://m.media-amazon.com/images/M/MV5BMTg2MzYzNzgzOF5BMl5BanBnXkFtZTgwOTg4NzQ4OTE@._V1_.jpg)
"Snowden" (2016), Oliver Stone tarafından yönetilen bir biyografik gerilim filmidir. Film, NSA (Ulusal Güvenlik Ajansı) eski çalışanı Edward Snowden'ın hikayesini anlatır.
Film, Snowden'ın ABD hükümetinin gizli ve geniş kapsamlı izleme programlarını ifşa etme sürecini ele alır. Hikaye, Snowden'ın CIA ve NSA'de çalışırken karşılaştığı etik sorunlar ve Amerikan vatandaşlarının gizliliğinin ihlal edilmesi üzerine yaşadığı içsel çatışmalar etrafında şekillenir.
Film, Snowden'ın Hong Kong'a kaçışını, burada gazetecilere belgeler sızdırmasını ve sonrasında yaşadığı kaçak hayatını da detaylandırır. Snowden'ın cesareti ve inançları, devletin gözetim programlarını ifşa etme kararı almasında belirleyici olmuştur.
Başrolde Joseph Gordon-Levitt, Snowden'ı canlandırırken, Shailene Woodley, Snowden'ın kız arkadaşı Lindsay Mills'i oynar. Film, özgürlük, gizlilik ve hükümetin gücü üzerine derin sorular ortaya koyarak izleyiciyi bu konularda düşünmeye sevk eder.
NOT: Film gerçek hikayeden alıntıdır
snowden şu an Rusya'da yaşıyor ve kalıcı oturma izni aldı. Ünlü yönetmen Oliver Stone Snowden'ın yaşamı hakkında Snowden adlı filmi 2016 yılında yayımlamıştır. 2014 yılında Laura Poitras tarafından Citizenfour adlı belgeseli hazırlanmış, 24 Ekim 2014'ten itibaren halk gösterimine açılmıştır.
Forum: Hediyeler

by wolfgang at 08-16-2024, 02:01 PM
1 comments
Bu sitelerden ücretsiz sunucu hizmeti alabilirsiniz
https://clouding.io/
https://www.digitalocean.com/
https://www.vultr.com/
https://developer.rackspace.com/
https://www.neuprime.com/l_vds3.php
https://www.cloudsigma.com/
https://sadd.io/
https://www.skysilk.com/
https://www.ctl.io/free-trial/
http://vpswala.org/
https://www.apponfly.com/en/
https://gratisvps.net/
https://my.letscloud.io/sign-up/
https://clouding.io/
https://www.digitalocean.com/
https://www.vultr.com/
https://developer.rackspace.com/
https://www.neuprime.com/l_vds3.php
https://www.cloudsigma.com/
https://sadd.io/
https://www.skysilk.com/
https://www.ctl.io/free-trial/
http://vpswala.org/
https://www.apponfly.com/en/
https://gratisvps.net/
https://my.letscloud.io/sign-up/

by wolfgang at 08-16-2024, 01:01 PM
0 comments
Algoritmalar ?
[/url]
Şu anda bu depoda aşağıdaki sıralama algoritmaları bulunmaktadır:
[/url]
Şu anda bu depoda aşağıdaki sıralama algoritmaları bulunmaktadır:
- Bubble Sort ?:
- Bu algoritma, birbirini takip eden iki elemanı karşılaştırarak, gerektiğinde yer değiştirerek sıralama yapar. Yani, listedeki her elemanı yanındaki elemanla karşılaştırır ve gerektiğinde yer değiştirir. Bu işlem, listenin sonuna kadar devam eder ve en büyük eleman en sona yerleşir. Ardından, bu işlem liste üzerinde tekrarlanarak sıralama tamamlanır.
- Bu algoritma, birbirini takip eden iki elemanı karşılaştırarak, gerektiğinde yer değiştirerek sıralama yapar. Yani, listedeki her elemanı yanındaki elemanla karşılaştırır ve gerektiğinde yer değiştirir. Bu işlem, listenin sonuna kadar devam eder ve en büyük eleman en sona yerleşir. Ardından, bu işlem liste üzerinde tekrarlanarak sıralama tamamlanır.
- Insertion Sort ?:
- Bu algoritma, elemanları sıralı ve sırasız olarak iki kısma böler ve sıralı kısmın içine yerleştirir. Listenin ikinci elemanından başlayarak, her elemanı sıralı kısmın içindeki uygun konuma yerleştirir. Bu işlem, listenin son elemanına kadar devam eder ve listenin tamamı sıralanmış olur.
- Bu algoritma, elemanları sıralı ve sırasız olarak iki kısma böler ve sıralı kısmın içine yerleştirir. Listenin ikinci elemanından başlayarak, her elemanı sıralı kısmın içindeki uygun konuma yerleştirir. Bu işlem, listenin son elemanına kadar devam eder ve listenin tamamı sıralanmış olur.
- Selection Sort ?️:
- Bu algoritma, dizideki en küçük (veya en büyük) elemanı bulup, dizinin başına (veya sonuna) yerleştirerek sıralama yapar. Listenin her bir elemanı için en küçük (veya en büyük) elemanı bulur ve bu elemanı listenin başına (veya sonuna) yerleştirir. Bu işlem, listenin tamamı sıralanana kadar devam eder.
- Bu algoritma, dizideki en küçük (veya en büyük) elemanı bulup, dizinin başına (veya sonuna) yerleştirerek sıralama yapar. Listenin her bir elemanı için en küçük (veya en büyük) elemanı bulur ve bu elemanı listenin başına (veya sonuna) yerleştirir. Bu işlem, listenin tamamı sıralanana kadar devam eder.
- Merge Sort ?:
- Bu algoritma, diziyi ikiye bölerek her bir parçayı ayrı ayrı sıralar, ardından birleştirerek sıralı bir dizi elde eder. Listenin ortası bulunarak ikiye bölünür, ardından her bir parça için merge sort algoritması uygulanır. Son olarak, birleştirme işlemiyle sıralı diziler birleştirilir.
- Bu algoritma, diziyi ikiye bölerek her bir parçayı ayrı ayrı sıralar, ardından birleştirerek sıralı bir dizi elde eder. Listenin ortası bulunarak ikiye bölünür, ardından her bir parça için merge sort algoritması uygulanır. Son olarak, birleştirme işlemiyle sıralı diziler birleştirilir.
- Quick Sort ⚡:
- Bu algoritma, bir pivot eleman seçerek diziyi pivot elemanın solunda küçük, sağında büyük olacak şekilde bölüp sıralama yapar. İlk olarak bir pivot eleman seçilir, daha sonra dizideki diğer elemanlar pivot elemanın sağında veya solunda olacak şekilde bölünür. Bu işlem rekürsif olarak tekrarlanır ve sonunda tüm dizinin sıralı olduğu garanti edilir.
Performans Karşılaştırması ?Her bir algoritmanın performansını karşılaştırmak için aşağıdaki tabloyu kullanabilirsiniz:
- [url=https://resimlink.com/hAe6yzY]
- Yazı Link
https://github.com/deryaxacar/Sorting-Algorithms
- Bu algoritma, bir pivot eleman seçerek diziyi pivot elemanın solunda küçük, sağında büyük olacak şekilde bölüp sıralama yapar. İlk olarak bir pivot eleman seçilir, daha sonra dizideki diğer elemanlar pivot elemanın sağında veya solunda olacak şekilde bölünür. Bu işlem rekürsif olarak tekrarlanır ve sonunda tüm dizinin sıralı olduğu garanti edilir.
Forum: C / C++

by razor at 08-13-2024, 05:23 PM
0 comments
Bölüm 1: C++ ile Başlarken
Bölüm 1.1: Hello World
Bu program, standart çıkış akışına Hello World! yazdırır:
Kod:
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
}
Analiz
Kodun her bir parçasını detaylı olarak inceleyelim:
- #include <iostream> ön işlemci yönergesi, standart C++ başlık dosyası iostream'ın içeriğini dahil eder.
- iostream, standart giriş ve çıkış akışlarının tanımlarını içeren standart bir kütüphane başlık dosyasıdır. Bu tanımlar, aşağıda açıklanan std ad alanı içinde yer alır.
- Standart giriş/çıkış (G/Ç) akışları, programların dış bir sistemden (genellikle terminal) giriş almasına ve çıktı üretmesine olanak tanır.
- int main() { ... } adında yeni bir fonksiyon tanımlar. Sözleşime göre, programın çalıştırılması üzerine main fonksiyonu çağırılır. Bir C++ programında sadece bir tane main fonksiyonu olabilir ve her zaman int tipinde bir sayı döndürmelidir.
- Burada int, fonksiyonun dönüş tipi olarak adlandırılır. main fonksiyonu tarafından döndürülen değer bir çıkış kodudur.
- Sözleşime göre, 0 veya EXIT_SUCCESS çıkış kodu, programı çalıştıran sistem tarafından başarı olarak yorumlanır. Diğer herhangi bir dönüş kodu bir hatayla ilişkilendirilir.
- Eğer return ifadesi bulunmazsa, main fonksiyonu (ve dolayısıyla programın kendisi) varsayılan olarak 0 döndürür. Bu örnekte, return 0; ifadesini açıkça yazmamıza gerek yoktur.
- void tipi döndürenler dışında tüm fonksiyonlar, dönüş türüne göre açıkça bir değer döndürmelidir veya hiç döndürmemelidir.
std::cout << "Hello World!" << std::endl; ifadesi standart çıktı akışına "Hello World!" yazdırır:
- std bir ad alanı (namespace) olup, :: kapsam çözümleme operatörü, adlar ile ad alanları arasında ilişki kurmak için kullanılır. Birçok ad alanı vardır. Burada :: operatörü, std ad alanı içerisindeki cout'u kullanmak istediğimizi gösterir.
- std::cout, iostream içerisinde tanımlanmış standart çıktı akışı nesnesidir ve standart çıktıya (stdout) yazdırır.
- << bu bağlamda akış ekleme operatörüdür ve bir nesneyi akış nesnesine ekler. Standart kütüphane, belirli veri tipleri için çıktı akışlarına veri eklemek üzere << operatörünü tanımlar. stream << içerik, içeriği akışa ekler ve aynı ancak güncellenmiş akışı döndürür. Bu, akış eklemelerinin zincirlenmesine izin verir: std::cout << "Foo" << " Bar"; konsola "FooBar" yazdırır.
- "Hello World!" karakter dizisi veya "metin literali"dir. Karakter dizisi literalleri için akış ekleme operatörü iostream dosyasında tanımlanır.
- std::endl özel bir G/Ç akışı manipülatörü nesnesidir ve yine iostream dosyasında tanımlanır. Bir manipülatörün bir akışa eklenmesi akışın durumunu değiştirir. std::endl akış manipülatörü iki şey yapar: önce satır sonu karakterini ekler ve ardından metnin konsolda görünmesini zorlamak için akış tamponunu temizler. Bu, akışa eklenen verilerin gerçekten konsolunuzda görünmesini sağlar. (Akış verileri genellikle bir tampona kaydedilir ve hemen bir temizleme zorlanmadığı sürece toplu olarak "temizlenir".)
- Alternatif bir yöntem temizlemeyi önler:
burada \n karakteri satır sonu karakteri için karakter kaçış sekansıdır.Kod:std::cout << "Hello World!\n";
- Noktalı virgül ( ; ) derleyiciye bir ifadenin bittiğini bildirir. Tüm C++ ifadeleri ve sınıf tanımları bitiş/sonlandırma noktalı virgülü gerektirir.
Bölüm 1.2: Yorumlar
Yorum, C++ derleyicisinin herhangi bir işlevsel anlam yüklemeden kaynak kodu içinde rastgele metin yerleştirmenin bir yoludur. Yorumlar, bir programın tasarımı veya yöntemi hakkında bilgi vermek için kullanılır.
C++'ta iki tür yorum vardır:
Tek Satırlı Yorumlar
Çift eğik çizgi dizisi '//', bir yeni satıra kadar olan tüm metni yorum olarak işaretler:
Kod:
int main()
{
// Bu bir tek satırlı yorumdur.
int a; // bu da bir tek satırlı yorumdur
int i; // bu da başka bir tek satırlı yorumdur
}
C-Stili/Blok Yorumlar
Dizisi '/*' , yorum bloğunun başlangıcını belirtmek için kullanılır ve dizisi '*/' ise yorumun sonunu belirtir. Başlangıç ve bitiş dizileri arasındaki tüm metin yorum olarak yorumlanır, metin başka bir geçerli C++ sözdizimi olsa bile. Bu tür yorumlar bazen "C-stili" yorumlar olarak adlandırılır, çünkü bu yorum sözdizimi C++'ın öncülü olan C dilinden miras alınmıştır:
Kod:
int main()
{
/*
* Bu bir blok yorumdur.
*/
int a;
}
Herhangi bir blok yorumda istediğiniz her şeyi yazabilirsiniz. Derleyici '*/' sembolünü bulduğunda, blok yorumunu sonlandırır:
Kod:
int main()
{
/* Bir blok yorumu, sembol /* içerir
Not: Derleyici ikinci /*'den etkilenmez, ancak blok-sonu sembolü ulaşıldığında yorum sona erer.
*/
int a;
}
Yukarıdaki örnek geçerli C++ (ve C) kodudur. Ancak, bir blok yorum içinde ek '/*' bulunması bazı derleyicilerde uyarı almanıza neden olabilir.
Blok yorumlar aynı zamanda tek bir satır içinde başlayıp bitirilebilir. Örneğin:
Kod:
void SomeFunction(/* argüman 1 */ int a, /* argüman 2 */ int b);
Yorumların Önemi
Tüm programlama dillerinde olduğu gibi, yorumlar birkaç avantaj sağlar:
- Kodu daha okunabilir ve bakımını kolaylaştıracak şekilde açık dokümantasyon sağlar
- Kodu amaç ve işlevselliğini açıklar
- Kodun geçmişi veya mantığı hakkında detaylar sunar
- Telif hakkı/ruhsatlar, proje notları, özel teşekkürler, katkıda bulunan kişilerin kredileri vb. gibi bilgileri doğrudan kaynak kodunda bulundurur
- Koddaki değişiklikleri yansıtacak şekilde yorumların da güncellenmesi gerekir
- Aşırı yorumlar, kodun okunabilirliğini azaltabilir
- Yorum ihtiyacını azaltmak için, açıklayıcı isimler kullanarak kendiliğinden dokümantasyon sağlayan kod yazmak faydalıdır. Basit bir örnek, değişkenler, fonksiyonlar ve türler için açıklayıcı isimlerin kullanılmasıdır. Mantıksal olarak ilişkili görevleri ayrık fonksiyonlara ayırmak da bu yaklaşımla uyumludur.
Kodun Devre Dışı Bırakılmasında Kullanılan Yorum İşaretleri
Geliştirme sürecinde, yorumlar kodun bazı bölümlerini hızlıca devre dışı bırakmak için de kullanılabilir, bu sayede kodu silmeden test edebilir veya hata ayıklayabilirsiniz. Bu genellikle "yorum satırı" olarak adlandırılır ve geçici düzenlemeler dışında iyi bir stil olarak kabul edilmez.
Benzer şekilde, bir kod parçasının eski sürümlerini referans amacıyla yorum olarak tutmak hoş karşılanmaz, çünkü bu dosyaları karıştırır ve sürümleme sistemi aracılığıyla kodun geçmişini incelemekle kıyaslandığında pek bir değer sunmaz.
Hoşgeldin, Ziyaretçi
Sitemizden yararlanabilmek için kayıt olmalısınız. |
Forumda Ara
Forum İstatistikleri
Toplam Üyeler 302 Son Üye Larisabam Toplam Konular 2,284 Toplam Yorumlar 2,291 |
Kimler Çevrimiçi
Şu anda 152 aktif kullanıcı var. (0 Üye - 150 Ziyaretçi) Bing, Google |
Son Yazılanlar
may I ask?
Last
by AlexeyTak 0 Replies |
Купить базы для Хрумера с...
Last
by BryanSpuch 0 Replies |
Официальный ресурс с база...
Last
by BryanSpuch 0 Replies |
Купить базы для Хрумера с...
Last
by BryanSpuch 0 Replies |
Базы для Xrumer с высокой...
Last
by BryanSpuch 0 Replies |
Купить базы для Xrumer с ...
Last
by BryanSpuch 0 Replies |
Anonymous Payments: How t...
Last
by Valeron83leply 0 Replies |
POCO M6 Pro: Power, Style...
Last
by BryanSpuch 0 Replies |
register-A
Last
by Charlescoeds 0 Replies |
POCO M6 Pro: Power, Style...
Last
by BryanSpuch 0 Replies |