编程语言从最初的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。

云时代的.NET的更多相关文章

  1. ZeroMQ:云时代极速消息通信库

    ZeroMQ:云时代极速消息通信库(大规模|可扩展|低成本|高效率解决之道,大规模分布式|多线程应用程序|消息传递架构构建利器) [美]Pieter Hintjens(皮特.亨特金斯)著   卢涛 李 ...

  2. 云时代基础设置自动化管理利器: Chef

    云时代的到来势不可挡.尤其作为程序员,我们每天或多或少的直接或间接的使用者各种云服务.云平台有很多种,如云软件(SaaS, Software as a service).云平台(PaaS, Platf ...

  3. OneAPM:打造云时代的应用性能管控平台

    在2015年大连市CIO信息化年会的现场,记者与OneAPM东北区总经理佟维针对云时代的企业系统应用性能的管理控制进行了简短交流.北京蓝海讯通科技股份有限公司,即OneAPM是中国基础软件领域的新兴领 ...

  4. ibm云时代的转型

    好几个月了,有两个说法很流行. 第一个说法,是老有人嚷嚷思科快被SDN整趴下了:第二个说法,是老有人嚷嚷IBM在云计算时代完全落后了,要倒下了. 刚开始我还跟有些人辩论: 1.裁员是西方企业常用的战略 ...

  5. 西安活动 | 4月20日「拥抱开源,又见.NET :云时代 • 新契机」

    云计算日渐兴起,成为提升企业效率和生产力的最终解决方案,而云时代也为软件开发模式带来了翻天覆地的变化.可以说 .NET Core就是这个时代催生的产物.自2016年 .NET Core 1.0 发布以 ...

  6. 重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准

    重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准 11 月 29 日,CNCF containerd 社区正式宣布:两位阿里巴巴工程师正式获得 containerd ...

  7. SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?

    刚刚过去的在巴塞罗那举行的2019 SAP TechEd,SAP照例向全球广大的SAP生态圈从业者们传达了一些重要的信息,其中一条为:Building Extensions for the Intel ...

  8. 论云时代最经济的APM工具的姿势

    阿里云于大概两月前商业化了一款APM产品 ARMS ,正式填补了 APM 上的云上监控的空白.那么作为阿里云官方 APM 工具,ARMS 和其他传统厂商的 APM 服务相比有什么特点呢? 通过和国内其 ...

  9. 云时代IDC自动化运维的几大神器

    云时代IDC自动化运维的几大神器 2016年09月18日 10:27:41 天府云创 阅读数:1715   版权声明:本文为EnweiTech原创文章,未经博主允许不得转载. https://blog ...

随机推荐

  1. Oracle-13:Oracle中的表分区

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客记录了表分区 表分区的含义: 典型的拿空间换时间的案例! 表分区对一张表进行分区,分区之后表中的数据存 ...

  2. SSM-SpringMVC-19:SpringMVC中请求和响应的乱码解决

     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 配置一道拦截器即可解决乱码 配置方式如下: 在web.xml中: <!--过滤器处理乱码--> ...

  3. How to set spring boot active profiles with maven profiles

    In the previous post you could read about separate Spring Boot builds for a local development machin ...

  4. web安全-XSS攻击及防御

    XSS攻击的原理 xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻 ...

  5. Android 自定义ViewGroup手把手教你实现ArcMenu

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37567907 逛eoe发现这样的UI效果,感觉很不错,后来知道github上有这 ...

  6. python 3.6 lxml标准库lxml的安装及etree的使用注意

    据我所知,python 3.5之后的lxml模块里面不再包含etree,那么要怎么解决这个问题呢? lxml模块下的etree函数的使用问题,部分lxml模块不再支持etree方法,因此只能想办法下载 ...

  7. 【深度学习系列】PaddlePaddle垃圾邮件处理实战(一)

    PaddlePaddle垃圾邮件处理实战(一) 背景介绍   在我们日常生活中,经常会受到各种垃圾邮件,譬如来自商家的广告.打折促销信息.澳门博彩邮件.理财推广信息等,一般来说邮件客户端都会设置一定的 ...

  8. 用Python写WebService接口并且调用

    一.用ladon框架封装Python为Webservice接口 另用soaplib实现请看:    http://www.jianshu.com/p/ad3c27d2a946 功能实现的同时,希望将接 ...

  9. 【BZOJ 5222】[Lydsy2017省队十连测]怪题

    题目大意: 传送门 给一个长度为$n(n<=200)$的数列$h$,再给$m$个可以无限使用的操作,第$i$个操作为给长度为花费$c_i$的价值给长度为$l_i$的数列子序列+1或-1,求将数列 ...

  10. 【二分+容斥+莫比乌斯反演】BZOJ2440 完全平方数

    Description 求第k个没有完全平方因子的数,k<=1e9. Solution 这其实就是要求第k个µ[i](莫比乌斯函数)不为0的数. 然而k太大数组开不下来是吧,于是这么处理. 二分 ...