Auzef Görsel Programlama 2024-2025 Final Soruları
https://lolonolo.com/2026/03/08/gorsel-programlama-2024-2025-final-sorulari/
https://lolonolo.com
Show More Show Less View Video Transcript
0:00
Herkese merhaba. Bu bölümde
0:01
bilgisayarınızdaki o her gün
0:03
kullandığınız uygulamaların mutfağına
0:05
gireceğiz. Yani bir fikir nasıl oluyor
0:07
da tıklayıp kullandığınız bir ürüne
0:08
dönüşüyor? Gelin hep birlikte adım adım
0:11
bakalım. Evet, bu soru aslında her şeyin
0:14
başlangıç noktası. Yani o her gün
0:16
kullandığınız yazılımlar var ya onlar
0:18
aslında nasıl yapılıyor? Gelin şimdi bir
0:21
uygulamanın o ilk fikirden son
0:23
kullanıcıya ulaşana kadarki serüvenine
0:26
hep beraber tanıklık edelim. Şimdi yol
0:28
haritamızda beş ana durağımız var. Önce
0:31
uygulamanın planıyla başlayacağız. Sonra
0:33
arayüzünü tasarlayacağız. Onu verilerle
0:36
daha akıllı hale getireceğiz.
0:38
Bilgisayarla konuşturacağız ve son
0:40
olarak da herkesin kullanabilmesi için
0:42
paketleyeceğiz. Hadi başlayalım. Evet,
0:45
ilk durağımız uygulamanın proje planı.
0:48
Yani her şeyin başladığı yer. Bunu şöyle
0:50
düşünün. Bir ev yapmadan önce nasıl bir
0:53
mimari plana ihtiyacınız varsa işte
0:55
harika bir uygulama için de o kadar
0:57
sağlam bir plana ihtiyacınız var. Peki
1:00
bu plan nerede tutuluyor? İşte
1:02
karşımızda çözüm gezgini ya da İngilizce
1:04
adıyla Solution Explorer. Burası
1:07
projenin adeta ana kumanda merkezi.
1:09
Bütün kod dosyaları, resimler, menüler
1:12
yani projeye dahil ne varsa hepsi burada
1:14
derli toplu bir şekilde durur. Her şeye
1:16
buradan ulaşırsınız. İşte geliştirme
1:19
sürecindeki en temel ve akıllıca
1:21
ayrımlardan biri tam da bu. Sistem diyor
1:24
ki karışıklık olmasın işleri ayıralım.
1:27
Bir tarafta uygulamanın görünümü var.
1:29
Yani düğmeler nerede duracak, pencereler
1:31
ne renk olacak gibi. Diğer tarafta ise
1:34
uygulamanın beyni. Kullanıcı o düğmeye
1:36
bastığında ne olacak? İşte bütün o
1:38
mantık, bütün o akıl bu ikinci dosyada
1:40
yazılıyor. Kısacası biri makyaj, diğeri
1:43
karakter. Planımızı yaptığımıza göre
1:46
şimdi en eğlenceli kısımlardan birine
1:48
geldik. Kullanıcı arayüzünü oluşturmak.
1:51
Yani uygulamanın vitrinini tasarlıyoruz.
1:54
Kullanıcının gözünün gördüğü, elinin
1:56
dokunduğu her şeyi şimdi inşa edeceğiz.
1:59
Şimdi bir uygulama geliştirirken ilk
2:02
düşünmeniz gereken şeylerden biri şu:
2:04
Kullanıcıyla nasıl konuşacaksınız? Ona
2:07
ne olup bittiğini nasıl anlatacaksınız?
2:09
İşte o işlem tamamlandı mesajı ya da bir
2:12
şeylerin yüklendiğini gösteren o kütük
2:14
simge. Bunlar aslında uygulamanın
2:16
sizinle iletişim kurma şekli. Bu geri
2:18
bildirimler olmadan kullanıcı kendini
2:21
kaybolmuş hisseder. İşte bu iletişimi
2:23
kurmak için kullandığımız bazı temel
2:25
araçlar. Bunları bir evin mobilyaları
2:28
gibi düşünebilirsiniz. Mesela status
2:30
trip ekranın en altında durup size
2:32
sessizce her şey yolunda gibi mesajlar
2:34
verir. Picture Box adından da
2:36
anlaşıldığı gibi resimleri göstermek
2:38
için bir çerçeve. Mask textbox ise o çok
2:41
akıllı bir kutu. Birazdan ona daha
2:43
yakından bakacağız. Bakın programlamanın
2:46
güzelliği işte böyle küçük şeylerde
2:48
saklı. Şu gördüğünüz tek satırlık kod ne
2:50
yapıyor biliyor musunuz? Resme diyor ki
2:53
sana hangi boyutta bir kutu verirsem
2:55
vereyim sen kendini ona göre esnet ve
2:58
tam olarak sığ. Bu kadar. Geliştirici
3:00
oturup tek piksel hesabı yapmak zorunda
3:03
kalmıyor. Tek bir komutta işi sisteme
3:05
devrediyor. İşte bu otomasyonun ta
3:08
kendisi. Hani az önce akıllı bir kutu
3:11
demiştik ya. İşte o mask textbox'ın
3:14
sırrı bu tabloda. Geliştiriciler bu
3:16
basit karakterleri kullanarak adeta bir
3:19
kural seti oluşturuyor. Mesela 0
3:21
koyduğunda buraya mutlaka bir rakam
3:23
girilecek demiş oluyor. L koyduğunda
3:26
buraya sadece harf girebilirsin diyor.
3:29
Böylece siz telefon numarası yazarken
3:31
yanlışlıkla harfe bassanız bile uygulama
3:33
bunu kabul etmiyor. Bu sayede hem
3:35
kullanıcı hata yapmaktan kurtuluyor hem
3:37
de uygulama arkada tertemiz verilerle
3:40
çalışıyor. Tamam. Uygulamanın dış
3:42
cephesini, vitrinini hazırladık. Harika
3:44
görünüyor. Ama şimdi duvarların arkasına
3:47
yani makine dairesine inme zamanı. Bir
3:50
binanın tesisatı ve elektriği olmadan
3:52
çalışamayacağı gibi bir uygulama da
3:55
veriler olmadan bir hiçtir. Gelin
3:57
uygulamayı asıl akıllı yapan bu kısma
3:59
bakalım. Veriyi göstermenin en şık ve en
4:02
düzenli yollarından biri işte bu. Data
4:05
grid view. Aslında hepimizin bildiği
4:07
Excel tablolarının uygulama içindeki
4:09
hali gibi. Düşünsenize binlerce
4:12
müşterinin listesi, yüzlerce ürünün
4:14
olduğu bir katalog. Bütün bu karmaşık
4:16
bilgiyi alıp böyle satırlar ve sütunlar
4:18
halinde kullanıcıya sunmak işte bu
4:20
aracın işi. Veriyi bilgiye dönüştürüyor
4:23
adeta. İşte detaylar burada devreye
4:25
giriyor. Geliştirici ufacık bir ayarla
4:29
sizin uygulamayı kullanma şeklinizi
4:31
tamamen değiştirebilir. Mesela full row
4:33
select ayarı açık olduğunda bir
4:35
müşterinin adının üzerine tıkladığınız
4:37
anda o müşteriye ait bütün satır seçili
4:40
hale gelir. Tek uğraşmanıza gerek
4:43
kalmaz. Multiselect ile de birden fazla
4:45
kaydı aynı anda seçebilirsiniz. İşte bu
4:48
küçük ama akıllıca dokunuşlar iyi bir
4:50
uygulamayı harika bir uygulamaya
4:52
dönüştürür.
4:54
Peki ekranda gördüğümüz bu veriler
4:56
uygulama çalışırken nerede duruyor? Yani
4:59
onların evi neresi? İşte bu veriler
5:02
bilgisayarın belleğinde data table adını
5:04
verdiğimiz sanal tablolarda geçici
5:06
olarak misafir ediliyor. Yani program
5:09
veri tabanından bilgiyi alıyor. Bu
5:11
geçici tabloya yüklüyor ve ihtiyacı
5:13
oldukça buradan kullanıyor. Veriyle
5:16
çalışırken en önemli şeylerden biri de
5:18
onun bütünlüğünü yani doğruluğunu
5:20
korumaktır. İşte constraints yani
5:22
kısıtlamalar tam olarak bunu yapıyor.
5:25
Bunlar veri tabanının kapısındaki
5:26
görünmez güvenlik görevlileri gibidir.
5:28
Mesela bir kural koyarsınız. Dersiniz ki
5:31
her kullanıcının kimlik numarası
5:32
benzersiz olacak. Asla iki kişi aynı
5:35
numarayı alamaz. Böylece biri
5:37
yanlışlıkla aynı numarayı girmeye
5:38
çalıştığında sistem daha en başından dur
5:41
bakalım der ve hatayı engeller.
5:43
Sorunları ortaya çıkmadan çözmek bu olsa
5:45
gerek. Harika. Uygulamamız artık kendi
5:48
içinde çalışıyor. Ama iyi bir uygulama
5:51
sadece kendi penceresine hapsolmaz. dış
5:53
dünyayla yani çalıştığı bilgisayarın
5:56
kendisiyle de konuşabilmeli. Dosyalara
5:58
erişmeli, sürücüleri görmeli. İşte şimdi
6:02
o pencerenin dışına çıkıyoruz. İşte
6:04
karşınızda uygulamanın bilgisayarla
6:07
konuştuğu dilden birkaç örnek komut.
6:09
Mesela driveinfo.getdrives
6:11
dediğinizde uygulama gidip bilgisayara
6:13
hey bana C, D sürücülerini, takılı USB
6:17
bellekleri, ne varsa hepsini bir listele
6:19
der. Ya da Pet.change change
6:21
extension'la bir metin dosyasının
6:23
uzantısını anında değiştirebilir.
6:25
Contains ise bir metnin içinde
6:27
aradığınız bir kelimenin olup olmadığını
6:29
saniyesinde bulur. Bunlar uygulamanın,
6:31
bilgisayarın derinliklerine inmesini
6:33
sağlayan anahtarlar gibidir. Peki her
6:36
şey her zaman yolunda gitmez, değil mi?
6:38
Diyelim ki programınız bir dosyayı
6:40
açmaya çalışıyor ama o dosyanın olması
6:43
gereken klasör silinmiş. Yani olmayan
6:46
bir adrese gitmeye çalışıyor. İşte bu
6:48
programcıların en sık karşılaştığı
6:50
durumlardan biridir. Ne olur o zaman?
6:52
Program çöker mi? Hayır, çökmez. Yani en
6:56
azından iyi yazılmış bir program çökmez.
6:58
Çünkü sistem böyle bir durumla
6:59
karşılaştığında bir istisna fırlatır.
7:02
Yani bir alarm verir. Bu özel alarmın
7:04
adı Directory Not Found Exception.
7:07
Profesyonel bir geliştirici bu alarmı
7:08
önceden bekler. Alarm çaldığı anda
7:11
programı çökertmek yerine onu yakalar ve
7:13
kullanıcıya üzgünüm aradığınız klasörü
7:16
bulamadım gibi kibar bir mesaj gösterir.
7:18
İşte amatörle profesyonel arasındaki
7:20
fark bu tür durumlarda ortaya çıkar. Ve
7:23
geldik son durağımıza. O kadar emek
7:26
verdik, uygulamamızı tasarladık,
7:28
kodladık, hatalarını bile düzelttik.
7:31
Artık o sadece bizim bilgisayarımızda
7:32
yaşayan bir program değil. onu dünyaya
7:35
sunma yani paketleyip başka insanların
7:37
da kullanabilmesini sağlama zamanı. Hani
7:40
bir program kurarken sürekli ileri ileri
7:43
kabul ediyorum bitir diye tıkladığımız o
7:46
kurulum ekranları var ya işte o
7:48
profesyonel görünümlü yükleyicileri yani
7:51
MSI dosyalarını oluşturmak için
7:53
geliştiriciler özel bir eklenti
7:55
kullanıyor. Bu eklenti sayesinde
7:58
karmaşık bir süreci kullanıcı için
8:00
birkaç tıklamaya indirgiyorlar. Kurulum
8:02
paketini hazırlarken verilen kararlardan
8:05
biri de bu. Bakın tek bir satır install
8:08
all users eş true bu ne demek? Eğer bu
8:11
ayar true ise program bilgisayardaki
8:13
bütün kullanıcı hesapları için kurulur.
8:15
Yani siz kurarsınız ama ailenizden başka
8:18
biri kendi oturumunu açtığında o da
8:20
programı kullanabilir. Eğer false
8:22
olsaydı program sadece sizin
8:24
kullanıcınıza özel olurdu. İşte bu kadar
8:26
basit ama önemli bir ayar. Tabii bir de
8:29
işin daha modern ve basit bir yolu var.
8:31
Clicons adı üstünde tek tıkla kurulum.
8:35
Bu yöntemde geliştirici programını bir
8:37
web adresine yüklüyor. Siz de o adrese
8:39
gidip bir linke tıklıyorsunuz ve program
8:42
sihirli bir şekilde kuruluyor. En güzel
8:44
yanı ne biliyor musunuz? Program her
8:46
açıldığında yeni bir güncelleme olup
8:48
olmadığını kendi kendine kontrol ediyor.
8:51
Varsa size sormadan kendini güncelliyor.
8:53
Hem kullanıcı için hem de geliştirici
8:55
için hayatı çok kolaylaştıran bir
8:57
yöntem. İşte böyle. Bir fikrin nasıl
9:00
somut bir masaüstü uygulamasına
9:02
dönüştüğünün ana hatlarını gördük. Önce
9:04
bir plan yaptık. Sonra vitrinini
9:06
tasarladık. Onu verilerle akıllandırdık.
9:09
Bilgisayarla konuşturduk ve en sonunda
9:11
dünyaya açılmaya hazır hale getirdik.
9:14
Artık temel yol haritasını biliyorsunuz.
9:16
Peki şimdi bu planla siz olsaydınız
9:19
hangi fikrinizi hayata geçirirdiniz? Ne
9:21
inşa ederdiniz?

