开发常见问题整理
2020-07-08 本文已影响0人
小船翻不翻
基础知识点
- 从逻辑结构上来讲,他们都属于线性表结构,所有的数据都是被串起来的,就像羊肉串;
- 从物理内存存储方面讲,数组存储在连续的内存区,链表是随机的;链表因为是随机的,就多了一个添加指向下一个节点的指针,将随机的节点串起来的操作,所以在资源消耗上会多一些;
- 在内存管理方面,由于数组是连续存储的,在内存预读时会将数组元素存储在缓存中,效率会更高;而链表是随机存储的,无法读入缓存中,这样本来访问效率就低,效率更低了;
- 两者访问、增加、删除的对比:
a. 访问:数组(随机访问)是连续存储的,随意在访问a[3]和a[999]时间是一样的,复杂度O(1);链表(顺序访问)是随机存储的,查找一个节点需要一个一个顺序往下找,因为下一个节点的位置信息需要从上一个节点知晓,时间复杂度O(n);
b. 增加/删除:想要在数组的一个节点前增加节点就像是“插队”后面的所有节点都要往后哦挪一位,挪动过程如果出现踩脚,还可能会造成元素丢失问题;链表本身就是随机存储的,新增节点只需要设置指针即可;
普通类型装载、反射、序列化、表达式缓存、表达式泛型缓存、AutoMapper
AOP面向切面编程
面向动作行为的一种思想,横向切面的结构,注重业务处理中的某个步骤或阶段。
控制反转思想,实现方式包括:Autofac、DI、Unity
- 为了在业务改变的时候尽量减少改动代码造成的问题;
- 让程序之间松散耦合,减少依赖,有利于功能的复用;
- 程序整体结构更加灵活,有利于单元测试。
- 进程间争抢资源;
- 进程间推进顺序非法;
- 授权码;
- 隐藏式;
- 账户密码;
- 客户端凭据。
数据库
asp.net core知识点
- 发起一个HTTP请求
- 请求通过IIS或者Nginx或者Apache到你的ASP.NET Core应用
- ASP.NET Core Web服务接收这个HTTP请求,将它交给middleware
- middleware处理该请求,并将它交给MVC middleware
- MVC middleware生成一个HTML响应
- 响应通过middleware返回到Web服务
- HTTP响应返回到用户的浏览器
jwt描述
由头部,负载,签名 三部分组成
- 头部包含加密算法和固定的类型jwt的json对象,使用base64URL转成字符串;
- 负载包含7个官方规定的字段,还可以添加自定义字段的json对象,使用base64URL转成字符串;
- 签名是对头部和负载信息的签名,防止篡改;头部+负载+密钥 生成签名字符串,返回给用户。
框架,未来学习的方向
[数据模型]
[企业微信账户数据]
运维部署
[集群的elk]
[部署nginx]
[https整个的过程 是怎么样的 openssl是怎么做到安全的]
[linux服务器的配置 安全 远程安全配置]
如何优化性能
遇到的最大问题:
- 在线项目如何保证数据库迁移时,不断流的情况下实现最优方式
- 如果让app接口更安全
- 在使用单应用池缓存,在不使用分布式开发方式下,如何解决多点更新缓存问题
- DDD领域边界的界定