İşinde neden bir yöneticiye ihtiyacın var? Ne işe yarar?
Golang
Hash tablosu nasıl çalışır? Ekleme ve okuma karmaşıklığı nedir? Go'da uygulama özellikleri.
İki şirket veya iki takımdan seçim yapman gerekse, nelere dikkat eder ve nasıl seçerdin?
Hangi takımla çalışmak istediğin hakkında bir fikrin var mı? Nasıl bir takım olmalı?
Uzun süre yaptığınız ve sonunda uygulanmayan veya yığına atılan bir şey oldu mu?
Takımda kod incelemesi sıklıkla nasıl yapılıyordu?
Kodu doğru şekilde çalıştırmak için: giriş noktası -- main paketindeki main fonksiyonu 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() { tests := []string{"a", "12", "abc333d"} ok := true for _, exp := range tests { h := hashPassword(exp) act := RecoverPassword(h) if act != exp { fmt.Printf("Hata: beklenen %q, alınan %q\n", exp, act) ok = false } } if ok { fmt.Println("Tüm testler başarıyla geçti") } }
Go'da süreçler, iş parçacıkları ve goroutine'ler arasındaki fark nedir?
SELECT * c.id, -- tüm kullanıcılar için isim ($1) ile tüm sohbetleri seç where text > 'abc'
Şu anda daha çok ne isteniyor — ürün geliştirme mi yoksa platform geliştirme mi?
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 );
Veritabanı çoğaltması nedir ve ne için kullanılır? Hangi sorunlar ortaya çıkabilir?
Sharding nedir ve ne için kullanılır? Taksi servisi tabloları (sürücüler, müşteriler, siparişler) için sharding anahtarı nasıl seçilir?
Linux'ta bir süreci nasıl öldürürüz? kill pid işe yaramazsa ne yapmalı?
HTTPS nedir? HTTP'den nasıl farklıdır? 'Orta adam' saldırısına karşı nasıl korur?
Proje hakkında genel olarak bahset — bu son kullanıcı için neydi?
PostgreSQL'de EXPLAIN ve EXPLAIN ANALYZE nedir, aralarındaki fark nedir?
Go'da slice nasıl içten çalışır? append fonksiyonu nasıl çalışır?
Bir mesajlaşma uygulaması (Slack, Teams, Mattermost) için arka uç mimarisini tasarlamak gerekiyor. Gereksinimler ve kısıtlamalar: Sadece 1x1 sohbetler, grup sohbetleri yok Sadece metin mesajları, ekler olmadan Hizmet internet üzerinden erişilebilir Sistem içinde 10.000 kullanıcıya kadar Mesajlar hızlı bir şekilde, birkaç saniye içinde teslim edilmelidir Mesajların sırası korunmalı, tekrar edilmemeli Sohbet geçmişine kaydırmak mümkün olmalı, yani mesajlar saklanmalı İstemciler mobil cihazlar, tasarımı gerekmez Kimlik doğrulama tasarımı gerekmez
Go'da yarış durumu (race condition) nedir? Bir örnek verin.