nroad听课笔记
听课当时觉得收获很大,过段时间就忘记了,所以决定记录笔记,以后自己用到了还可以翻一翻。
N01.spring boot
spring boot 快速启动spring web程序
pom.xml配置文件中很多微服务配置启动和引入
jconsole检测健康状态
调试过程中可以打开spring内置的Log日志,可以打开trace级别的日志。
一般用spring 自带的json转换器,fastjson,ObjectMapper
No2.java8
java的发展
1.4引入了断言Assert
1.5
引入了泛型(初、中级会读,高级会写和用)
实现了可迭代Enhanced for loop
类型安全Typesafe
Annotations(Metadata)描述数据的数据
自动装配(Integer)
1.6没有新特性,只是进行了优化
1.7
swich(String)可以判断,List =new ArrayList<>()后面的<>中的String可以省略。
catch(A|B|C)同时可以捕获多个异常
数字中可以带下划线eg:10_000是一万。
Link
finall内不需要写了
1.8
引入了Lamdar表达式
方法引入this::menthodName()
@FunctionInterface一个方法的接口可以用表达式简化
流式表达
stream的效率:
懒加载的
并行执行的【多线程】
Fock(分)|Join(合)模式
java8 workstealingTheadPool模式,监控偷拿别的闲线程,线程池中的线程启动多少合适,需要调优。
String.join()方法
StringJoiner j=new Stringjoiner(“,”)
j.add(a).add(a)…
jar.function,java.util.connount 数字,日期 collection
阻塞队列——》生产者消费者模式
hashSet<安全> | hashMap<不安全>
java4\5\6\7之前要吃透,8之后的慢慢消化
No3.业务学习
可以陷入业务的场景中锻炼思维能力
编程惯例
设计——代码实现的时候不能单单是为了写代码,要思考设计
UML、ER图——领域模型
文档格式ietf、注意样式,不能有0|1的变量判断,难懂。
No4.前端学习
bootstrap
API网址
1、v3.bootcss.com
2、www.runoob.com
扩展属性 date_Myname=”123”
$(#id.date.Myname)就得到了“123”的值
栅格(12)
bootstrap
样式(css)
组件(静态)
插件(动态)
jquery:
xhr-new xhr:
url
method.post-调用
parpm。。。
只要支持xhr的浏览器就支n持jquery
1、AnqularJs(类似jqueryjs)
大量脚本处理控制业务逻辑,并与服务端交互时适合
2、服务器和前台共享一份脚本,服务器下发的代码
No5.策略模式
策略模式和状态模式很像,策略模式的应用场景:当方法不变,但传入的参数不一致时用。
------- ------
|A 压缩|------>|抽象类|
------- ------
/ | \
/ | \
-----/ ----- \ -----
|ZIP| |RAR| |...|
----- ----- -----
No6.系统分析设计
一. 为什么要分析设计
优化DB
优化cache
减少资源竞争
变化
性能
新技术
二. 分析设计的方法
业务领域模型——可复用,可维护,可扩展。拟出规则(可变的,不变的)
三. 设计原则
- 分离可变和不变的规则
不变的放在一个类中,变化的分离出去进行封装——接口或者抽象类,将变化的转化为不变的形式。
面向接口编程
多用组合少用继承
开闭原则
暴露最少的信息给对象,尽量隐藏自身信息
依赖IOC
依赖接口,根据动态值来注入生成实现。
方式:
Constractor 构造函数 ——静态绑定
parameter 参数 ——动态绑定
>
Set 动态改变注入值 ——运行态绑定
>
spring 中Set方式是没必要的,有参数方式就足够了。
单一责任原则——内聚性强
聚合与组合——生命周期不一致
MVC
C 委托 ^^ //\\ ..........有问题 // \\ // \\ v v V<=========>M
四、PS:
AMQP————高级消息队列
PostDB————对象型数据库
MDA————模型驱动分析
DDD————领域驱动分析
值对象————创建不费消耗,equals and hash 比较
实体对象————创建消耗大,有id
No7.什么时候用设计模式
读过设计模式,对很多模式都知道,但是用不上,所以感觉设计模式没用。所以我们要努力寻找用设计模式的时机,主动用设计模式。ps:不一定越高级的开发人员越会用设计模式。
业务复杂的时候考虑用设计模式
if…else 多的时候考虑设计模式
switch 多的时候考虑设计模式
重复代码多的时候考虑设计模式
遇到难题时考虑设计模式:
首先找毛病
描述清楚毛病
考虑是否可用设计模式
PS:java.lang.Iterable 实现了for(:)
No8.安全防护
windows 提供了很多可调用的接口API,但很多病毒和破解工具会hook掉我们的代码,绕过我们代码执行顺序,所以我们要自己分析自己的程序有没有被修改过。
加壳:
第一代壳————压缩壳
第二代壳————加密壳
第三代壳————VIM虚拟机壳
杀毒软件
其实国内360的优势就是基数大,所以它的云查杀能力很强。
云查杀
特征码查杀
行为分析
PS:火龙,防火墙很好,毛豆也差不多。手机防护360。