Finisky Garden

NLP, 软件工程, 产品设计

简介

面向对象软件设计中,如何使软件易读、易维护和灵活适应需求是一个永恒的话题。SOLID原则即为大家在概念上指明了我们应如何达到这些设计目标。相较于设计模式,SOLID是高层次的抽象思想指导,可以说具体的设计模式是SOLID原则的实现。

在具体讨论这些原则之前,需要说明SOLID并不是软件设计中必须遵从的铁律,落地的软件开发还需要根据实际需求进行折衷与取舍。在我看来,软件架构与设计并不完全是技术,而更像是艺术。一个巧夺天工的设计常令人拍案叫绝,生搬硬套地应用所谓设计原则只能是弄巧成拙。

阅读全文 »

简介

C# 5引入了async/await异步编程模型,旨在进一步简化异步编程的难度,让异步执行的代码看起来像同步代码一样简洁和容易理解。但初学者往往会将此异步编程模型与多线程编程模型混淆,以致引起一些不必要的错误如死锁或性能损失。

简而言之,Task是对异步操作的抽象,而非对线程的抽象。 可以认为await关键字暂时释放了线程控制权给界面或主线程,而待较为耗时的异步操作完成之后继续执行下面的代码。一般来说,此处所谓的释放控制权并不一定另起一个线程进行异步操作,这也是许多新接触async/await关键字的开发者最容易疑惑的地方。

阅读全文 »
0%