Sobes.tech

Node.js

Wat zijn de voordelen en nadelen van functioneel programmeren?

Senior
227

Wanneer kunt u beginnen met werken als u een aanbieding ontvangt?

Senior
226

Wat is het verschil tussen INNER JOIN en LEFT JOIN? Wat gebeurt er met de rij uit de linker tabel als er geen overeenkomstige rij in de rechter tabel is?

Senior
186

Wat betekent het dat een team idempotent is?

Senior
178

Implementeer een of beide functies in de toepassing: een gebruiker kan sites vastpinnen en losmaken met een pictogram in de lijst; vastgepinde sites moeten bovenaan de lijst worden weergegeven. De tweede functie is optioneel naar jouw inzicht.

Senior
169

Waarom wil je nu van bedrijf veranderen?

Senior
162

Wat is het verschil tussen de || operator en de ?? operator in JavaScript/TypeScript? Wat gebeurt er als retryLimit op 0 wordt gezet?

Senior
151

Verwijder een opmerking 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() }) Pagineren van een lijst function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) }

Senior
116

Heb je ooit unittests geschreven? In hoeverre?

Senior
98

Vind de fout · TypeScript Sluwe fouten Elk van deze acht snippets compileert, passeert een informele review en ziet er goed uit. Elk verbergt een fout. Voor elk: vertel ons wat breekt, onder welke omstandigheden — en hoe je het zou vangen. Denk hardop. We zijn geïnteresseerd in hoe je code leest, niet in een stopwatch. Het is prima niet alles te raden. 01 Plaatsen van een bestelling 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} bevestigd`) return id } } 02 Bijwerken van een profiel app.post('/profile', async (req, res) => { const profile = parseProfile(req.body) try { await db.profiles.update(req.user.id, profile) } catch (err) { logger.warn('profiel bijwerken mislukt', err) } res.status(200).json({ status: 'opgeslagen' }) }) 03 Verwijderen van een commentaar 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 Pagina van een lijst function paginate<T>(items: T[], page: number, pageSize: number): T[] { const start = page * pageSize const end = start + pageSize return items.slice(start, end) } // aanroeper const results = paginate(rows, page, 20) // pagina begint bij 1 in de UI 05 Artikelen laden met auteurs 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 Configuratie standaardwaarden oplossen interface Settings { retryLimit?: number displayName?: string } function resolveConfig(s: Settings) { return { retryLimit: s.retryLimit || 3, displayName: s.displayName || 'Anoniem', } } 07 Discount helper testen function applyDiscount(price: number, percent: number): number { return price - price * (percent / 100) } describe('applyDiscount', () => { it('past een korting toe', () => { const spy = vi.fn().mockReturnValue(90) const result = spy(100, 10) expect(result).toBeDefined() expect(result).toBe(90) }) }) 08 Top scores berekenen 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) // ... later, ergens anders: renderRawResults(results) // verwacht [4, 1, 9, 2]

Senior
78