Sobes.tech

Функционалдык программалоонун артыкчылыктары жана кемчиликтери эмне?

Senior
227

Кайда иштей баштайсыз, эгер сунуш алсаңыз:

Senior
226

INNER JOIN жана LEFT JOIN ортосундагы айырма эмнеде? Эгер оң жактагы таблицада тиешелүү сапар жок болсо, сол жактагы сапка эмне болот?

Senior
187

Команда идемпотент болсо, бул эмне дегендик?

Senior
178

Колдонуучу тизмедеги белгич менен сайттарды бекитип жана алып салуу үчүн бир же эки функцияны ишке ашырыңыз; бекитилген сайттар тизмеде жогору көрсөтүлүшү керек. Экинчи функция сиздин каалооңуз боюнча болот.

Senior
170

Неге дәл қазір компанияны өзгөртүүнү каалайсыз?

Senior
162

JavaScript/TypeScriptте || жана ?? операторлору арасындагы айырма эмнеде? Эгер retryLimit 0 деп коюлса, эмне болот?

Senior
151

Пикирди өчүрүү 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() }) Тизмени беттөө function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) }

Senior
117

Эч качан бирдиктүү тесттер жазгансызбы? Канча деңгээлде?

Senior
98

Ката тапта · TypeScript Жалган каталар Бул сегиз үзүндүнүн ар бири компиляцияланат, жайылтма карап чыгуу өтөт жана жакшы көрүнөт. Ар биринде каталар жашырылган. Ар бирине: эмне бузулат, кандай шарттарда — жана аны кантип табасыз. Үн чыгарыңыз. Биз сиздин кодду окуу ыкмаңызга кызыкдарбыз, таймерге эмес. Бардык нерсени таба албасаңыз да болот. 01 Тапшырык берүү 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} confirmed`) return id } } 02 Профилди жаңылоо app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('профилди жаңылоо ишке ашпады', err) } res.status(200).json({ status: 'сакталды' }) }) 03 Пикирди өчүрүү 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 Тизмени беттөө function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // чакырган const results = paginate(rows, page, 20) // баракча 1-ден башталат UIда 05 Мақалалар менен авторлорду жүктөө 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 Конфигурациянын алдын ала аныктамаларын чечүү interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Аты жок', } } 07 Жеңилдик жардамчысынын тесттери function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('жеңилдикти колдонуу', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 Жогорку упайларды эсептөө 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) // ... кийинчерээк, башка жерде: renderRawResults(results) // күтүлүүдө [4, 1, 9, 2]

Senior
78