大括号

《阿里巴巴 Java 开发手册》读书笔记

匿名 (未验证) 提交于 2019-12-02 21:53:32
偶然看到阿里巴巴居然出书了???趁着满减活动(节约节约....)我赶紧买来准备看看,刚拿到的时候掂量了好多下,总觉得商家给我少发了一本书,结果打开才知道..原来这本书这么小.... 别人都说我们是搬砖的码农,但我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着,但在我们不羁的外表下,骨子里追求着代码的美、系统的美、设计的美,代码规范其实就是一个对程序美的定义。―― 引自 序 如果有一天在我们的项目中看到了这样的代码: 或者是这样的代码: 这样美不美呢?或许看着是还挺美的,但是如果需要修改,是不是人傻啦? 那这样的代码呢? 作为一个对自己有一定要求的程序猿,是不是第一反应就是: 重写! 原作者是谁?锤他! 总结:代码规范很重要! 众所周知,互联网公司的优势在于效率,它是企业核心竞争力。体现在产品开发领域,就是够沟通效率和研发效率。对于沟通效率的重要性,可以从程序猿三大 “编码理念之争” 说起: 缩进采用空格键,还是 Tab 键 if 单行语句需要大括号还是不需要大括号 左大括号不换行,还是单独另起一行 在美剧《硅谷》中,有这样的一个经典镜头: 程序媛:Kid? 我们似乎很久没有一起睡了。 程序猿:现在?不可能!我永远不会和使用空格来缩进的人睡在一起! 程序媛:(疯狂敲 space 气走了程序猿) 程序猿:(甩了一句)一个 Tab 可以代替 8个 空格!

(译) Google Kotlin CodeStyle · Averson

社会主义新天地 提交于 2019-12-01 15:43:14
Google 官方 Kotlin 编码风格翻译 源文件 所有源文件编码必须是 UTF-8 。 命名 如果源文件只包含一个顶级类(Top-level),文件名应该命名为大写小敏感和 .kt 拓展名。其他情况如果源文件包含多个顶级声明,则选择一个描述文件内容的名称,使用驼峰命名法,并附上名称和 .kt 拓展名。 Top-level 解释请参考该 链接 12345678910 class { }// Bar.kt class Bar { }fun Runnabel.toBar() : Bar = // ...// Map.kt -> 描述文件内容的命名fun <T, O> Set<T>.map(func: (T) -> O): List<O> = // …fun <T, O> List<T>.map(func: (T) -> O): List<O> = // … 特殊编码 空格 除了换行,它是 ASCII 水平方向字符 (0x20) 唯一能出现在源文件中的空格。 0x20 表示空格 这意味着: 所有其他空格字符在字符串和字符源文本中均被转义 制表符 不 用于缩进 源文本(literal),是指程序源代码中用来表示固定的值的符号序列。例如在大多数语言中,引号包围的字符序列即为字符串源文本(string literal),表示一个特定的字符串值。 特殊的转义序列 对于任何具有特殊转义的字符

golang 学习笔记 ---JSON

荒凉一梦 提交于 2019-12-01 07:43:44
JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 1.JSON名称/值对 "name" : "value" 2.JSON值 可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在中括号中) 对象(在大括号中) null JSON数据 JSON 数字可以是整型或者浮点型 { "age":30 } JSON对象 JSON 对象在大括号({})中书写: 对象可以包含多个名称/值对: { "name": "runoob", "alexa": 10000, "sites": { "site1": "www.runoob.com", "site2": "m.runoob.com", "site3": "c.runoob.com" } }    JSON数组 JSON 数组在中括号中书写: 数组可包含多个对象: { "sites": [{ "name": "菜鸟教程", "url": "www.runoob.com" }, { "name": "google", "url": "www.google.com" }, { "name": "微博", "url

阿里巴巴Java开发手册

喜欢而已 提交于 2019-11-30 11:17:16
目录 一、编程规约 (一) 命名风格 (二) 常量定义 (三) 代码格式 (四) OOP规约 (五) 集合处理 (六) 并发处理 (七) 控制语句 (八) 注释规约 (九) 其它 二、异常日志 (一) 异常处理 (二) 日志规约 三、单元测试 四、安全规约 五、MySQL数据库 (一) 建表规约 (二) 索引规约 (三) SQL语句 (四) ORM映射 六、工程结构 (一) 应用分层 (二) 二方库依赖 (三) 服务器 七、设计规约 针对《阿里巴巴Java开发手册1.4》,将其中重要的整理如下: 一、编程规约 (一) 命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name / __name / $name / name_ / name$ / name__ 6. 【强制】抽象类命名使用Abstract或Base开头;异常类命名使用Exception结尾;测试类命名以它要测试的类的名称开始,以Test结尾。 8. 【强制】POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误。 反例:定义为基本数据类型Boolean isDeleted的属性,它的方法也是isDeleted(),RPC框架在反向解析的时候,“误以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常。 9. 【强制

《阿里巴巴 Java 开发手册》(一)

穿精又带淫゛_ 提交于 2019-11-30 11:16:28
《阿里巴巴 Java 开发手册》(一) 手册下载地址 相关文章链接 《阿里巴巴 Java 开发手册》(一) 《阿里巴巴 Java 开发手册》(二) 《阿里巴巴 Java 开发手册》(三) 《阿里巴巴 Java 开发手册》(四) 目录 编程规约 命名风格 常量定义 代码格式 OOP 规约 集合处理 并发处理 控制语句 注释规约 其它 异常日志 异常处理 日志规约 单元测试 安全规约 MySQL 数据库 建表规约 索引规约 SQL 语句 ORM 映射 工程结构 应用分离 二方库依赖 服务器 编程规约 (一)命名风格 1、【强制】代码中的命名均不能以 下划线或美元符号 开始,也不能以 下划线或美元符号 结束。 反例: _name __name $Object name_ name$ Object$ 2、【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免使用。 正例: alibaba taobao youku hangzhou 等国际通用的名称,可视同英文。 反例: DaZhePromotion 【打折】 getPingfenByName() 【评分】 int 某变量 = 3 3、【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外

抽象方法学习笔记

元气小坏坏 提交于 2019-11-29 07:58:38
抽象方法:加上关键字abstract关键字,然后去掉方法的大括号以及大括号内部的语句,直接分号结束; 抽象类:抽象方法所在的类,且抽象方法必须在抽象类中,在class之前添加abstract即可(但是抽象类不一定必须有抽象方法); public abstract class Animal { public abstract void eat(); //抽象方法必须在抽象类中 public void other() { //抽象类中可以存在普通方法 } } 如何使用抽象类和抽象方法: 1.抽象方法不可以通过new来直接创建一个抽象类对象; 2.抽象父类必须用至少一个子类来继承; 3.子类必须重写覆盖抽象父类中所有的抽象方法(重写:子类中去掉抽象父类中抽象方法的abstract关键字,然后在补回大括号以及大括号中的方法体),否则子类也是抽象类; 4.通过创建子类对象(new一个子类对象)来使用。 class dog extends Animal{ public void eat() { System.out.println("吃骨头"); } } 抽象类中,可以有构造方法,供子类创建对象时初始化父类成员使用。 来源: https://my.oschina.net/u/4204253/blog/3103409

JSON 对象

隐身守侯 提交于 2019-11-28 19:21:51
JSON: J ava S cript O bject N otation(JavaScript 对象表示法) key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。 数据由逗号分隔 大括号保存对象 中括号保存数组 var JSONObject= { "name":"aa", "url":"aa" }; 取:JSONObject[0].name JSONObject["name"] 嵌套 JSON 对象 myObj = { " name " : " runoob " , " alexa " : 10000 , " sites " : { " site1 " : " www " , " site2 " : " m " , " site3 " : " c " } } 修改值myObj . sites . site1 = " www.google.com " ; delete 关键字来删除 JSON 对象的属性 delete myObj . sites [ " site1 " ] json 对象和 json 字符串的区别: json 对象 var str2 = { "name": "asan", "sex": "man" }; json字符串 var str1 = '{ "name": "deyuyi", "sex":

Windbg命令脚本流程控制语句详解

自古美人都是妖i 提交于 2019-11-28 17:43:57
在 Windbg命令脚本 一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解。这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等。 ; (命令分隔符) 分号(;)字符用于在一行中分隔多个命令。 Command1 ; Command2 [; Command3 ...] 参数 命令1,命令2,… 要执行的命令。 命令从左到右依次执行。除非另有规定,否则单行上的所有命令都引用当前线程。如果命令导致线程执行,则该行上的其余命令将被延迟,直到该线程在调试事件上停止。 少数命令后面不能跟分号,因为它们会自动将行的整个剩余部分作为参数。 其中包括as(set alias)、$<(run script file)、$><(run script file)和以*(comment line specifier)标记开头的任何命令。 下面是一个例子。 这将执行当前程序到源代码行123,打印计数器的值,然后继续执行: 0:000> g `:123`; ? poi(counter); g { } (块分割符) 一对大括号({})用于包围调试器命令程序中的语句块 Statements { Statements } Statements 输入每个块后,将计算块中的所有别名。 如果在命令块中的某个点更改别名的值,则该点后面的命令将不会使用新的别名值,除非它们位于从属块中

字符串解析大括号内容-按level

好久不见. 提交于 2019-11-28 08:11:38
def getbrace(self, text,level): result=[] stack=[] i=0 while i<len(text) and text[i]=="{" and len(stack)<level: i+=1 stack.append('{') results = [] while i<len(text): if text[i]=='{': stack.append('{') if text[i]=='}': stack.pop() if len(stack)>=level: result.append(text[i]) else: if result: results.append(''.join(result)) result = [] i+=1 return results 参考资料 https://zhidao.baidu.com/question/1244694804499015459.html 来源: https://blog.csdn.net/u013255226/article/details/100043264