Go'da süreçler, iş parçacıkları ve goroutine'ler arasındaki fark nedir?
Golang
Koşul 3 varlık vardır: kullanıcı, sohbet, mesaj • Kullanıcının adı ve kayıt tarihi vardır • Sohbetin adı ve oluşturulma tarihi vardır • Mesajın metni, yazarı ve oluşturulma tarihi vardır • Bir kullanıcı aynı anda birden fazla sohbette bulunabilir • Mesaj zorunlu olarak bir sohbete aittir, aynı anda birden fazla sohbete ait olamaz • Alanı tablo şeklinde tanımlamak gerekir -- dağıtılmış -- message_count sohbetlerde 100 ile sınırlandırılmış --getShard(zaman dilimi) -> shard_id -> 1 --getShard(zaman dilimi) -> shard_id -> 2 --shard1 [1..100] --shard2 [101..200] CREATE TABLE users ( id int PRIMARY KEY, name varchar(255) NOT NULL, reg_at TIMESTAMP NOT NULL DEFAULT NOW() ); CREATE TABLE chats ( id int PRIMARY KEY, name VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT NOW(), message_count int NOT NULL CHECK <= 100 ); CREATE TABLE user_chats ( user_id int not null REFERENCES users(id), chat_id int NOT NULL REFERENCES chats(id), PRIMARY KEY (user_id, chat_id) ); CREATE TABLE messages ( id int PRIMARY KEY, chat_id int NOT NULL REFERENCES chats(id), author_id int NOT NULL REFERENCES users(id), created_at TIMESTAMP NOT NULL DEFAULT NOW(), text TEXT NOT NULL );
Proje hakkında genel olarak bahset — bu son kullanıcı için neydi?
Kullanıcı şifreleriyle bir veritabanımız var, şifreler hash'lenmiş durumda (hashPassword fonksiyonu ile), ve şifrelerde kullanılabilecek karakterler kümesi de biliniyor (alphabet değişkeni). Görevimiz, bilinen hash'e göre şifreyi geri almak için RecoverPassword fonksiyonunu uygulamaktır ve TestRecoverPassword'un başarılı olmasını sağlamaktır. Temel gereksinimler: Herhangi bir yöntem kullanılabilir package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func RecoverPassword(h []byte) string { return "" } func hashPassword(in string) []byte { h := md5.Sum([]byte(in)) return h[:] } func main() {
Linux'ta bir süreci nasıl öldürürüz? kill pid işe yaramazsa ne yapmalı?
10'dan fazla kitabı olan yazarları göstermek için SQL sorgusu yazın (tablolar: yazarlar, kitaplar, çoktan çoğa ilişki)
Go'da yarış durumu (race condition) nedir? Bir örnek verin.
3 varlık vardır: kullanıcı, sohbet, mesaj • Kullanıcının adı ve kayıt tarihi vardır • Sohbetin adı ve oluşturulma tarihi vardır • Mesajın metni, yazarı ve oluşturulma tarihi vardır • Kullanıcı aynı anda birden fazla sohbette bulunabilir • Mesaj zorunlu olarak sohbete aittir ve aynı anda birden fazla sohbete ait olamaz • Konu alanını tablolar şeklinde tanımlamak gerekir
PostgreSQL'de EXPLAIN ve EXPLAIN ANALYZE nedir, aralarındaki fark nedir?
Çözmüş olduğun ilginç/zorlu teknik bir görev hakkında anlat
En çok hangi veritabanlarıyla çalıştınız?
En sık hangi yığınla çalıştınız?
Kod incelemesi: Go'da mutex ile önbellek. Problemleri bulun ve geliştirmeler önerin. Koşul: okuma/yazma yükü 80/20.
Hangi HTTP yöntemleri var? Bunlardan hangileri idempotenttir?
ana paket import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ŞifreyiGeriAl(h []byte) string { return "" } func şifreHashle(girdi string) []byte { h := md5.Sum([]byte(girdi)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := şifreHashle(exp) act := ŞifreyiGeriAl(h) if act != exp { fmt.Printf("Hata: beklendi %q, alındı %q\n", exp, act) ok = false } } if ok { fmt.Println("Tüm testler başarıyla geçti") } }
HTTP isteği ve yanıtının yapısını açıklayın. Yanıt kodları nasıl sınıflandırılır?
package main import ( "crypto/md5" "fmt" ) var alphabet = []rune{'a', 'b', 'c', 'd', '1', '2', '3'} func ParolayıGeriAl(h []byte) string { return "" } func hashParola(i string) []byte { h := md5.Sum([]byte(i)) return h[:] } func main() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashParola(exp) act := ParolayıGeriAl(h) if act != exp { fmt.Printf("Hata: beklendi %q, alındı %q\n", exp, act) ok = false } } if ok { fmt.Println("Tüm testler başarıyla geçti") } } Kodun doğru çalışması için giriş noktası -- main fonksiyonu main paketinde Görev: MD5 hash'inden orijinal şifreyi, verilen alfabeden karakterler içeren, geri yükleyen fonksiyonu implement edin.
Kubernetes'ta yeni sürüm dağıtımı sırasında Go servisini graceful shutdown nasıl gerçekleştirirsiniz?
Neden yeni teklifleri değerlendiriyorsun? Aktif mi yoksa pasif mi arıyorsun?
Şu anda ne istiyorsun — yeni işten beklentilerin neler?