原理
狂野弘仁
这个作者很懒,什么都没留下…
展开
-
java jdk 8 新功能 stream实现各种list操作
首先定义1个Apple对象:public class Apple { private Integer id; private String name; private BigDecimal money; private Integer num; public Apple(Integer id, String name, BigDecimal money, Integer num) {转载 2020-12-24 11:54:24 · 389 阅读 · 0 评论 -
项目不断阶段发现错误成本计算
大型项目中,如果在架构阶段检测到需求错误,那么修复它成本通常是“在需求阶段检测并修复该错误”的3倍,如果在编码阶段检测到需求错误,修复成本在5至10倍,在系统测试阶段,成本是10倍,在发布之后,成本陟增为10至100倍(以在需求分析阶段检验并修复错误的成本为基数),对于小型项目管理成本较低,那么发布之后的修复成本在5-10倍...原创 2020-12-11 10:53:25 · 1202 阅读 · 0 评论 -
软件构建过程
软件构建是一个复杂过程定义问题需求分析规划构建架构设计详情设计编码与调试单元测试集成测试系统测试保障维护原创 2020-12-10 12:01:05 · 337 阅读 · 0 评论 -
Web项目开发中常见安全问题防范
背景随着计算机网络技术的快速发展,Web应用技术在各个领域都得到了广泛的应用,但是由于不法分子针对Web应用程序相关安全漏洞的挖掘利用及恶意攻击手段的层出不穷,而与此同时国内Web应用开发人员水平参差不齐,很多开发人员安全意识淡薄,导致Web应用存在各种各样的安全漏洞,使得Web应用程序在给用户提供简便、快捷服务的同时,用户不得不为其自身可能存在的Web安全问题而担忧。主要针对Web项目中常见的安全问题进行深入的研究与分析,并对提出的各种安全问题给出了一些有效的解决方案。安全常见问题及防范1.输入检查原创 2020-07-23 14:43:06 · 791 阅读 · 0 评论 -
微服务与单体服务的拆分原则
单体架构的优势:1、便于开发2、易于测试3、易于部署单体架构的不足:1、复杂性高2、交付效率低:构建和部署耗时长3、伸缩性差:只能按整体横向扩展,无法分模块垂直扩展,IO密集型模块和CPU密集型模块无法独立升级和扩容4、可靠性差:一个BUG可能引起整个项目的运行5、阻碍技术创新微服务架构的优势:1、易于开发和维护2、独立部署3、伸缩性强4、与组织结构相匹配5、技术异构性微服务面临的挑战:1、服务拆分:(1)、微服务拆分原则:领域模型、组织结构、康威定律、单一职责(2).转载 2020-07-10 07:23:16 · 1754 阅读 · 0 评论 -
单体架构与微服务架构
产品初期优先选择单体架构。面对一个新的领域,对业务的理解很难在开始阶段就比较清晰,往往是经过一段时间之后,才能逐步弄清楚。很多时候,从一个已有的单体架构中逐步划分服务,要比一开始就构建微服务简单得多。另外,在资源受限的情况下,采用微服务架构风险较大,很多优势无法体现,性能上的劣势反而会比较明显。单体、组件化、微服务架构成本趋势,当业务复杂度达到一定程度后,微服务架构消耗的成本才会体现优势,并不是所有的场景都适合采用微服务架构,服务的划分应逐步进行,持续演进。产品初期业务复杂度不高的时候,应该尽量采用单体架原创 2020-06-30 13:30:58 · 274 阅读 · 0 评论 -
window 配置nginx
第一步配置 hostsC:\Windows\System32\drivers\etchosts127.0.0.1 www.xxxx.com127.0.0.1 cloud.xxxx.com第二步配置 nginx.conf#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log原创 2020-06-22 16:15:01 · 248 阅读 · 0 评论 -
线程状态
线程共包括一下5种状态:新建、初始状态(New) :线程对象被创建后就进入了新建状态,Thread thread = new Thread();就绪(Runnable):也被称之为“可执行状态”,当线程被new出来后,其他的线程调用了该对象的start()方法,即thread.start(),此时线程位于“可运行线程池”中,只等待获取CPU的使用权,随时可以被CPU调用。进入就绪状态的进程除CPU之外,其他运行所需的资源都已经全部获得。运行(Running):线程获取CPU权限开始执行。注原创 2020-06-21 07:03:52 · 185 阅读 · 0 评论 -
数组、链表、哈希表
数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组数组存储区间是连续的,占用内存严重,故空间复杂度大,但数组的二分查找时间复杂度小,为O(1), 数组的特点是:寻址容易,插入和删除困难链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N),链表的特点是:寻址困难,插入和删除容易我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构,答案肯定:哈希表哈希表哈希表(Hash table)既满足了数据的查找方便,同时不占用太多的内存原创 2020-06-20 21:36:33 · 229 阅读 · 0 评论 -
JAVA 中BIO,NIO,AIO的理解
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:1 什么是同步?2 什么是异步?3 什么是阻塞?4 什么是非阻塞?5 什么是同步阻塞?6 什么是同步非阻塞?7 什么是异步阻塞?8 什么是异步非阻塞?在弄清楚上面的几个问题之前,我们首先得明白什么是同步,异步,阻塞,非阻塞,只有这几个单个概念理解清楚了,然后在组合理解起来,就相对比较容易了。1,同步和异步是针对应用程序和内核的交互而言的。2,阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取转载 2020-06-20 21:19:21 · 116 阅读 · 0 评论