云时代的.NET

 

编程语言从最初的0101机器码到汇编语言再到面向对象的编程,不断的发展,整个发展趋势呈现高内聚、低耦合、可重用、可理解的特色。最先编程是用机器码,人的大脑不像电脑,没法处理0101;后来汇编语言仍是太费解,又出现了高级语言;而后由于咱们须要更加接近人类语言的方式描述问题,开始出现结构化编程或者模块化编程的方式;但咱们要面对的问题仍是太复杂,因此就须要把他切割成小问题,即模块化;模块化出现以后,咱们又开始追求高内聚低耦合,因人脑仍然没有办法思考太多的模块之间错综复杂的关系,因此须要高内聚低耦合,分层次的看待这些问题;但就算把这些功能都充分的去模块化、高内聚低耦合,发现数据流仍是太复杂了,因此须要把数据也给高内聚低耦合,这个时候咱们开始去作面向对象的编程,当面向一个对象的时候编程就会比较高效。面向对象就是帮助咱们把数据对数据的操做分装到模块里面,同时提供新的思考问题的方式,这样子咱们原本只是比较简单的大脑,竟然一会儿就能够驾驭很是复杂的业务逻辑,作很庞大的软件系统。面试

目前咱们发展出了23种设计模式,发展出CS、BS、MVC、MVP各类各样神奇的架构模式以后,开始用这些概念“吵架”,或者作成面试题。整个发展的路线很明显的趋势是:不断地追求更好的高内聚低耦合。相信可预见的将来仍然会继续去寻找更好的一个高内聚低耦合的编程模式,咱们老是在追求更好的可重用性,尽可能地减小重复的工做。近几年你们都在讨论的微服务,微服务面对系统的时候,能不能用不少重复自治的子系统来完成。这些子系统应该能够独立于大系统独立存在,每个子系统应该能够管理好本身、保证本身是健壮的、可处理好异常状况、面对压力时候扩容负载均衡、没有压力时应该缩容。同时子系统无需担忧被用,被越多的使用方使用,越说明该子系统有很好的可重用性,使用量越大越说明可能会产生规模效应,那就可用更低的平均成原本提供更好的服务。编程

讨论微服务时,以前咱们仅仅是在讨论一个系统怎么被拆成几个微服务,而后再用新形式来作新的系统。但这样作与之前作的模块化编程毫无区别。在云时代基于微服务的设计理念开发软件,首先要考虑的是有没有一个现成优秀的云服务能够做为一个系统须要的微服务,直接可用,好比图片上传、下载、裁剪、缩放等功能;若是没有,那系统须要的服务,把它开发出来有没有可能变成一个通用的服务,而后开放出去,这样的话除了有可能去交付系统以外,还可能经过售卖个人微服务获利。设计模式

软件开发历史上走过告终构化、面向对象,还有各类各样的开发模式,这些全部的发展模式共同的发展方向是愈来愈高的高内聚低耦合,愈来愈好的可重用性,愈来愈容易被咱们的大脑理解。在云时代,微服务是符合这三个大方向的全新软件开发模式。微信

云时代的云服务公司,它们的核心业务和面临的问题就是今天这些纯粹的技术问题,除了要可以解决并封装成服务,还须要不断的下降成本和优化效率,而在云上的下降成本和优化效率这是真正意义上的技术价值的直接体现。亚玛逊可以连续 降价来阻止竞争对手进入,正是技术综合实力的体现,将来必然只有少数云服务公司可以把提供服务的成本控制在自由市场竞争的价格之下。架构

云时代咱们须要采用新平台来革新咱们的软件开发模式,做为一个走过16年历史的.NET, 在2014年顺应时代要求自我刷新,推出的开源跨平台的.NET Core, 就是为云原生应用的开发而准备的平台,.NET Core相较于他的哥哥.NET的优点也正是咱们很容易的使用C# 语言去构建高内聚低耦合的系统。借助于K8S,service fabric, 咱们很容易构建一个.NET Core的服务。最近结合.NET Core和k8s 容器服务在腾讯云上制做了一个教程 《.NET 微服务实战 — 微信公众号开发( https://cloud.tencent.com/developer/edu/major-100017)》,教程里例子-公众号开发虽然简单,我只是使用这个简单例子来阐述一个简单的问题,云时代的.NET 是怎么样的,咱们要怎么样使用.NET Core。负载均衡

相关文章
相关标签/搜索