软件工程-00-概览
软件工程
软件如果想持续的发展下去,需要良好的理论化知道。
代码编写好了,是不是感觉测试完成之后,上线依然是困难重重?
上线完成后,如何做项目的监控报警?
这其中需要一系列的知识和指导。
正常的项目流程
产品端
产品根据业务需要或者调研,提出需求。
提供完整详细的需求文档。
开发
开发主要经过下面的步骤
1、 需求分析+项目立项
如果不合理则进行调整或者驳回。(一般产...
2019-03-31 02:18:47 |
Software
Spring Config 与分布式配置中心
spring property
利用 spring 的占位符属性,可以动态替换属性值。
动态替换
可以在 spring 运行的时候,动态推送生效。
甚至不用重启项目。
配置设置
key
value
AppName
mode=offline/dev/test/pre/dev
version
remark
安全性
配置的加密+验签。
拓展阅读
spring-prop...
2019-03-28 10:37:19 |
Java
Spring 路由最佳实践
Spring 最佳路由方式
不同的业务,需要走不同的实现。
除了 if/else,我们还有其他的方式吗?
接口的定义
验证接口
interface IValid() {
void valid(ValidReq req);
}
不同的实现
验证金额
@Service
class ValidNum implements IValid() {
@O...
2019-03-28 01:47:51 |
Java
Spring @PostConstruct @PreDestroy
@PostConstruct & @PreDestroy
PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。
支持依赖关系注入的所有类都必须支此注释。
即使类没有请求注入任何资源,用 PostConstruct 注释的方法也必须被调用。
只有一个方法可以用此注释进行注释。应用 PostConstru...
2019-03-28 01:47:51 |
Java
Spring Bean lifecycle 生命周期
业务背景
需要不同的环境,有不同的实现。不单单是配置的变化。
一个环境
使用新的 rocket mq
原来环境
使用旧的 active mq
限制
使用同一份代码
解决问题的思路
spring 懒加载
因为消息的监听是基于 Container 监听者模式实现的,希望通过指定为特定环境指定为是否惰性加载。
后来发现行不通。
因为一般的 property 配置框架,都是监...
2019-03-28 01:47:51 |
Java
Data Struct-TreeMap 排序的新姿势
场景
自定的 filter 等常见实现,如果我们希望指定优先级顺序,一般会定义注解。
根据 order() 属性去指定相关的顺序。
问题
如果我们需要排序,怎么处理?
方法一、定义一个全新的对象
伪代码如下:
包含过滤器和顺序的对象
class FilterBo {
private Filter filter;
private int order;
}...
2019-03-28 01:47:51 |
Java
计算机组成原理-04-存储器概述
存储器
概念
存储器是计算机中非常重要的组成部分,存储器是用来存储程序代码和数据的部件,有了存储器,计算机才具有记忆功能。
电脑CPU是没有记忆功能的,他需要数据的时候都是先从存储器中读出,再进行逻辑运算,处理。
处理完后再把数据存储到存储器中,下次再调用。
存储器的分类
存储器是计算机系统中的记忆设备,用来存放程序和数据。
计算机系统的运行速度在很大程度上受存储器速度的制...
2019-03-28 01:47:51 |
Base
计算机组成原理-03-系统总线
系统总线
为什么需要
在这个系列文章的第一讲,漫谈计算机组成原理(一)之程序运行的过程 中说过,现代计算机是从冯若伊曼计算机发展起来的。其组成部分有存储器、运算器、控制器、输入设备、输出设备,在现代计算机中,人们将运算器与控制器封装起来成为CPU(中央处理单元)。计算机的各种部件想要进行数据交互,就必须让这些部件形成一定的连接关系,以便数据交互的进行。
连接的方式有两种,一种是各个部件...
2019-03-28 01:47:51 |
Base