Dopo aver esposto allo sviluppo di Windows App Store per un mese, comincio a pensare che il modello di programmazione async
/ await
faccia più male che bene. Rende complicata la cosa semplice.
Fai un esempio, creazione di cartelle. In Java o Desktop .NET, posso semplicemente fare
Java
public Constructor()
{
new File("c:\folder").mkdirs();
System.out.println("I am pretty sure c:\folder is ready now");
}
Desktop .NET
Constructor()
{
System.IO.Directory.CreateDirectory("c:\folder");
Console.WriteLine("I am pretty sure c:\folder is ready now");
}
Ma quando arriva a
App Store Windows .NET
Constructor()
{
// Damm it! Another async function? I don't need aysnc!
Windows.Storage.ApplicationData.Current.LocalFolder.CreateFolderAsync("c:\folder", CreationCollisionOption.OpenIfExists);
// I am not sure c:\folder is ready right now!
// OK. I know I can use ContinueWith. No no no. I don't want.
// Why I have to use ContinueWith with such a simple operation?
}
Quindi, la mia domanda è: trovi il nuovo modello di programmazione async
/ await
in Windows App Store,
- Migliora la tua produttività?
- Semplifica la programmazione?
Per me, io no! Forse mi mancano alcune tecniche utili.
Lo so, Microsoft dice, ci aiuta a scrivere codice UI reattivo.
Ma direi, No, grazie! Hey guarda, il mio codice è già in codice non UI!
La maggior parte del mio codice operativo corrente è abbastanza veloce e non blocca l'interfaccia utente. Quando il mio codice operativo non è abbastanza veloce, mi sento piuttosto a mio agio nel far funzionare quei codici operativi lenti in Thread / Task separati.
Costringendomi a utilizzare async
/ await
di cui non ho bisogno, rende solo più complicato il mio codice.
Messaggio a Microsoft : posso supplicarti, oltre alle funzioni asincrone, di fornire una serie di funzioni non asincrone, per favore? Ho già sviluppato la mia abitudine di eseguire il codice nel thread non dell'interfaccia utente. Prometto che continuerò a fare in modo che l'app per Windows funzioni senza problemi come iOS:)