理想Java技师的编制程序风格,一文教师非凡Jav

目录

图灵程序设计丛书:精通C#(第6版)是C#领域久负闻名的经文文章,深远周密地上课了C#编制程序语言和。NET平台的宗旨内容,并构成大气演示深入分析相关概念。全书分为八部分:C#和。NET平台、C#主导编制程序结构、C#面向对象编制程序、高档C#编制程序结构、用。NET程序集编程、。NET基础类库、WPF和ASP。NETWebForms。第6版是对第5版的愈发更新和宏观,内容饱含了最先进的。NET编程技能和技能,并标准显示出C#编制程序语言的摩登变化和。NET4。5Framework的新特色。

来自《The Elements of Java Style》-《Java编制程序风格》一书,值得一读的图书,会让你在细节上节省数不尽时间,合营之间更是欣然!

明天突发奇想,对编码习贯和编制程序风格很感兴趣,于是乎,找了一下有关编程风格的资料,希望对爱好编码可能初始学习编码的同室有帮扶!

  • 主干规则
  • 类设计指南
  • 属性成员计划指南
  • 任何设计指南
  • 可维护性指南
  • 命名指南
  • 质量指南
  • 框架指南
  • 文书档案指南
  • 布局指南
  • 连锁链接

《图灵程序设计丛书:驾驭C#(第6版)》由微软C#MVPAndrewTroelsen编写,第6版非常针对C#5。0和。NET4。5张开了紧凑入微的勘误,是各档期的顺序。NET开辟职员的必读之作。

利润没有多少说了,然而有多少个条件如下:

出自《The Elements of Java Style》-《Java编制程序风格》一书,值得一读的书本,会让你在细节上节省数不尽时辰,合营之间越是喜欢!


    图灵程序设计丛书:掌握C#
目录:

1.维持原本风格

利润十分少说了,不过有多少个条件如下:

C# 编制程序指南

率先部分 C#与.NET平台
第1章
.NET之道
1.1
初识.NET平台
1.2
.NET平台构造块(CLEscort、CTS和CLS)简单介绍
1.2.1
基本功类库的效能
11.2.3
托管代码与非托管代码
1.3
另外支持.NET的编程语言
1.4
.NET程序集大概浏览
1.4.1
CIL的作用
1.4.2
.NET类型元数据的意义
1.4.3
程序集清单的机能
1.5
CTS
1.5.1
CTS类类型
1.5.2
CTS接口类型
1.5.3
CTS结构类型
1.5.4
CTS枚举类型
1.5.5
CTS委托项目
1.5.6
CTS类型成员
1.5.7
内建的CTS数据类型
1.6
CLS
1.7
CLR
1.8
次第集/命名空间/类型的界别
1.8.1
Microsoft根命名空间的意义
1.8.2
以编制程序格局访问命名空间
1.8.3
援引外界程序集
1.9
选择ildasm.exe查究程序集
1.9.1
查看CIL代码
1.9.2
查看类型元数据
1.9.3
翻看程序集元数据(即清单)
1.10
.NET的平台非亲非故性
1.11
Windows 8应用程序简要介绍
1.11.1
构建Windows
8应用程序
1.11.2
.NET在Windows
第88中学的功用
1.12
小结

2.百折不回最小欢快原则

1.保持原本风格

那二日在 Github 上见到了壹人大咖制造多少个仓房:CSharpCodingGuidelines,打开未来看了一晃 readme.md 相关描述,认为应该十分不利,于是就 clone 到本地拜读一下,这里列一些和好的笔记,方便日后回首。

第2章 构建C#应用程序
2.1
.NET Framework 4.5 SDK的作用
2.2
用csc.exe构建C#应用程序
2.2.1
点名输入输出目的
2.2.2
援用外界程序集
2.2.3
援引三个外表程序集
2.2.4
编写翻译八个源文件
2.2.5
使用C#一呼百应文件
2.3
行使Notepad 创设.NET应用程序
2.4
采纳夏普Develop营造.NET应用程序
2.5
使用Visual C#
Express构建.NET应用程序
2.6
使用Visual
Studio创设.NET应用程序
2.6.1
Visual Studio的异样功能
2.6.2
使用New
Project对话框指向.NET
Framework
2.6.3
建设方案财富管理器
2.6.4
Class View工具
2.6.5
Object Browser工具
2.6.6
购并对代码重构的辅助
2.6.7
代码扩充和环绕技能
2.6.8
可视化Class
Designer
2.6.9
集成的.NET Framework 4.5
SDK文书档案系统
2.7
小结

3.先是次就做对

2.坚忍不拔最小欢乐原则

着力法则

  • Astonishment 原则:你的代码应该尽大概做到让每一个人都能驾驭。任什么人都有写出让机器认知的代码,可是并非每种人都能写出令人认识的代码;
  • Kiss 原则:类似 Python 之禅 里面说的那样,轻巧胜于复杂;
  • YAGNI 原则:代码尽量能做到可增加,但请不要过度重构,因为你不能够预言今后;
  • D哈弗Y 原则:不要再一次造轮子,除非你不常光依然您造的车轮会比旁人的理想;
  • 面向对象编程原则:承袭、封装、多态、抽象;

其次片段 C#基本编制程序结构
第3章
C#中央编制程序结构
3.1
三个简便的C#程序
3.1.1
Main方法的别的情势
3.1.2
点名应用程序错误代码
3.1.3
管理命令行参数
3.1.4
使用Visual
Studio钦命命令行参数
3.2
有趣的题外话:System.Environment类的其余成员
3.3
System.Console类
3.3.1
动用Console类实行基本的输入和出口
3.3.2
格式化调控台出口
3.3.3
格式化数值数据
3.3.4
在调整台应用程序外格式化数值数据
3.4
系统数据类型和相应的C#关键字
3.4.1
变量表明和伊始化
3.4.2
内建数据类型与new操作符
3.4.3
数据类型类的层次结构
3.4.4
数值数据类型的积极分子
3.4.5
System.Boolean的成员
3.4.6
System.Char的成员
3.4.7
从字符串数据中深入分析数值
3.4.8
System.DateTime和System.TimeSpan
3.4.9
System.Numerics.dll程序集
3.5
使用字符串数据
3.5.1
着力的字符串操作
3.5.2
字符串拼接
3.5.3
转义字符
3.5.4
概念逐字字符串
3.5.5
字符串和相等性
3.5.6
字符串是不可变的
3.5.7
System.Text.StringBuilder类型
3.6
窄化和宽化数据类型转变
3.6.1
checked关键字
3.6.2
设定项目等级的溢出检查实验
3.6.3
unchecked关键字
3.7
隐式类型本地变量
3.7.1
隐式类型变量的限量
3.7.2
隐式类型数据是强类型数据
3.7.3
隐式类型本地变量的用途
3.8
C#迭代结构
3.8.1
for循环
3.8.2
foreach循环
3.8.3
while和do/while循环结构
3.9
准绳结会谈涉及/相等操作符
3.9.1
if/else语句
3.9.2
涉嫌/相等操作符
3.9.3
逻辑操作符
3.9.4
switch语句
3.10
小结

4.记录全体非标准作为

3.率先次就做对

类设计指南

  • 叁个类/接口应该唯有叁个用途,要符 合单一职分 原则;
  • 只开创再次来到有用对象的构造函数,当构造函数的参数超越 3 的话,你就应有考虑你的类设计是或不是过于臃肿;
  • 接口应该短小精悍,其定义要领悟清晰地传达出其抱有的一言一行;
  • 比方一种表现存各类兑现,请思虑选择接口并非基类;
  • 尽恐怕使用接口将类举行互动解耦;
  • 幸免采取静态类;
  • 决不使用 new 关键字来禁绝编写翻译器突显相关警示;
public class Book
{
    public virtual void Print()
    {
        Console.WriteLine("Printing Book");
    }
}

public class PocketBook : Book
{
    public new void Print()
    {
        Console.WriteLine("Printing PocketBook");
    }
}

class Program
{
    static void Main(string[] args)
    {
        PocketBook pocketBook = new PocketBook();
        pocketBook.Print();

        ((Book)pocketBook).Print();

        Console.ReadKey();
    }
}

在上述代码段中,大家创制叁个基类 book,并定义了三个 Print() 方法,接着大家创建一个子类 PocketBook,并通过 new 关键字来重写基类方法。在品种复杂的场合下,使用这种格局将形成大家无法准确预测是子类调用依然父类调用,使代码复杂度提高。

  • 有道是能够将派生类当做基类对象来拍卖;
  • 不用援引基类的派生类;
  • 幸免暴露三个对象信赖的别样对象;
  • 幸免双向信任;
  • 类应该有事态和作为;
  • 类应该珍贵当中间景色的一致性;

第4章 C#着力编制程序结构
4.1
办法和参数修饰符
4.1.1
默许的参数字传送递行为
4.1.2
out修饰符
4.1.3
ref修饰符
4.1.4
params修饰符
4.1.5
概念可选参数
4.1.6
运用命名参数调用方法
4.1.7
成员重载
4.2
C#数组
4.2.1
C#数组发轫化语法
4.2.2
隐式类型本地数组
4.2.3
定义object数组
4.2.4
采纳多维数组
4.2.5
数组作为参数(和重回值)
4.2.6
System.Array基类
4.3
枚举类型
4.3.1
支配枚举的底部存款和储蓄
4.3.2
注明枚举变量
4.3.3
System.Enum类型
4.3.4
动态获取枚举的称呼/值对
4.4
布局类型
4.5
值类型和引用类型
4.5.1
值类型、援用类型和赋值操作符
4.5.2
含有援用类型的值类型
4.5.3
按值传递援用类型
4.5.4
按援用传递引用类型
4.5.5
值类型和引用类型:最终的底细
4.6
C#可空类型
4.6.1
运用可空类型
4.6.2
??操作符
4.7
小结

格式标准:

4.记下全数非规范行事

属性成员陈设指南

  • 同意按私行顺序设置属性;
  • 行使方法并非性质;
  • 不要采取相互倾轧的属性;
  • 质量、方法如故地面方法只应该做一件职业;
  • 决不通过静态成员公开有情形的对象;
  • 用 IEnumerable 只怕 ICollection 来替代具体的汇集对象作为再次回到值;
  • 一经属性、参数和重返值是字符串恐怕聚众类型的话,则恒久不该为空;
  • 尽量地定义具体的参数;
  • 思索选拔特定域的值类型实际不是基元;

其三片段 C#面向对象编制程序
第5章封装
5.1
C#类类型
5.2
构造函数
5.2.1
私下认可构造函数的效果
5.2.2
概念自定义的构造函数
5.2.3
再谈暗许构造函数
5.3
this关键字的机能
5.3.1
使用this进行串联构造函数调用
5.3.2
考查构造函数流程
5.3.3
再谈可选参数
5.4
static关键字
5.4.1
概念静态数据
5.4.2
概念静态方法
5.4.3
概念静态构造函数
5.4.4
概念静态类
5.5
定义OOP的支柱
5.5.1
包装的效应
5.5.2
持续的意义
5.5.3
多态的法力
5.6
C#做客修饰符
5.6.1
默许的拜访修饰符
5.6.2
做客修饰符和嵌套类型
5.7
率先个支柱:C#的包裹服务
5.7.1
使用守旧的访谈方法和改变章程实行封装
5.7.2
使用.NET属性实行打包
5.7.3
行使类的品质
5.7.4
只读和只写属性
5.7.5
静态属性
5.8
电动属性
5.8.1
与机动属性交互
5.8.2
至于机关属性和暗中同意值
5.9
指标开头化语法
5.9.1
应用开首化语法调用自定义构造函数
5.9.2
开始化内部类型
5.10
常量数据
5.10.1
只读字段
5.10.2
静态只读字段
5.11
根据地类型
5.12
小结

1.缩进嵌套的代码:在每一种代码块和嵌套中到场缩进,缩进代码,加强可读性。这一个地点饱含【类定义,内部类定义,方法定义,静态块,for循环语句,if-else语句,try、catch和finally块,无名氏内部类,while语句,do-while语句】

1.缩进嵌套的代码:在种种代码块和嵌套中步向缩进,缩进代码,抓牢可读性。这个地点包含【类定义,内部类定义,方法定义,静态块,for循环语句,if-else语句,try、catch和finally块,佚名内部类,while语句,do-while语句】

其余安顿指南

  • 抛出非常实际不是回到某体系型的图景值;
  • 提供整机而有意义的特别消息;
  • 抛出确切的最实际的极度;
  • 无须通过 try - catch 格局遮盖卓殊;
  • 正确管理异步代码中的格外;
  • 调用事件委托前先推断是不是为空;
event EventHandler<string> Notify;
protected virtual void OnNotify(string args)
{
    Notify?.Invoke(this, args);
}
  • 动用受保证的虚方法来触发每种事件;
  • 思虑加多属性别变化化事件;
  • 当接触事件时要力保 sender != nulll;
  • 假定适度的话,请思考动用泛型约束;
class SomeClass
{
}

/// <summary>
/// 不推荐
/// </summary>
class MyClass1
{
    void SomeMethod<T>(T t)
    {
        object temp = t;
        SomeClass obj = (SomeClass)temp;
    }
}

/// <summary>
/// 推荐
/// </summary>
class MyClass2
{
    void SomeMethod<T>(T t) where T :SomeClass
    {
        SomeClass obj = t;
    }
}
  • 在重临 LINQ 表明式以前计算它的结果;
  • 一旦不是必需,不要选择 thisbase 关键字;

第6章传承和多态
6.1
接轨的中央机制
6.1.1
钦赐既有类的父类
6.1.2
四个基类
6.1.3
sealed关键字
6.2
回顾Visual
Studio类关系图
6.3
OOP的第3个支柱:继承
6.3.1
应用base关键字调整基类的创造
6.3.2
家门的秘密:protected关键字
6.3.3
充实密闭类
6.4
包罗/委托编制程序
6.5
OOP的第多少个支柱:C#的多态协助
6.5.1
virtual和override关键字
6.5.2
使用Visual Studio
IDE重写虚方法
6.5.3
密闭虚成员
6.5.4
抽象类
6.5.5
创设多态接口
6.5.6
分子投影
6.6
基类/派生类的转变法则
6.6.1
C#的as关键字
6.6.2
C#的is关键字
6.7
至上父类:System.Object
6.7.1
重写System.Object.ToString
6.7.2
重写System.Object.Equals
6.7.3
重写System.Object.GetHashCode
6.7.4
测验修改后的Person类
6.7.5
System.Object的静态成员
6.8
小结

2.断开不长的语句:第一,如若含有了逗号,那么在每三个逗号后边都另起一行,把逗号前面的每三个表明式都和逗号前边的表明式的率先个字母对齐。第二,应该在优先级最低的运算符在此之前断行。

2.断开相当短的语句:第一,若是含有了逗号,那么在每贰个逗号后边都另起一行,把逗号后边的每种表明式都和逗号前面包车型地铁说明式的第二个字母对齐。第二,应该在优先级最低的运算符在此以前断行。

可维护性指南

  • 主意内部的代码段尽量不要超越 7 行;
  • 确定保证全数成员个人,类的类型暗中认可为为 internal sealed
  • 幸免重复标准;
  • 在其包括的命名空间内命名程序集;
  • 将源文件命名叫它所含有的项目;
  • 将源文件的情节限制为一体系型;
  • 将区别的逻辑函数放到同三个局地类中;
  • 在运用一个门类时,使用 using 关键字导入需求的命名空间,并不是连串的完整空间标记;
  • 无须接纳法力数;
  • 除非当类型综上可得时才使用 var 关键字;
  • 概念变量时尽或者地初叶化;
  • 在竞相独立的代码段中定义临时变量;
  • 若对象有成团需求开首化的话在开展对象开始化的同临时候展开联谊起初化;
  • 绝不显式进行 bool 值的比较;
  • 防止嵌套循环;
  • 在使用 ifelsedowhileforforeachcase 的还要选取 {}
  • switch case 代码段中增多 default 逻辑;
  • 在有着的 ifelse if 后再增加 else;
  • 幸免使用五个再次来到值;
  • 虚构选拔轻松的条件语句替代 if else
  • 封装属性、方法或一些函数中的复杂表明式;
  • 再安妥的情景下品尝重载方法;
  • 选用可选参数来顶替重载;
  • 防止采取命名参数;
  • 制止定义当先3个参数的签定;
  • 幸免函数签字为布尔类型;
  • 并非将参数作为有时变量使用;
  • 将情势作为操作;
  • 不要解说代码;

第7章结构化格外管理
7.1
错误、bug与异常
7.2
.NET相当管理的功用
7.2.1
.NET相当管理的四要素
7.2.2
System.Exception基类
7.3
最简易的例证
7.3.1
抓住普通的百般
7.3.2
抓获十分
7.4
布局不行的地方
7.4.1
TargetSite属性
7.4.2
StackTrace属性
7.4.3
HelpLink属性
7.4.4
Data属性
7.5
系统级格外
7.6
运用程序级卓殊
7.6.1
营造自定义特别,第一片段
7.6.2
创设自定义拾贰分,第二有些
7.6.3
营造自定义极度,第三片段
7.7
管理八个极其
7.7.1
通用的catch语句
7.7.2
重新引发这么些
7.7.3
里头特别
7.7.4
finally块
7.8
哪个人在掀起什么非凡
7.9
未处理非凡的结局
7.10
使用Visual
Studio调节和测验未管理的特别
7.11
小结

3.用到空白:关键字和左括号之间,右括号和紧随其后的首要字,除了”.”之外的运算符与其左右的表明式之间用空格隔断。每种逻辑上独立的措施和代码段之间,定义类大概接口的成员之内,各样类和接口之间应当进入空白行。

3.应用空白:关键字和左括号之间,右括号和紧随其后的最首要字,除了”.”之外的运算符与其前后的表明式之间用空格隔开分离。种种逻辑上单独的章程和代码段之间,定义类可能接口的积极分子之内,每一种类和接口之间应该到场空白行。

取名指南

  • 并不是在变量、参数和档期的顺序成员中富含数字;
  • 决不在字段增多前缀;
  • 永不采取缩写;
  • 成员、参数和变量定义要依靠它们代表的意思;
  • 应用名词、名词短语或然形容词来定义类型;
  • 运用描述性名称命名泛型参数;
  • 在类成员中实际不是再一次定义和类一样的称呼;
  • 成员定义可参看 .Net Framework 的概念方式;
  • 幸免使用或然被误解的段名称或字段;
  • 正明确义属性;
  • 在命名格局或一些函数时接纳谓词或谓词对象;
  • 行使名称、层、谓词和成效表明命名空间;
  • 使用动词或动词前缀来定义事件;
  • 使用 ingend 后缀来表明事件预处理和发送事件;
  • 使用 on 前缀来定义事件管理程序;
  • 使用 Async 或者 TaskAsync 来标记异步方法;

第8章接口
8.1
接口类型
8.2
概念自定义接口
8.3
金玉锦绣接口
8.4
在目标品级调用接口成员
8.4.1
收获接口援引:as关键字
8.4.2
获得接口援引:is关键字
8.5
接口作为参数
8.6
接口作为重返值
8.7
接口类型数组
8.8
使用Visual
Studio完成接口
8.9
显式接口达成
8.10
设计接口等级次序结构
8.11
构建可枚举类型(IEnumerable和IEnumerator)
8.11.1
用yield关键字创设迭代器方法
8.11.2
营造命名迭代器
8.12
创设可克隆的靶子(ICloneable)
8.13
创设可正如的指标(IComparable)
8.13.1
点名五个排序依次
8.13.2
自定义属性、自定义排序类型
8.14
小结

4.绝不一向动用Tab调控符:不相同情形对Tab调整符的讲明也是见仁见智的。

4.而不是直接行使Tab调节符:区别情形对Tab调控符的疏解也是例外的。

属性指南

  • 使用 Any() 判断 IEnumerable 是或不是为空 ;
  • 仅对低密集型活动选用异步;
  • 对于 CPU密集型使用 Task.Run
  • 制止同不经常候将 async/awaitTask.Wait 混合使用;
  • 避免 async/await 在单线程蒙受下出现死锁;

第四片段 高端C#编制程序结构
第9章集合与泛型
9.1
集合类的胸臆
9.1.1
System.Collections命名空间
9.1.2
System.Collections.Specialized命名空间
9.2
非泛型会集的标题
9.2.1
质量难点
9.2.2
品种安全主题材料
9.2.3
初识泛型集结
9.3
泛型类型参数的效应
9.3.1
为泛型类/结构钦点项目参数
9.3.2
为泛型成员钦命项目参数
9.3.3
为泛型接口钦定项目参数
9.4
System.Collections.Generic命名空间
9.4.1
群集开首化语法
9.4.2
使用List类
9.4.3
使用Stack类
9.4.4
使用Queue类
9.4.5
使用SortedSet类
9.5
System.Collections.ObjectModel命名空间
9.6
成立自定义泛型方法
9.7
创设自定义泛型结谈判类
9.8
种类参数的约束
9.8.1
动用where关键字的演示
9.8.2
操作符约束的阙如
9.9
小结

命名约定:

1.名号应当具有实际意义

框架指南

  • 使用 C# 类型 别称并非系量进行显式调用;
  • 决不硬编码;统命名空间中的类型;
  • 运用最高警戒品级编写翻译代码;
  • 对此简易的表明式幸免选择 LINQ
  • 应用 lambda 表达式来取代无名函数;
  • 只用在运用动态目标时才使用 dynamic 关键字;
  • 支撑异步/等待任务一连;

第10章委托、事件和Lambda表达式
10.1
.NET委托项目
10.1.1
在C#中定义委托类型
10.1.2
System.MulticastDelegate与System.Delegate基类
10.2
最简易的嘱托示例
10.3
动用委托发送对象意况布告
10.3.1
支撑多路广播
10.3.2
从委托的调用列表中移除成员
10.3.3
方法组调换语法
10.4
泛型委托
10.5
C#事件
10.5.1
event关键字
10.5.2
揭秘事件的私人住房面纱
10.5.3
监听传入的风云
10.5.4
使用Visual
Studio简化事件注册
10.5.5
始建自定义的平地风波参数
10.5.6
泛型EventHandler委托
10.6
C#匿超级模特式
10.7
Lambda表达式
10.7.1
剖析Lambda表达式
10.7.2
应用五个语句管理参数
10.7.3
含蓄多个(或零个)参数的Lambda表明式
10.7.4
动用Lambda表达式重新编写CarEvents示例
10.8
小结

1.称呼应当具有实际意义

2.用到人们耳濡目染的称号

文书档案指南

  • 动用英式匈牙利(Magyarország)语来编排相关文书档案;
  • 文书档案中的代码部分要保证完整性;
  • 与任何开荒人士一同编写 xml 文书档案;
  • 编纂 MSDN 风格的技术文书档案;
  • 制止内联注释;
  • 注释值应该用来表明复杂的算法或研商;
  • 不用使用注释来追踪要在以后产生的劳作;

第11章 高级C#语言特征
11.1
索引器方法
11.1.1
接纳字符串值索引对象
11.1.2
重载索引器方法
11.1.3
多维的索引器
11.1.4
在接口类型上定义索引器
11.2
操作符重载
11.2.1
重载二元操作符
11.2.2
=与-=操作符
11.2.3
重载一元操作符
11.2.4
重载相等操作符
11.2.5
重载比较操作符
11.2.6
操作符重载的结尾考虑
11.3
自定义类型调换
11.3.1
遥想:数值调换
11.3.2
记念:相关的类类型间的改换
11.3.3
创办自定义转变例程
11.3.4
Square类型的别样显式调换
11.3.5
概念隐式转变例程
11.4
扩展方法
11.4.1
概念扩充方法
11.4.2
在实例等级次序上调用扩大方法
11.4.3
导入扩张方法
11.4.4
扩展方法的智能感知
11.4.5
扩充实现了点名接口的花色
11.5
无名类型
11.5.1
定义佚名类型
11.5.2
无名类型的中间表示方法
11.5.3
方法ToString和GetHashCode的实现
11.5.4
佚名类型的相当于语义
11.5.5
带有无名氏类型的无名类型
11.6
指针类型
11.6.1
unsafe关键字
11.6.2
*和 操作符
11.6.3
不安全(与晋城)交换功用
11.6.4
因而指针访谈字段
11.6.5
stackalloc关键字
11.6.6
应用fixed关键字固定类型
11.6.7
sizeof关键字
11.7
小结

2.用到大家听得多了就能说的详细的称谓

3.小心审慎运用过长的名字,能够动用简明通用的缩写

布局指南

  • 利用正规布局;
  • 依据公式须求进行命名空间的牢笼;
  • 将成员置于定义出色的逐个中;
  • 严慎选取 #region
  • 适龄采用表现完美的分子;

第12章 LINQ to Object
12.1
LINQ特有的编制程序结构
12.1.1
隐式类型本地变量
12.1.2
指标和聚焦初阶化语法
12.1.3
Lambda表达式
12.1.4
恢宏方法
12.1.5
佚名类型
12.2
LINQ的作用
12.2.1
LINQ表达式是强类型的
12.2.2
核心LINQ程序集
12.3
将LINQ查询利用于原始数组
12.3.1
再一次,不使用LINQ
12.3.2
反射LINQ结果集
12.3.3
LINQ和隐式类型本地变量
12.3.4
LINQ和扩展方法
12.3.5
推迟施行的法力
12.3.6
立刻实践的成效
12.4
再次来到LINQ查询的结果
12.5
将LINQ查询利用到集中对象
12.5.1
访问包涵的子对象
12.5.2
将LINQ查询利用于非泛型群集
12.5.3
利用OfType筛选数据
12.6
C# LINQ查询操作符
12.6.1
骨干的取舍语法
12.6.2
获取数据子集
12.6.3
黑影新数据类型
12.6.4
利用Enumerable获取总的数量
12.6.5
反转结果集
12.6.6
对表明式进行排序
12.6.7
维恩图工具
12.6.8
移除重复
12.6.9
LINQ聚合操作
12.7
LINQ查询语句的中间表示
12.7.1
用查询操作符创设查询表明式(复习)
12.7.2
应用Enumerable类型和Lambda表明式来树立查询表明式
12.7.3
运用Enumerable类型和佚名方式来构建查询表明式
12.7.4
用Enumerable类型和原本委托创制查询表达式
12.8
小结

3.严格使用过长的名字,能够利用简明通用的缩写

4.尽量保留元音字母

连带链接

  • Code Complete: A Praccal Handbook of Soware Construcon (Steve McConnel)
  • The Art of Agile Development (James Shore)
  • Applying Domain-Driven Design and Paerns: With Examples in C# and .NET (Jimmy Nilsson)
  • Jeremy D. Miller's Blog
  • LINQ Framework Design Guidelines
  • Best Pracces for c# async/await

第13章对象的生命周期
13.1
类、对象和援用
13.2
目标生命周期的基础
13.2.1
CIL的new指令
13.2.2
将指标援用设置为空
13.3
应用程序根的功力
13.4
目的的代
13.5
.NET 1.0至.NET
3.5的面世垃圾回收
13.6
.NET 4.0及后续版本
13.7
System.GC类型
13.8
创设可完工对象
13.8.1
重写System.Object.Finalize
13.8.2
得了进程的底细
13.9
构建可处以对象
13.10
创设可完工类型和可处以项目
13.11
延期对象实例化
13.12
小结

4.尽量保留元音字母

5.缩写词的第3个字母大写

    ...

5.缩写词的第一个假名大写

6.不要采纳大小写来区分的名字

                        《精通c#(第6版)》【PDF】下载链接:

6.决不选择大小写来区分的名字

1.用你所在组织的域名的倒序小写方式作为包的根限定词

越多书单和推荐介绍电子书请关切:

包命名:

2.施用单独的小写词作者为每一个包的根名

1.用你所在团队的域名的倒序小写方式作为包的根限定词

3.仅当新旧版本二进制包容的时候,其包能够动用一样的名字,否则,请使用新名字

2.选择单独的小写词作者为种种包的根名

1.类和接口名中的各种单词的第贰个字母大写

3.仅当新旧版本二进制宽容的时候,其包能够利用同样的名字,不然,请使用新名字

1.用名词命名类

品种命名:

2.怀有成组相关属性,静态服务依旧常量的类名字使用复数方式

1.类和接口名中的每一种单词的第贰个假名大写

1.用名词可能形容词命名接口

类命名:

1.艺术名中的第贰个单词小写,其后各种单词的第二个假名大写

1.用名词命名类

2.用动词命名形式

2.有所成组相关属性,静态服务依旧常量的类名字使用复数情势

3.服从JavaBean中命名属性访谈函数方法:set,get,is

接口命名:

1.变量命中的第二个单词小写,其后的各类单词的率先个字母大写

1.用名词大概形容词命名接口

2.用名词命名变量

艺术命名:

3.汇集援用名要用复数情势

1.措施名中的第三个单词小写,其后种种单词的率先个字母大写

4.为不根本的近些日子变量简历并运用一套标准名字

2.用动词命名格局

1.行使this字段变量能够分别开部分变量

3.遵守JavaBean中命名属性访问函数方法:set,get,is

1.构造函数大概”set”方法给字段分配参数赋值,参数名应当和字段名同样

变量命名:

1.常量的种种单词均大写,单词之间接选举用下划线连接

1.变量命中的第三个单词小写,其后的各样单词的率先个假名大写

1.为利用和掩护你的代码的人编写文书档案

2.用名词命名变量

2.讲明和代码要共同

3.会面引用名要用复数方式

3.采用主动的意在言外,省略无用的辞藻

4.为不主要的有时变量简历并使用一套规范名字

1.用文书档案注释来描述编制程序接口

字段命名:

2.用规范注释格式遮盖代码而毋庸删除它们

1.利用this字段变量可以区分开部分变量

3.用单行注释解释完毕细节

参数命名:

1.在编辑代码前描述编程接口

1.构造函数只怕”set”方法给字段分配参数赋值,参数名应当和字段名同样

2.为公用,受保证,包,私有成员创立文书档案

常量命名:

3.为每一种包编写总结和概述

1.常量的各类单词均大写,单词之间接选举拔下划线连接

4.为包的各种应用程序或组编写概述

文书档案约定:

1.对富有文书档案注释使用统一的格式和团伙结构

1.为利用和掩护您的代码的人编写文书档案

2.重视字,标记符和常量应松手<code>…</code>标签中

2.申明和代码要共同

3.将代码归入<pre>…</pre>标签中

3.使用主动的口吻,省略无用的用语

4.在标记符第一遍出现的时候用{@link}标签

注明类型:

5.为Javadoc标签简历并行使一套固定的一一

1.用文书档案注释来汇报编制程序接口

6.运用第几人称陈说的款型

2.用标准注释格式掩盖代码而不用删除它们

7.编写独立的概述

3.用单行注释解释达成细节

8.省略概述中动作和劳务的主语

文书档案注释:

9.省略事物概述中的对象和动词

1.在编写代码前描述编制程序接口

10.运用this并不是the来指代当前类中的实例

2.为公用,受保险,包,私有成员建设构造文书档案

11.方法名大概构造函数名不需圆括号,除非您想优异一个特种的具名

3.为各样包编写总计和概述

1.各类类、接口、字段和措施都编写制定概述

4.为包的每种应用程序或组编写概述

2.完整描述每一个方法的具名

解说风格:

3.包涵示例

1.对富有文书档案注释使用统一的格式和团伙结构

4.为停放、前置、不变条件编写文书档案

2.珍视字,标记符和常量应放权<code>…</code>标签中

5.为已知的劣点和不足编写文书档案

3.将代码放入<pre>…</pre>标签中

6.为同步语法编写文书档案

4.在标志符第贰回面世的时候用{@link}标签

1.仅增进有协理领会您的代码的中间注释

5.为Javadoc标签简历并选拔一套固定的逐条

2.描绘代码为啥如此做,并非在做什么样

6.施用第多人称陈述的样式

3.制止使用行尾注释

7.编写独立的概述

4.用行尾注释解释局地变量注脚

8.省略概述中动掸和服务的主语

5.创建并运用一套关键词来标记尚未化解的标题

9.省略事物概述中的对象和动词

6.在嵌套程度高的调控结构中标识出嵌套甘休地点

10.行使this并非the来指代当前类中的实例

7.要是八个case标志之间未有break语句,就在中游投入“fall-through”注释

11.方法名可能构造函数名不需圆括号,除非您想杰出三个独具匠心的签订

8.标识空语句

注明内容:

1.将意味着基础数据类型的类注明为final类型

1.种种类、接口、字段和章程都编写制定概述

2.通过本地品种和其余实际品种构建具体项目

2.完完全全描述各类方法的签订

3.定义小的类和小的法门

3.暗含示例

4.定义子类,以便任何利用超类的地点都得以运用子类

4.为停放、前置、不改变条件编写文书档案

5.使具备字段私有

5.为已知的劣点和不足编写文书档案

6.应用多态来代替instanceof

6.为同步语法编写文档

1.以java.lang.Object包装通用类,提供静态类型检查

其间注释:

2.以类的款式封装枚举类型

1.仅增加有支持明白你的代码的当中注释

3.尽量运用泛型

2.描绘代码为何如此做,并不是在做什么

1.用也便是的秘籍替换重复的、复杂的表明式

3.幸免采纳行尾注释

2.行使块语句代替调节流结构的表达式

4.用行尾注释解释局地变量表明

3.利用括号分明操作顺序

5.构建并运用一套关键词来标志尚未化解的主题材料

4.在switch语句中的最终一个case体使用break语句

6.在嵌套程度高的调节结构中标志出嵌套甘休地点

5.运用equals(),实际不是==来检验对象的对等关系

7.假使七个case标志之间平素不break语句,就在中游投入“fall-through”注释

1.构造情形有效的靶子

8.标志空语句

2.不要从构造函数中调用非final方法

编制程序约定:

3.用嵌套的构造函数化解冗余代码

1.将象征基础数据类型的类表明为final类型

1.行使不受检查、运营时的可怜来报告或然在程序逻辑中出错的不得了未核查错误

2.通过本地品种和任何实际品种创设具体品种

2.运用检查分外来告诉大概产生,而在常规的程序运转时极少爆发的失实

3.定义小的类和小的办法

3.用重返代码报告可预见的图景改换

4.定义子类,以便任何利用超类的地点都能够利用子类

4.仅转化十分来加多信息

5.使全体字段私有

5.并不是专擅处置运维时依然不当特别

6.选取多态来代替instanceof

6.用finally语句块释放能源

类型安全:

1.依照预订编程

1.以java.lang.Object包装通用类,提供静态类型检查

2.用无用代码化解机制落实断言

2.以类的样式封装枚举类型

3.用断言捕捉代码中的逻辑错误

3.尽量行使泛型

4.用断言检查评定方法的松开条件和前置条件

讲话和表明式:

1.仅在合适的地方使用线程

1.用等于的方法替换重复的、复杂的表明式

1.幸免同步

2.应用块语句代替调整流结构的表明式

2.用一块的包装器,提供一块接口

3.行使括号鲜明操作顺序

3.若是措施富含多少个无需一块的重大操作,那么毫不一齐整个艺术

4.在switch语句中的最终一个case体使用break语句

4.读写实例变量的时候幸免不供给的一路

5.利用equals(),实际不是==来检验对象的对等关系

5.使用notify()而不是notifyAll()

构造:

6.为共同初叶化使用重复检查方式

1.构造气象有效的指标

1.使用懒惰伊始化

2.不要从构造函数中调用非final方法

2.防止成立不供给的靶子

3.用嵌套的构造函数化解冗余代码

3.重新初始化并再一次接纳对象,尽量不要新建对象

极度管理:

4.把优化办事留在日后

1.应用不受检查、运营时的相当来告诉可能在程序逻辑中失误的沉痛未考查错误

1.将平时使用、更动、同临时常间发表依然相互依存的花色,放在同三个包里

2.应用检查格外来报告可能发生,而在常规的程序运转时极少发生的错误

2.齐声密封原则

3.用再次来到代码报告可预感的境况退换

3.援引/发表等于原则

4.仅转化十分来增加新闻

4.无环重视原则

5.不要专断处置运转时要么失实极其

5.将不安宁的类和接口隔开分离在单身的包中

6.用finally语句块释放能源

6.易于修改的包不要依附于难以修改的包

断言:

7.最大化抽象最大化牢固性

1.安分守纪预定编制程序

8.将高层设计和架构作为稳固的悬空,组织为平安的包

2.用无用代码消除机制落实断言

上述仅是一些条条框框简单的陈列,推荐阅读此书。

3.用断言捕捉代码中的逻辑错误

Java高架构师、分布式架构、高可扩张、高质量、高并发、质量优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型布满式项目实战学习架构师录制无偿得到架构群:854180697 加群链接

4.用断言检验方法的停放条件和前置条件

并发:

1.仅在得当的地点使用线程

同步:

1.制止同步

2.用联合的包装器,提供联合接口

3.万一格局包含几个没有需求联合的最首要操作,那么毫无一同整个艺术

4.读写实例变量的时候幸免不须求的一路

5.使用notify()而不是notifyAll()

6.为一齐开头化使用重复检查方式

效率:

1.使用懒惰初阶化

2.幸免创建不要求的靶子

3.再度伊始化并再一次使用对象,尽量不要新建对象

4.把优化办事留在日后

包装约定:

1.将平常选拔、更换、同临时间宣告可能互相依存的门类,放在同八个包里

2.同台密封原则

3.选用/宣布等于原则

4.无环依赖原则

5.将不稳固的类和接口隔开分离在单身的包中

6.易于修改的包不要依靠于难以修改的包

7.最大化抽象最大化牢固性

8.将高层设计和架构作为牢固的肤浅,协会为平稳的包

为了让学习变得轻易、高效,前几天给大家无需付费享受一套Java教学能源。扶持大家在改为Java架构师的道路上勇于。须要材质的迎接参预学习沟通群:9285,05736

本文由星彩网app下载发布于计算机编程,转载请注明出处:理想Java技师的编制程序风格,一文教师非凡Jav

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。