编程炸鸡-知识点

1. 微服务

微服务的实施是有一定的先决条件:基础的运维能力(如监控、快速配置、快速部署)需提前构建,否则就会陷入如我们般被动的局面。

单个微服务代码量小,易修改和维护。但是,系统复杂度的总量是不变的,每个服务代码少了,但服务的个数肯定就多了。就跟拼图游戏一样,切的越碎,越难拼出整幅图。一个系统被拆分成零碎的微服务,最后要集成为一个完整的系统,其复杂度肯定比大块的功能集成要高很多

优点 缺点
微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

微服务架构可能带来过多的操作

是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。 分布式系统可能复杂难以管理
.能使用不同的语言开发 因为分布部署跟踪问题难
允许你利用融合最新技术 当服务数量增加,管理复杂性增加
能够即时被要求扩  
易于和第三方集成   
每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库  

2.高并发

    高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。

高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等

如何提升系统的并发能力 

1. 垂直扩展(Scale Up) 提升单机处理能力  

2. 水平扩展(Scale Out)。 反向代理层的水平扩展,是通过“DNS轮询”实现的

 

3.数据库优化有那些方面

选取最适用的字段属性

事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,这样可以保证用户的操作不被其它的用户所干扰
 
锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性。这个时候我们就可以使用外键。

使用索引

优化的查询语句

 1. 对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引

 2.应尽量避免在 where 子句中对字段进行 null 值判断

 3.应尽量避免在 where 子句中使用 != 或 <> 操作符

 4. 查询的时候select后面不要用*,手动把字段名字加

4.编程规范

 目的: 1、保证代码的可读性    2、保证代码的维护性

代码简洁,避免冗余,要使代码统一,易于阅读,就要做到遵循严格的规范

1.  每个源程序文件都应有文件头说明

2. 每个函数都有函数头说明

3.主要变量(结构、联合、类或对象)在定义或引用时,应添加能反映其含义的注释

4.常量定义时应有相应的说明

5.变量、常量和函数的命名都应一目了然

6.处理过程的每个阶段应有相应的注释说明

7. 在典型算法前都有注释,一目了然的语句不加注释

8. 保持注释与代码完全对应

9. 利用缩进来显示程序的逻辑结构(缩进后的代码在后期维护时会结构清晰且易于维护)

方法尽可能简短做到独立共用
永远不要将同一个变量用于不同的目的

 编程习惯

1.方法名以小写字母开头,后面紧跟的是大写字母开头的单词,比如veryLongVariableName。

2.类名一般都是大写字母开头的单词组合。

3.常量的命名都是大写字母的单词,之间用下划线隔开,比如MY_CONSTANT。

4.左大括号应该跟if在同一行。

命名规则

 1.匈牙利命名法:广泛应用于Microsoft Windows这类环境中  

     标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

  例如:bEnable, nLength, hWnd

2.驼峰命名法:近年来越来越流行。

   指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。

3.帕斯卡(Pascal)命名法:与驼峰命名法类似 人称之为“大驼峰命名法”

  只不过驼峰命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写  UserName

4.下划线命名法。

 5. .NET framework 个版本特性

 

 

6.RESTful api 设计原则

  RESTful  是一种架构风格

1.一个好的RESTful API会在URL中包含版本信息。另一种比较常见的方案是在请求头里面保持版本信息。但是跟很多不同的第三方开发者一起工作后,我可以很明确的告诉你,在请求头里面包含版本信息远没有放在URL里面来的容易。

2.API的根地址很重要  比如  https://example.org/api/v1/*

3.过滤器 Filtering

  尽可能减少那些会影响到第三方开发者的无谓限制  

 

7.web标准 http协议 

 

 

8.MVC Filter 可以做那些事情

  IActionFilter(Action拦截器接口)、IExceptionFilter(异常拦截器接口)、IResultFilter(Result拦截器接口)、IAuthorizationFilter(授权拦截器接口)

  ActionFilterAttribute         
[Authorize] AuthorizeAttribute

 

   https://www.cnblogs.com/imhaiyang/p/5050185.html 

 

9.合格程序员七大基本素质与五大必备能力  https://www.cnblogs.com/chunguang/p/5756236.html

 

素质
团队精神和协作能力
文档习惯
规范化,标准化的代码编写习惯
需求理解能力
复用性,模块化思维能力
测试习惯
学习和总结的能力
 
能力
需求分析能力
项目设计方法和流程处理能力
复用设计和模块化分解能力
整体项目评估能力
团队组织管理能力

 

10.托管与非托管

 https://www.cnblogs.com/cjm123/p/8390984.html

posted @ 2018-07-18 10:16  接管人生  阅读(178)  评论(0)    收藏  举报