← Torna al blog

Dev Tips

Un trucchetto al giorno leva le complicazioni di torno! Piccole "scorciatoie" che possono facilitare la vita degli sviluppatori e far risparmiare tempo...e righe di codice.

134

Knowledge Crunching

2025-02-25

Scrivere codice è facile ma scrivere codice che ha senso è tutta un’altra storia. Creare un buon modello non significa solo scrivere classi e metodi: è un processo di comprensione profonda del dominio che permette di tradurre concetti complessi in codice chiaro e manutenibile. Il Knowledge Crunching è proprio questo: un processo continuo di collaborazione tra sviluppatori ed esperti di dominio, che ci aiuta a perfezionare i modelli del business e a tradurre le complessità del mondo reale in soluzioni software robuste e scalabili. Ecco come dovrebbe essere un blocco di codice con il Knowledge Crunching:

1class Order {
2  private lineItems: OrderLine[] = [];
3  private total: Money;
4  private status = OrderStatus.DRAFT;
5
6  constructor() {
7    this.total = new Money(0, 'EUR');
8  }
9
10  addProduct(product: Product, quantity: Quantity): void {
11    if (this.status === OrderStatus.CONFIRMED) {
12      throw new OrderAlreadyConfirmedError();
13    }
14
15    const lineItem = new OrderLine(product, quantity);
16    this.lineItems = [...this.lineItems, lineItem];
17    this.recalculateTotal();
18  }
19
20  private recalculateTotal(): void {
21    this.total = this.lineItems.reduce(
22      (sum, item) => sum.add(item.calculateSubtotal()),
23      new Money(0, 'EUR')
24    );
25  }
26}
133

Top-level await

2024-10-23

1// users.mjs
2const res = await fetch('https://jsonplaceholder.typicode.com/users');
3const users = res.json();
4export { users };
5
6//module.mjs
7import {users} from './users.mjs';
8
9console.log(users);
132

Using requestIdleCallback for scheduling low-priority background tasks

2024-07-22

1// Using requestIdleCallback for scheduling low-priority background tasks
2const idleCallback = () => {
3  // Perform background tasks
4  console.log('Background task executed');
5};
6
7window.requestIdleCallback(idleCallback);
131

Forced-colors

2024-05-15

1.button {
2  border: 0;
3  padding: 10px;
4  box-shadow:
5    -2px -2px 5px gray,
6    2px 2px 5px gray;
7}
8
9@media (forced-colors: active) {
10  .button {
11    /* Use a border instead, since box-shadow is forced to 'none' in forced-colors mode */
12    border: 2px ButtonText solid;
13  }
14}
130

PerformanceObserver for monitoring web performance

2024-04-05

1```
2const observer = new PerformanceObserver((list) => {
3  const entries = list.getEntries();
4  entries.forEach(entry => {
5    console.log(`Resource timing for ${entry.name}: ${entry.duration}ms`);
6  });
7});
8
9observer.observe({ entryTypes: ['resource'] });
10```

Contattaci.

Hai in mente un progetto e vorresti realizzarlo?
Sei interessato a migliorare le competenze del tuo team in ambito di programmazione e sviluppo?
Oppure vuoi semplicemente prendere prendere un caffè con noi e vedere la nostra collezione di Action Figure, allora scrivici tramite questo form.

Se, invece, vuoi far parte del team, guarda le nostre offerte di lavoro.

Questo sito è protetto da reCAPTCHA e si applicano le Norme sulla privacy e i Termini di servizio di Google.