1. Anasayfa
  2. Solidity

Solidity Eğitimi – Ayrıntılı Bir Giriş

Solidity Eğitimi – Ayrıntılı Bir Giriş
Solidity Eğitimi
0

Akıllı sözleşmeleri duydunuz mu? Blockchain teknolojisinde akıllı sözleşmelerden bahsedebileceğiniz birçok potansiyel örnek vardır. Blockchain teknolojisinin gelişi, akıllı sözleşmeler için önemli bir popülerlik yarattı. Bu nedenle, akıllı sözleşmeler geliştirmek için önemli ve yaygın olarak tercih edilen bir dil olduğu için iyi bir Solidity öğreticisine olan talep önemli ölçüde artmaktadır.

Şimdi, blok zinciri alanında yeni olan herhangi bir kişi, yani blok zincirine yeni başlayanlar , akıllı sözleşmeler ve merkezi olmayan uygulamalar oluşturmak için gereken becerileri geliştirmek için bir alternatif olarak Solidity öğrenmelidir. Farklı bileşenlere ayrıntılı bir genel bakış ile Solidity‘nin akıllı sözleşme geliştirme için nasıl uygun olduğunu bilmek önemlidir.

Mimarideki bileşenler ve Solidity‘nin işleyişi hakkında daha iyi bir izlenim edinen öğrenciler, örnekler üzerinde de düşünmelidir. Aynı zamanda, Solidity kullanmanın farklı yolları üzerinde ayrıntılı bir düşünme, önemini anlamak için yardımcı olabilir. Ayrıca, birçok öğrenci Solidity öğrenmek kolay mı? diye soruyor. Ve doğru öğretici ile Solidity hakkında bilgi edinmenin daha kolay olduğunu bilmek önemlidir.

Aşağıdaki tartışma, Solidity ve türler, işlevler, olaylar ve kalıtım gibi diğer ilgili yönler hakkında ayrıntılı bir genel bakış sunar. Buna ek olarak, tartışma aynı zamanda Solidity örnekleri üzerinde düşünme yoluyla öğrenmede umut verici esneklik seviyeleri sunar.

Solidity Eğitimi

  • Solidity Eğitimine Başlarken: Solidity Nedir?
  • Solidity Anlamak İçin Bilmeniz Gereken Kavramlar
  • Akıllı Sözleşmenin Bileşenlerinin Kodunu Çözmek
  • Solidity Derleyici Kurulumu
  • Solidity Sözdizimini Anlamak
  • Solidity’nin Çalışmasını Öğrenin
  • Solidity’de Değişken Tipleri
  • Solidity’deki Değişkenleri Anlamak
  • Değişken Adı Kuralları
  • Ortak Solidity Kullanım Örneklerini Anlama
  • Solidity Eğitimi: Sonuç

Solidity Eğitimine Başlarken: Solidity Nedir?

Herhangi bir Solidity eğitimindeki ilk önemli şey, tanımına atıfta bulunur. Akıllı Sözleşmeler tasarlamaya ve uygulamaya odaklanan üst düzey bir programlama dilidir. Solidity üzerindeki birincil etkiler, Ethereum Sanal Makinesini hedeflemek için belirli bir yönelime sahip C++, JavaScript ve Python‘u içerir.

Solidity Geliştirme Yol Haritası
Solidity Geliştirme Yol Haritası

Ethereum blok zincirinde merkezi olmayan uygulamalar veya dApp’ler geliştirmek için Solidity kullanabilirsiniz. Solidity, 2015 yılında Christian Reitwiessner liderliğinde öne çıktı. Solidity‘nin vurgulanan temel özellikleri, Solidity’nin gücünü kısaltılmış bir versiyonda gösteren önemli yönlerdir. İşte Solidity öğrendiğinizde bulacağınız dikkate değer özellikler.

  • Solidity, akıllı sözleşmelerin uygulanması için uyarlanmış statik tipte bir dildir. Akıllı sözleşmeler oluşturmak ve dağıtmak için nesne yönelimli veya sözleşme yönelimli temelden yararlanır.
  • Solidity, kör müzayedeler, çok imzalı cüzdanlar, oylama, kitle fonlaması ve diğer uygulamalarla ilgilenen sözleşmelerin oluşturulması için uygun bir programlama dilidir.
  • Solidity, kalıtım ve kitaplıkların yanı sıra kullanıcı tanımlı programlamada karmaşık yaklaşımlar için kapsamlı destek sunar.

Solidity Anlamak İçin Bilmeniz Gereken Kavramlar

Bir Solidity eğitiminde ortaya çıkaracağınız en önemli detay, onun blok zincirleri çalıştıran platformlar için hazırlanmış birincil dil olduğu gerçeğine atıfta bulunur. İlk olarak, Solidity anlamak için gerekli olan önemli yönlere aşina olmanız gerekir.

Ethereum

Ethereum’un Solidity öğrenme yolculuğundaki önemi, tanımlarında oldukça açık. Solidity, Ethereum Sanal Makinesini hedef alır, böylece öğrencilerin dikkatini Ethereum’a çeker. Temel olarak Ethereum, blok zinciri modeline dayanan ve akıllı sözleşmelerin yürütülmesine yardımcı olan açık kaynaklı, merkezi olmayan bir platformdur. En basit ifadeyle, geliştiricilerin merkezi olmayan uygulamalar oluşturmasına ve dağıtmasına yardımcı olmak için blok zincirinden yararlanan açık bir yazılım platformudur. Ethereum blok zinciri, öncelikle merkezi olmayan uygulamalar için kod yürütmeye odaklanmıştır.

Bir Solidity eğitimindeki en önemli noktalardan biri, madencilerin Ethereum ağını besleyen kripto jetonu olan Ether kazanma çalışmalarına da atıfta bulunur. Ether ayrıca, Ethereum ağındaki işlem hizmetleri ve ücretler için ödeme yapmak için ethere güvenen uygulama geliştiricileri ile, ticareti yapılabilir bir kripto para biriminden daha fazlası olarak hizmet eder.

Ethereum blok zinciri ayrıca, işlemlerin belirli bloklara dahil edilmesi için madencilere ücret ödemek için başka bir belirteç varyantından yararlanır. Ethereum blok zincirindeki diğer token, akıllı sözleşmelerin yürütülmesini içeren tüm işlemler için çok önemli olan bir gazı ifade eder. Ethereum Gas , madencileri blok zincirinde akıllı bir sözleşmenin yürütülmesini sağlamaya ikna etmek için en önemli gereksinimlerden biridir.

Ethereum Sanal Makinesi

Yeni başlayanlar için Solidity anlamada esas olan Ethereum blok zincirindeki bir sonraki önemli husus, Ethereum Sanal Makinesidir. EVM olarak da adlandırılan Ethereum Sanal Makinesi, temel olarak Ethereum’da akıllı sözleşmelerin yürütülmesi için bir çalışma zamanı ortamını kolaylaştırır. EVM, genel düğümlerden oluşan uluslararası bir ağ üzerinden güvenilmeyen kodu yürütmek için istenen güvenliği ve tesisi sunmak için gereklidir.

EVM’nin önemi, Hizmet Reddi veya DOS saldırılarını önlemenin etkinliğinde de belirgindir. Ayrıca, belirli bir programın birbirinin durumlarına erişimi olmamasını sağlamaktan da EVM sorumludur. Ayrıca, EVM’nin işlevselliği, herhangi bir ilgili müdahale olmaksızın iletişim kurulmasına da işaret eder.

Akıllı Sözleşmeler

Bir Solidity eğitimi ile başladığınızda, bir noktada akıllı sözleşmelerle karşılaşmanız çok olasıdır. Akıllı sözleşmeler temelde insanların uygulama hayatlarında ihtiyaç duydukları tüm iş mantığının depolarıdır. Ethereum Smart sözleşmeleri , tüm projeler için başlangıç ​​noktası olarak hizmet etmenin yanı sıra sözleşmeye ait tüm fonksiyonları ve değişkenleri içerir. Bu nedenle, temel bir akıllı sözleşme örneği ile hemen Solidity hakkında bilgi edinmeye başlamak önemlidir.

Solidity akıllı sözleşmelerinin örneklerini anlama konusunda bazı şüphelerle karşılaşsanız bile, her zaman daha kolay bir yol vardır. Solidity ile yazılmış aşağıdaki akıllı sözleşme örneği, bir değişkenin değerini belirlemeye odaklanır. Ayrıca, diğer sözleşmelere erişim sağlamak için bir değişkenin değerinin ortaya çıkarılmasına da yardımcı olabilir.

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract SimpleStorage {

uintstoredData;

function set(uint x) public {

storedData = x;

}

function get() public view returns (uint) {

return storedData;

}

}

Yeni başlayanlar için Solidity örneğindeki akıllı sözleşmedeki ilk satır, kaynak kodunun lisansını gösterir. Kaynak kodun lisanslanmasının GPL sürüm 3.0’ı takip ettiğini fark edebilirsiniz. Kaynak kodunun varsayılan olarak yayınlanmasına izin veren bir ortamda makine tarafından okunabilen lisans belirteçlerine odaklanmak önemlidir.

Akıllı sözleşmedeki aşağıdaki satır, kaynak kodunun Solidity sürüm 0.7.0 veya dilin daha yeni sürümleriyle uyumlu olduğunu gösterir. Akıllı sözleşme için desteklenen dilin 0.9.0 sürümünü içeremeyeceğini açıkça belirttiğini de fark edebilirsiniz. Sürümün endişeleri, öncelikle sözleşmenin yeni veya bozulan bir derleyici sürümü ile derlenebilmesini sağlamaya odaklanır.

Önceden tahmin edilen sapma davranışına kıyasla, sözleşme yeni bir derleyici sürümü ile kolayca derlenebilir. Akıllı sözleşmeler, derleyicilerin kaynak kodunu işlemek için ideal yaklaşımları anlamalarına yardımcı olmak için pragmaları ortak talimatlar olarak kullanır.

Solidity 101
Solidity 101

Akıllı Sözleşmenin Bileşenlerinin Kodunu Çözmek

Akıllı bir sözleşmenin önemi, Solidity eğitiminin zorlu yönlerinden biridir. Solidity ile ilgili bir sözleşmenin algılanması, temel olarak işlevselliği ve ilgili durumundaki verilerle bir dizi koda işaret eder. Sözleşme, Ethereum blok zincirinde belirli bir adreste bulunur. Solidity ile yazılmış akıllı sözleşme örnek koduna daha yakından bakmak, akıllı sözleşmedeki diğer işlevleri de gösterir .

uintstoredData, 256 bit ölçen uint veya işaretsiz tamsayı türünde olan, storeData olarak bilinen bir durum değişkeninin bildirilmesine yardımcı olur.

İnsanlar haklı olarak, veritabanı yönetiminden sorumlu kodun işlevlerini çağırarak sorgulayabileceğiniz ve değiştirebileceğiniz veritabanındaki tek bir yuva olduğunu varsayabilirler. Örnek ayrıca, alma ve ayarlama işlevlerini tanımlamanın en iyi Solidity uygulamalarını gösterir. Her iki işlev de değişkenin değerinin değiştirilmesine veya alınmasına yardımcı olabilir. Ayrıca, Solidity, diğer dillerde oldukça yaygın olan ‘this‘ önekinden kaçınma avantajını sunar.

Akıllı sözleşme örneğinin temel işlevi, kullanıcıların numarayı yayınlamasını engellemek için uygun bir yaklaşım olmaksızın, bir kişinin yalnızca dünyadaki herhangi bir kişinin erişebileceği tek bir numarayı saklamasına izin verebilir. Başka herhangi bir kişi belirli bir işlevi çağırıp farklı bir numara atayabilse de, her zaman blok zinciri geçmişinde kalacaktır. Ek olarak, numarayı değiştirme yeteneklerine yalnızca sizin sahip olmanızı sağlamak için erişim kısıtlamaları da uygulayabilirsiniz.

Solidity Derleyici Kurulumu

Akıllı sözleşmeler için solidity dilinin önemi şimdiye kadar netleşmiş olabilir. Ancak, herhangi bir Solidity eğitiminde Solidity için ortamı ayarlamak önemlidir. Solidity derleyicisinin kurulumu için yaygın yöntemler, çalışması hakkında ayrıntılı bir izlenim sağlayabilir. İşte benzersiz işlevleriyle Solidity ortamını kurmak için farklı yöntemler.

Sürüm oluşturma

Solidity blok zinciri kurulumunun ilk örneklerinden biri, sürüm oluşturma ve en önemlisi anlamsal sürüm oluşturma anlamına gelir. Solidity dilinin farklı sürümleri, ilgili sürümler için her gece geliştirme oluşturma olanağıyla anlamsal sürüm oluşturmaya uyar. Gecelik geliştirme yapıları, işlevselliği garanti edemez ve belgelenmemiş ve potansiyel olarak bozuk değişiklikleri içerebilir. Ayrıca, Solidity en iyi uygulamaları aynı zamanda en son yayın sürümlerinin kullanımını da içerir.

Remix

Remix, akıllı sözleşmeler ve Solidity hakkında hızlı bir şekilde bilgi edinmek için hemen hemen her Solidity eğitiminde önerilen araçlardan biridir. Solidity akıllı sözleşmeleri yazmak ve ardından bunları dağıtmak ve çalıştırmak için çevrimiçi bir entegre geliştirme ortamı veya IDE sunar.

Remix IDE‘ye herhangi bir ek kuruluma gerek kalmadan online olarak erişebilirsiniz. Ayrıca, çeşitli Solidity sürümlerinin kurulumuna gerek kalmadan her gece yapılan yapıları değerlendirme seçeneklerinin rahatlığıyla çevrimdışı kullanıma da izin verir. İlginç bir şekilde, kullanıcılar ek derleme seçeneklerine ihtiyaç duyduklarında veya daha büyük bir sözleşme üzerinde çalışmak zorunda kaldıklarında komut satırı Solidity derleyici yazılımını da seçebilirler.

Node.js/ npm

Solidity ile çalışmak için bir ortam kurmanın en kolay yolu ‘ npm ‘dir . Solc-js adlı bir Solidity derleyicisinin kurulumunda daha iyi kolaylık ve esneklik için npm’ye güvenebilirsiniz. solc-js programı ayrıca derleyiciye erişim yollarına kıyasla nispeten sınırlı işlevler sunar. Kullanıcılar, esnek öğrenme için solc-js kullanma belgelerine kendi deposunda erişebilir.

Bir Solidity eğitiminde bu derleyiciyi kurma yönteminin en önemli özelliği, solc-js derleyicisinin C++solc‘e dayalı olmasıdır. solc-js projesi Emscripten’i kullanır ve her ikisinin de benzer derleyici kaynak kodunu kullanmasını sağlar. Doğrudan Remix’e dayalı JavaScript projeleri için faydalı olabilir. solc-js deposu, onu kullanmak için gereken belgeleri sağlar.

Docker Görüntüsü

Bir Solidity blok zinciri ortamı kurmak için bir sonraki esnek yaklaşım, Docker görüntülerinin kullanımına atıfta bulunur. Kullanıcılar, bir Docker görüntüsü çekmeyi ve ardından Solidity programlaması için kullanmaya başlamayı seçebilirler. Solidity ortamını kurmak için Docker imajını kullanmanın en iyi yanı, adımların basitliğidir. İlk adım, Solidity‘nin Docker görüntüsünü çekmek için komutun uygulanmasını içerir . Komut şudur,

$docker pull ethereum/solc:stable

Docker ile Solidity örneklerindeki ikinci adım, Docker görüntüsünün indirildikten sonra doğrulanması anlamına gelir. Aşağıdaki komut, Docker görüntüleri ile bir Solidity derleyicisi ve ortamı kurmanıza yardımcı olabilir.

$docker run ethereum/solc:stable-version

By completing these two steps, you can find the following output as the printout,

$ docker run ethereum/solc:stable -version

solc, the solidity compiler commandlineinterfaceVersion: 0.5.2+commit.1df8f40c.Linux.g++

Binary Paketler

Öğrenciler ayrıca Solidity‘yi kurmak için tercih edilen bir yöntem olarak ikili paketlerle karşılaşabilirler. Ayrıca, bir Solidity eğitiminde bunları resmi Solidity web sitesinde kolayca bulabileceğinizi belirtmek önemlidir. Solidity‘nin resmi web sitesinde ayrıca Ubuntu için PPA’lar bulunur ve en son kararlı sürümün elde edilmesine yardımcı olur.

Solidity ayrıca tüm uyumlu Linux dağıtımlarının Solidity kurulumu için bir ek paket sunar. Ek paketler, katı kısıtlamalara olanak tanır ve böylece, sınırlamalar da olsa, ek paketler için oldukça güvenli bir ortam sağlar. Sınırlamalar yalnızca /media ve /home dizinlerindeki dosyalara erişmeye odaklanmıştır.

Solidity Sözdizimini Anlamak

Solidity öğrenmek kolay mı?‘ diye düşündüğünüzde daha sonra ortaya çıkacak birçok soru var. Bununla birlikte, tartışmada daha önce vurgulandığı gibi, akıllı sözleşme yazmak için solidity sözdizimi daha iyi bir anlayış sağlar. Temel bir akıllı sözleşme oluşturan Solidity programının kodu, herhangi bir solidity eğitiminin ruhu olarak hizmet eder.

Pragma

Bir Solidity akıllı sözleşmesinin kodundaki ilk satır, pragma yönergesidir. Burada vurgulanan gibi solidity örnekleri, Solidity sürüm 0.7.0 için kaynak kodunun yazılmasını bildiren pragma yönergesini içerir. Ayrıca, belirtilen sürümün üzerindeki Solidity sürümleri için akıllı sözleşme desteğini de belirtir. Akıllı sözleşmedeki pragma yönergesi, Solidity’nin kullanımını 0.9.0 sürümüyle de kısıtlar.

Çoğu durumda, pragma yönergesi doğası gereği her zaman bir kaynak dosyada yereldir. Bu nedenle, başka bir dosyanın içe aktarılması, dosyanın pragmasının içe aktarılan dosyaya otomatik olarak uygulanacağını göstermez. Böylece kullanıcılar, 0.7.0’den önceki sürümlerde ve ayrıca 0.8.0’dan başlayan derleyici sürümlerinde çalışmayacak bir dosya için aşağıdaki komutu kullanarak pragma yazabilirler,

pragma sağlamlığı ^0.7.0;

^, bu durumda, ikinci koşulu eklemek için kullanışlıdır.

Sözleşme

Bu Solidity öğreticisinde özetlenen örnekte uintstoredData bileşenini zaten bulmuş olabilirsiniz. Bu, Solidity sözleşmesinden başka bir şey değildir ve temel olarak Ethereum blok zincirinde belirli bir adreste bulunan kod ve verilerin toplanmasıdır. Sözleşmenin farklı bileşenleri, değişken değerlerin değiştirilmesi veya alınması için işlevlerin yapılandırılmasının yanı sıra bir durum değişkeni bildirmeye yardımcı olur.

Dosya İçe Aktarma

Yeni başlayanlar, solidity sözdizimini öğrendiklerinde büyük olasılıkla dosyaları içe aktarma ihtiyacıyla karşılaşacaklardır. Şimdi, bu tartışma için ele alınan örnekte import ifadesini arıyor olabilirsiniz. Ancak Solidity, JavaScript’te görülen import ifadeleriyle olumlu benzerlikler sunan import ifadeleri için destek sağlar. Aşağıdaki ifadeyi, xyz’den global sembolleri içe aktarmak için solidity eğitiminde örnek olarak bulabilirsiniz.

import “xyz”;

Ek olarak, aşağıdaki ifade de yeni bir küresel sembol yaratmak için umut verici bir örnek teşkil edebilir. ‘symbolName‘ başlıklı yeni global sembol, üyeleri olarak ‘xyz‘den global sembollere sahiptir.

import * as symbolName from “xyz”; 

Geçerli dosyanın bulunduğu dizinden ‘x’ adlı bir dosyayı içe aktarmak istediğinizde, şunları kullanabilirsiniz:

import “./x” as x

Ayrıca, “x”i x olarak içe aktarmak, global bir “include dizininde” farklı bir dosyaya başvuruda bulunmaya yardımcı olabilir.

Ayrılmış Anahtar Kelimeler

Bir Solidity eğitiminde sözdizimini anlamanın en önemli yönü ayrıca ayrılmış anahtar kelimelere de atıfta bulunur. Solidity dilinde ayrılmış anahtar kelimeler, programlama dilini kullanmak için önemli gereksinimlerdir. Anahtar kelimelerin bilgisi, yeni başlayanlar için doğru bir şekilde tanımlayabilecekleri için solidity dilini daha iyi anlamalarına yardımcı olmak için çok önemlidir. Kullanıcılar, uygulama kodunun mantığını kolayca geliştirmek için ayrılmış anahtar kelimeler hakkındaki bilgilerine güvenebilirler. Solidity‘de bulabileceğiniz bazı ayrılmış anahtar kelimelerin bir özetini burada bulabilirsiniz.

  • Abstract
  • Auto
  • Alias
  • Default
  • Override
  • Sizeof
  • Unchecked
  • Typedef
  • Inline
  • Copyof
  • Apply
  • Reference
  • Try
  • Static
  • Define
  • After
  • Switch
  • Case
  • Immutable
  • Typeof

Ayrıca, temel solidity sözdizimi bilgisini geliştirmek için solidity blok zinciri örneklerinde başka birçok anahtar kelime bulabilirsiniz.

Solidity Dilinin Çalışmasını Öğrenin

Artık, Solidity sözdizimindeki farklı bileşenlerin akıllı sözleşme işlevleriyle nasıl ilişkili olduğu konusunda net bir izlenime sahip olduğunuza göre, Solidity‘nin çalışmasına dalmak önemlidir. Çalışmayı anlamak için en yaygın Solidity örneklerinden birini ele alalım.

Aşağıdaki örnekte, Solidity ortamı için seçilen derleyici – Remix IDE‘dir. Ayrıca Solidity Codebase’in çalıştırılmasına da yardımcı olur. İşte solidity dilinin temel işleyişine başlamak için izleyebileceğiniz önemli adımlardan bazıları. Şimdi, nasıl çalıştığını açıklamak için bu Solidity eğitiminde aşağıdaki kodun varsayımını almalısınız.

pragma solidity ^0.7.0;

contract SolidityTest {

constructor() public{

   }

   function getResult() public view returns(uint){

uint a = 1;

uint b = 2;

uint result = a + b;

      return result;

   }

}
  • Yeni başlayanlar için çalışan blok zincirinin temel örneğinin ilk adımında, Remix IDE Kodu Bölümündeki belirli kodu kopyalamanız gerekir.
  • Şimdi, ‘Compile / Derleme’ sekmesini seçmelisiniz ve ardından ‘Start to Compile / Derlemeye Başla’ düğmesine tıklayabilirsiniz.
  • Ardından, dikkatinizi “Deploy” düğmesine tıklamanız gereken “Run” sekmesine kaydırmanız gerekir.
  • Bir sonraki adımda, kullanıcılar hala ‘Run’ sekmesindedir ve ‘Solidity Test at 0x’ seçeneğini seçmek için açılır menüyü açmanız gerekir.
  • Son olarak, kullanıcılar Solidity dilinde yazılan kodun çıktısını görüntülemek için getResult düğmesine tıklayabilir.

Bir kod yazmanın ve Solidity‘de derlemenin tüm adımlarını tamamladıktan sonra aşağıdaki çıktıyı bulacaksınız.

Yorumların Önemi

Herhangi bir solidity eğitiminde yorumların önemi tartışılmazdır ve Solidity, C tipi ve C++ tipi yorumlar için derin destek sunar. Bu nedenle, ‘/‘ ve ‘/’ karakterleri arasındaki herhangi bir metin türü, birden çok satıra yayılabilen bir yorum olarak adlandırılır. Ayrıca, ‘//’ ile satır sonu arasında bulunan herhangi bir metin türü yorum olarak adlandırılır ve en önemlisi Solidity derleyicisi metni yok sayar. İşte yorumların ideal kullanımını özetleyebilecek bir örnek.

function getResult() public view returns(uint){

   // This is a comment. It is similar to comments in C++

   /*

      * This is a multi-line comment in solidity

      * It is very similar to comments in C Programming

   */

uint a = 1;

uint b = 2;

uint result = a + b;

   return result;

}

Solidity’de Değişken Tipleri

Şüphesiz değişkenler herhangi bir programlama dilinde program yazmak için önemli bir gerekliliktir. Bu nedenle, farklı bilgileri depolamaya nasıl yardımcı olabileceklerini anlamak için bir Solidity eğitimindeki değişkenlere de ihtiyacınız olacaktır. Değişkenlerin yalnızca değerleri depolamak için ayrılmış bellek konumları olduğunu gözlemlemek önemlidir. Bu nedenle, bir değişken yaratarak doğal olarak bellekte belirli bir miktar alan ayırabilirsiniz.

Solidity‘de gereken değişkenlerin çok çeşitli olması, karışıklık olmamasına rağmen ‘Solidity öğrenmesi kolay mı?‘ gibi şüpheler yaratabilir. Floating-point, double floating-point, wide character, Boolean, integers ve diğerleri gibi farklı veri türleriyle ilgili bilgileri depolayabilir. İşletim sistemi, değişkenin veri türüne göre ayrılmış bellekte depolanacak varlıkların bellek tahsisini ve seçimini sağlar.

Değer Türleri

Solidity blockchain programlama diliyle ilgili herhangi bir öğreticiye ayrıntılı bir genel bakış, farklı veri türleri bulmanıza yardımcı olacaktır. Solidity, yerleşik ve kullanıcı tanımlı veri türlerinin müthiş bir çeşitliliğini sağlar. Solidity dilinde bulabileceğiniz önemli veri türleri,

  • Boolean
  • İşaretli ve işaretsiz tam sayılar
  • 8 bitten 256 bite işaretli tam sayı
  • 8 bitten 256 bite kadar işaretsiz tam sayı
  • Boyutları değişen işaretli ve işaretsiz sabit noktalı sayılar
  • İşaretli sabit noktalı sayı, sabitMxN ile temsil edilir, M, türe göre hesaplanan bit sayısını temsil eder ve N ondalık noktaları temsil eder. M, 8’den 256’ya kadar 8’e bölünebilir olmalıdır. Öte yandan, N, 0’dan 80’e kadar değişebilir. Sabit değeri, sabit128x18’e benzer.
  • İşaretsiz sabit noktalı sayı, ufixedMxN ile temsil edilir ve M ve N yukarıdakiyle aynı şeyi temsil eder. ufixed değeri de ufixed128x18 ile benzer kalır.

Address

Solidity eğitimindeki ‘address‘ öğesi, Ethereum adresinin boyutunu temsil eden 20 baytlık değeri ifade eder. Bir adres, temel olarak “.balance” yöntemini kullanarak bakiyenin alınmasına yardımcı olabilir. Yöntem, “.transfer” yöntemiyle bakiyenin başka adreslere aktarılmasına yardımcı olabilir. Solidity‘de adresin kullanımına bir örnek.

address x = 0x212;

address myAddress = this;

if (x.balance< 10 &&myAddress.balance>= 10) x.transfer(10);

Solidity’deki Değişkenleri Anlamak

Değişkenlerin algılanması da solidity dilini öğrenmek için önemli gereksinimlerden biridir. Solidity‘de durum değişkenleri, yerel değişkenler ve global değişkenler gibi üç değişken türü için destek bulabilirsiniz. Durum değişkenleri, değerleri sözleşmeli depolamada kalıcı olarak depolanan değişkenlerdir. Yerel değişkenler, bir işlevin yürütülmesi sırasında değerleri mevcut olan değişkenlerdir.

Öte yandan, küresel değişkenler, küresel ad alanında bulunan ve blok zinciri ile ilgili bilgilerin elde edilmesine yardımcı olan özel değişkenlerdir. Statik olarak yazılan bir dil olarak Solidity‘nin bildirim sırasında durum veya yerel değişken türü için bir belirtim gerektirdiğini doğrulamak önemlidir. Bildirilen tüm değişkenler, herhangi bir “boş” veya “tanımsız” kavramı olmaksızın türüne göre varsayılan bir değerle ilişkilendirilir. Solidity‘deki değişken türleri üzerinde biraz daha düşünelim.

Durum değişkeni

Değerlerin kalıcı olarak depolandığı durum değişkenlerini sözleşme deposunda bulabilirsiniz. Bir durum değişkeni örneği, aşağıdaki örnekte açıkça görülmektedir,

pragma solidity ^0.5.0;

contract SolidityTest {

uintstoredData;      // State variable

constructor() public {

storedData = 10;   // Using State variable

   }

}

Yerel Değişken

Yerel değişkenlerin değerine yalnızca onu tanımlamak için kullanılmış olan işlev içinde erişilebilir. Aşağıdaki örnekte olduğu gibi, fonksiyon parametrelerinin ilgili fonksiyon için doğası gereği yerel olduğuna dikkat etmek de önemlidir.

pragma solidity ^0.5.0;

contract SolidityTest {

uintstoredData; // State variable

constructor() public {

storedData = 10;   

   }

   function getResult() public view returns(uint){

uint a = 1; // local variable

uint b = 2;

uint result = a + b;

      return result; //access the local variable

   }

}

Genel Değişkenler
Konu bir solidity öğreticisi olduğunda, global değişkenler oldukça benzersizdir. Blok zinciri ve ilgili işlem özellikleri hakkında bilgi edinmek için idealdirler. İşte Solidity‘deki global değişkenlerin işlevleriyle birlikte bir taslağı.

  • blockhash(uintblockNumber) döndürür (bytes32): İlgili bloğun karmasını temsil eder ve mevcut blokları yok sayarken yalnızca en son 256 blok için çalışır.
  • block.coinbase (address payable): Mevcut blok madencisinin adresini gösterir.
  • block.difficulty (uint): Bir bloğun zorluğunu belirtir.
  • block.gaslimit (uint): Mevcut bloğun gaslimitini gösterir.
  • blok.numarası (uint): Mevcut blok numarasını gösterir.
  • blok.timestamp (uint): Unix döneminden bu yana geçen saniye cinsinden geçerli bloğun zaman damgasını görüntüler.
  • msg.sig (bytes4): İşlev tanımlayıcısının veya çağrı verilerinin ilk dört baytını bulabilir.
  • msg.data (bayt çağrı verisi): Çağrı verisinin tamamını gösterir.
  • now (uint): Mevcut blok zaman damgasının bilgilerini bulabilirsiniz.

Değişken Adı Kuralları

Bir solidity eğitiminde değişkenleri adlandırmak için ideal uygulamaları da aramalısınız. Solidity programlama dilinde değişkenleri adlandırırken aşağıdaki kurallara tam olarak uymak önemlidir.

Solidity‘de değişkenleri adlandırmanın en önemli koşulu, isme rakamlarla başlayamamaktır. Bu nedenle, Solidity‘de değişken adını başlatmak için 0 ile 9 arasında herhangi bir sayı kullanamazsınız. Değişken adını bir harf veya alt çizgi karakteri ile başlatmak zorunludur. Bu nedenle, 023degisken geçerli bir değişken adı değilken Degisken023 veya _023Degisken geçerli seçimlerdir.

Değişkenleri adlandırmak için solidity en iyi uygulamaları, solidity değişken adlarının büyük/küçük harf duyarlılığına da işaret eder. Örneğin, özgürlük ve Özgürlük iki farklı değişken olarak kabul edilir.
Uygun değişken adı oluşturmadaki bir sonraki en önemli uygulama, ayrılmış anahtar kelimeler kullanmaktan uzak durmaktır. Boolean veya break değişken adları gibi ayrılmış anahtar sözcükler, Solidity değişken adları için uygun değildir.

Solidity uygulamalarına başlamak için değişkenlerin kullanımını anlamanın son yönü değişken kapsamdır. Değişken kapsamı, yerel değişkenler ve durum değişkenleri için farklılık gösterdiğinden, solidity eğitiminde önemlidir. Yerel değişkenler yalnızca tanımlandıkları işlevle sınırlıdır.

Öte yandan, bir solidity eğitimindeki durum değişkenleri, genel, özel ve dahili kapsamı ifade eder. Genel durum değişkenlerine dahili olarak ve mesajlar yoluyla erişmek mümkündür. Özel durum değişkenleri, yalnızca mevcut sözleşmeden dahili olarak erişime açıktır. Dahili durum değişkenleri, yalnızca mevcut sözleşme aracılığıyla dahili erişime izin verir.

Genel Solidity Kullanım Örneklerini Anlama

Ethereum blok zincirinde akıllı sözleşmeler geliştirmek söz konusu olduğunda, sağlamlık şüphesiz tercih edilen alternatiftir. Basit programlama dili, kullanıcıların farklı kullanım durumları için Ethereum blok zincirinde akıllı sözleşmelerini oluşturmasına ve dağıtmasına izin verebilir. Solidity ile geliştirilen akıllı sözleşmeler, işlemlere dahil olan her tarafın eylemlerinden sorumlu tutulduğu daha hızlı ve şeffaf işlemlerle farklı platformlarda devrim yaratma potansiyeline sahiptir. Farklı sektörler için akıllı sözleşmeler geliştirmek için Solidity‘nin en iyi kullanım örneklerine bir göz atalım.

Bankacılık ve Finansal Hizmetler

Solidity, bankacılık işlemlerinin hızını artırabilecek akıllı sözleşmeler oluşturmak için yararlı bir araç olarak hizmet edebilir. Solidity‘nin bankacılık ve finansal hizmetler sektörü için kullanım örneklerini herhangi bir solidity eğitiminde kolayca bulabilirsiniz. Kullanıcılar, işlemin şeffaflığını korurken, solidity akıllı sözleşmelerinin finansal işlemlerde hata olasılığını azaltmasını sağlayabilir. Ayrıca, Solidity‘ye dayalı akıllı sözleşmeler, ipotekler, sigorta talepleri, sınır ötesi ödemeler, ulusal tahviller ve diğer bankacılık hizmetleri için farklı amaçlara hizmet edebilir.

Yükseltilebilir Sözleşmeler

Solidity‘yi öğrendiğinizde karşılaşacağınız en dikkat çekici kullanım örneklerinden biri, yükseltilebilir sözleşmeler oluşturma olanağıdır. Solidity, akıllı sözleşmelerin diğer sözleşmelerle etkileşime girmesini sağlamak için birçok yaklaşım sunar. Blok zinciri değişmez olduğu için, akıllı bir operasyonel sözleşmenin kodunu başladıktan sonra değiştirmek neredeyse imkansızdır. Ancak, gerçek iş mantığını içeren başka bir sözleşmeye işaret edilerek tasarlanmış bir proxy ile desteklenen çağrıları atama yönteminin kullanılması, bir sözleşmenin işlevlerinin iyileştirilmesine yardımcı olabilir. Proxy sözleşmesine farklı hedef adresleri sağlamaya yardımcı olabilir.

Ticaret Finansı

Solidity, ticaret finansmanı alanına hitap edecek akıllı sözleşmeler tasarlamak için de hayati bir araçtır. Genel olarak, ticaret finansmanında bir Kredi Mektubu verme süreci, önemli koordinasyon ve evrak işlerine olan ihtiyacı vurgular. Bu gibi durumlarda, fiziksel dokümantasyon yükü, gönderilerin alınmasında gecikmelere neden olabilir. Bu nedenle, Solidity tabanlı akıllı sözleşmeler, işlemlerin daha hızlı yürütülmesini sağlarken risklerin azaltılmasına yardımcı olabilir. Aynı zamanda, sınırlı manuel müdahale, daha iyi süreç verimliliği olasılıklarını da önceden belirleyebilir.

Veri Depolama

Bir Solidity eğitimindeki kullanım örnekleri arasında bir sonraki önemli söz, veri depoları olarak hizmet edebilecek akıllı sözleşmelerin oluşturulmasına atıfta bulunur. Solidity, çeşitli akıllı sözleşmelerde mantık ve verileri ayırmada yardımcı olabilir. İkame sözleşmelerin bir sözleşmenin mantığını geliştirmeye veya değiştirmeye yardımcı olabileceğini belirtmek önemlidir. Daha sonra, ikame sözleşmeler, ilgili sözleşmedeki verilerle ilgili tüm koşulları da muhafaza eder. Bu nedenle, Solidity, akıllı bir temel sözleşme kullanarak kullanıcıların arama yapmasına ve sözleşme oluşturmasına yardımcı olabilir.

Dijital Kimlik

Dijital kimlik, Solidity kullanım durumları için her zaman birinci öncelik olmaya devam edecektir. Solidity ile tasarlanan akıllı sözleşmeler, veri tekeli ve kimlik hırsızlığı sorunlarını çözebilir. Artan kimlik hırsızlığı vakaları ve ilgili kayıplar, güvenli kimlik yönetimi çözümleri gerektiriyor. Solidity diline dayalı akıllı sözleşmeler, bu tür endişelerin çözülmesine yardımcı olabilir ve ayrıca kimlik bilgilerinin güvenli bir şekilde saklanmasına izin verebilir. Sonuç olarak, kişisel bilgilerinizin güvenliğini sağlarken, dijital kimliğinizle tüm hizmetlere sorunsuz erişimin keyfini çıkarabilirsiniz.

Solidity Eğitimi: Sonuç Bağlamı

Son bir not olarak, Solidity programlama dilinin esnek ve anlaşılması kolay bir dil olduğu oldukça açıktır. Akıllı sözleşmeler geliştirmeye yardımcı olabilir ve akıllı sözleşme oluşturmak için temel Solidity sözdizimi de aynı şeyi kanıtlar. Bir Solidity öğreticisiyle başlamak için Solidity’nin temelleri üzerine ayrıntılı bir düşünce önemlidir.

Öncelikle Ethereum’u hedefleyen blok zinciri geliştirme için tercih edilen programlama dili olan Solidity, kapsamlı basitlik sunar. C, C++ ve JavaScript’ten ilham alan öğrenciler, Solidity diline alışma konusunda sınırlı zorluklarla karşılaşacaklar.

Blockchain ​​Developer Olmak
Blockchain ​​Developer Olmak

Solidity ve işlevleriyle ilgili literatür oldukça geniştir. Hemen şimdi ustalaşmak için Solidity dünyasını daha ayrıntılı olarak keşfedin.

Akıllı sözleşme geliştirme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeirğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacğaım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

Hasan YILDIZ, Girişimci. Doktora Öğrencisi. Yazmayan YAZILIMCI. Veri Şeysi. Eğitmen...

Yazarın Profili
İlginizi Çekebilir
Solidity Summit 2022

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir