520 lines
11 KiB
HTML
520 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>项目命名规范.md</title>
|
||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
||
|
||
<style>
|
||
/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */
|
||
/*---------------------------------------------------------------------------------------------
|
||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||
*--------------------------------------------------------------------------------------------*/
|
||
|
||
body {
|
||
font-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif);
|
||
font-size: var(--vscode-markdown-font-size, 14px);
|
||
padding: 0 26px;
|
||
line-height: var(--vscode-markdown-line-height, 22px);
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
#code-csp-warning {
|
||
position: fixed;
|
||
top: 0;
|
||
right: 0;
|
||
color: white;
|
||
margin: 16px;
|
||
text-align: center;
|
||
font-size: 12px;
|
||
font-family: sans-serif;
|
||
background-color:#444444;
|
||
cursor: pointer;
|
||
padding: 6px;
|
||
box-shadow: 1px 1px 1px rgba(0,0,0,.25);
|
||
}
|
||
|
||
#code-csp-warning:hover {
|
||
text-decoration: none;
|
||
background-color:#007acc;
|
||
box-shadow: 2px 2px 2px rgba(0,0,0,.25);
|
||
}
|
||
|
||
body.scrollBeyondLastLine {
|
||
margin-bottom: calc(100vh - 22px);
|
||
}
|
||
|
||
body.showEditorSelection .code-line {
|
||
position: relative;
|
||
}
|
||
|
||
body.showEditorSelection .code-active-line:before,
|
||
body.showEditorSelection .code-line:hover:before {
|
||
content: "";
|
||
display: block;
|
||
position: absolute;
|
||
top: 0;
|
||
left: -12px;
|
||
height: 100%;
|
||
}
|
||
|
||
body.showEditorSelection li.code-active-line:before,
|
||
body.showEditorSelection li.code-line:hover:before {
|
||
left: -30px;
|
||
}
|
||
|
||
.vscode-light.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
.vscode-light.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(0, 0, 0, 0.40);
|
||
}
|
||
|
||
.vscode-light.showEditorSelection .code-line .code-line:hover:before {
|
||
border-left: none;
|
||
}
|
||
|
||
.vscode-dark.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(255, 255, 255, 0.4);
|
||
}
|
||
|
||
.vscode-dark.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(255, 255, 255, 0.60);
|
||
}
|
||
|
||
.vscode-dark.showEditorSelection .code-line .code-line:hover:before {
|
||
border-left: none;
|
||
}
|
||
|
||
.vscode-high-contrast.showEditorSelection .code-active-line:before {
|
||
border-left: 3px solid rgba(255, 160, 0, 0.7);
|
||
}
|
||
|
||
.vscode-high-contrast.showEditorSelection .code-line:hover:before {
|
||
border-left: 3px solid rgba(255, 160, 0, 1);
|
||
}
|
||
|
||
.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {
|
||
border-left: none;
|
||
}
|
||
|
||
img {
|
||
max-width: 100%;
|
||
max-height: 100%;
|
||
}
|
||
|
||
a {
|
||
text-decoration: none;
|
||
}
|
||
|
||
a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
a:focus,
|
||
input:focus,
|
||
select:focus,
|
||
textarea:focus {
|
||
outline: 1px solid -webkit-focus-ring-color;
|
||
outline-offset: -1px;
|
||
}
|
||
|
||
hr {
|
||
border: 0;
|
||
height: 2px;
|
||
border-bottom: 2px solid;
|
||
}
|
||
|
||
h1 {
|
||
padding-bottom: 0.3em;
|
||
line-height: 1.2;
|
||
border-bottom-width: 1px;
|
||
border-bottom-style: solid;
|
||
}
|
||
|
||
h1, h2, h3 {
|
||
font-weight: normal;
|
||
}
|
||
|
||
table {
|
||
border-collapse: collapse;
|
||
}
|
||
|
||
table > thead > tr > th {
|
||
text-align: left;
|
||
border-bottom: 1px solid;
|
||
}
|
||
|
||
table > thead > tr > th,
|
||
table > thead > tr > td,
|
||
table > tbody > tr > th,
|
||
table > tbody > tr > td {
|
||
padding: 5px 10px;
|
||
}
|
||
|
||
table > tbody > tr + tr > td {
|
||
border-top: 1px solid;
|
||
}
|
||
|
||
blockquote {
|
||
margin: 0 7px 0 5px;
|
||
padding: 0 16px 0 10px;
|
||
border-left-width: 5px;
|
||
border-left-style: solid;
|
||
}
|
||
|
||
code {
|
||
font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
|
||
font-size: 1em;
|
||
line-height: 1.357em;
|
||
}
|
||
|
||
body.wordWrap pre {
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
pre:not(.hljs),
|
||
pre.hljs code > div {
|
||
padding: 16px;
|
||
border-radius: 3px;
|
||
overflow: auto;
|
||
}
|
||
|
||
pre code {
|
||
color: var(--vscode-editor-foreground);
|
||
tab-size: 4;
|
||
}
|
||
|
||
/** Theming */
|
||
|
||
.vscode-light pre {
|
||
background-color: rgba(220, 220, 220, 0.4);
|
||
}
|
||
|
||
.vscode-dark pre {
|
||
background-color: rgba(10, 10, 10, 0.4);
|
||
}
|
||
|
||
.vscode-high-contrast pre {
|
||
background-color: rgb(0, 0, 0);
|
||
}
|
||
|
||
.vscode-high-contrast h1 {
|
||
border-color: rgb(0, 0, 0);
|
||
}
|
||
|
||
.vscode-light table > thead > tr > th {
|
||
border-color: rgba(0, 0, 0, 0.69);
|
||
}
|
||
|
||
.vscode-dark table > thead > tr > th {
|
||
border-color: rgba(255, 255, 255, 0.69);
|
||
}
|
||
|
||
.vscode-light h1,
|
||
.vscode-light hr,
|
||
.vscode-light table > tbody > tr + tr > td {
|
||
border-color: rgba(0, 0, 0, 0.18);
|
||
}
|
||
|
||
.vscode-dark h1,
|
||
.vscode-dark hr,
|
||
.vscode-dark table > tbody > tr + tr > td {
|
||
border-color: rgba(255, 255, 255, 0.18);
|
||
}
|
||
|
||
</style>
|
||
|
||
<style>
|
||
/* Tomorrow Theme */
|
||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||
|
||
/* Tomorrow Comment */
|
||
.hljs-comment,
|
||
.hljs-quote {
|
||
color: #8e908c;
|
||
}
|
||
|
||
/* Tomorrow Red */
|
||
.hljs-variable,
|
||
.hljs-template-variable,
|
||
.hljs-tag,
|
||
.hljs-name,
|
||
.hljs-selector-id,
|
||
.hljs-selector-class,
|
||
.hljs-regexp,
|
||
.hljs-deletion {
|
||
color: #c82829;
|
||
}
|
||
|
||
/* Tomorrow Orange */
|
||
.hljs-number,
|
||
.hljs-built_in,
|
||
.hljs-builtin-name,
|
||
.hljs-literal,
|
||
.hljs-type,
|
||
.hljs-params,
|
||
.hljs-meta,
|
||
.hljs-link {
|
||
color: #f5871f;
|
||
}
|
||
|
||
/* Tomorrow Yellow */
|
||
.hljs-attribute {
|
||
color: #eab700;
|
||
}
|
||
|
||
/* Tomorrow Green */
|
||
.hljs-string,
|
||
.hljs-symbol,
|
||
.hljs-bullet,
|
||
.hljs-addition {
|
||
color: #718c00;
|
||
}
|
||
|
||
/* Tomorrow Blue */
|
||
.hljs-title,
|
||
.hljs-section {
|
||
color: #4271ae;
|
||
}
|
||
|
||
/* Tomorrow Purple */
|
||
.hljs-keyword,
|
||
.hljs-selector-tag {
|
||
color: #8959a8;
|
||
}
|
||
|
||
.hljs {
|
||
display: block;
|
||
overflow-x: auto;
|
||
color: #4d4d4c;
|
||
padding: 0.5em;
|
||
}
|
||
|
||
.hljs-emphasis {
|
||
font-style: italic;
|
||
}
|
||
|
||
.hljs-strong {
|
||
font-weight: bold;
|
||
}
|
||
</style>
|
||
|
||
<style>
|
||
/*
|
||
* Markdown PDF CSS
|
||
*/
|
||
|
||
body {
|
||
font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "Ubuntu", "Droid Sans", sans-serif, "Meiryo";
|
||
padding: 0 12px;
|
||
}
|
||
|
||
pre {
|
||
background-color: #f8f8f8;
|
||
border: 1px solid #cccccc;
|
||
border-radius: 3px;
|
||
overflow-x: auto;
|
||
white-space: pre-wrap;
|
||
overflow-wrap: break-word;
|
||
}
|
||
|
||
pre:not(.hljs) {
|
||
padding: 23px;
|
||
line-height: 19px;
|
||
}
|
||
|
||
blockquote {
|
||
background: rgba(127, 127, 127, 0.1);
|
||
border-color: rgba(0, 122, 204, 0.5);
|
||
}
|
||
|
||
.emoji {
|
||
height: 1.4em;
|
||
}
|
||
|
||
code {
|
||
font-size: 14px;
|
||
line-height: 19px;
|
||
}
|
||
|
||
/* for inline code */
|
||
:not(pre):not(.hljs) > code {
|
||
color: #C9AE75; /* Change the old color so it seems less like an error */
|
||
font-size: inherit;
|
||
}
|
||
|
||
/* Page Break : use <div class="page"/> to insert page break
|
||
-------------------------------------------------------- */
|
||
.page {
|
||
page-break-after: always;
|
||
}
|
||
|
||
</style>
|
||
|
||
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js"></script>
|
||
</head>
|
||
<body>
|
||
<script>
|
||
mermaid.initialize({
|
||
startOnLoad: true,
|
||
theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')
|
||
? 'dark'
|
||
: 'default'
|
||
});
|
||
</script>
|
||
<h1 id="bf%E9%A1%B9%E7%9B%AE%E5%91%BD%E5%90%8D%E7%BA%A6%E5%AE%9A">BF项目命名约定</h1>
|
||
<h2 id="%E7%BC%A9%E5%86%99">缩写</h2>
|
||
<ul>
|
||
<li>尽量不要缩写名字,尽可能描述清楚。</li>
|
||
</ul>
|
||
<h2 id="%E5%91%BD%E5%90%8D%E6%96%B9%E6%B3%95">命名方法</h2>
|
||
<ul>
|
||
<li>Pascal命名法:每个单词首字母大写,也称为大驼峰命名法。</li>
|
||
<li>Camel命名法:第一个单词首字母小写,其余单词首字母大写,也称为小驼峰命名法。</li>
|
||
</ul>
|
||
<h2 id="%E6%96%87%E4%BB%B6%E5%A4%B9%E5%91%BD%E5%90%8D">文件夹命名</h2>
|
||
<ol>
|
||
<li>所有资源文件夹命名都使用小写加下划线。</li>
|
||
<li>c#代码的文件夹命名,使用英文全拼,遵循Pascal命名法。</li>
|
||
</ol>
|
||
<h2 id="%E6%96%87%E4%BB%B6%E5%91%BD%E5%90%8D">文件命名</h2>
|
||
<ol>
|
||
<li>资源文件采用全小写加下划线的规范:</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>battle_background.png
|
||
game.lua
|
||
login_notice.prefab
|
||
</div></code></pre>
|
||
<ol start="2">
|
||
<li>c#代码文件采用Pascal大驼峰命名法</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>LuaBehaviour.cs
|
||
</div></code></pre>
|
||
<h2 id="%E4%BB%A3%E7%A0%81%E7%BC%A9%E8%BF%9B">代码缩进</h2>
|
||
<ul>
|
||
<li>使用4个空格,在编辑器里设置tab缩进为4个空格即可。</li>
|
||
</ul>
|
||
<h2 id="c%E4%BB%A3%E7%A0%81%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83">C#代码命名规范</h2>
|
||
<h3 id="%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4">命名空间</h3>
|
||
<ul>
|
||
<li>使用BF命名空间</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>namespace BF{
|
||
}
|
||
</div></code></pre>
|
||
<h3 id="%E7%B1%BB">类</h3>
|
||
<ul>
|
||
<li>使用Pascal大驼峰命名法。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>public class ResourceManager
|
||
</div></code></pre>
|
||
<h3 id="%E6%8E%A5%E5%8F%A3">接口</h3>
|
||
<ol>
|
||
<li>使用Pascal大驼峰命名法。</li>
|
||
<li>接口开头用I。</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>Public interface IResourceManager
|
||
</div></code></pre>
|
||
<h3 id="%E6%9E%9A%E4%B8%BE">枚举</h3>
|
||
<ol>
|
||
<li>枚举类型和枚举常量都使用Pascal大驼峰命名法。</li>
|
||
<li>不需要在类型或者枚举常量的前后加上Enum前缀。</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>public enum ColorMode
|
||
{
|
||
Single,
|
||
HorizontalGradient,
|
||
VerticalGradient,
|
||
FourCornersGradient
|
||
}
|
||
</div></code></pre>
|
||
<h3 id="%E5%87%BD%E6%95%B0">函数</h3>
|
||
<ol>
|
||
<li>函数名使用Pascal大驼峰命名法。</li>
|
||
<li>参数使用Camel小驼峰命名法</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>public void SendMessage(string messageBody)
|
||
{
|
||
|
||
}
|
||
</div></code></pre>
|
||
<h3 id="%E5%A7%94%E6%89%98%E5%92%8C%E4%BA%8B%E4%BB%B6">委托和事件</h3>
|
||
<ul>
|
||
<li>使用Pascal大驼峰命名法。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>public event Action TestEvent;
|
||
</div></code></pre>
|
||
<h3 id="%E5%B1%9E%E6%80%A7">属性</h3>
|
||
<ul>
|
||
<li>使用Pascal大驼峰命名法。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>public string Name
|
||
{
|
||
get;
|
||
set;
|
||
}
|
||
</div></code></pre>
|
||
<h3 id="%E5%8F%98%E9%87%8F">变量</h3>
|
||
<ol>
|
||
<li>使用Camel小驼峰命名法。</li>
|
||
<li>尽量用属性代替公有变量。</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>private int tag;
|
||
public string equipName;
|
||
</div></code></pre>
|
||
<ol start="3">
|
||
<li>静态变量使用Pascal大驼峰命名法。</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>public static string Name;
|
||
</div></code></pre>
|
||
<h3 id="%E5%B8%B8%E9%87%8F">常量</h3>
|
||
<ul>
|
||
<li>所有单词大写,多个单词之间用下划线隔开。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>public const int PAGE_INDEX = 1;
|
||
</div></code></pre>
|
||
<h2 id="lua%E4%BB%A3%E7%A0%81%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83">Lua代码命名规范</h2>
|
||
<h3 id="%E7%B1%BB%E5%90%8D">类名</h3>
|
||
<ul>
|
||
<li>使用Pascal大驼峰命名法。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>local ResourceManager = {}
|
||
return ResourceManager
|
||
|
||
local Item = class("Item")
|
||
return Item
|
||
</div></code></pre>
|
||
<h3 id="%E5%8F%98%E9%87%8F">变量</h3>
|
||
<ol>
|
||
<li>全局变量使用Pascal大驼峰命名法。</li>
|
||
<li>不允许直接定义全局变量,使用BF.exports</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>BF.exports.ResourceManager = require "app/common/resource_manager"
|
||
</div></code></pre>
|
||
<ol start="3">
|
||
<li>局部变量使用Camel小驼峰命名法。</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>local equipName = equipObject:getEquipNma()
|
||
</div></code></pre>
|
||
<h3 id="%E5%87%BD%E6%95%B0">函数</h3>
|
||
<ol>
|
||
<li>函数名使用Camel小驼峰命名法</li>
|
||
<li>参数使用Camel小驼峰命名法</li>
|
||
</ol>
|
||
<pre class="hljs"><code><div>function ResourceManager:loadAssetBundle(assetBundlePath)
|
||
|
||
end
|
||
</div></code></pre>
|
||
<h3 id="%E5%B8%B8%E9%87%8F">常量</h3>
|
||
<ul>
|
||
<li>所有单词大写,多个单词之间用下划线隔开。</li>
|
||
</ul>
|
||
<pre class="hljs"><code><div>local QUALITY_RED = 1
|
||
</div></code></pre>
|
||
|
||
</body>
|
||
</html>
|