Fonksiyonel programlamanın avantajları ve dezavantajları nelerdir?
Node.js
Bir teklif alırsanız ne zaman çalışmaya başlayabilirsiniz?
INNER JOIN ve LEFT JOIN arasındaki fark nedir? Sağ tablodaki karşılık gelen satır yoksa sol tablodaki satırla ne olur?
Bir ekibin idempotent olması ne anlama gelir?
Uygulamada bir veya her iki fonksiyonu uygulayın: bir kullanıcı, listedeki simgeyle siteleri sabitleyip kaldırabilir; sabitlenen siteler listenin üstünde gösterilmelidir. İkinci fonksiyon, sizin takdirinize bağlı olarak isteğe bağlıdır.
Neden şu anda şirketi değiştirmek istiyorsunuz?
JavaScript/TypeScript'te || operatörü ile ?? operatörü arasındaki fark nedir? retryLimit 0 olarak ayarlanırsa ne olur?
Bir yorumu sil app.delete('/comments/:id', requireAuth, async (req, res) => { const comment = await db.comments.findById(req.params.id) if (!comment) { return res.status(404).end() } await db.comments.delete(comment.id) res.status(204).end() }) Bir listeyi sayfalamak function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) }
Hiç birim testi yazdınız mı? Hangi ölçüde?
Hata bul · TypeScript Kurnaz Hatalar Bu sekiz parçanın her biri derlenir, rastgele bir incelemeden geçer ve iyi görünür. Her biri bir hata gizler. Her biri için: neyin bozulduğunu, hangi koşullarda — ve nasıl yakalayacağınızı söyleyin. Yüksek sesle düşünün. Kodunuzu nasıl okuduğunuzla ilgileniyoruz, bir kronometreyle değil. Her şeyi doğru yapmanız gerekmez. 01 Sipariş verme interface Notifier { send(to: string, message: string): Promise<void> } class OrderService { constructor(private readonly notifier: Notifier) {} async placeOrder(order: Order): Promise<OrderId> { const id = await this.repo.save(order) this.notifier.send(order.customerEmail, `Order ${id} onaylandı`) return id } } 02 Profil güncelleme app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('profil güncelleme başarısız', err) } res.status(200).json({ status: 'kaydedildi' }) }) 03 Yorum silme app.delete('/comments/:id', requireAuth, async (req, res) => { const comment = await db.comments.findById(req.params.id) if (!comment) { return res.status(404).end() } await db.comments.delete(comment.id) res.status(204).end() }) 04 Liste sayfalaması function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // çağırıcı const results = paginate(rows, page, 20) // sayfa UI'da 1'den başlar 05 Makaleleri yazarlarıyla yükle async function loadArticlesWithAuthors(): Promise<ArticleView[]> { const articles = await db.query('SELECT * FROM articles WHERE published = true') const views: ArticleView[] = [] for (const article of articles) { const author = await db.query('SELECT * FROM users WHERE id = $1', [article.authorId]) views.push({ ...article, author: author[0] }) } return views } 06 Varsayılan yapılandırma değerlerini çözümleme interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Anonim', } } 07 İndirim yardımcısını test et function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('bir indirimi uygular', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 En yüksek skorları hesapla function topScores(scores: number[], take = 3): number[] { return scores.sort((a, b) => b - a).slice(0, take) } const results = [4, 1, 9, 2] const podium = topScores(results) // ... daha sonra başka bir yerde: renderRawResults(results) // beklenen [4, 1, 9, 2]