c1_unity/Doc/项目命名规范/项目命名规范.html
2023-05-18 15:47:29 +08:00

520 lines
11 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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(&quot;Item&quot;)
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 &quot;app/common/resource_manager&quot;
</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>