版本号

C#编码规范

这一生的挚爱 提交于 2020-01-03 01:48:29
一、代码格式 在编写代码的过程中,代码格式方面建议遵守一下规则。 (1)通常情况下,代码缩进为4个空格,这是Visual Studio 2005的默认设置。 (2)在代码中垂直对齐同一层次的左括号和右括号。 (3)为了防止在阅读代码时左右滚动源代码编辑器,每行代码或注释不得超过一个显示屏。 (4)当一行被分为几行时,需要将串联运算符放在每一行的末尾。 (5)每一行上放置的语句避免超过一条。 (6)在大多数运算符之前和之后使用空格,这样做是不会改变代码意图的,却可以使代码更加容易阅读。 (7)将大的复杂代码节分为较小的、易于理解的模块。 (8)编写SQL语句时,关键字全部使用大写,数据库元素(如表、列和视图)使用大小写混合。 (9)将每个主要的SQL子句放在不同的行上,这样更容易阅读和编辑语句。 示例代码如下: SELECT FirstName,LastName FROM Customers WHERE State = ‘CHN’ 二、注释规范 注释规范包括:源文件注释规范、类注释规范、类的属性和方法注释规范、代码间注释。 1。源文件注释规范 建议的源文件头部注释示例如下所示。 /***************************************************** ** 文 件 名: ** Copyright (c) 2005-2006 *******

代码规范

醉酒当歌 提交于 2020-01-03 01:18:11
书写原则 命名规范 包 类 函数 类级变量 函数内局部变量 表示事件的类型的常量 事件响应函数 组件 缩略单词 缩略词组 词组的连接 子类 常量 循环变量 getter/setter 变量 偏向属性设置类型的函数名 布尔性变量 代码级书写规范 类型声明 初始化 +与—操作符 import 类 if switch 逗号 数组里的元素 大括号 工程级书写规范 注释 外部模块的使用 日志记录 警告 代码行数 代码修改 版本号 附录:生成ASDoc的方法: 版本管理 时间 版本号 内容 整理 2013年10月 V1.0 初建 xiaojianjun 书写原则 要表达的意思完整准确, 易于理解,易于记忆,易于他人扩展维护, 简洁,不用拼音,使用英语, 通常用骆驼命名法和下划线间隔法, 傻瓜写的代码只有计算机看得懂,好工程师写的代码人看的懂, 达成规则的约定后,即使有疑义,也要遵守。 命名规范 包 第一个字段是com. 第二个字段是公司名,每三个字段应该是产品线的名字,我们以全小写的方式来给包命名,最好使用名词或者动名词,而不要使用动词,副词,或者形容词: 比如com.vox.afenti.model.wordcorrection 如果一个包名实包含了若干实现了相似功能的类,那就用一个名词的复数形式来做包名,比如 charts, collections, containers 。

语义化版本控制规范(SemVer)

夙愿已清 提交于 2020-01-03 01:17:49
参考链接 https://semver.org/lang/zh-CN/ 语义化版本 2.0.0 (透过版本号的改变来传达信息.) 摘要 版本格式: 主版本号.次版本号.修订号 版本号递增规则如下: 1.主版本号: 做了不兼容的API修改. 2.次版本号: 做了向下兼容的功能性新增. 3.修订号: 做了向下兼容的问题修正. 规范摘要:以下以x.y.z表示版本号格式 上一级版本号递增时,下面的版本号必须归零. 举个简单的例子就可以展示语义化的版本控制如何让依赖地狱成为过去。假设有个名为“救火车”的函式库,它需要另一个名为“梯子”并已经有使用语义化版本控制的包。当救火车创建时,梯子的版本号为 3.1.0。因为救火车使用了一些版本 3.1.0 所新增的功能, 你可以放心地指定依赖于梯子的版本号大等于 3.1.0 但小于 4.0.0。这样,当梯子版本 3.1.1 和 3.2.0 发布时,你可以将直接它们纳入你的包管理系统,因为它们能与原有依赖的软件兼容。 0.y.z中 0 为主版本号,如 0.1.0 是初始化开发版本.并在后续的每次发行时递增次版本号. 主版本为0时,表示仍在快速开发阶段,每天都在改变API. 如果不小心把不兼容的改版当成了次版本号发行了该怎么办? 一旦发现自己破坏了语义化版本控制的规范,就要修正这个问题. 发行一个新的次版本号恢复向下兼容. 不能修改已发行的版本.

Nginx优化

妖精的绣舞 提交于 2020-01-02 23:34:08
一、配置nginx隐藏版本号 在生产环境中,需要隐藏nginx的版本号,以避免安全漏洞的泄露 查看方法 使用fiddler工具在Windows客户端查看nginx版本号 在centos系统中使用"curl -I 网址" 命令查看 nginx隐藏版本号的方法 修改配置文件法 修改源码法 1、修改配置文件法 (1)nginx的配置文件中server_tokens选项的值设置为off [root@nginx ~]# curl -I http://192.168.150.213 Server: nginx/1.12.2 [root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf server_tokens off; (2)重启服务,访问网站使用curl -I 命令检测 [root@nginx ~]# service nginx restart [root@nginx ~]# curl -I http://192.168.150.213 Server: nginx 2、修改源码法 (1)nginx源码文件nginx-1.12.2/src/core/nginx.h 包含了版本信息,可以随意设置 [root@nginx ~]# cd /opt/nginx-1.12.2/src/core/ [root@nginx core]# vim nginx.h

Spring Boot (四)——理解 Spring Boot 项目中的 parent

做~自己de王妃 提交于 2020-01-01 17:28:30
理解 Spring Boot 项目中的 parent 前面一章讲了Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: < parent > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - parent < / artifactId > < version > 2.2 .2 . RELEASE < / version > < relativePath / > < ! -- lookup parent from repository -- > < / parent > 对于这个 parent 的作用,你是否完全理解?有小伙伴说,不就是依赖的版本号定义在 parent 里边吗?是的,没错,但是 parent 的作用可不仅仅这么简单哦! 基本功能 当我们创建一个 Spring Boot 工程时,可以继承自一个 spring-boot-starter-parent ,也可以不继承自它,我们先来看第一种情况。先来看 parent 的基本功能有哪些? 定义了 Java 编译版本为 1.8 。 使用 UTF-8 格式编码。 继承自 spring-boot

乐观锁

别来无恙 提交于 2020-01-01 04:18:54
乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。 悲观锁(Pessimistic Lock),正如其名,具有强烈的独占和排他特性。它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 来源: https://www.cnblogs.com/a-xu/p/8715969.html

Nginx优化与防盗链

时间秒杀一切 提交于 2019-12-30 22:52:18
一、版本号 在生产环境中,需要隐藏Nginx的版本号,以避安全漏洞的泄露 查看方法: 使用 fiddler工具在Windows客户端查看nginx版本号 在Centos系统中使用"curl -l 网址" 命令查看 隐藏版本号 1、查看版本号 [root@localhost html]# curl -I http://192.168.232.159/ 查看版本号 HTTP/1.1 200 OK Server: nginx/1.12.2 版本号 Date: Mon, 30 Dec 2019 08:43:23 GMT Content-Type: text/html Content-Length: 651 Last-Modified: Mon, 30 Dec 2019 08:22:02 GMT Connection: keep-alive ETag: "5e09b3aa-28b" Accept-Ranges: bytes 2、进入:vim /usr/local/nginx/conf/nginx.conf http { 下面插入 server_tokens off; 3、查看版本号,已经隐藏 [root@localhost html]# curl -I http://192.168.232.159/ HTTP/1.1 200 OK Server: nginx 已经隐藏版本号 Date:

svn版本分支及冲突解决笔记

五迷三道 提交于 2019-12-29 23:46:02
转载: http://blog.csdn.net/xuguiyi100/article/details/51966557 分支合并主干示例 1.主干工程右键选择merge合并下一步 2.选中 merge two different trees下一步 3.from主干版本路径,版本号选择分支分出去的版本号 to合并的分支目录,版本号一般最新版本 下一步 4.选择属性,一般直接下一步即可 5.下一步完成。若无冲突直接主干提交代码即可。 若存在冲突解决办法,个人建议使用最后一种解决冲突 Mark as conflicted. I will deal wiht it later. --标记冲突,合并到主干解决冲突 Resolve the conflict by using my version of the file. --直接用主干的文件覆盖,分支修改无效 Resolve the conflict by using the incoming of the file. --直接用分支修改覆盖主干,以分支为准 Let me edit the file with conflict markers inserted. --直接编辑冲突,编辑完保存,选择yes保存。 Launch a graphical conflict resolution editor.--直接比对文件,修改冲突,点击保存

Maven引入自定义jar包

雨燕双飞 提交于 2019-12-29 09:49:25
1、将项目打成jar包 或者下载某个jar包 放在某个目录下(随便吧,桌面也行),这里是放在F:/ jar包为 alipay.jar 2、给jar包取个名字 用原名也行(maven打包默认会加上打包的版本号,所以建议把版本号删掉),此名字为项目名。 3、打开控制台 运行maven命令 mvn install:install-file -Dfile=jar文件所在路径(这里使用绝对路径) -DgroupId=包名 -DartifactId=项目名 -Dversion=版本号 -Dpackaging=jar 例子:mvn install:install-file -Dfile=F:\alipay.jar -DgroupId=aliyun -DartifactId=alipay -Dversion=1.0 -Dpackaging=jar 4、以上信息为运行成功, 信息中有生成的路径。 5、将此文件夹放入 C:\Users\Administrator\.m2\repository 中 6、在pom.xml 中配置 例子: <dependency> <groupId>aliyun</groupId> <artifactId>alipay</artifactId> <version>1.0</version></dependency> 来源: https://www.cnblogs.com

悲观锁、乐观锁

荒凉一梦 提交于 2019-12-29 07:49:47
悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型 数据库 里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 我们认为 系统 中的并发更新会非常频繁,并且事务失败了以后重来的开销很大,这样以来,我们就需要采用真正意义上的锁来进行实现。悲观锁的基本思想就是每次一个事务读取某一条记录后,就会把这条记录锁住,这样其它的事务要想更新,必须等以前的事务提交或者回滚解除锁。 实现方式: 大多在数据库层面实现加锁操作,JDBC方式:在JDBC中使用悲观锁,需要使用select for update语句,e.g. <code class="language-sql hljs ">Select * from Account where ...(where condition).. for update</code> 乐观锁(Optimistic Lock) 顾名思义,就是 很乐观 ,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁 适用于多读的应用类型,这样可以提高吞吐量 ,像数据库如果提供类似于write