现在位置: 首页 > 架构设计 > 文章
2020年01月16日 架构设计 ⁄ 共 7695字 评论关闭
  在分布式系统被广泛应用的今天,服务有可能分布在网络中的各个节点中。因此,服务之间的调用对分布式系统来说,就显得尤为重要。   对于高性能的 RPC 框架,Netty 作为异步通信框架,几乎成为必备品。例如,Dubbo 框架中通信组件,还有 RocketMQ 中生产者和消费者的通信,都使用了 Netty。今天,我们来看看 Netty 的基本架构和原理。   Netty 的特点与 NIO   Netty 是一个异步的、基于事件驱动的网络应用框架,它可以...
阅读全文
2020年01月15日 架构设计 ⁄ 共 3230字 评论关闭
  最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的   if (msgType = "文本") {   // dosomething   } else if(msgType = "图片") {   // doshomething   } else if(msgType = "视频") {   // doshomething   } else {   // doshomething   }   就是根据消息的不同类型有不同的处理策略,每种消息的处理策略代码都很长,如果都放在这种if else代码快中...
阅读全文
2020年01月15日 架构设计 ⁄ 共 2282字 评论关闭
  有时候需要将一个同步的逻辑打断,然后在需要的时候再接着回来执行,就是将一个同步逻辑改成一个lazy的producer。这种功能的解决方案一般是这样:如果是循环,则采用状态机来改写;如果是递归,则采用栈+状态机来改写。无论怎样,都不是最简单的方法,采用协程才是最简单的方法。这也是本文要介绍的co_yield的功能。   举个例子,有一个简单的排序算法,它是用循环实现的:   void Sort(vector& v)   {   for(i...
阅读全文
2020年01月14日 架构设计 ⁄ 共 1996字 评论关闭
  为一个软件开发者,最大的挑战就是在不断涌现的新技术中进行取舍,持续学习是从事这一行业的必备技能。在这个领域里,技术更新最快地又非前端莫属了。各种框架的出现、版本的更新此起彼伏,呈现出一派欣欣向荣之景。   在项目中必不可少的便是前端,它是系统的门面、是用户对系统最直接的体验,颜值高低也是决定系统好坏的关键,那么作为一名软件开发攻城狮,怎么能放弃这片蓝海呢?没准了解了解前端的世界,就能多一项技...
阅读全文
2020年01月14日 架构设计 ⁄ 共 2715字 评论关闭
  记得很久以前,还在jQuery统治前端开发的年代,我曾在网上无意中看到一个Canvas落雪效果的动画算法,非常的简单而且高度逼真,以至于多年过去我再也没有能发现任何其他类似动画能实现与之媲美的效果。   2020元旦刚过,趁着工作不忙的间歇,凭着一些对该算法的记忆,我用TypeScript将其重写,并针对兼容性和性能作了些许微调,封装为npm包,可直接应用于任何前端项目,包括Vue,React,Angular等,亦可直接使用script标签...
阅读全文
2020年01月13日 架构设计 ⁄ 共 376字 评论关闭
  堆是什么意思   如果有一个关键码的集合K={k0,k1,k2,.......kn-1},把他所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki = K2*i+2) i = 0,1,2…,则称为小堆(或大堆)。   小堆的特点是:任意一节点的数值都要大于堆顶的结点数据(孩子结点大于根节点,左右孩子可以不分大小排序)。堆顶元素最小。从根节点到每个结点的路径上数组元素组成的序列是递增的。   大堆的特点是:任意一节点的数据都...
阅读全文
2020年01月13日 架构设计 ⁄ 共 627字 评论关闭
  宏(#define)和内联函数(inline)的理解以及区别:   宏的优缺点   优点:   1.加快了代码的运行效率   2.让代码变得更加的通用   缺点:   1.宏没有类型检测,不安全   2.宏是在预处理时进行简单文本替换,并不是简单的参数传递(很难处理一些特定情况。例如:Add(z++))   3.使代码变长   4.宏不能进行调试   5.当预处理搜索#define定义的符号时,字符串常量并不被搜索   内联函数的优缺点   特点: ...
阅读全文
2020年01月11日 架构设计, 移动开发 ⁄ 共 1134字 评论关闭
  架构设计在现今已经成为软件开发必不可少的环节,而架构学习和架构选型往往是一个困难的“工程”。若有一天我们想要改善现有软件的架构模式,或对架构的选择感到迷茫,我们应该如何找寻方向,选择合适的架构呢? 认清自己的团队规模   选择合适的架构需要认清团队规模的原因在于:   团队规模代表着新技术的学习成本。   团队规模与软件规模有一定关联。   团队规模强调开发效率和软件可维护性的重要性。   如今敏...
阅读全文
2020年01月11日 架构设计 ⁄ 共 1006字 评论关闭
  工作站作为新一代生产力工具,相较于普通PC,配置更高,系统运行负荷较重,除了性能强大的需求外,稳定性同样是非常重要的,而设备的稳定性很大程度取决于机器的散热能力,今天小编就着重为您讲讲塔式机箱散热那些事。 巧解散热难题   强大的散热能力,能持续保证工作站性能、稳定性和可靠性,从而不会导致业务的非正常中断,提升工作效率,这才是其价值的关键所在。那么,我们首先来了解一下塔式机箱的内部什么部件会发...
阅读全文
2020年01月11日 架构设计 ⁄ 共 6857字 评论关闭
  构建过程分为项目初始化,路由组件添加,控制器模块添加,模型组件添加和视图组件添加。   构建laravel框架   项目初始化:   首先在服务器的web目录下创建一个lara文件夹,在根目录下创建一个 composer.json文件,内容如下:   {   "require":{   }   }   除过上面的方法以外 还可以 用 composer 初始化,然后运行 composer update 执行成功以后 lara 文件夹下 会自动生成自动加载文件目录如下:   lara   |  ...
阅读全文