Solidity 101 in Turkish: Updraft Study Session, Part 1
Cyfrin Updraft Solidity 101 Study Sessions — Turkish · 2:24:21
Learn the first steps of Solidity in a Turkish live study session with Selçuk Koyuncu, hosted with Elif Hilal Kara. Follow along in Remix as the session introduces compiler versions, contract structure, variable types, visibility, getter and setter functions, arrays and structs, with deployment and contract interaction. The extended workshop includes learner questions and coding examples. Basic programming and Ethereum familiarity are helpful.
Speakers
Topics
From Cyfrin Updraft Solidity 101 Study Sessions — Turkish, hosted by Cyfrin.
Transcript
[Müzik] [Müzik] [Müzik] Müzik çok güzeldi yalnız he. Giriş müziği çok beğendim. Merhabalar. Merhabalar arkadaşlar. Hepinize iyi akşamlar diliyorum. Sizi görmek çok güzel. Hemen duyuruları geçin. Deyin ki böyle böyle dünyanın en iyi solidisi Türkçe eğitimine geldik diyorsunuz.
Sabırsızlıkla bekliyoruz sizleri. Muhteşem. Selam. Baha, Durak, Atasoy. Eee, Hasan selam. Çok güzel sizleri görmek. Hasan'ı tanıyorum Hasan Bim. Eğitimlerin hepsi gelirdi. Cansın Hasan teşekkür ediyorum. Seni burada görmek çok güzel. Şimdi hepinizden dediğim gibi bir merhaba alaşalım. Ahmet merhaba. Salih merhaba. Oo, çok tanıdık isimler görüyorum bu arada gerçekten. Birazdan birazdan başlayacağız böyle ama önce duyuruları yapıyorsunuz. Diyorsunuz ki dünyanın bakın göreceğim göreceğim hemen atıyorsunuz. Dünyanın diyorsunuz en iyi diyorsunuz. Solidite eğitimine geliyoruz diyorsunuz. Hazır mısınız? Yazın Türkçe. Tabii orayı unutmayın. Yani sonuçta hani Patrick varken İngilizcesinde hani değil mi Selçuk?
O yüzden ona şey yapamayız. Eee, şimdi bakalım hemen ben de canlı yayın linkini arkadaşlarımla paylaşayım. Gruplarla paylaşırız arkadaşlar. Şimdi yabancı arkadaşlar da var ama bu Türkçe olacak yani. İnsanlar hani neden geldiler acaba? Çok enteresan. Sen bunları nerede görüyorsun Elif? Ben göremiyorum gelenleri. Sen ben şöyle yorumları okuyorum ben. Ha yorumları okuyorsun. Tamam yorumlardan. Hı hı. Aynen. Yoksa başka bir yere bakmıyorum. Şey şimdi kanallarımızı atıyoruz başlıyoruz diyoruz. Sizler de diyorsunuz. Hasan göreyim neredesiniz?
Hani hiç kimsenin şeyini görmüyorum yorumunu. Başlıyoruz. Hadi bakalım. Sabırsık bekliyorum sizleri. Bakayım hani Hasan bakayım. Serhan merhaba Serkan. Yazılım geçmişiniz olması gerekiyor mu bu eğitim için? Eee yazılım geçmişiniz olması aşırı işinize yarar. Olması gerekmiyor. Bizim bütün eğitimlerimiz halka açık, ücretsiz ve %100 %100 kaliteli olmasını sağlamaya çalışıyoruz. Ama yine de it's gonna be a Turkishion mem. E bu nedenle bilemiyorum. İnşallah güzel olur hepiniz için. Arkadaşlar diyorsunuz ki dünyanın diyorsunuz en iyi Türkçe Solidity yayını başladı. Nerede kaldınız diyorsunuz. Tam 10 geçe başlayalım
arkadaşlar. Bir 5 dakika muhabbet sohbet goy goy her zamankiz. Sonrasında hop çok güzel başlıyoruz. Göreyim yayınlarınızı, yorumlarınızı. Oo hani bakıyorum bir yandan. Dur bakayım linklerine falan. Bakayım da bakalım kimler kimler bizleri takip ediyorlar da bakıyorum. Eee Selçuk da zavallım ya. Benim yanımda çok resmi kalıyor. Cansın. Hani bakayım göreyim bakayım. Başladınız mı atmalara böyle duyurulara vesaire. Sabırsıkı bekliyorum sizleri canım arkadaşlarım. Merhaba Nisa. Hani hani yorumlarınızı göreyim bakayım başladık diyor musunuz?
Bakayım biraz göreyim ondan sonra. Yani öyle değil mi Selçuk? Kesinlikle. Şimdi buradaki standart prosedür şu herhalde değil mi? 10 dakika biz bir şey yapacağız. Konuşacağız kendi aramızda. Sonra mı başlıyoruz? Öyle değil mi? Bu işin ilgili yani öyle yapalım diyorum ben. Çünkü birbirimizi tan ya biz birbirimizi tanıyoruz ama arkadaşlar birbirlerini tanımıyor olabiliyorlar. O yüzden tamam o zaman ben soru sorarak başlayayım sana. Arkadaki kitaplar gerçek mi yoksa böyle şey mi mı? Gerçek mi? Gerçek. Bunların hepsi gerçek. Hatta şöyle yapabiliyor muyum acaba? Hani bunu nasıl gerçek? Sen evi almamışsın.
Kitaplığı almışsın. Kitaplığın üzerine evi kurmuşsun. Yani öyle görünüyor. Bunlar benim çeyizim be. Çok övüyorum arkadaşlar. Bakın bunlar gerçek. Gözüküyor mu? Bakın bunlar gerçek tamamen. Tamam. Çok havalı. Aynen. Evet. Kitaplarım gerçekti. Hiçbir YouTube videolarımı izlemiyor musun sen? Benim orada bahsediyorum bundan. Allah Allah. Ya ben bir daha öne çıkartayım dedim yani. Şey yapalım dedim. Yapmasın yapmasın. Aynen. Kitaplar. Evet. Kitap okuyun. Evet. Sosyal mesajı da verdin Elif. Teşekkür ederim. Kitap değil ne? Tweet değil. Kitap okuyun arkadaşlar.
Ama tabii ki eğitimlerimiz hakkında tweet yazarsanız çok seviniriz. O ayrı. Hemen bir yorumları okuyorum. Ondan sonra yavaş yavaş başlayacağız. Nisa merhaba demiştik. Giray Altu Korkmaz. Oo Giraycığım hoş geldin. İstanbul'daki eğitimler de sabırsızlıkla bekliyorum seni görmeyi. Gamze Yılman, merhaba Elifciğim. Merhaba Gamzeciğim canımsın. Ece Soysal merhabalar Ece hanımcığım. Burak Burak evet Twitter'a bekliyorum. Burak senin tweetin nerede? Hani ya eğitim başlıyor. Solidity eğitimi kaçırmayın falan nerede? Ayıp yani ya. Murat Selim. Murat Selim ismini göremeyeceğim sandım senin var ya. Az önce baktım ama. Teşekkürler.
Teşekkürler. İyi ki katıldın aramıza. Selamlar Yasin. Sizleri görmek çok güzel. Göremiyor olsak da buradayız ya böyle çok güzel hissediyoruz beraber. Çok teşekkürler katıldığınız için. Çok güzel olacağını düşünüyorum ben. Selçuk'un eğitmenliğine, öğretmenliğine bayılıyorum ben. Çünkü eee kendisiyle bilen arkadaşlarım bilir geçmiş yayınlerden. TOGda benim birlikte çalıştığım bir arkadaşımdı. Yani hani masa arkadaşımdı gerçekten kendisi. Sonra blockchain'de de arkadaşım oldu yani. E bizim sektöre de aldık onu bir şekilde. Hani bu anlamda da bayağı güzel işler çıkarıyor. Orada şöyle bir şey var Elif ya ben şöyle bir tespitim var.
Bundan 5 sene sonra her şey blockchain'e döneceği için hepimiz zaten aşağı yukarı orada olmak zorunda olacağımız için buradaki yaniış dışarıdaki özellikle fintech alanında çalışanlar işte eee Web2 alanındaki katingage teknolojiyle uğraşanlar illaki buna girmek zorunda olacağı için ben seninle birlikte olmakla beraber standalon olarak da kendimi bu tarafa doğru shift ettim, kaydırdım. Eee çünkü buna inanıyorum 5 sene sonra her şey blockchain'e doğru geçmeye başlayacak. Bunun yapay zeka tarafı da var. Bu bir. İkincisi, Fintech'in bu kadar hızlı yükselişi de var. paranın hızlı akışı da var. Bunları da göz önünde bulundurduğunuzda. Ondan sonra bu serverless trustless ortamlar eee daha da yaygınlaşacak. Sadece finans değil aynı zamanda DP'larda vesaire vesaire
bunların hepsi geldiği zaman hepimiz orada bulacağız kendimizi. Aynı bu yapay zekanın shift etmesi gibi, bu distraf etmesi gibi blockchain'de eee özellikle ödeme fintech sistemlerinde disap ediyor. Her şeyi distrap edecek 5 sene sonra. Zaten ben de orada olacağım. Çok güzel. Eminim ben de sabırsızga bekliyorum seni. Bu sektörde tane Hı hı. Bir soru var. Demiş ki, "Hocam, TOG'ta neler yaptınız? Ne yapıyorsunuz?" Bu TOG'la alakalı bir yayın değil bu arada. Onu ben söylemek istiyorum. Bu Selçuk Pris olarak bilgisayar mühendisim ben. Eee, bununla daha alakalı bir şey. Yoksa Tog'da yaptığım şeyle bir bütünleşen tarafı yok. Şu anlatacağım şeylerin.
Solid eğitimin, özellikle teknik eğitimin. Aynen. Evet. Onun da altını çizmiş olalım ama zaten bir şey olursa Selçuk ben senin avukatlığını yaparım. Sen rahat ol. Harika. Bana sen bakacaksın o zaman. Tamam. Kilamı sen dersin. Harika ya. Evet arkadaşlar başka ben geri bir açacağım. Bir saniye. Biraz sıcak burası. Arka faydayla açayım da biraz. Gel. Koş. Ben duyuyorum. Siz devam edin. Ha tamam.
Pardon. Biz de harbiden seni bekliyoruz şu an arkadaşlar. 9 geçiyor. Thought it was English. No, it is not. Actually, if you wanna see all educations, you can definitely subscribe Luma page. Arkadaşlar bütün eğitimlerimizi görmek için şuradan bak takip edebilirsiniz. Türkçe, İngilizce, İngilizce yok galiba şu an ya. Türkçe, e, Hintçe, e, Arapça, sonra İspanyolca var. Aynen. Bunlar var şu an galiba.
Hatta şunun duyurusuna geçiyorum hemen sizlere. 24 Nisan'da sizlerle birlikte yüz yüze İstanbul'da muhteşem bir eğitimimiz var, workshop'ımız var arkadaşlar. Ii eee, ortaklığında yaptığımız bir etkinliğimiz. Hemen bunu sizlerle paylaşıyorum. Portekizce gördüm. Yeni Portekizce var mıydı ya? yoktu galiba. Eee, o yüzden bunlara bir bakın. Buna gelmenizi çok isterim. Bu arada çok yakın zamanda duyuracağım başka bir Türkçe eğitim, Türkçe yüz yüze eğitim de var arkadaşlar 10 Mayıs'ta. Onu da şurada duyuralım. Hemen şuraya yazıyorum. Tamam mı? 10 Mayıs. 10 Mayıs Türkçe. Ankara.
Ankara'da. Aynen. 24 Nisan İstanbul'da 10 Mayıs Ankara'da birlikte olacağız inşallah sizlerle değerli arkadaşlarım. Sabırsık bekliyorum. E blockchain security olacak mı? Zaten bu olayın amacı o yani. Serkan o amaç burada sıfır. Serkan sen bizim Serkan mısın acaba? Senin Selçuk senin Serkan mı acaba bu? Türk bilmiyorum olabilir. Ha tamam Serkan hangi Serkansın acaba? Yok bizim Serkan bu kadar teknik soru sormaz. Tamam. Eee şöyle. Aynen şöyle arkadaşlar ne olacağını söyleyeyim size. Bu eğitimin genel konseptinden bahsedelim. Sonra derslere başlayalım.
Genel konsept şu şekilde. Ha tamamen yabancı. Yok ya hiçbirimiz yabancı değiliz. Hoş geldin aramıza. Olay şu Serkan senin özelinde anlatayım. Şimdi olayımız şu bizim. Şimdi sıfırdan security'ye giremiyoruz. Tamam mı? İşin siber güvenlik tarafına giremiyoruz. Sıfırdan girdiğimiz zaman insanlarda şey oluşuyor. Ya iyi de bu ne? İşte bu nerede yazılmış? Fondrim mi burada? Burada ne kullanılmış? İşte remix mi kullandınız? Yok hard head kullandık bilmem ne kullandık vesaire vesaire. Dolayısıyla insanlar önce bir temelini bilmeli. Security kısmına gelebilmemiz için temeli çok sağlam atmamız gerekiyor. O yüzden sıfırdan bir temel atacağız sizlerle. Solidity babında bir temel atacağız. Sonra foundarry, sonra Advance Foundary, sonrasında da audit yani security tarafına geçip birlikte
canlı kod analizleri böyle mesela hani eee hacklere geçeceğiz yani size beni en çok heyecanlandıran şey gerçekten sizle canlı testler yapıp karşılığında neler olacağını birlikte görecek oluyor olmamız ve hani e Webchur güvenlik tarafına bakın arkadaşlar abartısız söylüyorum 6 ay kadar bu eğitimleri takip edin online bir şekilde. Bakın YouTube'da herkes açık zaten ücretsiz yani herkes biliyor. Bunları takip edin. security alanında kendinizi aşırı geliştireceğinizi ben size zaten garanti ediyorum yani. Çünkü vereceğimiz eğitimin kalitesini de biliyorum. Hani inanıyorum da yani buna. Sorularınız olacaktır. Lütfen sorun hepiniz. Eee lütfen eee pür dikkat dinleyin.
İstediğiniz soruyu sormakta, istediğiniz şeyleri yapmakta özgürsünüz burada. Eee ondan sonra başka ne soracak? Bir şey soracağım. Bir yani bu security alanında hack olanına falan gireceğiz diyorsun ya. Bizi zengin mi edeceksin Elif? Nerelere hackleyeceğiz? Pardon öyle var mı plan? Yok mu? Hayır ama Web3 Security alanında kendini geliştirmek isteyen arkadaşlarım varsa hani Web3 Security Researcher Engineer, Web3 Security Developer Maybe I don't know bu tarz şeyler varsa eee böyle bir isteğiniz varsa ya da işin bu alana girecekseniz arkadaşlar mutlaka takip edin. Yani çok seviniriz. Biz bizim sevmemiz ötesinde hani sizin için çok farklı bir iş imkanı olur arkadaşlar. Yani öyle bir şey de var. Bu eğitim ne kadar sürecek? yaklaşık olarak
68 belki 9 ay kadar sürecek. Yani hani şu an ilk yayındayız arkadaşlar. Bütün konuları şu anda bir analiz edelim, konuşalım. Herkesin eee remix kullanmayı, hardset kullanmayı, foundry kullanmayı bildiği, bileceği ve herkesin çok rahat bir şekilde karşılaştığı kodları okuyabileceği ve bu kodları okuyup da ha burada şöyle bir eksiklik var ya da şöyle medium ya da high oranında ya da çok düşük low oranında eee siber güvenlik açıkları olduğunu bugabilecekleri, bug bounty programlarına katılabilecekleri Codhwes'ta mesela onu da atalım sizlere.
Cod housea yarışmacı olabilecekleri burada kendi şey burası freelance siber güvenlik çalışma platformu gibi düşünebilirsiniz arkadaşlar burayı tamam mı? Burayı mutlaka bakın orada audit yapabiliyorsunuz. Eee kendinizi burada geliştirdiğinizi burada kanıtlayabiliyorsunuz arkadaşlar. Onu söyleyebilirim sizlere. Eee 6 ay en az 6 ay bu arada 6 ay demiyorum ya. En az 6 ay hani belki de 9 ay sürer ya da bir yıl da sürebilir bilemiyorum. Eee her iki haftada bir devam etmesini planlıyoruz. İlki bugün ne? Bugün pazar günü ama bundan sonrakileri cuma günü akşam saat 8 ile akşam 10 arasında yapmayı düşünüyoruz. Haberiniz olsun.
Daha sonrasında mükemmel 10 Mayıs'ta oradayım. Huhu harika. Sabırsızlıkla bekliyorum Burak sana kahveler benden. Hocam dersler YouTube'da herkese açık. Neden verdiğiniz siteye üye olduk? Sertifika içilmesi. Hayır Baha verdiğim siteye şöyle ben site mi verdim? Öncelikle bu birinci soru. Baha ikinci soru. Ha şey Updraft'tan mı bahsediyorsun? Updata arkadaşlar şöyle bir şey var. Upd'ı da anlatacağım birazdan sizlere ama tabii Selçuk bunlardan çok daha fazla bahseder sizlere. Hı hı hı hı hı hı. Şurada bir kopyala. Şunu bir buraya atayım şimdi.
Buraya bir profil açın hemen. Luma'dan mı bahs linkin'den bahsediyor sanırım kayıt olmak için. Neden bahsetti acaba Baha? Baha neden bahsetti? Galiba perşembe günkü seminere kayıttan bahsediyor ya. Olabilir mi acaba? Hani bir şey var ya bir siteye register oluyoruz ya. Aynen. Luma mı? Luma sayfası mı? LUMA'dan bahsediyor. G L şey etkinlik kayıt sayfası. Orada sayı alıyorum ben. Hani şey alıyorum mesela. Tabii tabii. O yüz yüze etkinlik. Çünkü ben ona göre çay, kahve, bilmem ne siparişi vereceğim. Ona göre hediye getireceğim belki yani. Bak sen an.
Şapka, tişört falan mı getireceksin? Anladım. Ben bile anladım yani. Ben anladıysam şapka tişört getiremem ya. Ya bu arada çok yoğunum. Her şeye zaman ayıramıyorum ya. Evet gerçekten. Ama bir şeyler ayarlamaya çalışacağım yine bakalım. Eee başka şöyle ben matematik öğretmenliğinden siber güvenliği geçmeye çalışan biriyim. Serkan aramıza iş görüşme başladım. Çok güzel olacak senin için Serkan sen muhteşemsin. Diğer arkadaşlarım gibi onlar da muhteşem çünkü. Ankara etkinliği 10 Mayıs'ta tekrar ediyorum Ankara etkinliğini dört gözle bekliyorsun. Ben de öyle sabırsızlıkla bekliyorum. sana gerçekten bunu nasıl anlatabilirim bilmiyorum. Çünkü Ankara eğitimi yani Türkiye'de yaşadığım zamanlarda Ankara'da yaşadığım için Ankara benim canım, milletim, vatanım yani toprağım öyle bir yer. O yüzden ev
Ankara'nın bu şeyi değerleri tartışılamaz tabii. Ulvi değerleri tartışılamaz ama Ankara çok sıkıcı Elif. Gerçekten çok sıkıcı ya. Ne yapıyorsunla tartışmayacağım asla tartışmayacağım. Ankara İstanbul'da oturuyorum ama Ankara gerçekten güzel bir yer. Tamam harika ama biraz ya ne yapıyorsunuz? Ankaralılar Ankara'yı niye bu kadar çok seviyor hala anlayamadım. Çünkü daha da bana katılıyor. Yani birbirimizi seviyoruz Ankara'da. Eğitimlerimizi, etkinliklerimiz arka arkaya öyle ama çünkü insanlar birbirlerini görüyorlar. Vakit geçirebiliyoruz. Sevdiğimiz arkadaşlarla bir araya gelebiliyoruz. Ayrıca trafiğimiz yok. Ayrıca Mogan Gölümüz var. Tamam mı? Gölbaşınd bize de İstanbul Boğazı falan var işte bir şey. Diyorsun ki
Mogan İstanbul Boğazı. Hasan yürü be kardeşim. Neyse, anladınız siz arkadaşlar. Ankara'nın içeriği ve İstanbul'un içeriği %100 farklı. Eee, eğitmenler de farklı. Hatta ortaklaştığımız şirketler de farklı. İstanbul'daki IVA ile birlikte Ernst Young ki dünyanın en büyük Big F denilen danışmanlık şirketlerinden biri. Onunla birlikte yürüteceğiz. Ankara'dakini ise yine yine Big Ford'dan KPMG ile birlikte yürüteceğiz. Çok saçma oldu böyle rekabet içeriği oldu ama neyse. Eee, İstanbul'daki gibi workshop teknik olacak. İkisi de beşer saatlik bir eğitim olacak arkadaşlar. ve hepinizin bilgisayar getirmesi gereken teknik eğitimler olacak. Eee, yani gelirsizce zaten insanlar birbirlerini tanıyorlar.
Hani böyle çok güzel muhabbetler edebiliyoruz vesaire. O yüzden mutlaka gelmenizi tavsiye ederim. Eğitmenlerle tanışmanız için, fırsatlar oluşturmanız için. Bir de biliyorsunuz ki zaten bizim bir Telegram kanalımız da var. Orada da eee hemen atayım size. Orada da o kanalda da bütün eğitimleri, iş başvurularını, şunları bunları görebilirsiniz. Ayrıca hani birbirimize ne zaman ihtiyacımız olduğunda işte iş ihtiyacımız, staj ihtiyacımız, bilmem ne vesaire hep burada birbirimizi tanıyor olmamız aslında çok farklı bir ortam yaratıyor. Anlatabiliyor muyum? Yani bir ekosistem yaratmaya çalışıyoruz aslına bakarsanız. O yüzden böyle etkinliklere gelmeniz bence çok kıymetli. Ankara'da yüz yüze, İstanbul'da yüz yüze ve online olarak bu eğitimleri hiç kaçırmayın derim. Eee, bakıyorum şimdi. Ankara Etkin İçeriği Han'ı konuştuk. İstanbul
candır Gamze öyle olsun. Tamam. E Giray selamlar tüm dostlara. A selam selam. Size de selamlar. Of the Record. Kaçırdığım bir şey olmadı. Eğitimlerden bahsettim sadece. 10 Mayıs'ta Ankara'da zaten haberin var senin. Sana söylemiştim hocam. Eee ve şey 24 Nisan'da yani şurada 4 gün sonra bu arada İstanbul'daki etkinlik. O orada da buluşuyor olacağız. Bence çok konuştuk aslında. Yavaştan başlayabiliriz. Herkes hazır mı? Hazırsanız eğer Selçuk ekranı paylaşalım. Başlayabiliriz. Bütün soru işaretlerinizi durdurun bize. Ben zaten sçu sürekli uyaracağım ve kendim de cevaplayacağım. Burada olacağız. Soru işaretlerinizi e konuşalım. Çünkü bakın tekrar ediyorum. Amaç burada sizin
eninde sonunda security konusunda çok uzmanlaşmanız, webütüch security konusunda uzmanlaşmanız, foundundry öğrenmeniz, solidity konusunda artık böyle soru işaretinizin olmayacağı bir seviyeye gelmeniz ve kendi kendinize bugunten hani eee ek gelirler de elde edebilmenizi sağlamak ve buganti programlarını da gerçekten böyle üst sıralara yükseltebilmek istiyoruz sizleri. Amacımız budur. Haberiniz olsun. Başlayabiliriz. Selçuk selamlar. Ekranımı görebiliyor musunuz bilmiyorum. Evet görebiliyorlar şu an. Tamam. Ben şeyi tercih ediyorum. Preziyi tercih etmeye başladım da son zamanlarda. Eee bunda sunum yapacağım ama sunum biraz daha dinamik olabilir.
Orada bir sıkıntı yok. Bir yerde soru sormak isterseniz hiç çekinmeden soru sorun eee kesebiliriz. Şey yaparız araya girebiliriz. Benim anlatacağım şey smart kontractlarla ilgili. Smart kontract dediğimiz şey nedir? Çok genel konuşacağım. Herkesin anlayabileceği şekilde ifade edeceğim ama sorusu olan olursa da yazsın. Ben soruları okuyamıyorum çünkü ekranda şeyi göremiyorum ama. Elif sen beni durdurursun. Ben seni durdururum. Ondan eminim yani. Durd. Öyle bir durdurursun ki yani. Evet. O şeyi verdim. Sonra 15 dakika ben alıyorum ya mikrofonu. Aynen. Şimdi kontrat eee hikaye içine girmeyiz de şur presentation modu alayım. Bu da yeni öğreniyorum yani przyi de bayağı güzel kullanın bence. Bizim yapacağımız şey aslında bir kontrat yazmak. Kontratı neyle yazarsınız? İşte hukuki çerçevede
bir kontrat yazabilirsiniz. Evet biz bunu bilgisayarda yazacağız kontratı. Aslında temelde aynı şeyleri yapıyorlar. farklı bir şey yok. Bu benim eee benzetmem. Bir kontratta neler olu? İşte genel bir bilgilendirme, hangi mahkemelerde geçerli vesaire vesaire. Anlaşma konu, anlaşmaya konu işte veriler, nesneler işte taşınabilirler, taşınmazlar nedir? İşte evine mi bir kontrat, hisse senedi mi, kira mı, köprü mü neyse kira kontratı olabilir mesela. Aynı zan o şeylerden bir tanesi. Bir de kontrata mevzu şeyin bir de aksiyonu olmak zorunda değil mi? Anlaşmaya konu verilerle ne yapacağız? Yani aksiyonları nedir? Kının zamını nedir? İşte köprüyü yaptığının şartnamesine uymazsan ne olur gibi gibi. Mesela eee bu ihalelere
geçilen kontratlardaki şey bu. Temelde tamamen aynı şeyi yapacağız. Biz de kontrat yazacağız. Ama bu kontratımızı bizim yazdıktan sonra notere gitmeyeceğiz. Burada bir çarpı attım. O çarpı görüyorsunuz. Bunun nedeni notere gitmiyor olduğumuzun bir işareti. Ben yaptım onu. Peki ne yapacağız? Bunu kuracağız. Block zinciri install edeceğiz. Şimdi hemen blok zincire gidiyorum. Evet, kontratı görüyorsanız hemen bir tane bloğun içerisine konulmuş vaziyette. Eee, bunu biraz daha açacağım. Eee, ama daha sonra açmadan önce şunu da söyleyeyim. Bir blok zincir bir kontratı koyduğunuzda bunun bir etkileşiminin olması lazım. Attım ama ne olacak yani insanlar burayla nasıl etkileşecek? Bu kontrata nasıl register
olacaklar? Yani bu kontrata eee, taraf nasıl olabilirler? Kolaylıkla taraf olabilirler. Bunu da internet üzerinde yapacaklar ve kolaylıkla bunu da şöyle ifade ettik. Bir dünya haritası. İşte insanlar laptoplarıyla, cep telefonlarıyla bu kontratta etkileşebiliyorlar. Burada sadece iki renk var. Daha sonra dikkatinizi çeksin. Biri turuncu, biri mavi. Turuncu olmasının nedenini söyleyeceğim. Mavi olmasının nedenini de söyleyeceğim. Birazdan kod yazarken zaten kafanıza gelecek. Niye mavi bu renk? Yani bir şey yazarken pardon turuncu okurken yani view görme işlemini yaparken mavi. Niye bunu yaptık? Onu da gireceğiz.
Evet. Şimdi örnek bir tane basit bir sözleşmeden burada bir örnek var. Buraya sakın takılmayın. Kod yazma yanlarınız olduğunu biliyorum. Sıkıntı değil. Bu zor bir şey de değil. Bu tek başına 20 satırdan oluşan gerçek bir kontrat. Yani dami bir kontrat ama bu kadar yani bu bir kontrat. Burada yaptığımız şey bir işte avcılardaki evimin kira kontratını böyle yazabilirim. Adresini yazıyorum. Şu anki ne kadar? İşte 1.000 L. İşte yıllık zamanın ölü %40. kira artışı yap fonksiyonu var. Bu her senede bir yenilenen bir fonksiyon. Kirayı burada güncelliyor. %40 oranı neyse işte zam oranı neyse güncelliyor. Durum bu. Şimdi bunu birazcık açalım. E biraz hızlı girdim ama geriye doğru da döneceğim merak etmeyin. Genel bilgilendirme olacak
demiştim. Ön kabuller. Şöyle bir geriye geleyim. Hani kontratın tepesini görüyorsunuz. SDX License Identify Rit yazıyor. O ve altındaki e Pragma satırından bahsediyorum. Bu genel bilgilendirme diyor ki benim bu kontratım mevzu olan şey MIT tarafından belirtilen open source açık kaynak kodlu herkesin kullanabileceği restrictionları MIT'nin identifierında belirtilmiş olan MIT tarafından belirtilmiş olan o şartlara uyan bir kontraktır diyor. Yani buraya siz şey de yazabilirsiniz. Kendi şirketinize dair bir şey yazıyorsanız orayı refere de edebilirsiniz. Bu lisans identifyı şudur diye. Buraya kadar bir soru var mı? Çok düz bir şey bu. Bu arada bunu yazdıktan sonra benim bu kontratımın çalışacağı ortam hakkında
bilgi vermem lazım. Diyorum ki şimdi her şeyin bir versiyonu var. Mesela hukuki olarak düşünürseniz 1926 anayasasıyla mı çalışacak, 1972 ile mi çalışacak? 2002 ile mi çalışacak? Hangi eee anayasa başlığı altında çalışacak? Yani farklı farklı şeylerde de çalışabilir, derlenebilir, yorumlanabilir. Bu onunla ilgili bir ek madde gibi düşünebilirsiniz. Pragma Solidity 0826. Bu şunu söylüyor. Diyor ki, "Virtual machine benim üzerimde çalışacağım makine yani bu kontrat üzerinde çalışacağım makine 0.8.26 ve üzeri eee versiyondakilerle uyumludur.
Onun üzerine kurulabilir. Daha doğrusu bu. Onun üzerindeki versiyonları kurulabilir. Ona göre çalıştırılması lazımdır diye bir ön kabul, ön bilgilendirme yapıyorum. Bu aslında bir compiler directive compiler de agı. Bunu biraz daha açacağım. Bu çok yüzeysel bir şey oldu. Buraya kadar bir soru var mı görmüyorum ama devam edeyim. Daha sonra bir kontrata mevzu kontratın ismi olur. Bir geri gelim daha iyi görürüz. Şurada burada görüyorsunuz kontrat yazıyor. Ağcılardaki enin kira kontratı ismi bu. Yani başına sadece kontrat anahtar kelimesini yazıyorsunuz.
sonrasında yazdığımız o beyaz şeyi otomatik kendi tamamlıyor. Peki bu artık kontratın ismi budur. Daha sonra kontrata mevzu bahis ne olabilir? İşte değişkenler kira 1.000 liraymış. Mesela ben burada integer demek tam sayı. Bunun bir tam sayı olduğunu yani şuradaki vereceğim sayının limitini gösteriyor. Tam sayı cinsinden public demek herkesin okuyabileceği, yazabileceği bu erişimle ilgili bunlar biraz detay. Bunlara da gireceğiz. kira değişkeninin 1.000 L olduğunu gösteriyor. Tamam, çok basit. Bir de aksiyon gerekiyor. O da bir fonksiyon.
Yani ne yapacağım ben bu kirayı? Artıracağım. Arttırma fonksiyonu tanımlamışım. Bunların hepsini yaptıktan sonra bu işlemin ismi ne? Şurada şey yaptığımız gibi bir kira kontrat sözleşmesi oluyor. Durumumuz bu. Buraya kadar bir soru var mı? Yok galiba. Sen devam ediyor. Ben soru olduğunda seni bölerim ya. Tamam. Peki ya zaten şey böyle ara ara tartışma şeyleri koyabiliriz. Hı hı. Şimdi ben bunu nerede yazacağım? Şimdi kontratızı aldığınız zaman normalde bir kağıda yazıyorsunuz. Öyle olduğunu varsayıyorum. Bir kağıdı alıyorsunuz.
Kontratınızı yazıyorsunuz işte damgalıyorsunuz mühürlüyorsunuz bilmem ne. Olayınız sizin A4'te Word'te geçiyor değil mi? Ama bizim yaptığımız şey bilgisayar üzerinde olduğu için daha önceki bir slaytta da görmüştünüz. Bir bilgisayar mühendisi ya da bilgisayar başında bir operatör orada kodlama yapıyor ya da az önce benim gösterdiğim şey. Bunu yapacağınız birçok alan var. Ama bunları uçtan uca yapmak için eee biz buna şey diyoruz. ID integrated development environment yani entegre yazılım geliştirme ortamı sunan yerlerde yapıyoruz. Bunu masaüstünde de kurabilirsiniz ya da online Google'da da kurabilirsiniz. Bunu yapacağınız yerler var. Bu size bir ortam sağlıyor. Burada
integrated demesinin nedeni development environment environment demesinin tek bir şey değil. Bunu burada yazabilirsin, test edebilirsin ve e blockchain'e gönderebilirsin. Yani bunu sent edebiliyorsun. Transaction'ı sent edebiliyorsun, gönderebiliyorsun. Bunların hepsini birlikte yapabildiğimiz şeye eee ID diyoruz. Şimdi bu noktada sizden Google'a girip remix ID'yi yazmanızı bekliyorum. Ya bir girelim daha sonra devam edeceğim. Biraz size de zaman vermiş olayım bu şeyle vesileyle. Eee, Selçuk şey aynen ben cevapladım ama yine de sende gör diye ekranda şöyle bir şey yapayım. Soruları paylaşayım. E, integerin neden 256 olduğu ya da neden
olmaması gerektiği bazı durumlarda bunu teknik olarak daha sonra giriş yapacağız. Bugün gireriz diye düşünüyorum ben. Ama sen de öyle düşünüyor musun acaba? Ya şimdi burada şöyle bir şey var. Bu biraz fazla büyük teknik. Şimdi bu Solit 1.0. Niye 256? Şöyle biraz bir açıklama yapayım. Şimdi değişkenlerden bahsetti. Bilgisayarlarda değişkenlere yerler veriliyor. Bu yerlerin boyutları bilgisayarın anlayacağı dilden olması gerekiyor ve hızlı işlem yapacağı dilden olması lazım. Mesela şunu şöyle söyleyeyim. 32 bit işlemcili bir bilgisayarda 32 bit'i çok hızlı bir şekilde proses edebiliyor. Şey, eee, işlemci 64'lük bilgisayarlarda 64 biti çok hızlı proses edilebiliyor. 256 ile uyumluysa işlemci ya da operating system 256 onun bir kelime uzunluğu. Bunu
bölmesi çarpması gerekmiyor. Çok hızlı proses edebiliyor. 256 olmasının iki nedeni var. Birincisi hızlı proses edebiliyor olması. İkincisi limitinin çok büyük olması. Biri teknik neden, diğeri de business nedeni. Business nedeninden kastım da şu. Siz çok büyük rakamlarla uğraştığınız zaman integer 256'nın size yaklaşık 10 üzeri 70. Eee, yani onun yanına 70 tane sıfır koyduğunuzda ya da 78 miydi? 78 0 devasa bir sayıya denk geliyor. Bu sayıya kadar unlimited şekilde paralarla, sayılarla, işlemlerle uğraşabilirsiniz. Yani U int 256 ile siz buradan bir hesaplama yapıp bir roket hesaplamayı yapıyorsanız bu uzaya bir roket kaldıracaksanız bununla ilgili arkadaki matematiksel
hesaplamaları buraya sığdırabilirsiniz. Yani şey yapmaz, sınır geçmezsiniz. Safe, güvenli alanda kalırsınız. Bu birinci nedeni ikinci nedeni de 256 bit'te çalışıyorsa eğer operating sistemi virtual machine'in işlemleri atomik olarak yani tek seferde yapabilmesini sağlıyor. Ama çok detay oldu bu biraz. Şimdi insanlar yavaş yavaş açtı mı bilmiyorum. Onu bir soralım. İnsanlar remix hidrelerini yavaş yavaş açtılar mı? He az önceki şu şeyi göstereyim bir daha. Şuraya Remix IDE yazın. Remix de yazın.
Bir herkesin yaptığından bir emin olalım. Yani burası çok önemli. Remix'in zaten şey hani eee bir tane yeri var ama yine de emin olalım. Hı hı. Aynen. Bu arada ben ekranı paylaşıyor muyum? Ekranı çıkıyor. Evet. Evet. Ben gör. Evet. Evet. Merak etme. Ben sen şey o sayfayı kapattığında ben tekrar onu geri alıyorum. Sen bunu paylaştığında ben tekrar koyuyorum. Rahat olun. Tamam. Peki. Şu an görebiliyoruz. Şimdi şöyle bir şey söylemek istiyorum size. Remix'i herkesin açtığından bir emin olabilir miyiz arkadaşlar? Çünkü her şeyi bugün remix'te yapacağımız için burası aşırı aşırı kıymetli. Eee, asıl Solidity programlamaya çünkü buradan başlamış olacağız. Hadi bakalım. Açtınız mı? Çok güzel. Açamayanlar ya da nerede olduğumuzu bilmeyenler mutlaka varsa yani yine de hani açtınız. Harika.
Harika. Çok güzel. Yıldızıyorum sizlere şu anda şu kenarda. Bilmiyorum siz görüyor musunuz ama Ergün Talha harika. Görebilsem ya arkadaşları. Aynen. Bir saniye şöyle yapayım. Görebiliyor muyum acaba diye bakıyorum da. H. Evet. Yani biraz hah sen şey yaptın. Ayarladın. Aynen. Şimdi bu remix ID'nin olayı bunun bir online olması. Normal IDE integrated development temal yani kodları yazdığımız yer. Bu arada roket biliminden bahsetmiyoruz. Yaptığımız işlemler çok basit. Böyle karmaşık falan değil. Muhtemelenize kağıt kalem alsanız bir kağıda kontrat yazsanız daha zor. Bu basit bir olaydan bahsediyoruz. Birçok şey basmak alıp başındaki tiparlar işte pragmalar falan standart. Kontratın yazımı standart. İçerisindeki karakter sayısı ya da satır sayısı nispeten diğer
yazılımlara göre çok daha az. 100 satırlık kontratlar, 40 satırlık kontratlar, 50 satır nadiren uzun kontratlar yazılır. Kontratlar kısadır. O yüzden yazmanız da rahattır. Sadece yazma dikkat etmeniz gereken şey smart kontrat yazarken smart kontratın eee şey olması lazım. Kırılabilir olmaması lazım. Safe olması, auditlenmiş ve testlerinin tamamlanmış olması lazım. Çünkü bir kere koyarsan onu yani noter tastiğinden blockchain'e bir kere girerse tasdiklendikten sonra orada sonsuza kadar yaşıyor. Bunu geri alamıyorsunuz. silemiyorsunuz. Orada duruyor. Değiştiremiyorsunuz.
Düzeltemiyorsunuz. O yüzden bunun testlerinin iyi yapılması lazım. Üzerinde iyi düşünülmesi lazım. İyi optimize edilmesi lazım. Bu birazcık şey gerektiriyor. Böyle iyi şiir yazan insan güzel kontrat yazar. Smart kontrat yazar. Bunu da söyleyebilirim yani. Evet. Buraya kadarki kısımda okeysek şimdi karşınıza şöyle bir şey çıkmış olması lazım. Evet. Benim görüntüyü açabilirsin. Açıyorum. Açtım. Şöyle bir şey gelmiş olması lazım size görüntü olarak. Ben de açayım. Sen de aç. Bakıyorum WhatsApp'tan yazan var mı?
Ben açamadım diyen beni takip eden var mı? Hım. Yok. Tamam. Herkes okeyse sen bana direktif ver. Ben devam edeyim. Başlayabiliriz. Tamam. Burada dikkat etmemiz gereken şunlar var. Bir tanıtım yapayım. Çok özür. Bir dakika. Bir dakika. Çok uzun. Bir dakika. Serkan. Eee, şu dakika itibariyle çok dikkatli izle tamam mı? Özellikle sana söylüyorum Serkan. Tanımıyorum seni sevgili arkadaşım ama remix nereye yazacağımızı gösterebilir misiniz dedin ya. Şimdi remix çok karışık ve birazcık Selçuk istersen biraz büyütelim ekranı. Çok karışık değil ya. Ha şey görüntüler mi karıştı?
Tamam şöyle yapayım. Yok şöyle biraz büyütmen daha. Nasıl büyütebilirim ki bilmiyorum. Bu şun hayır öyle değil. Öyle değil. Öyle değil. Yukarıda bak yukarıda bak bak. Remix ID yazıyor ya. O sayfanın azıcık üzerinde kod yazma yerinin üzerinde iki tane büyüteç var. Biri küçültüyor biri büyütüyor. Zoom in, zoom out. Görebilirsin, yapabilirsin. Bak remix ID ekranın tam ortasında. Hadi ama. He tamam. He. Onun Aynen. Teşekkür ederim. Teşekkür ederim. He şimdi bu bu dakika itibariyle şu şu an sıkıntı yok. Harika. Ama şeyi izlemenizi çok isterim. Hani eee bakın bu kenardaki bütün şu anda ne görüyorsunuz? Test görüyorsunuz.
Deps, contracts, e ne görüyorsunuz? İşte read me, text görüyorsunuz. Jason dosyası görüyorsunuz. Biz bunların hepsini sıfırdan sile debiliriz ki sileceğiz herhalde az sonra. Bilmiyorum Selçuk. Aynen. Tek başımıza, kendi başımıza nasıl bir akıllı kontrat yazacağız? Nasıl Solidity programlama dilini eee hatasız kullanmayı öğrenebiliriz? İşte ilerleyen süreçte özellikle onun auditini, kendi yazdığımız kodların auditini ve başkaları tarafından yazılmış kodların auditini birlikte yapacağımız için bu dersi aynen çok iyi takip etmenizi istiyorum sizden. Teşekkür ediyorum. Devam edebilirsin Çalç. Şimdi buradakileri arkadaşlar silin.
Tamamen silin. Silmeden önce şöyle bir ek bilgi vereyim ama. Tamam. Burada tane folder bizim için normalde önemli. Bunlar illa must değil. Contract folderı, script folder ve test folderı değil. Mustv değil. Ama bu daha böyle yapısal bir şey yaptığı için hepsini klasörlemiş. Buradaki arkadaşlar diyor ki bu düzenine uy diyor size de. Ama şu an biz başlangıç durumunda olduğumuz için hepsini sileceğiz. Bu düzene de uymayacağız. Kendi içinde gelen kontraktların içerisinde de kontrat kısmı var. Mesela buraya bir iki tane örnek yazmışlar. Mesela burada bir tane basit var. Kaç satır bu? 1 2 Şunlar açıklama satırları. Yeşillere geçin. 3 4 5 6 7 8 satırlık bir kontrat. Ya da owner diye başka bir kontrat var.
Ballout diye başka bir kontrat var. Ama bunlara hiç bakmıyorum. Direkt siliyorum. Siz de silin benimle rahat edersiniz. Şurada delay item var. Sağ tıklayın silin. Sağ tıklayın silin. Ya hepsini silelim. Tertemiz olsun. Bunlar dediğim gibi daha düzenli hale getirmek için zaten ilerleyen zamanda bu e remix'te başlanılan geliştirmeler daha sonra desktopda foundary diye bir framework'ün üzerinde çalışacağız.
Foundry kursuyla birlikte gelebilir. Foundary'yi anlatabiliriz. Onunla birlikte çözümlenecek şeyler. Şurada açık olanları da kapatalım. Bunları bulamayacak. Tamam. Şimdi ben burada workspace'im, bu benim default workspace'im. Bunun dışında normalde size gelmeden önce anlatacağım şeyleri şöyle bir kısaca özetleyeyim. Burada bazı kontratlar yazdım. Basit kontratlar. Bunların üzerinden geçmeye çalışacağız. Toplam 11 tane gerçekten basit kontrat var. Bunları örnekleriyle size anlatacağız. Ondan sonra günü eee toparlamaya başlayacağız. Biz bir hello ile başlayacağız. Şurada ilk önce göstereceğim ne yaptığımızı. Hello'nun bu sonunun sol ile bitmesi. Birazdan onu eee anlatabilirim. eee bütün kontratların dikkat ettiyseniz sonu sol ile bitiyor.
Bunun solidity eee diliyle yazılmış solidity uzantılı hani tex'te uzantılı değil dosyanın cinsini söylüyor. Bu da solidity source dosyası olduğunu, kaynak kodu dosyası olduğunu gösteriyor. Yani kontratın tipini söylüyor. Hello world var mesela. Çok basit bir kontrat. Ondan hello var pardon. Hello world var. Ona çok yakın. K kontratı az önce baktık. Fonksiyonlar fonksiyonlar diziler. Diziler. Balık hamsi yunus. Balıklarla ilgili niye böyle bir şey yaptım bilmiyorum ama bunları da yaptığımız zaman bitireceğiz. Şimdi başlayalım. Hello ile başlayacağız. Şimdi sıfırdan yazmaya başlayacağım.
Fatworkspace'ime gidiyorum. Buraya bir tane şey yazıyorum. Hello Sol. Evet. Bunu yazdıktan sonra zaten şöyle bir şey. Bizim standart olarak yazmamız gereken ne vardı? SPDX. Bu spdx'in açılımı şu. Software, platform bla bla bla bla diye gidiyor. Açılımı bu şekilde. Ama çok da şey değil. E license identifier mit. Ondan sonra şimdi burada pragma dememin nedeni compiler solidity compiler olacağı. Yani
bunun bir solidit dili olduğunu dikte ediyorum. Diyorum ki bu bir solidit dilidir. Kontratın solidity dilindedir ve uyacağı mevzuat ya da compile derleneceği sistemin versiyon numarasını da veriyorum. Diyorum ki 0.8 en sonuncusu 29. Eee ama ben şuraya bir 25 yazayım. Şimdi bunu yazdığımda bir şey alıyorum. Burada buradaki hikaye bu biraz da safari ile ilgili bir soru. Normalde otomatik olarak bunu yukarıya doğru upgrade etmesi lazım. Onu anlatacağım. Şimdi bunu bu şekilde bırakıyorum. Hatalı altını çizdiği şekilde bırakalım. Ondan sonra döneceğim. Şimdi kontratımı yazmaya başlıyorum. Kontrat. Buna hello diyelim ya da merhaba diyelim. Merhaba. İlk kontratım çünkü.
Buraya bir süslü parantez atıyorum. Kendisi tamamladı. Otomatik yaptı. Burayı sileceğim. Ben bunu yapmasını istemedim. Evet. Şimdi aslında yazdığımız şey şu başlı başına bir kontrat. tek bir noktada hata veriyor. Bunu da bizi zaten yönlendiriyor. Otomatik olarak ne yapm gerektiğini ben bunu açmak için şimdilik buraya bir tane e yukarı işaret koyacağım ama niye yaptığımı anlatacağım. Bu biraz bu browser'la ilgili bir sorun. Sizde bu sorunun çıkmaması lazım. Şimdi buraya kadarki kısmı bir yazın. Bunun üzerinde tartışacağız. Elif sen kontrol edebilir misin insanlar?
Bakıyorum. Aynen. Tamamdır. Şu an soru işareti falan yok arkadaşlar. Soru işareti var mı? ya da şu ana kadar yapılan hani kontraktın yazına ne yanına ne yazacağımız ya da eee hani onun eee kontratımızın ismini temsil edip etmeyeceği ya da Pragmayı Başarıya yazdığımız ya da bu eee 0825 olayını anlamayan arkadaşlarım var mı? 025'e geleceğim oraya şimdi şey yapayım. Şimdi arkadaşlar beğenin, beğenmeyin. Şu bu şu anki haliyle çalışabilir bir kontrat. Şu an aslında yaptığımız şey eee şuradaki C ile S harfleri de yalnız sadece şuraya license tamam. Oradaki çok özür dorim dursana sade eee Cihan diyor ki bu ilk diyor SPDX license identifier MIT diyor
yazmasak olmaz mı diyor. Sen mi cevaplamak istersin? Ben mi cevaplamak cevaplayım? Sen cevap ver. Devam et. Hukuken cevap vereceğim şimdi sana Cihan. Eee, aslında yazmazsan olur. As yani çok aşırı büyük bir problemi yok ama bunu yazdığın takdirde aslına bakarsan sen fikri mülkiyet ile kendini korumuş oluyorsun hukuken. Bu nedenle genelde böyle yazılır ki hani eee bu kodun senin bilgisayarın sana ait olduğunu tespitinde birazcık daha eee şey hak senin söz sahibi olabildiğin bir hakkın oluyor. Yani aslında hani bunu yazman senin için eee sağlıklı bir durum yani. Yaz o yüzden ama yazmasan çok büyük bir şey kaybetmezsin ama yazarsan büyük bir şey kazanırsın.
Şimdi yapacağımız şey eğer ciddi bir yerde çalışıyorsan bunu yazman lazım. Senin işte bu seni bağlayıcı ya da bunu kullananları bağlayıcı bir şey. Sen bunu eğer paralı bir şey satıyorsan ya da kullanımını restrict ettiysen mesela bu sadece Türkiye'de kullanılacaksa onunla ilgili bir lisans sözleşmesi ise buraya belirtmen lazım. Ya da MIT mesela open source dünya üzerinde istediğin gibi kullanabilirsin. Eee kopyalayabilirsin, değiştirebilirsin demek ama sen bunu mesela şirketinin kendi bir identifier varsa, lisans sözleşmeler varsa onu yazman lazım. Bu böyle. İkincisine gelelim. Şimdi gelelim şura. Pragma solidity 0825. Bu bizim aslında compiler directimiz.
Şuraya şu aslında benim yukarıdakini saymazsanız açıklama satım. Yani buraya kendime notlar alacağım zaman yan yana şöyle çizgi koyduğumda tık tık yazdığımda buraya merhaba dünya işte günlük merhaba günlük gibi yazdığım bir açıklama satırı. Yukarıdakini, en tepedekini hariç tutarak söylüyorum bunu. Burada yapacağımız şey bunun bir compiler directive olduğu. Compiler directiveini açılımda compiler aslında benim source kodumu, source kodum solidity benim şu an yazdığım o makine diline çevirmesi makine diline çevirmesini sağlayan sistemin ismi ya da tool diyebiliriz. Biz buna compiler diyoruz.
Buna da compiler directive diyoruz. Peki compile edilmesi sonucunda ne oluyor? Senin şu yazdığın kontrat makinenin anlayabileceği blockchain'in anlayabileceği byte koda dönüştürüyor. Şuraya yazayım. Byt koda. Solidir dosyan nokta sol uzantılı dosyan nokta solan senin de okuyabildiğin dosyan daha sonra byte koda dönüşüyor. Bu da daha sonra nereye konuluyor? blockchain üzerine konuluyor. Blockchain'in üzerine konuluyor ve bunun üzerinde anlayacağın şekilde çalışabiliyor. Yani sen aslında şurada yaptığın şey tam olarak şey de diyebilirsin ona. Translation çevirmenlik işi solidity kodunu byte koda çeviriyor ve şu versiyonuna çevir
diyor. Diyor ki çeviricinin translatorının compiler translator diyelim şimdilik geçici olarak compiler şu versiyonunu al diyor ve bunu çevir diyor. Neye çevir diyor? Eee, byte koda çevir diyor. Şimdi gelelim buraya kadarki kısma. Bu, eee, işin en zor kısmı. Burayı anladıktan sonrası çok rahat. O yüzden sorunuz varsa sorun. Sorunuz yoksa gene geleceğim buraya. Devam ediyorum. Şimdi ben bunu yazdım. Peki bunu blockchain'e nasıl deploy edeceğim? Ya da blockchain compatible yani uyumlu olduğunu nereden anlayacağım? Bir sonucunu görecek miyim?
Ne olduğunu nereden bileceğim? Tamam. Okey. Şu an ilk kontratınız beğenin, beğenmeyin yazdığınız merhaba diye boş bir kontratınız. Bu çalışıyor. Bu gerçek bu. Yani böyle de blockchain'de eee EVM'de, Etherum, Etherium Main net'te ya da sağda solda testnetlerde böyle bir sürü kontrat var ve bu gerçek. Yani bu yani zor değil. Buraya yazacağınız daha sonra şu araya gireceğiniz logicler daha sonra mantıki işte kira şartnamesi mi yazıyorsun? Köprü ihalisi mi yazıyorsun? Merhaba dünya mı yazıyorsun? Hesap hesap makinesi mi yapıyorsun? Ne yaptın sana kalmış. kontratın içeriğine bağlayarak burayı geliştirebilirsin. Eee, o detay ama gerçek şey body'si bu. Çalışan şey bu. Şimdi gelelim bu işlemi yapmaya. Bu
işlemi yapmadan önce şeyi eee şu benim eee çok havalı olan şeye dönebilir miyim? Eee sunumuma bir döneceğim. Dönebilirsin. Peki. O kadar sunumumu hazırladım. Şey yapayım. Aynen. Eline sağlık yer misin? Bir soru var. Eee, bakıyorum hemen. Şimdi GNU lisansı kullanabilim. Aa, evet. İlla MIT olması gerekmiyor ama yani şöyle tekrar diyorum. İkisinin şöyle bir farkı var. Bunu söylememiz gerekiyor. Hukuki açıdan aslında en büyük farkı eee mesela lisans konusunda söz konusu bir sorun yaşarsın ileride. Mesela MIT her
şey çok izin verir. Herkes tarafından kullanılır. Ama mesela sen GPL ya da işte e GNU kullandığında, GNU kullandığında hani şey eee bu senin yazmış olduğun kodun open source bile yapsan bir başka kişi senin yani projeni yapmak için ya da işte comit atmak için kullanmak istiyorlarsa eee aynı lisansı kullanmak zorunda kalıyor. Bu da biraz sıkıntı doğuruyor. Bu nedenle biz solid kullanırken özellikle MIT'yi tercih ediyoruz. Antifier MIT'yi tercih ediyoruz. Hani çok daha ya şöyle ikisinin amacı farklı ama burada sen bunu tercih etmeye çalış. Yani o yüzden en doğrusu en doğalı ve sorun yaşamazsın burada. Ama dediğim gibi diğerlerini kullandığın zaman amaçları farklı olduğu için amaçlarını biliyor olman ya da neye göre kullanacağını biliyor olman
gerekiyor. Aynen. Devam edebiliriz bakalım. Okey. Şimdi bir kontratın yaşam döngüsü ile ilgili bir PowerPoint yapmışım. Onu da sunayım. Şey yapmayalım. Yaşam döngüsü dediğimde kontratı ilk önce yazarsınız. Az önce merhaba yazdık ya. Bir kontrat, boş bir kontrat yaptık. Bu yazılımın ilk döngünün ilk aşaması. İkincisi derlersiniz, compile edersiniz. Yani translate edersiniz. Neye? Normal dilden makine diline byte coda translate edilme süreci var ki süper basit. Onu da göstereceğim. Onu da nereden yapıyoruz biliyor musunuz? Şu Remix ID'nin şu solunda şöyle bir şey var ya şu garip tik zımbırtı var ya şöyle oklar gidiyor geliyor. Buradan compile edeceğiz.
Üçüncüsü kurulum. Buna deployment diyoruz. Deploy edeceğiz. Yani sen bunu yaptın. Her şey hazır derledin. Artık bu kodu alacaksın. Etherium'a göndereceksin. Tamam mı? Bu diğer kısmı da bu. En son kısmı da etkileşim. Etkileşimden kastımı hatırlıyor musunuz? Dünyanın üzerinde bir mavi turuncu oklar gidiyor geliyordu. Yani insanların buraya registre olması, etkileşmesi, bunun faydalarını kullanabiliyor olması. Bu dört aşamayı da yaptığınız zaman artık bir akıllı kontratım yaşam döngüsünü tamamlamış oluyorsunuz. Tam olarak kullanmış oluyorsunuz. Şimdi gelelim biz şu idenizin sol tarafındaki şu şeylere şuradaki sayfalar okuna büyüteci boş çok önemli. Birinci kontratların
kendisi. İkincisi derlediğimiz yer. Üçüncüsü deploy ettiğimiz yer. Şimdi gelelim kendi kontrolatıma. Yazamayan var mı bilmiyorum ama şimdi buraya geldiğimde dikkatimizi çeken şey şu. Şuradaki compiler versiyonu 25. Burada 29 diye geçiyor. Bu ikisinin birbiriyle uyumlu olması lazım. Ben buraya 25 yazdığım halde burada 29 gelmesinin nedeni şu oktu. Bu ok şunu diyor. Diyor ki 0.8.25 ile çalıştır. Eğer varsa daha üst versiyonuyla çalıştır. Eğer şöyle yazarsam bu ikisi birbirinle aynı olmadığı için hata veriyor. Burada compiler versiyonunu eğer 25'e çekersem bu sefer hata vermeyecek.
Hata giderildi. Yani şuradaki versiyon ve burada çalıştıracağınız şuradayım bakın versiyonun birbiriyle uyumlu olması lazım. Şimdi ben artık compile etmeye başlayacağım. Compile hello soul demek aslında bunu translate edecek. Makine diline çevirecek. Hadi makine diline çevirelim. Tek yapmam gereken şu tura basmak başka bir şey değil. Siz kulayınıza gelsin istiyorsanız şuraya bir tane şapka çakın. Çakın ne ya? Şapka koyun. Kendini otomatikman 29'a alır zaten. Onu o taraftan yapabilirsiniz. Şuraya şapka buraya gitti. H kendini otomatikman 29 alırız zaten. Şimdi compile'a basıyorum. Compile'a bastık.
Compile etti. Yani şuradaki mavi tiki gördüğünüz zaman yeşil mi bu ya? Yeşil tiki gördüğünüz zaman eee aslında işlem tamamlandı demek. İşlem tamamlandıktan sonra üçüncü şeyimiz neydi? Deploy. Bakın burada bir ok var ya. Bu ok sanki gönderiyormuş gibi düşün. Gönderiyorum. Nereye gönderiyorum? Göndereceğim alanı buradan seçebilirsin. Eğer diyorsun ki remix VM. Remix VM şu demek. Bu bir simülatör. Gerçek mailet'e göndermiyorum demek. Yani biz şu an simülatörde çalışacağız. Gerçek Etheryum'a gitmeyeceğiz. Daha sonraki zamanlarda Testnet'e gideceğiz. Belki 3ün eğitimde testnet'e gitmiş olacağız. Ya da 2 3 eğitimde testnet'e blockchain'in kendisine gitmiş olacağız. Ama bunu simülasyon olduğu için aynı şey. Proses olarak aynı şey. Arkada
background farklı. Sadece simülasyon yapıyoruz ama prosesler gene aynı proses. Burada bunu seçiyoruz. Remix BM'e gidecek diyoruz. Okey. Buralara takılmanıza gerek yok. Sadece diploya basacağız. Bastığımız zaman tatam önemli bir hata mesajı değil. Buna bastığınız zaman şurada bir tane şey çıktı. Merhaba et. Bilmem bilmem ne. Bu şu demek. Açıyorum bunu. Bu şu anlama geliyor. Merhaba kontratını blockchain'deki şu adrese koydum diyor. Adresi kopyaladım. Nereye koymuş bakalım.
Şuraya yapıştırayım. Artık blockchain'deki şu adres alanında uzayda bir yerde blockchain'in kendisinde artık böyle bir eee alanda bu kontratım artık alive canlı ve çalışıyor. Yaptığımız işlem bu. Daha sonraki şurada detaylarına da buradan birazdan bakacağız. Şundan o detaya girmemize gerek yok. Eee yaptığımız işlemin bu olduğunu size anlatayım. Daha sonra devam edeceğim. Buraya kadar sorunuz var mı? Ona bir gelelim. Okey. Soru yok. Soru olduğu zaman sorarsın. Buraya kadar netiz. Yani bu zamanla kafanızda oturacak. Aslında yapılmışız şey çok basit. Bir kodu
yazıyoruz ki çok basit kodu yazmak. İkincil olarak şeyi yazıyoruz. Eee, compile ediyoruz. Compiler versiyonu şey yapıyoruz. Eee, çözümlüyoruz. Üçüncülü olarak da eee, bunu deploy ediyoruz. Nereye deploy ediyoruz? eee blockchain'in kendisini ama biz şu an blockchain'e yapmadık. Şu an virtual machine'e yaptık. Yaptığımız olayların tamamı bu. Evet. Soru var mı? Bekleyeyim. Bir şuradan çıkayım. Geliyor mu ses? Düştük mü?
Düştü galiba. Alabilirsin bacıım. Düştük galiba. Duyuyor musunuz? Alo, alo.
Duyuyoruz gayet. Ha gitti ses. Hiç respans alamıyorum. Buradayım. Buradayım. He tamam. Şey, kapımı çaldı da kusura bakmayın. Ona bakıp geldim de. He tamam. Buradayım yani. Tamam. Okey. Tamamdır. Şimdi devam edeyim o zaman. Bir soru var mı? Büyük soru olacağını düşünmemiştim. Tam iki dakika. Hayır. Duyuyor musunuz diyorum. Ses gelmiyor. Tamam mı? Senden dispans da bekliyorum dedim. Herhalde benim şey gitti. Hatlar gitti, şeyler git. Hayır. Evet. Tamam. Peki. Sıkıntı yok. Buradayım. Buradayım. Kaldığımız yerden devam eden devam edelim. Bir saniye. Aynen.
Oraya geçtik. Şimdi Prezy'yi açalım. Evet. Bu arada sorulara cevap vermek ister misin yoksa? Göremiyorum soruları. Senin söylemen lazım. Ben söyleyeyim mi? Ha tamam. O zaman şöyle şöyle bir duralım o zaman. Bir iki dakika bekleyebilir misin? Şimdi seninle bir sorulara bir geri dönelim. Hı hı. Eee Hasan diyor ki ekranı paylaşıyorum. Görebiliyor musun Saç? Bir baksana.
Kendi ekranda da görebiliyor olman lazım. Vallahi göremiyorum. Bir saniye. O zaman boş ver. Tamam ben okuyayım direkt. Hı hı. Sen devam et. Solidity level olarak. Hı hı. Hı hı. Level olarak hangi seviyede direkt bite koda mı çeviriyoruz? C gibi ha buradan görebilirsin hı geldim. A bite koda mı çeviriyorum? C gibi mi? Bu soruyu biraz daha açar mısın? Nerede? Bir dakika bir highlight eder misin? Yukarıda label olarak hangi direkt boda çeviriyoruz? C gibi. Lel olarak hangi seviyede direkt bcod çeviriyoruz? C gibi mi? Bu virtual ma. Şimdi şöyle bir şey, eee, olay şu. Normalde sizin yaptığınız şey şu. Bir bunu blockchain olarak düşünün. Bu blockchain blockchain
üzerine bir blok koyuyorsunuz. Bloğun üzerine de smart kontratı kuruyorsunuz, koyuyorsunuz. Smart kontratın kendisi aslında eee C gibi makine, tam makine çevrilmiş bir dil değil. Bunun dili byte cod dediğimiz Java virtual machine'e benzeyen, bu da Etherium Virtual Machine olan yarı makine dili bir dile çevriliyor. O da böyle 0 X O, I bilmem ne vesaire vesaire diye bir op kodu var, bir şeyi var. Bu ayrılabiliyor. Daha sonra bunu detaylandıracağız. ilerleyen seviyelerde de bu aslında direkt C gibi bir dile çevrilmiyor. C'den daha doğrusu makine dili olan 1.01'e çevrilmiyor.
Bite cod denilen ara bir dile çevriliyor. Şimdi orada yapılan şeyden bir tanesi eğer C ile karşılaştırmamız gerekiyorsa bunlar farklı. Daha çok Java'ya benziyor bu anlamda. Niye B code'a çeviriyoruz? Niye böyle bir şey yapıyoruz? Çünkü virtual machine, bu biraz teknik bir detay. Buraya çok takılmayın. Virtual machine'ler farklı makineler da kurulabilir ama senin kodun her yerde aynı çalışması lazım. Bu fazla teknik bir detay. Oraya çok girmiyorum ama bu byte cod diye ara makine koduna çevriliyor. Bu da e Etherium Virtual Machine'ın anlayacağı bir dil kodu. Bilmiyorum bu biraz şey oldu. Eee yukarı seviye bir soru oldu ama. Tamam. Sen bunu merak etmişsin.
Aynen. Cevabı bu. Başka soru var mı? Evet var var ya var. Evet. E ekranı paylaşıyorum. Hı hı. Ne yazıyor hocam? Deploy. Deploy ederken saldırı olabiliyor mu? Sonuçta daha zincir gelmeden değişmiş oluyor kod. Bununla ilgili şu var. Eee özellikle hibrit kontratlarda da var. Diplo ederken de olabilir. Araya da girilebilir ama bunun güvenliği çeşitli yerlerden devreye alın alınıyor. O yüzden bir sıkıntı yok.
Eee, yapılabiliyor mu diyorsan evet yapılabiliyor. Bunun en çok bariz karşılaşılan otağı e oracle attacklar var mesela. Onlara bakabilirsin. Bu oluyor, olmuyor değil. Mesela bu biz yazdığımız kodu nodlara gönderiyoruz. Infoya gönderiyorsun, alkamiye gönderiyorsun. buraya gönderene kadar şifreli olarak gönderdiğin için aslında çok ciddi bir sıkıntı da yok. Yani sen bir bankayla da bu şekilde haberleşiyorsun ama saldırı olabilir mi? Her yerden oluyor. Zaten eee geçen sene kaç milyar dolar? 3.8 milyar dolarlık saldırın toplantısı. Bunların bir kısmında vardır. Araya girmeler vardır.
O vardır o vardır. Bunun detayına ben harici değilim bilmiyorum ama evet mümkün. Ama şu an bunu security babında bu şeyin konusu olmadığı için dismiss edelim. Hocam bu deploy işlemi için illa dur şunu ekranı paylaştım pardon unuttum. Remix işaretme terminalde yapılabilir. Yapılabilir. Evet. Yani burada görürsün hatta. Aynen. RPC URL aslında şey remote e bir call yapıyorsun bir IP'ye. O IP'de dediği gibi bir not var. Yani internette blockchain'e giriş girdiğiniz kapı var, portal var diye. O portale bunu inject ediyorsun, gönderiyorsun. Normalde aslında bunu şifreleyip kapatıp BT'a çevirip kendi de anahtarını koyup eee digital signature
sign edip bunu gönderdiğin zaman buraya aslında zaten orada da çalışıyor. Bizim Remix'in yaptığı şey bu işi bizim için kolaylaştırmak. Wallut'la birlikte haberleşip bu işi planı kolay bir şekilde yapıyor. Ama arkada yaptığı şey bu. Bunu başka şeylerde de yapabilirsin. Evet. Ama bu çok basit bir şekilde indirgiyor. Yani RAM de bunu çok iyi yapıyor. Aynı zamanda işte volt'un da var. Balutlarda entegre oluyor. Hemen oradan private keyi'ni de alıyor. Şeyi de alıyor. E sign edip gönderiyor. Hızlı bir hale getiriyor. Bilmiyorum bu sorular biraz ileri bir seviye sorular.
Anlamayan arkadaşlar da vardır belki ama biraz ileri gidiyor yani. O yüzden anlamıyorsanız o sorun değil. Hı hı. Evet. Deploy aşamasını yeniden anlatabilir miyiz? Deploy aşamasını yeniden anlatabil tabii anlatabiliriz. Diploy aşamasındaki olay şu. Eee, bir kodu yazdıktan sonra kod makinemda duruyor ya. Yani burada ID de yazdım. Her şey tamam. Benim bunu alıp eee, ne yapmam lazım? Normalde bir kontratım olsa bunu notere götürmem lazım, değil mi? Alıyorsunuz bunu notere götürüyorsunuz. Kontratımı hazırladım diyorum. Notere gidiyorum. Bu notere verdiğim ana deployment diyorum. Bu şekilde söylersem. Ama ben bunu notere deploy etmeyeceğim. Kime deploy edeceğim?
Blockchain'e kaydedeceğim. oraya gömmem lazım. O işlemi yapabilmek için de blockchain'i seçmem lazım. Hangi blockchain'e koyacağım? Etherium'a mı koyacağım? Hakeza Bitcoin'e mi koyacağım? Ki Bitcoin'de smart contract yok. Sadece öyle bilin diye söylüyorum. Önemli değil. Takılmayın. Yani birçok blockchain var. Eee ya da işte avalança mı koyacağım? Hangisine koyacağımı ilk önce karar veriyorum. Daha sonra oraya deploy etmeden önce private keyim'le yani benim şifremle şifre demeyelim ona keyimle anahtarımla onu digital sile signedip öyle gönderiyorum. Eee deploy ediyorum diyelim. Evet aynen. Deployment dediğimiz şey aslında kurma.
Installation. Bu installation'ı bu remixi de çok basit bir şekilde yapıyor. Onu da nasıl yapıyor demiştik. Hatırlıyorsanız o idenin arkasında şey vardı. Böyle bir eee ok gibi bir şey vardı. Bir şey var. Elmas var. Elmasın yanında da bir ok var. İstersen ekranı tekrar paylaşayım. Oradan bakalım. Paylaşabilir misin ekranımı? Sen paylaşınca paylaşıyorum. Ben paylaşmamışım. Ben paylaştım diye biliyorum. Stop screen diyor çünkü o sayfaya gelince yani. Dur bir daha kapatıp açayım.
Eee share screen dedim. Share screen dedim. Window dedim. E çok özür dilerim. Burada window şu herhalde. Evet. Görüyor musunuz? Geldi. Paylaştım. Tamam. Okey. Şimdi burada bakarsanız şunu biraz şöyle küçülteyim de ben de kendimi göreyim. Bir saniye. Özür dilerim. Görebiliyorsunuz diyor umuyorum. Şimdi şurada gördüğünüz şey deployment adımı. Burada yaptığımız şey ilk önce blockchain'i seçmek. Burada blockchain olarak ben Etherium ya da Avalan seçmiyorum. Remix'in kendi Remix VM'i seçiyorum. Remix VM seçtiğim anda zaten bu aslında bir simülasyon ama siz bunu şey gibi düşünebilirsiniz. Herhangi
bir eee üzerinden herhangi bir eee blockchain seçmişim gibi düşünebilirsiniz. But for the sake of simple city basit olması açısından biz bunu default olarak şey seçiyoruz. Simülasyon seçiyoruz. Daha sonrasında da bu benim eee ne kadar bu da simülasyon eee ne kadar Etherimin olduğunu gösteren account bilgisi, digital kein işte private keyin olduğu sistemi buralara takılmayın. Şimdi buralara hiç girmeyin. Daha sonra gireceğiz zaten. Burada deploy edeceğim kontrat zaten otomatik geliyor. Merhaba hello.sol merhaba dosyasının içerisinde.
Hello merhaba eee kontratı hello solun içerisindeki buradaki deploy tuşuna basıyorum ki basayım birlikte. Tak bir tane daha bastım. Hemen altı bir tane deploy oldu. Gördünüz mü? Merhaba et. Bıdı bıdı bıdı bilmem ne dedi. Buraya kadar okey miyiz? Bastığımda içi boş. Kontratımda herhangi bir şey yok. İçinde para da yok. İçinde bir etkileşeceğim hani diyorduk ya 4. aşamada etkileşmesi lazım. Etkileşebileceğim bir şey de yok çünkü fonksiyon fonksiyon yok. Şurada herhangi bir içerik yok. Bu da olmadığı için e şimdilik sadece bu kadar fonksiyonum bu. Dipto ettiğim adım da bu. Buraya kadar okey miyiz? Arkadaşımın ismi neydi o?
Arkadaşımın ismini unuttum da. Ekstra soru yok şu an. Tamam devam edeyim. Şu an bir adım daha ötüye geçeceğim. Daha sonra kısa bir ara vereceğiz. Ondan sonra kaldığımız yerden devam ederiz. Şimdi gelelim şeye. Merhaba. Kontratımın içerisine ben artık bir içerik girmem lazım. Yani bir veri girmem lazım. Bir bir şeyi baz alacağım ya. Bir ev, araba, bir şey, bir şey, bir şey değişken olması lazım. Variable olması lazım. Şimdi bir variable tanımlamasını nasıl yaparız? Ben buraya merhabanın içerisine bir tane şey yazayım. Mesela string yazıyorum. String'in ne olduğunu anlatacağım daha sonra. Kendi yapay zeka tamamlıyor bu arada. Eee, isim diyeyim buraya.
İsim Selçuk ya da merhaba Dünya diyeyim ya buraya. Evet, merhaba Dünya. Merhaba Solidityyim. Evet. Merhaba Solidity. Şunu biraz da büyüteyim. Görmüyorsunuz herhalde. Evet, şimdi gördüğünüz gibi kontratımın içerisine bir şeyler yazdım. Bu yazdığım şeyler de kontratta görünmesi lazım. Bunu tekrar compile ediyorum. Compile şurle noktalı virgül koymayalım. Her satırın sınırını noktalı virgül koyuyoruz arkadaşlar. O satırın bittiğini söylüyor. Compile ettim. Succes'i aldım. Şimdi deploy ediyorum. Eski deploy ettiğimi sildim. Deploy tuşuna bastığım an hop deploy etti. Bu önemsiz bir şey. Açtım. Bakın burada bir buton geldi. Mavi buton. Mavinin niye mavi olduğunu da şey yap birazdan
konuşacağız. İsim tuşuna bastığımda blockchain'de yazan değeri benim masaüstümde işte laptopuma getiriyor olması lazım. Pat bastım. Merhaba Solidity yazdım. Yani sizin aslında burada yazdığınız veriler herhangi bir şeyin fiyatı olabilir, bir anlaşma olabilir, mal varlığınız olur vesaire vesaire vesaire fark etmez. Bunlar bu varlıkları kontratin içerisinde artık yazdınız ve gömdünüz. Olay bu. Buraya kadarki kısımda aslında bir smart kontrat yazdınız. Sonra bunu etkileştirdiniz. Şimdi bunu bir adım daha diye götürelim.
function ismimi değiştir. ir şimdi gördüğünüz gibi ben artık kontratıma yeni bir özellik kazandırdım.
Bu özellikli bir fonksiyon. Bir fonksiyon nasıl yazılır? Biraz daha açarız. Bir eee aradan sonra fonksiyonlara yeniden geleceğim. Ama burada sadece dikkat etmenizi isteyeceğim şey şu olacak. Kontratım daha önce şu kadardı. Ondan sonra ilk önce eee bu kadar olmasıyla birlikte bir tane değişken koydum. Daha sonra şu değişkeni koydum. Bununla etkileştim. Buradan okudum. Şimdi buraya eklediğim şey yaptığım şeyi e kontratın içerisinde mevzu olan değişkeni hop. Şimdi de bir fonksiyonla birlikte buradaki veriyi değiştirmeye başlıyorum.
Diyorum ki burada daha önce merhaba solidity yazan isim isimli değişkene bu sefer merhaba elif diye değiştirmeye çalışacağım. Şimdi gelin bu işlemleri tekrar yapalım. Compile edeceğiz ilk önce. Hop mavi tiki gördüm. Şimdi deploy edeceğim. Hop deploy ettim. Şu ikincisi. Evet bakın buraya bir bir şey daha geldi. İlk önce isme bastım diyelim. İsme bastığımda ne gelecek? Merhaba Solidity mi gelecek sizce? Elif Hilal mi gelecek? Ben size söyleyeyim bu ipucu olsun. Merhaba Solidity gelecek. Tamam. Buraya kadar bir sorun yok. Şimdi eğer şu fonksiyonu çağırmak istersem bu fonksiyon içerideki bir değişkeni blockchain'in içerisinde duran bir değişkeni değiştiriyor. Onun değişikliğe neden
oluyor. Fonksiyon tuşuna bastığımda etkileşmeye başlıyoruz. Tak bastığımda bu sefer değiştirdi. Son halini okumak istiyorum. Tekrar isme basmam lazım son halini okumak için. Merhaba. Elefiler olarak değiştirdi. Şimdiye kadar yaptığımız şeyde eee şuna geleceğim. Oradan daha rahat anlayacaksınız. Bir saniye. Ekranı şey yerini yeniden değiştirmem lazım. Full ekrana geçmem lazım. Elif bir saniye ver bana. Stop sharing. Start sharing again. Entire screen. Hı
hı. Evet ekran dondu. Evet, PR de buraya kadar sunum yapabildi. Bir daha tekrar refreshleyelim. Bu bayağı güzel bir sunum ama işte bazen takılıyor. Yüklesinler oradan size bir şey göstereceğim. Evet. Burada size şeyden bahsetmiştim. Bu deployment kontratın blockchain'e konmasıydı. installation aslında bu deploy. Bunun ismini deploy olarak arkadaştirebilirim. Daha resmi olsun.
Deploy. Deploy ettikten sonra kontrat artık blockchain. Daha sonra bununla etkileşme kısmı başlıyor. Bakın turuncular insanlar turuncularla bir şeyler set ediyorlar, yazıyorlar. Mavilerle de bir şeyler okuyorlar. Bunlar view. Bunlar da write fonksiyonları. View eee sadece okuyabildikleri şeyler. Eee ve mavi renkte oluyorlar. Bunlar ise turuncu oluyor. Şuradan bir bakın. Şimdi anlayacaksınız. Bakın mavi isim okuma fonksiyonu. Bu set etme, değiştirme, e yazma fonksiyonu geliştiriyor. Bu masraflı bir işlem. Bunun için siz para verip yapıyorsunuz, Etherium yakıyorsunuz. Bunun içerisinde sadece okuma işlemi olduğu için herhangi bir masrafınız olmuyor. Bu yakılan şeye biz
guest diyoruz. Oralara daha sonra gireceğiz. Şimdiye kadarki kısımda anlamadığınız bir yer var mı? Zor kısımlar bunlardı. Daha ilerisi biraz daha kolay. Burayı anlamanız önemli. Eee, varsa sorularınızı alalım. Hemen getiriyorum. IPFS publish failed hatası alıyor. Onu oke desin, devam etsin. Function'dan sonrasını tekrar görebilir miyim? Function'dan sonrasını hemen açıyorum. Burayı biraz daha anlatmam gerekecek. Görünüyor mu ekranda?
Burada yapacağımız şey ilk önce function keywordü ile başlıyorum. Daha sonra buraya fonksiyonumun ismini yazıyorum. Ne olduğu önemli değil. Ben buraya fu yazalım mesela. Fu fu fonksiyonumuz olsun. Ve şöyle parantezlerde de kapatalım. Şu an bu parametre almıyor. Yani bir içine bir veri almayan bir fonksiyon. Dümdüz bir fonksiyon. Bunu yazdıktan sonra buna kimler erişebilir? Bu fonksiyona public yazarsam herkes erişir. Benim amacım şu an herkesin erişmesi. Bunu kısıtlandıracağız daha sonra. Ama şu an herkesin erişmesi için ben bunu public diyorum. Herkese açık bir fonksiyon. Yani Zimbabwe'deki adam da bu basit olsun diye anlatıyorum.
Zimbabwe'deki adam da Amerika'daki adam da İstanbul'daki adam da buna erişebiliyor. Yani görebiliyor ve bununla etkileşebiliyor. Bunu yaptıktan sonra şuradaki fonksiyonu alıyor. Fonksiyonla şuradaki değişkenin değerini değiştiriyorum. Merhaba Solidity olan şeye merhaba Elif diyorum. Eee durumumuz buydu. Evet. Başka bir soru var mı? Hayır. Devam edebilirsin. Tamam. Devam da şunlara geçelim o zaman. Şimdi gelelim şeye. Buralara giriyoruz ama hani bir kontratta neler olmalı diye söylüyorduk. İlk önce bir mal varlığınız olmalı. Mal varlığınız değişkenleriniz. Daha sonra aksiyon yaptığınız şeyler de
fonksiyonlarınız. Mal varlıklarınızın içerisindeki şeylere girelim. Şimdi string adından da anlaşılacağı bir string İngilizcede eee şey demek iplikçik. Uz uzayan iplikçikler gibi düşünün. string. Tel gibi düşünün. Teller demek. Tel. Mesela gitçlarken o şeye string deniyor. Eee, kelimeleri, cümleleri arka arkaya sıralanan şeylere string diyoruz. Bu okey. Birinci veri tipimiz bu. İkinci veri tipimize geleceğim. Tam sayılar. Tam sayılar ikiye ayrılır. Bir integer tam sayı demek. Bir de unsigned integer diye bir şeyimiz var. Unsigned integer diye bir şeyimiz var. Bu İngilizcede.
Bunun anlamı da biri eee pozitif. Bunlar sadece pozitif rakamları içeriyor. Şu pozitif rakamları içeriyor. Pozitif e pardon bunu e pozitif artı negatif yani eksiye de gelebilir artıya da gelebilir. Bu sadece pozitif rakamlar unsigned yani şeyi yok demek. Sadece pozitif. Bunu bu şekilde ifade edebilmemiz için integer iki çeşit integer var. Uns ve scienter. Bunların yazılımı da şöyle oluyor. Bunu şöyle yapayım. Bunu belirtmek için yaptım.
Bunları da command tabelim. Evet. Integer'ı şöyle yazarız. int pardon int 256 bitlik bir integer yazmak istediğinizde buraya mesela değişkeninizin ne olsun? X değişkeni başka bir değişken yazalım. Uns ining yazalım. U int 256 yazdığımız buna da Y diyelim. Evet. Bu da diğer bir değişken tipimiz. Başka bir değişken tipimiz daha var. Bulion. Bulion yes ya da no şeklinde.
Bulana'a bir değişken verelim mesela. Bullyum true olabilir ya da false olabilir. Başka değer alamaz. Buna zorluyor. Ya doğru ya yanlış. Bir veri tipimiz daha var. Adres. Bu adres konusuna daha sonra geleceğim için burada anlatmıyorum. Daha sonra bunu anlatacağım. O yüzden adrese şimdilik geçelim. Ama adresini de anlayacağınız üzere mesela şurada biz bir adrese koyduk ya di deploy ettik. Şurada adres yazıyor. Bakın tekrar kopyalalım. Bizim kontratımızı şu adrese diploy etmişiz, koymuşuz. Eee bu adres değişkeni de adres tipindeki eee değişkenleri alır.
Başka adresleri, başka kontratları referans alabilirsiniz bu sayede. Eee buraya kadar bir soru var mı? Buraya kadar da bir soru yoksa biraz ara verebiliriz diye düşünüyorum. Bilmiyorum. Olur. Harika. Herkes bir çayını kahvesini alsın gelsin. Ondan sonra tekrar devam edelim. Bakın. Aynen. Biraz da kurcalayın. Soru üretmeye çalışın. Eee işin çoğunu kolayladık. Aynen. İşin çoğunu kolayladık aslında. Biri gitme gitmeyin. Buradayız. Herkes bir çayının kahvesini alsın gelsin. Ben de alıp geleceğim. Harika. Anlaştık.
Görüşürüz o zaman. eee 15 geçe 16 17 geçe burada buluşalım. Hello. Burada mısınız? Burada mısınız?
Burada olanları göreyim. Ay, şu kapıyı örtüp geleyim. Bir dakika. Geldik. Yaşıyor musun? Tamam. Bırak. Harika. Harika. Buradalar. Giray. Burada. Devam ediyoruz. Harika. Selçuk. Devam edelim. Tam gaz. Devam. Hadi hadi devam. Devam. Muhteşem ilerliyoruz. Çok güzel. Also here. Hello. Hello. Hello. Hasan Selam. Seni duyamıyoruz ki Selçuk. Allah seni neler dediysen. Tamam. Bütün esprilerim havaya gitti.
Tü. Yap. Yeniden. Zaten senin esprilerin biraz kötü oluyor. Alınma da. Şaka şaka. Ah sen var ya. Tamam devam edelim. Selamlar. Bir şey kaçırmadın Burak. Yani bir şey kaçırmadın. Hani şöyle yayının ilk yarısına kaçırmış olabilirsin ama şu an için yeni geldik moladan. Yeni döndük yani rahat ol. Şimdi kaldığımız yerde şu vardı. Eee bir daha açalım. Kaldığımız yerden en son boş bir kontrat yaparak başlamıştık. Görüntü geliyor mu? Bir daha sorayım size.
Paylaşabildim mi? Elikel. Geliyor. Tamam. Geliyor. Paylaşabildim. İlk önce yaptığımız şey şuydu. Bir boş kontrat yaptık. İlk önce yaptığımız şey buydu. Daha sonra buraya sadece bir satır ekledik ve daha sonra bunu deplo ettik. Dedik ki merhaba solidity yazan sadece blok zincire sadece bunu koyan ve insanların sadece bunu okuyabildiği, sadece read edebildiği kontrat yazdık. Ondan sonra o kontrat da şurada eski kontrat sadece isme geliyorsunuz. Merhaba Solidity diyor. Yani sadece bunu okuyabildiğiniz. Daha sonra buraya ne yaptık? Bunları kaldırdık. Daha sonra buraya pardon böyle daha sonra bir fonksiyon
ekledik. Şunu sileyim. Daha sonra buraya bir fonksiyon ekledik. Bu fonksiyonda yazma komutu olan bir fonksiyon oldu. Eee yani merhaba Solidity yazdığımız şeyi artık değiştirebiliyor olduğumuz anına geldik. O da bizi turuncuya götürdü. Dedi ki turuncu bir renk verdiği zaman artık dedik ki tamam blockchain'de bir değişkeni artık değiştirebiliyorum. oraya çakılı olan bir şeye üzerine değişiklik yapabiliyorum. Eğer bir şeyi değiştirebiliyorsanız onu aslında programlıyor olduğunuzu gösteriyor. Sadece okuyorsanız, sadece okuyorsanız bu şey gibi ansiklopedeki gibi ya da Wikipedia gibi sadece okuyorsanız bir anlamı yok ama interact edebiliyorsanız onu değiştirebiliyorsanız o noktada programlayabiliyorsunuz. Yani aslında bu
programlama diline şu fonksiyon şu değişikliği yaparak başladık. Daha sonra dedik ki bununla kalmayalım. Burada bir tamam bunları anladık. Temel fonksiyonlarını yerine getirdik. kontratta olması gereken şeyleri yazdık. Şu iki satır, bu lisans tipini yazdık. Daha sonra hangi compiler versiyonunu kullanacağını yazdık. Compiler dediğimizde aslında translator öyle şey yaptık. Neydi? Sol dilini byte coda çeviren ve bunu blockchain'in anlayacağı şekilde çeviren aradaki tool, aradaki şey makine dedik. Ondan sonra yaptığımız şey şu oldu.
Bunları silelim. Gözümüzü ağrıtmasın. Daha sonra dedik ki tamam bu ana mekanizmayı kurduktan sonra burada bir string yani bir yazı tipi değişkeni kullandık. İsmi adı isim olan. Dedik ki bununla kalmayalım. Buraya başka şeyler de koyalım dedik. Dedik ki bir tane integer koyalım. Integer değişken tipi tam sayı demek aslında. Bir de pozitif tam sayı tipinde iki tane değişken tanımladık. X ve Y. Dedik ki bununla da kalmayalım. Bir tane daha değişkenimiz olsun. O da buluan. Sadece true ve false olabilir. Bunlar bizim elimizdeki eee cephanemiz. Program yazarken bunları birlikte kombine ederek değiştirmeye devam edeceğiz. Peki şimdi o zaman diğer şeyimiz ne olacaktır? Fonksiyonları biraz daha dalalım. Yani bir
fonksiyonda bir şeyi değiştiriyoruz. Şurada yazan şeyleri değiştiriyoruz ama fonksiyon sadece buradaki şeyleri değiştiren değil. Aynı zamanda daha nitelikli işlemler de yapabilen şeyler. O kısma da şöyle yapacağız. Şimdi devam edelim. Bir fonksiyon yazıyorum. Bir fonksiyon yazmadan önce onun ismine function diyorum. Bu function ismi şeyi şu olsun. Özelliği iş olsun. Bu arada şunları da sıfır diğerini atayalım da false at. Şunları da sileyim gözümüzü acıtmasın. Fazetleri kaldırayım arkadaşlar isterseniz. Daha sonra bunları ekleriz. Sadece şunun üzerine yol açalım. Burada da unsign. Ben unsign kullanıyorum ama.
Evet. Şöyle şurayı da sileyim. fonksiyonum, daha önceki fonksiyonum buydu. Bu şimdilik dursun. Karşılaştırmak için dursun. Şimdi bize bir fonksiyon lazım. Bu da diyelim ki oku x'i. Fonksiyonun ismi bu. Bu sadece daha önce x'i ben okuyabiliyor muyum? İlk önce buna bir bakacağım ama şöyle bir okuma fonksiyonu yapalım. Sadece bunun amacı buradaki blockchain'de yer alan bir değişkeni okuyabilme amacıyla kullandığım bir fonksiyon olsun. Bu view yazıyorum ama bunu şimdilik yazdıktan sonra geri döneceğim. Üst üstü parantez nasıl çıkıyor ki?
H evet kendi kendine tamamlıyor yani şey ID'nin kendisi tamamlıyor. Evet burada yaptığım şey şu. Bir fonksiyon yazma işlemi yapabilir ama okuma işlemi de yapabilir. Şimdi biz okuma yapan bir fonksiyon yapalım. Anlatacağım bunu. Hiç merak etmeyin. Tamam. Şimdi buradaki olayımız da şu. Burada gene bir fonksiyon ismi belirttim. Fonksiyonun yapacağı kendime bir isim verdim. Oku. X. X değişkenini okuyan bir fonksiyon yaptım. Buna
herkesin erişebiliyor olmasını istedim. Herkes bu fonksiyona erişebilsin. Daha sonra dedim ki bu fonksiyon sadece okuma işlemi yapacağı için view. Bunu belirtiyorum. Ben blockchaineki bir değişkenin değerini değiştirmiyorum. Bunu fonksiyona yazarken belirtmeniz lazım. Eğer bir değişkeni değiştirecekseniz mesela x = x + 1 değişkeni yukarıdaki bir değişkeni değiştiriyor olsaydınız bu sefer hata veriyor. View'den dolayı view sadece okuma yaptığı için bunu yapamaz. Bunu silmeniz gerekirdi. Ama biz sadece şu an bir okuma yapacağımız için view keyword'ünü alıyorum ve bunu koyuyorum. Daha sonra bu bir okuma yapacak. Peki neyi okuyacağım? Ne
döndüreceğim? Yani bu fonksiyona erişen kişi ne okuyacak? Bir tane tam sayı değişkeni okuyacak. Çünkü x'i okuyacak ya. Tam sayı değişkeni. Bu bu işe yarıyor. Şimdi gelin bunu bir daha compile edelim. Şunu da sileyim de kafamız karışmasın. Şunu da sileyim kafamız karışmasın. Çok basit bir kontrat oldu. Şimdi gelin bunu bir compile edelim. İlk önce compile ettim. Tikimi aldım. Sonra buraya geldim. Eskileri sileyim. Kontol deployd edilen buraya gelecek. Deploy tuşuna basıyorum. Hazır mısınız? Bastım. Hop deploy etti. Evet deployment burada gördüğünüz gibi oku tuşu var. Mavi sadece read oluyor. Bunun cevabı 0. 0 verdiğim için 0 okuyacak. 0. Okey. Bunu yaptık. Şimdi ikinci fonksiyona geçelim. yazma
fonksiyonu. Set yaz diyelim buraya. Yaz. X. X'e bir şey yazalım. Public çünkü herkesin erişmesini istiyorum. Bu sefer view demiyorum. View dememe gerek yok. Eee kendisi tamamlıyor ama şurayı sileceğim pardon. View dememe gerek yok. Eee sadece şeyi istiyorum. E buna bir değişkeni yazmak istiyorum. kendi tamam yani kendi kendine iş yapıyor. Evet burada da sadece x de ilişkenin değerini x = 5 yapıyorum. Evet şimdi bu haliyle bir
bakalım ne olacak. Comp ilk önce eski kontraktörı silelim. Eski kontraktör sildi mi? Evet. Şimdi compile edelim. Ettik. Şimdi deploy edelim. Hoploy ettik. Bakın bu sefer iki tane fonksiyon var. Yaz ve oku fonksiyonu. Okuya basarsam 0 gelecek. Hop 0. Yaza basarsam bir şey gelmeyecek ama değeri değiştirecek. Bakın yaza bastım. Burada bir şeyler gerçekleşti. Ne yaptı? Gitti bu x'in değerini değiştir şimdi onu tekrar okumam lazım. Okuya bastığım zaman hop bunun değerinin 5 olduğunu gördüm. Değerinin değişmiş olduğunu gördüm. Şimdi bu farklı bir fonksiyon deneyelim.
4 farklı fonksiyon tipi var. Öyle düşünün. Yaz x parametre ile parametre ile diye bir fonksiyon yazdım. Şimdi ne yapacağımızı anlatacağım. Kendi tamamlıyor. Bunu niye böyle yapıyorsam şöyle yapayım. Bir sürü parantez çıkartamadık. erişim tipi public dışarıdan erişeceğimizi highlight ediyorum.
Diyorum ki bu fonksiyon dışarıdan erişilebilir. Şimdi buraya x = 5 yazmıyorum. Daha önce öyle yapmıştım. Yukarıdakini bu sefer parametre ile değiştireceğim. X'in değeri bir parametre ile gelsin. Parametre ile gelsin. Peki parametre nereye yazılır? Bura. Yani bir siz bir fonksiyon dışarıdan çağırdığınızda ne olacağını buraya yazarsanız o bu değeri alır. Şöyle yapalım. Hemen siliyorum. Buraya ne gelsin? U int 256 parametre.
Parametre ismi bilerek yanlış yazacağım ki bunun parametre olmadı. Bilerek yanlış yazdım. Alt çizgiyi de bilerek koydum. x = alt çizgi pa ra metre. Evet. Şimdi burada yaptığımız şey de aslında XD değişkenini statik koymuyorum. Elimle hard coded koymuyorum. Daha doğrus constant koymuyorum. Bunu parametreyile dışarıdan alıyorum. Dışarıdan alıyorum. Şimdi bunu deneyelim. Nasıl yapacağız? Eski kontratı sildim. Bunu compile ettim.
Mavi tik çalıştı. Dip ettim. Evet. Dipte ettikten sonra da Evet. Bu sefer 3 tane fonksiyonum oldu. Bir oku. Okuya bastığım zaman 0. Onu biliyorum. Yaza basarsam 5'i otomatik atacak. Yaza basalım 5'i atasın. Oku deyip 5'i gördük. Okey. Şimdi gelelim parametre ile yazalım. Diyor ki bak burada bir tane kutucuk açılış. Buraya bir değer istiyor. Çünkü şuraya bir parametre alanı girdiğim için artık bunu dışarıdan bekliyor. Buraya da 1453 yazdım. Yaza bastım. Çok sert bastım. Tamam.
Yaza bastım. Eee ve artık o değer gitti. Şimdi okuya bastığımda ne gelecek? 5 mi gelecek? 0 mı gelecek? 1453 mü? Tabii ki 1453 gelecek. Evet. Bu da parametre alan bir fonksiyon oldu. Buraya kadar herhangi bir soru var mı? Sana döneyim Elif. Burada bir çıkayım. Ay konuşamadım. Yok. Şey bir bakabilir misin? Ya da dur şunu paylaşayım. Heh. Tamam. Benim sorum var. Kaçırdım. Gaz sadece Murat Selim'in. Ha tamam. Görüyorsun şu an değil mi? Hı hı.
Tamam. Gasp optimine etmek için bazı view functionları pure ekliyorduk sanırım. Şimdi şöyle eee pure bir sürü şimdi elimizde bir sürü şey var. Fonksiyon eee fonksiyonları detaylandırabiliriz. Temel olanlarını söylüyorum. Pura kısmına da gelelim. Pure da şu yani arkadaşımız diyor ki bir fonksiyona şurada e vi yerine pure da yazabiliriz. Bunu buraya yazarsak hata çıkar. Niye olduğunu söyleyeceğim. Şuraya oku. X x olsun. Şunun yerine pure pure yaz diyor. Pure yazarsak şu hatayı veriyor. Diyor ki we blockchain'deki bir değişkeni okuma işlemi. Pure ise blockchain'de olmayan
işlem yapacağım. Hiç yes tüketmesin. Yani X blockchain'de olduğu için pure yazamıyorum. Bir şekilde okuduğun için view yazman lazım. Buraya view yazman lazım. P'u ne zaman yazarsın? Pure'u şu zaman yazarsın. Return 5. Sabit bir sayı döndü. Pure yazabilirim. 5 + 2 ya da şöyle bir işlem yaptım. 5 + 2 diye bir işlem yaptım. Bunun blockchain'le alakası yok. Kodun kendisinde var. Herhangi bir datayı okumuyor. Böyle de yapabilirsiniz. O zaman pure kullanabilirsiniz view yerine ama şu an şey yaptığımız için eee blockchain'den bir değişken okuduğum için view olmak zorunda. Gelelim başka soru var mı? Ona bakayım. Bu arada gördünüz mü ekranı?
Ben ekran paylaştım ama görmediniz değil mi? Şu mesela ekrana soru verdim. Gördün mü? Bu arada mesela integer 250'n anli nedir hocam? Çünkü mesela bir sayı kullanacaksın in 64 falan mıdır? Bunun muadili değil bu bir seçim. int 256 yaklaşık 10 üzeri 78'di herhalde. 10 üzeri 78 tane karakteri alan daha doğrusu şeyi olan digiti olan e basamağı olan eee bir tam sayı. Bunun yerine int 64 kullanırsan 2 üzeri 64 tane biti kullanarak kaç tane yazabilirsin bilmiyorum. Bu alandan tasarruf ediyor etmeni sağlar ama çok da bir karın olma olmaz. İşlemlerini de çok fazla hızlandırmaz. Benim anladığım kadarıyla Etherium Virtual Machine'nin
en hızlı çalışabildiği optimum olan 256 olması lazım. Bunu teyit etmek lazım. Çünkü mesela bir kelimenin uzunluğu o makine için 256 olarak tanımlandıysa hiçbir şey bölmeden direkt ham olarak alıp bir yerden bir yere koyabiliyor. Bu o işe yarar. Siz onu küçülttüğünüzde alandan kazanıyorsunuz ama işlem performansından kaybediyor olabilirsiniz. Bunu tam olarak bilmemekle söylüyorum. Bunu geçmişten şöyle söyleyebiliriz. Mesela 32 bit makinelerde 32 bitlik alan kullansan daha hızlı çalışır 16 bite göre. Çünkü bölmekle uğraşmıyor. Ama Etherium viral machine öyle midir bilmiyorum. Onun dışında 64 bit kullanırsan int 64 yazarsan tabii ki ona da göre çalışır.
Eğer onu optimiz ettiysen daha iyi bile olabilir bilmiyorum ama böyle bir şey var. Süre gelen bir gelenek var. O 256 kullanıyorum ben ki Etherium 5inin ben Word uzunluğunun olduğunu tahmin ediyorum. Şimdi hocam parametre gönderirken özel anahtarla şifreniyor değil mi değiştirilmesin diye. Bunların hepsi gönderilirken noda iletilirken RPC URL'de gönderilirken eee gerekli formatlara uyduruluyor, decode ediliyor. Öyle gönderiliyor. Eee orada bir sıkıntı yok ama yani security bazında bir soru olduğu için o kadar da şey yapmak istemiyorum. Vardır oralarda hackler bir şeyleri vardır ama normal düz düşünürsek bir sorun yok.
Bir salih mi demiş? Bir de hocam in türündeki x'i inteki parametreyi esan etmeye kalkarsak kes mi yapar? Hata mı verir? Şimdi solidity biraz sert bir dil. Şöyle sert bir dil. Arkadaşımızın sorus sorusu şuydu. Diyor ki u int şimdi farklı veri tipleri var. İkisi de tam sayı. Biri negatif alabilen tam sayı. Bir de mutlak sayıları alan tam sayı. Mutlak sayıyla belirtilmiş olanı öbürüne verirsek ne olur diye. Evet. Burada bir çakışma olur. Solid biraz sert bir de tr direkt bunu buna çeviremiyor. Sizin yönlendirmeniz lazım o işlemler için.
Evet ekstra olarak çabalaman gerekiyor. Burada ekstra solidity ile ilgili şöyle bir şey var. Değişkenlerle ilgili. Şimdi ne dedik? Tam sayı değişkenleri var dedik. Yazı tipi yani string değişkenleri var dedik. Bul değişkenleri var dedik. Peki kesirli işlemleri kullandığımız değişken var mı? Aslında yok. Bu çok enteresan. Yani float tipinde mesela C kullananlar belki vardır. Çok fazla şeye girmek istemiyorum ama detaya girmek istemiyorum. Basit tutmak istiyorum. kesirli sayı işlemleri yapamıyor. Doğrudan mod alıyor. Mesela 5/2 2,5'tur. Solid de 5'i 2'ye bölerseniz 2,5 değil 2 verir. Bu ciddi bir eee dikkat edilmesi gereken bir şey. O yüzden sayıları genelde yukarıya doğru ilk önce çarpma
işlemleri yapılıyor. Sonra bölme işlemleri yapılıyor. Yani ilk önce bölüp sonra çarpmıyorsunuz ki o şeyi eee şeyden en az etkilenmek için, sorundan en az etkilenmek için. Mesela niye U int 256 kullanıyoruz? Onun sana şeyini bu izahı çünkü sayıları genelde çarparak aynı seviyeye getiriyorsun. En sonunda bölüyorsun. Yani sayıyı inanılmaz derecede tuzatıyorsun. Onu daha sonra göreceğiz. Onunla ilgili bir örnek var. Sayıyı ilk önce çarparak büyütüyorsun. Bölme işlemini yaptığın zaman çok fazla şey kaybetmiyorsun. Eee, prestijion yani o küsürattan kaybetmiyorsun. Çünkü modunu alıyor ya. Alttaki noktadan sonrakileri sildiği için hani değişik bir şeyi var, durumu var. Bu e solidteki floating point sayıları yani kesili
sayılarla ilgili durum dikkat edilmesi gereken bir şey. Burası bayağı başa artı. Herkes kullandığını küp etsin. Bunu yazdıkça anlarsınız. Burada benim anlatmam ilk seviyede pek mümkün değil ama basit bir kod yazabiliriz. Bir kod yazalım bakalım. Olacak mı? Ben de bilmiyorum. Ekranı paylaşıyor. Paylaşabildin miydi? Paylaştım. Hı hı. Hı hı. Şimdi 7/2 ile bir şey dönmeye çalışıyorum. 7/2 dönmek için flowout diye bir değişkenim yok. Yani şuraya şey yazamıyorum. Kesili sayı flowout işlemi
yapamıyorum. O zaman ne yapmam lazım? Bu bunu yapabilmem için. Dönebilmem için şunu yapıyorum. 7/2'yi döndüğüm zaman şuraya U int yazayım. OT 256. Şu 7/2'yi de alıp type cas işleminde bir dakika da evet type kesti şöyle yapalım.
Zorlamaya çalışıyorum bunu ama şöyle yapalım. Evet. Type castingi bir kenara bırakalım. Ben bir bakacağım buna. Bunu buna çevirmem için return xx buna bir ara verdiğimizde buna bir
bakacağım. Orada bir şey var. 256. Şöyle yapması lazım aslında ama bunu yemedi. Type castingine bakacağım. Type casting problemi oluştu. Evet. Burada buna girdiğimiz zaman aslında bunu hemen şu şekilde düzeltebiliriz de buna bir ara verelim. Ben buna baktığımda bir ara arasında buna bakıp sana döneceğim. Şu an şey yapamadım. Orayı kıvıramadım ne olduğunu. Ama şunu biliyorum. Kesirli işlemleri yaparken doğru şekilde type kis yapmazsan şunu yanlış dönecek.
7/2'yi eee 3,5 diye dönemediği için ona biz bir çarpıp bölme işlemi yapacağız. Onunla ilgili bir tane örnek yapacağım. Matematik işlemi yapacağım. Ona ayrıca gelelim. Bu şeyin sonunda başka bir soru alayım. Ben onu yapacağım birazdan. Başka bir sorumuz var mı? Evet. Şimdi kaldığımız yerden devam edelim eğer buraysa. Evet gelelim Workspace'e. Hello Sol burada hello solle işimiz bitti.
Şimdi gelelim buradaki şeye. [Müzik] E evet. Şimdi neler yaptığımıza bir bakalım. Hello Solü yaptık. Bu işlemi gerçekleştirdik. Bir kontrat yaptık. Boş bir kontrat. Onu çevirdik. Daha sonra hello world yaptık. Hello World'de da bir sabit bir uzunluk verdik. Sonra bir kira kontratı diye bir şey yaptık. Bunu ilk başta göstermiştik. Bunu compile etmedik ama bunu da bir compile edip isterseniz bakalım. Hemen eksik kalmasın. Bunu eee sunumda kodda göstermiştim. Compile etmemiştim.
Bunu compile edelim. Evet deploy ettik. Şimdi burada dikkatinizi çeken şey şu. Bu değişkenin kendisine de public verdim. Bir değişkene public verirseniz bunları gene okuyabilirsiniz bir fonksiyona ihtiyaç duymadan. Mesela ben şu kiradan şu public keyword'ünü kaldırırsam bunu artık şurada burada görünüyor ya bir tane bir kere daha compile edip deyceğim. Bu iyi bir örnek oldu. Bakın bu ikinci deploy ettiğimde şuraya ikincisini deploy etti. Artık eee kira fonksiyon kiranın kendisini göremeyeceğim. Burada kira yok. Çünkü artık erişebilirliğini kaldırdım.
public kalktığında buraya otomatik olarak bu interın internal diye bir şey koyuyor. Internal da yazabilirsiniz. Hiçbir şey de yapmayabilirsiniz. Şimdi gelelim o kısma. Eee burada burada fonksiyonlara erişim olduğu gibi değişkenlere de public'le erişebilirsiniz. Gene burada da olduğu gibi buraya da internal yazabilirsiniz. Bu şu anlama geliyor. Bunlar dışarıdan olamaz. Şöyle yapayım. Şuna da private diyeyim. Bu kısma ayrıca geleceğim gerçi ama burada bahsedeyim. Elimizdeki tool seti, elimizdeki eee yazılımda kullanacağımız fonksiyonları, değişkenleri ve bu değişkenlere nasıl
erişeceğimizle ilgili eee çalışmalara maksimum derecede kullanabilmek için daha structure hale getirebilmemiz için farklı erişim seviyeleri tanımlanmış. Bu farklı erişim seviyeleriyle mesela herkesin şu kiraya ulaşmasını istemiyorum. Kira bilgisine sadece fonksiyonların ulaşmasını istiyorum. Ya da zamuranına dışarıdan erişilmesini istemiyorum. Zamorana sadece bir fonksiyon vasıtasıyla filtreden geçirerek şu şu şartlar altında şu şu fonksiyonun içerisinden erişilmesini istiyorum. Aynı şekilde bir fonksiyonun da gene herkesin tarafından değil başka bir fonksiyon tarafından değiştirmesini istiyorum diyebilirim.
Buna da biz public, internal ve private keyword bunlara biz erişim seviyeleri diyoruz. Access modları diyoruz. Erişim seviyeleri diyoruz. Bu erişim seviyelerini belirleyerek bir fonksiyonun neye erişip nereye erişimeceğini belirleyebiliyoruz. Şimdi mesela burada ne yaptık? En son şu ev adresini public dedik. Bakın e ev adresine erişebiliyorum son halde. Daha sonra zamuranına private dedim. Bu halini compile edeyim. Bir saniye. Son halini de compile edelim. Bunu da deploy edelim. Deploy. O da sonuncusu şu.
Evet. Şimdi bakalım. Burada sadece ev adresine ulaşabiliyor. Görüyorsunuz. Çünkü tek public olan bu. Kira dediğimiz internal. Ne olduğunu söyleyeceğim ama aslında bu da erişilemez. Dışarıdan erişilemez hale getiyor. Private dediğimde hiç hiç erişilemez dışarıdan. Şunun hadi bir yöntemi var da başka bir başka bir yerden şunun hiçbir kaçarı yok. Buna sadece ve sadece fonksiyon içerisinden erişebiliyorsunuz. Bakın fonksiyonun içerisinden zam oranına erişebilmişim görüyorsunuz. Ama fonksiyonun içerisinden erişebilmemle birlikte dışa dış dünyada erişemiyorum.
Bunlar da bizim için önemli diğer erişim seviyeleri access levellarını belirtiyor. Public, private ve internal. Evet. Burada fonksiyonumuzun ne yaptığına gelelim. Şimdi bundan bağımsız olarak eski halini alayım. Bu evet şunu yapayım. Yani şu fonksiyonumuzun şu haline geldim. Diyoruz ki eee ev adresim nedir dediğin zaman sadece okudu. Dedi ki işte 29 Ekim buldu var dedi. Okey. Kiram ne kadar dediğinde gitti onu da okudu. Zam oranım nedir dediğimde onu da okudu. Şimdi diyorum kira artışı yap. Bu da bir fonksiyon. Kira artışı yap fonksiyonu niye turuncu? Çünkü burada bir şeyi değiştiriyormuşum. Bir şeyi değiştirdiğim zaman rengini turuncu hale
getiriyor. Diyorum ki blockchain chain'de bir state'i, bir yeri değiştiriyorsun. Sadece okumuyorsun aynı zamanda yazıyorsun diyor. Bakalım ki artış yapa basınca ne oldu? Hop bir fonksiyon çalıştı. Yeni kiram ne oldu bakalım. Daha önce bindi. Hop 1400 haline geldi. Evet buradaki kontratımız da bunu yaptı. Şimdi diğer kontratımıza geçelim. Pira kontratını yaptık. Fonksiyonlardan geçtik burada. Burada da gene size bahsettim. Bunu da yaptık. eee isim geri döndüren fonksiyon yaptık. Buradan ne yaptık? Aldık bir fonksiyonumuzu ismi geri döndürüyor.
Yani şunu biz private yapmışız. Hemen biraz daha bunu bir açıklayayım ki kafamıza iyice otursun. Şimdi bu iki şekilde tanımlayabilirim. Şunu comment t edelim. Şunun commentini yapalım. Diyelim ki Selçuk diye. Benim ismim Selçuklu. Bunu herkes okuyabiliyor. Bu değişkeni okuyabiliyor. Ama bu değişkenin sadece fonksiyonlar tarafından okunmasını istiyorum. Kendi içindeki. O zaman bunu siliyorum. Public kısmını. Bunu sadece private yapıyorlar. Bunu private yaptıktan sonra artık kontratın içerisindeki bu değişkene, bu mal varlığıma millet haldır hudur kontrol bir şekilde erişemez. Bununla erişmeleri için publik olan fonksiyonlar vasıtayısıyla değişebilir. Mesela gelmişim şu isim dönen fonksiyondan ismi dönen fonksiyondan return string memory
demişim. İşte buradan dönüşü sağlamışım. Hemen bunu deploy edelim. Compile eski deploymentler de silelim. Hepy aynen. Düz isim diye bir şeye erişemiyorum. Bakın düz isim diye bir şeye erişemiyorum. Hep burada eriştiğim şeylerin hepsi birer fonksiyon. İsim güncelleği, isim dinamik güncelleği, isim güncelli. Bir tek ismi geri dön mavi.
İsmi geri dön mavinin olmasının nedeni vi olması. sadece okuma işlemi yapıyor. Herhangi bir şeyi seflet etmiyor, değiştirmiyor. Bunda da netiz. Buna bastığım zaman döneceği şey Selçuk olacak. Bakalım. Bastık. Selçuk döndü. Evet. Şimdi diyelim ki bunun üzerinden bir kere daha geçelim. İsmi güncelleyen bir fonksiyon yapalım. İsmi güncelleyen fonksiyondan kastımız şuradaki state'i değiştirsin. Hadi bunu yapalım. Burada demişiz ki koyuncu olsun. Şuna bastığım zaman hop zaten işlemi gerçekleştirdi. Bunu yaptıktan sonra ismi geri döndüğümde hop coyuncu olduğunu gördüm. Daha sonra parametrik bir şey yaptık. Parametre olarak aldık.
String memory. Bir fonksiyonun içerisinde string kullanıyorsanız parametre olarak ya da fonksiyondan geri dönüyorsanız yanına memory keyword'ünü de koymanız gerekiyor. Biraz deep detail. Bunu sonra detaya sonradan gireriz ama string'le birlikte bir fonksiyon kullanıyorsanız string memory birlikte kullanın. Yani string değil aslında string memorymiş gibi. Şimdi kafanıza kazansın. Daha sonra bunun niye öyle olduğunu anlatacağız. Eee burada da parametre olarak alıyor. Hemen şuraya yazalım mesela. Buraya elif yazalım. Elif hilal umucu. Ha bir dakika bu şuymuş. Şuraya yazacağız.
Evet. Hop güncelledik. Hop geri döndük. Elifil. Şimdi bu noktada sonuncusu da şu. Buraya da kimi yazalım? Elif sen söyle. Bir isim söyle bize. Zeynep. Ne? Zeynep. Zeynep. Zeynep arkadaşımızın ismini yazdık. Şimdi burada yapacağımız şey bu. Buraya girmemin nedeni şurayı bir sileyim. İlk önce buraya bastığımda tamam. Evet. Şuna bastığımda hangi fonksiyon çalışacak? Şu fonksiyon çalışacak. Bu fonksiyon çalışacak. Ne yapıyor? İsmi alıyor. Sonra değişmiş fonksiyondan geri dönüyor. Fark etmez.
Burayı temizlememin de bir amacı vardı. Göstereceğim şimdi. Znep'e bastık. Hop. Şimdi yapılan işlemi şurası biraz küçük ama görebiliyor musunuz bilmiyorum. Bur büyüyor mu? Şöyle büyüyor. Büyüyor mu görüntü? Bilmiyorum. Büyümedi mi? Şimdi transaction şurada logları var. Loglardan okuyalım. Bu işlemi yaptığımda blockchain'de neler gerçekleşmiş? Status transaction executed successfully. İlk önce benim işlemim başarılı olmuş zaten. Şu yeşil tıklancağım. Yapılan işleme bir ID veriyor. Diyor ki sen şu şu şu nol bir ID'de işlem yaptın ya. Bu şey gibi hani EFT'nin bir ID'si oluyor ya. Şu transaction ID, şu ID unique bir ID veriyor. Tamam o da.
Okey. Daha sonra hangi bloğa girdiğim bir blok hash oluşturuyor. Yani girdiğim bloğun daha sonra tamamını alıyor, hashliyor. Unik bir kod oluşturuyor. Yani bu eee başka bir ID. Buraya fazla girmiyorum. Şuraya odaklanmak istiyorum bir süre. Burada şu işlemi yapıyor. Bu benim kim olduğum? From buradan bir istek yapılmış. Kime? Şuraya kontrat atım. İsim dinamik güncelleyim. İsim fonksiyonu string. Şu adrese şuradan şu adrese bir istek gitmiş. Bu yapılan isteğin sonucunda benden şu kadar para eee şu kadar ges almış. Bunun da şu kadarı net olarak düşmüş.
Burada eee yapılan şeylerde de girdi olarak input şurada bu inputta şurada hani bir arkadaşımız sormuştu ya bu parametreyi görebiliyor muyuz diye. Aslında RPC coilde dışarıya atarken fonksiyonun içerisindeki değeri buraya yerleştirdi. Inputu şuraya yerleştireyim. Şöyle bir değer gönderdi. Gönderdiğimiz değer bu. Bu değeri ilettik. İput olarak verdik. Siliyorum. Bunun Türkçe karşılığında da decode ettiğinde bu inputu decode ettiğinde de karşılığı şu oluyor.
Zeynep bu da output'unu veriyor. Bu da output'u. Output'u daha büyük. Onu da şuraya yazayım. Kocaman bir output oldu. Bu output'a decode ettiğimde o output'un da çıktısının Zeynep olduğunu gördük. Bu aslında şu output dediği return. return de Zeynep oluyor. İsmi hem koyduk hem de çektik. Bu da bizim transaction log'umuzu veriyor. Yani siz yaptığınız işlemlerin loglarının detaylarında kim nereye gitmiş, hangi işlemleri yapmış, eee, kimden kime gitmiş. Bakın mesela burada from to'dan dedik. From source yani benim eee, kim olduğumu gösteriyor. Accountı gösteriyor. Bu account sonu C4'te
bitiyor. Bakalım ben kimmişim accountda? Bakın C4'te bitiyor. EDD C4. Yani şu numaralı kişi, şu numaralı account şu numaralı kontrata bu kontratı create etmişiz zamanında. Bakın kontratın şu 47 ile bitiyor ya. Sonu ettiğim adres de 47 farkında mısınız? Şura bu buradan bu adresten bu adrese bir transaction olmuş. Inputu buymuş. Dönen outputu da buymuş. Aslında transaction'ın detaylarını da bu aşağıdaki log kısmından buradan görebiliyorsunuz. Neye mal olmuş, ne kadara mal olmuş. Gest tutarları vesaire bunları da görebiliyorsunuz. Transaction kodunu da görebiliyorsunuz. Yani biraz daha detaylandırmak isterseniz yapılan işlemleri buradan da görebiliyorsunuz.
Buraya kadar bir soru var mı? İstersen eee Salih'in sorusuna cevap verebilirsin. Salih ne sormuş göremiyorum. İnşallah ezin kes. O detaylara girmemiştir. [Müzik] Kira mı? Kiraya mı girmişim? belirttiğimiz gibi ondalık bir sayıya döndürürse yuvarlayıp veri kaybı yaşar değil mi? Evet yaşar. Zaten sıkıntı orada. Bu bölme işlemlerinde daha sonra geleceğiz. Bölme işlemlerinde dikkatli olmak lazım. İlk önce çarpıyorsunuz hatta sayıyı büyütüyorsunuz. Ona göre bölüyorsunuz. Orada bir tricky bir point var. Yani oralar dikkat edilmesi gereken
şey bana çok garip gelmiş. İlk başta garip gelmişti. Niye floating point işlemi yok? Yani her şeyi bölüyorsunuz. Ondalıklı kesili bölmek basit bir şey. Yani çok da zor değil ama işte blockchain eee resource çok düzgün kullanmak gerekiyor ve bu da bir işlem sarfiyatı var. O yüzden çok şey değil. Eee accurate değil yani. Bu arada kapı çalıyor. Ona bir bakmamız lazım. Bir saniyenizi alacağım. Sen devam et. Elif bir saniye. Buradayım. Buradayım. Sorunuz varsa sormaya devam edin.
Kapıya baksın o. Beraber kaldık. Yine yalnız kaldık arkadaşlar. Nasıl gidiyor bu arada? Daha verimli olması için ne isterdiniz? Nasıl daha faydalı olabilirdi sizin için? Onları da söyleyin bana. En azından ben de bileyim yapabileceğim ne varsa. Ben de su içeyim. Su için. Çay için şu an. Tamamdır. Geld. Öğreniyorsunuz değil mi?
Hoş geldin Saçık. Evet. Buraya kadar bir soru var mıydı? Yarınki program neydi Bedirhan? Gaz Gazi Üniversitesi'ndeki olabilir mi acaba? O herhalde ondan bahsettin galiba. Burada bir arada ondalıklı sayılarla ilgili bir soru var mı başka? Onu da bir sorayım. Geleceğim inşallah. Saat 2'deymiş herhalde. Hanım Salih bir şey sorulmuş. Buradaki object oriented programming dillerinde protectla mı karşılık geliyor? Evet protected da karşı geliyor. Bir tane daha var Selçuk.
İstersen onu da bak. Flout'un olmaması sıkıntı yaşatmıyor mu? Vallahi yolunu bulmuşlar. Sayı o kadar büyük ki. Sayılar o kadar büyük ki. Bunun örneğini göstereceğ göstereceğim. Soruna neden olmuyor artık olmuyor. Yani bunun şeyleri var. Farklı kütüphaneleri var. Met kütüphanesi koymuşlar mesela. Onunla halledenler de var ama yi şey matematikte işi çözüyorlar ya. Önce sayıyı çarpıyorlar sonra bölüyorlar falan. Fazladan sıfır ekliyorlar. Buna desimal deniyor. Ekstra. Gelen sayılara ekstra bir buffer sonuna sıfır koyuyorlar. Onu göz ardı edin diyorlar vesaire. Onun örneklerini yaparız. Özellikle bu oracle'lar var. Oracle'arla işlem yaparken sayı geliyor. Onların bir desimallerini düşüyoruz, çarpıyoruz, bölüyoruz. Orada bir matematik var. Ufak bir matematik var. Onunla onu da yaparız daha sonrasında orakılara aşinalar ya.
Bilirler öyle. Tabii tabii. Aynen. Orada direk anlatmadık. Evet. Aynen. Paylaşabilirsin sen. Paylaştım. Aldım seni. Bu arada senin kameran kapalı haberin olsun. Bilerek mi? Tamam. A yok değil. Pardon bir saniye açayım. Görüyor musunuz? Gördünüz. Seni gördüm. Tamam devam ediyorum. Hoş geldin. Nick'im geldi. Önemli biri miymiş? [Kahkaha] Annem geldi. Çok selam. Aleykümselam. Evet, devam ediyorum. Devam ed. Eee, şimdi burada fonksiyonlar da tamamlandı. Şimdi bir fonksiyonda nerede var? Şurada var. Şimdi değişkenlere devam edelim. Dizilere geleyim. Bu arada
süremiz biraz hızlı geçti. O yüzden buradan geçeyim örneği. Daha sonra üzerinden konuşuruz. Şunu biraz küçülteyim. Eee, çok şey olmadan biraz daha efektif gitmeye çalışıyoruz. Zaman bayağı azaldı. Şimdi normalde biz ne dedik? Integer sayı tipi var dedik. U int. Bunu şöyle yapabiliriz. Burayı görmezden gelin arkadaşlar. Şöyle bir şunları bir kaydırayım aşağı. Ne dedik mesela? E u int 256. Ben hep 256 kullanıyorum. Public diyeimde alışkanlık. Public x1. Sonra bir değişkene daha ihtiyacım oldu.
X2 oldu. U int x3 falan. Yani böyle sayılara ihtiyaç duyabilirsiniz. Mesela satranç oynuyorsunuz. 16 16 64 tane alan var ya orada değil mi? Bu in 64'e kadar sayacağım şimdi. Public x4 yaz yaz bitmez yani bu 64'e kadar yaz yaz bitmez. Bu gibi işlemlerde yani bir dizi gerektiren dizi işlemlerinde ki matematikte eee bilgisayar biliminde yaptığımız işlemlerin çoğu diziler üzerinde gerçekleşiyor. Sayı dizileri üzerinde gerçekleşiyor. Yani matrisleri biliyorsunuz matris işlemleri yapılan işlemlerin çoğu dizi kullandığı için bu işi kolaylamak için basit bir bildirim
var. O bildirimizi de biz şöyle yapıyoruz. O int 256 bu bir örnek. eee, şu köşede parantezi koyduğumda bunun bir seri olduğunu anlatıyor. Yani bu bir dizi array diğer anlamında array olduğunu söylüyor. Public erişim seviyesini söyledi. Buraya da mesela benim dizim diye bir isim koyduk. Bunu yazdıktan sonra aslında eee, pozitif bir tam sayı dizisini biz de burada tanımlamış oluyoruz. Bunu sık sık kullanacağız. Şimdi bu örnekti örnek üzerinden gideyim. Tek tek yazmakla uğraşmayalım. Fonksiyon yazmışız. İlk önce bu şunu bir belirtmişiz demiş ki bu bir sayı dizisi. Sonra bu dizinin üzerine bir fonksiyon yazalım demişiz.
Dizilerin şöyle bir özelliği var. Push ve pop diye iki tane özellikleri var. Push pop. Bu kendi içinde tanımlı bir fonksiyon. Bunu siz yazmıyorsunuz. Bu zaten var. Dizinin kendisinin içerisinde yazılmış. Push buraya bir eleman koyuyor. İçine parametre koyuyorsunuz. 250 şöyle bir şey yazdım. Bu sayıyı içine push edebilirsiniz. Ya da belirttiğiniz tip neyse onu şey yapabilirsiniz. Hop son attığınız şeyi üstten çıkartıyor. Yani diziyi büyütüp küçültme şeyiniz için iki tane basit fonksiyon var.
Bunlarıyon yapmışım. Bunu şöyle yapalım. İlk önce bunu compile edeyim. Daha sonra üzerinde çalışalım. İlk önce bir çalıştıralım. Compile ettim. Tamam çalıştık. Şimdi bunu deploy edelim. Şu eskileri silelim. Kafamız karışmasın. Deploy dedik. Örnek dizi fonksiyonumuzu deploy etti. Bakalım hangi şeyler varmış. bir diyor ki toplamı hesapla. Demek ki bir şeyleri toplayacağım. Bir fonksiyon var ki sayıları topluyorum. Dizinin içerisindeki verileri topluyorum bence. Ondan sonra sayılar nedir demiş. Yani birinci dizinin 1inci elemanı, ikinci elemanı, 3üncü elemanı nedir gibi bir şey olabilir. Burada benden indeks istemiş. Dizinin birinci elemanı mesela 0'la başlarsak yani ilk elemana 1 dersek ikinci eleman galiba öyle bir şey. Bir
de sayı ekle var. Bu da diziye eleman ekleme işlemi. Yani it içine koy koy koy. Pushladığım bir şey demek ki. Şimdi bunları bir deneyelim. Toplam sayı hesapla 0fırdır muhtemelen. Birazdan bakarız. Niye öyle onu? 0. Evet. Sayılara basınca ne gelir? Vallahi hiçbir şey gelmez zaten. Gelmiyor. Şuraya bir şey girmemi zorunu tutuyor. Kaçıncı indeks oldu galiba bu? Ve mesela dizinin 3üncü elemanı nedir diye basıyorum. Bastığım zaman bir şey gelecek mi? Bence gelmeyecek ama bakalım. Hop. Zaten şurada hata verdi zaten şurada şuradan it revert ded kolu success etmedi. Reverted error rever. Bunun nedeni dizinin dizinin 3üncü elemanı diye bir şey yok. Yani hiç öyle bir şey olmamış. Diziyi
tanımlamamışız ama 3üncü elemana kadar gitmemişiz. Hiçbir şey yok. O zaman şimdi başlayalım. Diziye bir şey ekleyelim. Dizinin ilk elemanından biz 12 ekleyelim. Ya da basit bir şey olsun. 10 ekleyelim. Sayıyı ekledim. Şimdi bir eleman daha ekledim. 11 ekleyelim. Tamam. Bir de 12 ekleyelim. Bir de 12 ekleyelim. Hadi. 13'ü de ekledim. Dize. Sürekli push push push sayıları arkasına arkasına ekledim. Durdum. Bu noktada şunu yapacağım. Şimdi sayılarda hani 3'e basmıştım ya. 3üncü indekste ne vardı?
Şimdi basalım. 3üncü indekste ne var diye. Hop. A bu sefer geldi. 13. Yani 0 indekste 11 vardı. 1inci indekste 12 vardı. 2ci indekste e 12 vardı. 3üncü indekste de 13 vardı. Yani bunları görebiliyorum. Şuraya 2 yazayım mesela. Buraya 2 yazınca da 12 gelecek. 12 geldi. Şimdi 11 12 13 sayıların toplamını verdiği zaman da 46 ediyormuş. Şimdi gelelim fonksiyona. Biraz tersten gittik. Şimdi düzüne dönelim. Bu ilk önce bir teaser verdi bize. Bakalım ne yapmışız. İlk önce sayılar diye bir dizi tanımlamışım. Bu diziye fonksiyonda sayı eklediği bir fonksiyon yazmışım. Çok basit bir şey. Buraya sayıyı eklemişim. Sayı sayı sayılar nokta push dediğim zaman da o
sayıyı ekleyebiliyorum. Şurada parametre almışım. Hop. Bunun içinde görmüşüm. Buraya ilk önce 11 dedim ekledi. 12 dedim ekledi. 13 dedim mi ekledi. Buraya kadar da okeyse. Şimdi gelelim danun kuyruğunun koptuğu yere. Toplamı hesapla fonksiyonu. Bu enteresan bir fonksiyon. Burada highlight'ımız şu. Burada dikkat etmemiz gereken şey şu. Tek eviniz şu olsun. Eee bunu bir şekilde paylaşım üzerine biraz kafa yorum. Eee, çünkü bir yazılım yapacağınız zaman, bir kontrat yap yazacağınız zaman yapacağınız işlemlerin %90'ı for döngülerinin içerisinde geçecek. For dediğimiz şey bir döngü. Bu diyor ki bir index. Şuraya i demeyeyim. Buna ben indexleyeyim daha güzel olsun. Şuraya da indexleyeyim. Daha okunur olsun. Şuraya
indeksin. Tamam. Şurayı biraz açın. Gözümüzün önü açılsın. Şimdi toplam 0 diye bir değer vermişim. Buraya takılmayın. Şuraya takılalım. Burada yapmamaya çalıştığımız şey şu. Geliyorum. Diyorum ki ben bu dizinin elemanlarını gezmek istiyorum. Sürekli push ettim ya 1inci eleman, 2inci eleman, 3üncü eleman. Kaç tane elemanı var? Bir dizinin toplam eee uzunluğunu şunu şu fonksiyonla anlayabiliyorum. Dizilerde gezerken bu artık basma kalıp oluyor. Bunun zamanla anlayacaksın.
dizinin ismi nokta length. Dizinin ismini leng'ile çağırırsanız bu size vereceği değer eee dizinin toplam uzunluğu olur. Bizim dizimizin ismi neydi? Sayılar. Nokta kendi zaten otomatik tamamlıyor. Leng dediğim zaman tak diye dizinde kaç tane eleman olduğunu söylüyor. Diyelim 3 tane eleman var değil mi? Yani 0 eleman. Şöyle başlayalım. 0 eleman, 1ci eleman, 2inci eleman, 3ünc eleman. Pardon böyle 4 tane oluyor. Lengthemize bize eğer 3 derse dizimizin 0 indeksi dolu, 1inci
indeksi dolu, 2inci indeksi dolu demek. Okey. Ben şimdi dizimin toplam boyutunu biliyorum. Böylelikle dizimin dışına çıkamam. Ne kadar elimde malzeme var biliyorum. Daha kısa da değil, daha da uzun değil. İçerideki toplam boyutu öğrendim. Dizimin uzunluğunu biliyorum. İçlerini tek tek okuyup içindeki değerleri alıp toplayıp geri döneceğim. Amacım bu. Bunu öğrendim. Peki şuraya bakalım. Buraya enter'e basarak gideyim. Daha net olur. Şunu böyle kaydırmamızda bir sorun yok. Tamam. Şunu da şöyle alayım. Şunu da şöyle alayım. Şimdi index diye bir değişken tanımlamışım forun içerisine. Bu böyle
bir yapısı var. Bu for döngüsünde içeriği ilk önce bir değişkende tanımlayabiliyorsunuz. Indeks e= 0 indeksi sürekli artır demek şu. Ne zamana kadar indeksin uzunluğu dizimin uzunluğundan küçük olduğu müddetçe arttır demek. Bu şu demek. Yani şurayı da şöyle açayım. Şuradaki şunu da görmeyin. Hatta sileyim de hiç gözünüzü ağrıtmasın. Burada biraz benimle kalın. Burada biraz karışık görünüyor ama karışık değil. Çünkü hayatınız boyunca bunu yapacaksınız. Spor döngüsünü 1 milyar kere yapacaksınız yani. O yüzden buna alışın. Bu basma kalıp bir şey. Bu öğreniliyor. Kafanızı yormayın. Bu basma kalıp üç satır bir şey. İstiyorsanız ilk
başta ezberleyin. Sonradan öğrenirsiniz. Evet. Buraya sayıları aldım. Köşeli parantez indexs. Evet. Şu yaptığım işlemle, şu yaptığım işlemle sayılar dizisinin indeks 0ına girdim. Şimdi bu 1inci döngüde olsaydı şu indeks 0'la başladı ya. Indeks 0'a girdim. Değil mi? Buraya toplam diyeyim. Şöyle toplam eşittir bu dedim. Sonra ikincisinde toplamı şöyle yaptım. İkinci döngüye girdim. for döngüsü döndürüyor.
Sayılar 1. Şimdi indeksim 0'la başladı. Sürekli artırıyorum. Her döngüde 1 arttırıp demedi. Şu an indeksim artık 1. Bunu da toplama ekledim. Toplam artı sayılar dedim. Ondan sonra gene geldim. Toplam eş toplam art sayılar. 2 indeksim 2 olduğunda artık sayıların 2inci elemanına gireceğim. Dizinin 2inci elemanına gireceğim ve sürekli topluyorum. Şimdi bunu bu noktada tutayım. Şöyle şöyle kopyalayayım.
CtrlC eski ayını alıyorum. Birazdan kafanız yatışacak merak etmeyin. Evet. H for döngüsünün olayı şu kodun, buradaki bloğun ortadaki işaret sağlandığı müddetçe şurası doğru olduğu müddetçe müddetçe sağlar. Yani indeks 0'la başladı. Sayılar nokta leng kaçtı? 3'tü.
3'tü. 0 küçük müddür 3'ten? Evet. O zaman indeksi bir arttır. 1 içeriyi bir kere çalıştır. 1 küçük müdür 3'ten? Evet. O zaman şurayı gene çalıştır. İndeksi 1 arttır. Sonra ne oldu? 2. 2 küçük müddür 3'ten? Evet. Tekrar aynı işlem yap. Peki şimdi 3 oldu. 3 küçük müddür 3'ten? Hayır. 3 3'e eşittir. O zaman burada artık kes. Burada artık kes. Alt satıra in. Şuraya in demek. Burası biraz zor kabul ediyorum ama daha önceden kod yazanlarınız illaki bir satır bile yazmış olsanız bütün programlar dediğinizde fikstir bu. Bunu yazacaksınız. Bu bu kadar böyle bir şey.
Bunu öğreneceksiniz. İlk başta zor olabilir ama zaman içerisinde bunu sindireceksiniz. Anlamadığınızı varsıyorum yeni başlayanlar ama birazcık bir şey bilen herkes bunun ne olduğunu biliyor. Şimdi sorulara geleyim. Burayla ilgili soru var mı? Bu kısım biraz şeydi. Alengeli yani for döngü anlatmak biraz alengeli ama bilen biliyor. Bunu zaman içerisinde YouTube'dan şuradan buradan da herhangi bir dilde for döngüsüne bakarsanız öğrenirsiniz. Soru var mı bakalım. Return sonrası şey return mi kaldın? For düşüle ilgili soru var mı?
İlk önce onu bir sorayım. Yok galiba. Tamam. Okey. Ama dediğim gibi bu for kısmını for döngüsü önemli bir şey. Diziler önemli bir şey. Diziler eee sabah akşam kullanacağınız ekmek, su gibi kullanacağınız şeyler olduğu için bu kadar sadece zor da değil. Bunu bir kere öğrenin. Sürekli olarak çalıştıracaksınız. Bun bunun pratiğini yapmadan çıkamazsınız bu işin içerinen. Her yerde for döngüsünün bir pratiği var. YouTube'dan izleyebilirsiniz. Oradan buradan yazabilirsiniz. Bunu yazın. For döngüsüyle ilgili biraz practice yapın. O zaman çok daha net olacak. Şimdi soruya gelelim. Return sonrası parantez içinde sadece tipi belirtsek. Ran sonra son parantez sadece
tipi bu örnekte toplam yazmadan ne olur? Tipi belirtsek. Toplam. Anlamadım soruyu. Soruyu tam anlamadım. Return sonra parantez içinde sadece tip belirtir. Şuraya gelelim. Return sonrasında sadece tipi belirtelim. Bakalım neymiş. Gelelim şuraya. Şunu biraz küçülteyim. Çok büyük oldu. Şuraları da silelim. Çalışabilir hale getirelim kodumuzu. H he şunu silsek ne olur diyor. Bunu silerseniz da zaten şu patlayan kısım bu kısım değil.
toplam şuraya u toplam demeniz gerekiyor. U int 256 toplam burada şu toplam bir lokal değişken. Bu lokal değişkeni bir yerde tanımlamanız lazım. Normalde evet iyi bir noktaya temas ettim. Burada demek istediği şeyi arkadaşın şurada şurada toplam yazıyor. Tipi de zorluyor. Ne olduğunu, değişkenin ne gerektiğini de zorluyordu. Ama normalde eğer şunun tipini belirtmezseniz böyle yazmanız gerekiyor. Ama altta doğru olanı, en gözü düzgün görüneni evet sadece geli dönüş tipini burada belirtme ve şeyi de eee lokal değişkeni de burada başta belirtmen şeklinde olmalıydı. Evet.
Diğer arkadaşlar yazın. Ben hukuk okuyorum. Blockchain alanında çalışmak istiyorum. Piton da öğreniyorum. Diziler matris vesaire için hangi kaynakları kullanmam gerekiyor? Eee bununla ilgili Aynen. İstersen yap. Eee öncelikle bu soruyu bana daha önce sormuş olma ihtimaliniz var mı? Eee tanıyor muyum yani sizi bir şekilde? Çok tanıdık geldiniz. Eee, şöyle aynı anda hepsini yapmanız e hiçbir şekilde tavsiye ettiğim bir şey değil. Eee, şöyle hani yani bir emin olayım da ondan sonra size daha önce bir mail detaylı bir mail
attığımı hatırlıyorum da o yüzden tekrar edeyim istedim. Hani aynı kişiden mi bahsediyoruz acaba? Farklı da olsa aynı şeyleri önereceğim yine ama hani o yüzden emin olayım dedim. blockchain'de çalışmak için eee hukuk yani ne alanda çalışacağınızla alakalı bu. Çünkü sonuçta işin çok fazla etik boyutu var. Hani eee sorumluluğun kimde olduğu kısmı, blockchain'in güvenliği, bilmem ne, bilmem ne. Eee bu nedenle hani şey işin hangi tarafında çalışacağınıza bence biraz odaklanmanız gerekiyor. Hele ki öğrencilerin ben eee şu an bilemiyorum. Öğrencilerin bir programlama dilinden daha çok bir yabancı dile odaklanması gerektiğini ve İngilizcelerini kesinlikle native olasıya kadar çok geliştirmeleri gerektiğini düşünüyorum. Hani bu kesinlikle büyüktür her şeyden.
Abartısız her şeyden büyüktür. Eee aynı zamanda hani blockchain'in adında çalışmak istiyorsan Python öğrenmen çok mantıklı bir şey değil şu an. Aynı zamanda Python öğreniyorsan Matrix için kaynak tavsiyesi alman çok mantıklı olmayabilir şu an. Çünkü eee şey hani daha çok spesifik bir alana yönelip daha fazla derinleşmen bence daha mantıklı olabilir. Ben öyle yapmıştım. En azından bunlar benim tavsiyelerim. Hani şey değil. Aynı zamanda kendi YouTube kanalımda bununla ilgili bir sürü kaynak ve bir sürü şey bulabilirsin. Ya da medium hesabımda ya da üdeme kurslarımda ücretsiz olarak her şey herkese paylaşıyorum. Bana LinkedIn'den yazarsanız oradan da sizlere de herkese de ücretsiz olarak veririm. Eee yani dediğim gibi biraz bence bunların hepsini hani neden neyin için yaptığınızı bir sorgulayın bence derim.
Eee çünkü hani şey üç farklı şeyi yani aynı anda öğrenmek çok doğru olmayabilir. Ben alanımı orada seçmiştim. Hani şu olacak, şu tarzda ilerlemem lazım. şu tarz şirketlerle iletişime geçeyim. Şöyle stajylar bulayım. İngilizceyi şu şekilde geliştireyim. Ondan sonra adım adım adım adım. Ama aynı anda bu üçü dü yapmak çok şey değil. Hani çok fazla şey dağılınca hiçbir şey de uzmanlaşamıyor insan. Yani bunu söyleyebilirim. Sadece devam edebilirsin sen. Çık. Okey. E buradan sonra şey var mı? Dur bir şeim kalktı. Onu şeiri tekrar edeyim. En screen. Evet.
Şimdi gelelim eee nerede kaldığımıza. Bir daha açayım. Şimdi gelelim kontratlarımıza. Dizileri yaptık. Burada ekstra bir dizi daha var ama buna girmeyeceğim. Son olarak bir basit bir şey yapacağız. Eee kontrat daha bakalım. Bu bir balık diye bir tane kontratımız var. Balık özellikleri nedir? Bunları belirtmişim zaten. Public olarak şey demişiz. Nerede yaşar? Suda yaşar. Güzel. Eee, ne yer? Besin yer. Bunu internal yapmışız. Bu önemliydi. Erişim kütüphanelerini nasıl erişip erişimleceğimizi göstereceğim. Bir tane de neyle yüzer?
Yüzgeçile yüzer. Hadi bunu bir compile edelim. Ne olacak? Şu eskileri silelim. Evet, sildik. Deplo ettik. Burada sadece gördüğünüz gibi nerede yaşar? Geldi. Niye? Çünkü internal ve private'ın dışarıdan derişimi yok. Nerede Yaşar? Suda Yaşar. Evet. Bunu okeyiz. Şimdi gelelim başka bir fonksiyon daha var. Hamsi balığı diye bir tane balık var. O hamsi balığı da şöyle bir şey yapmışız. Demiş ki hamsi balığı is balık. Bu buna biz e kalıtım yoluyla şey yapmak diyoruz. İnheritance diyoruz. Çok basit bir şey. Yani yazacağınız kontratlar bir başka kontratın devamı niteliğinde ise onu eee genetik genetik mirasını devre alabiliyorsunuz. Yani
hams balığı da bir balıktır ya sonuçta. Şurada yazan fonksiyonda yazan bu özelliklerin bir kısmını bunun içerisine alabiliyorum. Şimdi bakalım. Hamsi balığı dedik. Okey. Burada hadi bakalım bunu compile edelim. Ne verecek bize? Ona bir bakalım. Compile diyelim. Dipd diyelim. Bakın burada sadece nasıl yüzer diye bir fonksiyon var ama nerede yaşar diye bir şey daha geldi. Bu nerede yaşar? Nereden geldi? Balığın kendisinden geldi. Yani bir önceki kontratı da yaptı. Kendi içinde bunu devraldı. Aslında biz buraya yazmasak da kendi yazdı buraya. Daha sonra nerede yaşar ve nasıl yüzer kendi içerisinde
geldi. Nerede yaşara bastığınızda suda yaşar geldi. Nasıl yüzeri zaten burada görüyoruz. Yavaş yüzer. Okey. Başka bir balık vardı. Ona da bir bakalım. Yunus balığı. Yunus balığı da nasıl yüzere hızlı yüzer demiş. Şimdi bir de buna bakalım. Ne yapıyoruz? Compile yunus balığı dedik. Deploy yunus balığı dedik. Buradan ne gelmesini bekliyoruz? Bir kere şu gelecek. Onu biliyoruz. Bir kere bu gelecek. Kendisi. Başka bir şey gelecek mi? Yunus balığı diğer bir balıktan bir şey gelecek mi? Hayır gelmeyecek. Niye gelmeyecek? Çünkü yunus balığını bir yere devralmadık. O yüzden sadece bu gelecek değil mi? Hadi bunu devral
alalım. Ne diyorduk buraya? is balık. Tamam balıktır dedik. Ama ben bu balığı nerede tanımladım ki bunu? Kırmızı basıyor. Yani diyor ki evet ben bu yunus balığı da bir balıktır dedim ama solidity kafa yedek balığın ne olduğunu ben bilmiyorum ki. Nerede bu balık dedi. Onu belirtmem lazım. Onu bir yerde dosyası neredeyse dosya şuradaydı ya göstereyim. Dosya şuydu ya. Balık. Sol. Gittik bunu import al dedik. Import. Yani aslında bize içine etçiliyoruz. Import demek alıp kopyasını yapıştırmak. Yani şununla aynı şeyi yapacağız. Şunu göstereyim pardon. Şunu alıp şu satırı alıp şu import dediğimiz şey birazdan
anlatacağım. Şuraya yapıştırmakla arasında hiçbir fark yok. Şurada bu arada bunu yapıştırınca gördüğünüz gibi bu kırmızılık gitti. Ama ben bunu böyle yapmak yerine uzun uzun yapmak yerine import'la yapıyorum. import nokta balık. Sol bunu yaptığımda zaten balık mı? 08 balık ismi 08 balık. Tamam. Dosyanın ismi 08 balık. 08 balık.sol Sol dosyasını import ettiğimde burayı otomatik olarak yapıştırıyor. Şu anda da importu öğrendik. Bu bir.
İkincisi, Yunus balının bir balık olduğunu ve bunu da inherit ettiğimizi yani kalıtsal olarak devre aldığımızı burada gösterdik. Şimdi Yunus'u derleyelim bakalım ne olacak. Derledim. Şimdi compile ettim. Şimdi deploy edim. Aşağıya en aşağıya geldi. Bakın nasıl yüzer vardı daha önce eski kontratta. Şimdi nasıl yüzer ve nerede yaşar? Nerede yaşar? Nereden geldi? Balığın içinden geldi. Çünkü hem bir balıktır. Balığın miras aldı hem de kendisine. Peki miras aldığı özellikler neydi? Buradan bakalım tekrar. Bu enteresan bir şey oldu. Balığa gittim.
Balın sadece nerede yaşarını miras edindi. Evet. Aslında şunu da miras edindi ama buna erişemiyorum. Onu da şöyle anlatayım. Kafanızı karıştırmak istemiyorum ama function. Eee, oku. Bu biraz üst oldu ama idare edin. Bunu illa alınamak zorunda değilsiniz. Nasıl üzerim?
Eğer kim değer şur kendi ekledim nasıl ekledi anlamıyorum. Heritance'ın biraz fazla detayı bu. O yüzden çok anlamanız gerekmiyor ama göstereceğim. Okul fonksiyonuna baktığımda ne yenin cevabı geldi. Yani ne yer besin yerdi ya onu geldi. Şimdi olayımız şu. Tekrar anlatayım. Burada ü
tane şey yazdık. Bir importun ne işe yaradığını öğrendik. Bir kodlamada import yazarsanız başka bir dosyayı alıp içine gömüyorsunuz demektir. Bu bir. İkincisi kontratlar bir önceki başka bir kontratı eee genetik mirasını devre alabilir. Bunu da şu inheritance denir. İz balık yani yunus balığı iz balıktır dediğimizde okey. Üçüncü buradan tek ebeğimiz şu götüreceğimiz yanımıza götüreceğimiz şey şu. Eee balığın özelliklerinden public olanları alabiliyorum. Bir de internal olanları alabiliyorum. İç yani internal olanları alabiliyorum. Internal olanı da sadece oku ile okuyabiliyorum. Çünkü eee interınnal'ı public olmadığı için okuyamıyorum. Orası biraz detay oldu ama
çok gerek yok. Buradan almanız gereken şey inheritance. Yani başka bir şeyin üzerine inşa edebilirsiniz. Kontrat alıp başka bir kontratı baz kontrat alıp çerçeve kontrat diyebilirsiniz. O çerçevenin üzerine geliştirmeleri inheritance da yapabilirsiniz. Bu inheritance biraz derin bir konu. Biraz daha uzayabilir. Fonksiyonların inheritance'ı da mümkün. Ona daha sonra gireceğiz. Şimdiye kadarki kısım bu. Bir şey ekleyebilir miyim? Selçuk eee biliyor musunuz arkadaşlar eee di bunu sordum ama direkt daldım ben de konuya yani izin istemediğim gibi oldu. Kusura bakma. Şey inheritance kavramı ciddi anlamda teknik mülakatlarda hem sorduğumuz bir hem de gerçekten çok da değer verdiğimiz de bir soru bu arada.
Hatta şey genelde şunu da istiyoruz. Yani hani bize inheritance örneğini çizebileceğiniz anlatabileceğiniz birkaç hani örnek veriyorum işte 50 satırlı kod yazabilir misiniz dediğimiz mülakatlarımız oluyor genel anlamda sektörde. Haberiniz olsun. Yani bu arada bunu niye söyledim? Bize faydamız olsun diye aslında. Hani şu an tabii ki öyle bir şey yok da hani yine de aklınızda bulunsun. Böyle şeyler var yani hani eee pragma işte pragmanın yanına neden işte isim yazılır, şunu bunu adresin eee işte görülür olması olmaması ya da işte eee map ne durumlarda? mapping ne durumlarda kullanılır, ne durumlarda kullanılmazdan ziyade bu tarz böyle birazcık daha komplike şeyler direkt mülakat sorularıdır ki birkaç birazcık daha ilerlediğimiz zaman size başka böyle eee ipuçları da vermek istiyorum. Yani
özellikle şu aralar çünkü çok fazla mülakat geliyor bize. O yüzden onlarla da size bir şeyler alttan böyle tavsiyeler, takviyeler veririm ben size. Canım canım öğrenciler, canım arkadaşlar. Evet. Baha tabii ki yani yaparsın. Çok rahat gelirsin o aşamaya var ya muhteşem. Oo sen hemen işe alınırsın ben sana söyleyeyim. Sen sen bizden ders dinlemeye devam et değil mi Selçuk? Ondan sonra bir de farklı kaynaklar da öneriyoruz biz burada. Bir de çok uzun süreli bir eğitim olacak bu zaten aynı zamanda. Eee o konularda senin için rahat olsun inşallah. Yolunuz açık olsun. Böyle bir şey de yapabiliriz var ya bu 6 aylık sonunda Selçuk hemen bunu yazıyorum kenara. Sen de düşün bir şey de yapabiliriz. Böyle canlı eee kod analizleri yapacağız ya hani mesela hani siber ataklar gerçekleştirip hani audit
kısmında gerçekten bu görmüş olduğunuz kodtaki hataları tespit edin dediğimizde burada mesela arkadaşlar eee sizlerle böyle canlı bir mülakat deneyimi falan da yapabiliriz ki bu da bence sizlere çok aşırı faydalı olur diye düşünüyorum. Aklınıza yeni fikirler gelirse bana söylemekten çekinmeyiniz. Gönderin gelsin. Biz bunu arka planda eee organize ederiz sizin için. Aynı zamanda böyle her ikiü eğitimimden bir tanesinde bence e şey oynayabiliriz. GGSer oynayabiliriz hatırlarsanız arkadaşlar. Çok keyifli oynaması çünkü. Eee Selçuk sen oynamış mıydı? Hiç hatırlamıyorum ama dünya üzerinde bir oynadın değil mi?
Aynen. Harika. Tamam tamam. Çok özür dilerim. Böldüm biraz biraz dinlenmiş oldunuz siz de ik dakika devam edebiliriz ama bu arada zaten 2 saatte 2 bu5 saat olacak. Birazdan bitirelim. Bence sorular varsa bitirelim. E ben de yoruldum. Evet sorular kısmına gelelim. Tamam. İsteğe göre zaten şey bir sonraki arkadaşlar 2 Mayıs Cuma günü haberiniz olsun online yayınımız. Tamam mı? Bunu buraya yazıyorum. 2 Mayıs Cuma günü. 2 Mayıs Cumaya mı geliyor Selçuk ya? Eee bilmiyorum. Hemen bir çek ediyorum. Bir saniyenizi alabilir miyim? Eee 1 2 Mayıs Cumaya geliyormuş. Başvurusunu açtık mı onun arkadaşlar? Biz 2 Mayıs cumanın açtıysa ya başvuru değil de hani YouTube'dan buradan yapacağız zaten ama yine de hani başvursanız güzel olur yani
hani bizim için güzel olur. En azından ben şey yapabilir olurum yani hani böyle sizlere email atıyor olabilirim hani bundan sonraki eğitimler için vesaire de o yüzden bence bu çok önemli. Events kısmında bakıyorum. Teşekkürler Bahacığım beni dinlediğin için. Aa paylaşmışız. Oley çoktan ü kişi kaydolmuş bile. Hanginiz onlar? He he he. Kesin biri bahadır var ya. Atıyorum. Attım size şurada. Bu ikincisi. Şey, Selçuk soru var bir tane istersen alabilirsin. Ondan sonra da soruları alıp arkadaşlar 2 Mayıs için sizleri bugün akşam için veda edeceğiz.
Aynen. Eee, whileım hemen yazıp bakabiliriz while var mı diye. Keyword'lerden hemen bakıyorum. Eee, keywordte while var mı? Ya da bunu direkt şeye soralım. Eee, chat GPT'yi soralım. While döngüsü. Hadi canım. Solidity ben hiç görmedim ama vardır. Evet. Tıpkı C++'daki while döngüsünde kontrat içerisinde görüyor. Evet var ama hiç kullanmadım şimdiye kadar.
Bu arada ben hiç kullanmadım. Ha hiç acaba niye kullanılmıyor yani? Hiç bu şey gibi ya. Ben ben sadece for döngü kullanıyorum. Allah Allah diyelim. While veya for x sayılar tarzı döngüler var mı? For x sayılar. Onu anlamadım. Ha şey diyor template o yok. For x sayılar yok. Dizi kendi içerisinde gezmiyor. Dediğini anladım. Onu yapmıyor. Onun kütüphanesi konulursa yapar da dışarıdan kütüphaneyi şey yapabilirsiniz. Evet. Başka soru var mı?
Elifciğim galiba sorularımız bitti ya. Evet galiba. Geliyor. H başka sorusu olan arkadaşlarım var mı? Salih canın sağ olsun senin Salih. Şuraya ekrana şey yapayım. Salih'in şeyini vereyim. Çok sevindik. Çok iyi olmasına senin için. İnşallah diğer arkadaşlarım da aynı şeyleri düşünüyorlardır. Faydalı olmuştur. Eee, bundan sonraki eğitimlerde yine herhalde bir sonrakinde yine full solidite devam ederiz. 1 bu5 saat. Biz genelde 1 saat diyoruz ama şey 2 saat diyoruz ama 2,5 saat oluyor eğitimler arkadaşlar. Haberiniz olsun. Yani bu böyle oluyor yani. Yapacak bir şey yok. Ne yapalım? Seviyoruz sizleri.
Allah Allah. şey var ya aklıma kurtar vadisinde hani lanet olsun içimdeki bu insan sevgisine ben böyle söylediğimde hani eğitimler hep uzun sürdüğünde annemle babam bana genelde bunu WhatsApp'ta şey olarak atıyorlar da böyle emoji olarak hani öyle işte komik değildi ama Selçukla takıla takıla ondan kötü espriler kaptım sanırsam beni biraz açtın ya zirvede beni yalnız bırakmadığın için teşekkür ederim rica ediyorum aynen beni açtın yani. Boynuz kulak eyvallah. Eee çok teşekkür ediyoruz arkadaşlar katıldığınız için. Muhteşem, muhteşem, muhteşem oluyor sizlerle bir arada olmak. Başka sorularınız olursa si ödev verelim mi arkadaşlara diğer şeyler için? Dersler için yani ben şeyi kaydolsunlar. Uptr kesinlikle kaydolsunlar. Zaten Patrin eğitimlerini
izlemeleri şart. İllaki şart. Oradan devam etmeleri lazım İngilizce. Ama yapabilirsiniz. Zor değil. Eee o tarafa kesin girmeniz lazım. Solit 101'le. Oradan kesinlikle izleyin. For döngüsünde biraz çalışın. Eee, devamında struck veri tipimiz kaldı. Ona bakacağız. Eee, bir de bir kontraktan başka bir kontrat üretmeye bakacağız. Bir kontrat generate edeceğiz. Eee, Patin eğitimden bir tane şey var. Fonksiyon var. Ona bakacağız zaten. Eee, ödev ödev verelim mi? Hani mesela spesifik olarak örneğin işte şöyle bir sözleşme yazın diyelim mi mesela? Bence diyebiliriz. Hani ya dizilerle oynayın.
Şöyle söyleyeyim. Dizi yapın ve içinde oynayın. Toplayın, çıkartın. Diziye eleman ekleyin, çıkartın ve dizinin toplamını gezin. Bu kadar. Başka bir şey istemiyoruz. Kısa vadede sadece bu yeterli. Devamında zaten tamamlayacağız. Evet. Harika. Ödev olarak, kaynak paylaşımı olarak şunu veriyoruz herkese. İngilizce bu. Bunu spesifik olarak sadece yani sadece buna çalışın. Ya soyadı başka bir yerden öğrenilmez. Net söylüyorum. Doğru. Eee yani ki buradan öğrenen arkadaşlar hani ben spesifik olarak size bakın sayı olarak vereceğim. Bakın insider bir bilgi olacak. Yani nereden baksanız bakıyorum 35.000 tane kişi falan buradan öğrenmiş yani Solidity'yi hani siz düşün yani. O yüzden bu arada Audansa bayağı iyiydi ya. Ben şey Evet. Bakarlar
yani kendileri de incelerler. Bayağı araştırıcı insanlar var içeride. Tabii tabii. Çok güzel sorular geldi bugün. Yeni başladıysanız da ya çok basit zor bir şey yok. Aynı kelimeleri döndürüp döndürüp aynı fonksiyonları birkaç tane fonksiyon çeşidi var ya bunlar sizin silahlarınız. Bunları çevire çevire kullanıyorsunuz. Yeni bir şey yok. Zor bir şey de değil. En uzun kontrat işte 200 300 satılır deninecek. Öyle diyeyim. Siz öyle bilin. Aynen. O yüzden zor da değil yani. Girin bir tarafından kurcalaya kurcalaya işin içine giriyorsunuz. Böyle zor bir durumu da yok. Takır takır yaparsınız.
Takıldığınız yerlerde chat piti kullanın. Takıldığınız yerde chat pitiye sorun. Bu çok çok faydalı. O kadar da değil ya söylediti de bilmiyorum. O kadar başarılı değildi galiba. Emin değilim. Bence yani genel olarak ben beğeniyorum yani ama olabilir. Bilmiyorum sormadım. Az önce bir sorduk da çok da şey değil ama genelde gittikçe de gelişiyor. Sadece yanlış hissetmeyin. Takıl takıl ona buna şuna sorun. Şeyden de tak etkileşime girin. GPT'yi bence kullanın. Maksimum derecede yapayken net kullanmaları lazım. Aynen. Kullanalım hep birlikte. Aynen. Yani gelişiyor. Kod yazarken de çok işe yarıyor. Evet. Kaçırdığımız şeyler için. Ama audit konusunda o o o kullanamayız. Kullanmayacağız. Oralarda çok daha farklı şeyler kullanıyor olacağız. Çok heyecanlıyız oraya. Geç var ya. O kadar heyecanlıyım ki
sabırsızlıkla bekliyorum yani resmen böyle bir 3 4 5 ders falan var oraya 56 ders falan olsun. Orada çok eğleneceksiniz gerçekten. Orada çok eğleneceğinizi hissediyorum. Bana güvenin tamam mı? Aynen. Anlaştık. O zaman kendinize iyi bakın canım arkadaşlarım. Eee görüşmek üzere. 2 Mayıs'ta sizlerle birlikteyiz. Eee 24 Nisan'da İstanbul'da, 10 Mayıs'ta Ankara'da, 2 Mayıs'ta online olarak YouTube'da devam ediyoruz. Haberiniz olsun. Kendinize iyi bakın. Çok çok çok sever sizi. Güle güle güle güle. İyi akşamlar. Kapattım.
Kaşçş.