@inerface的11条规范写法】的更多相关文章

总结一些interface声明时的规范,相关宏的介绍,定义方法时有用的修饰符,编写注释的规范,最终写出一个合格的头文件. 1.读写权限 1.1实例变量的@public,@protected,@private关键字 1.2属性的readonly,readwrite关键字 2.前向声明 3.只暴露必要的接口和实现 3.1不要暴露任何只在类内部使用的私有方法 3.2不要在头文件里声明类内部遵循的protocol 4.nullability说明 5.定义枚举 5.1 NS_ENUM 5.2 NS_OPT…
总结一些interface声明时的规范,相关宏的介绍,定义方法时有用的修饰符,编写注释的规范,最终写出一个合格的头文件. 1.读写权限 1.1实例变量的@public,@protected,@private关键字 1.2属性的readonly,readwrite关键字 2.前向声明 3.只暴露必要的接口和实现 3.1不要暴露任何只在类内部使用的私有方法 3.2不要在头文件里声明类内部遵循的protocol 4.nullability说明 5.定义枚举 5.1 NS_ENUM 5.2 NS_OPT…
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:SmartbBear给出的11条代码审查最佳实践.…
原文地址:决定你是富人还是穷人的11条标准作者:谢仲华 1.自我认知 穷人:很少想到如何去赚钱和如何才能赚到钱,认为自己一辈子就该这样,不相信会有什么改变. 富人:骨子里就深信自己生下来不是要做穷人,而是要做富人,他有强烈的赚钱意识,这也是他血液里的东西,他会想尽一切办法使自己致富. 2.休闲 穷人:在家看电视,为肥皂剧的剧情感动得痛苦流涕,还要仿照电视里的时尚来武装自己. 富人:在外跑市场,即使打高尔夫球也不忘带者项目合同. 3.交际圈子 穷人:喜欢走穷亲戚,穷人的圈子大多是穷人,也排斥与富人…
----------------siwuxie095 事务相关概念 1.什么是事务 逻辑上的一组操作,构成这组操作的各个单元,要么一起成功, 要么一起失败 2.事务的四个特性 1)原子性 2)一致性 3)隔离性 4)持久性 3.不考虑隔离性,产生的问题 1)脏读 2)不可重复读 3)幻读(也称 虚读) 4.设置事务隔离级别,即可解决不考虑隔离性所产生的问题 「MySQL 默认的隔离级别:Repeatable Read(可重复读)」 5.Hibernate 也可以在核心配置文件中配置事务隔离级别…
一.数据库命令规范 · 所有数据库对象名称必须使用小写字母并用下划线分割 · 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) · 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 · 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀 · 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索 引失效,导致查询效率降低…
一.基础规范 (1)必须使用UTF8字符集 解读:万国码,无需转码,无乱码风险,节省空间(由于移动设备原因最好使用utf8mb4) (2)禁止使用存储过程.视图.触发器.Event 解读:高并发大数据的互联网业务,架构设计思路是“解放数据库CPU,将计算转移到服务层”,并发量大的情况下,这些功能很可能将数据库拖死,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”.数据库擅长存储与索引,CPU计算还是上移吧 (3)禁止存储大文件或者大照片 解读:为何要让数据库做它不擅长的事情?大…
转载自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959906&idx=1&sn=2cbdc66cfb5b53cf4327a1e0d18d9b4a&chksm=bd2d07be8a5a8ea86dc3c04eced3f411ee5ec207f73d317245e1fefea1628feb037ad71531bc&mpshare=1&scene=1&srcid=0813cj7qS…
1.引号的使用,单引号' ' 优先(如果不是引号嵌套,不要使用双引号) 正常情况:console.log('hello there')        双引号转码: $("<div class='box'>") 2.空格的使用问题:(关键字后  符号后 排版 函数 赋值符号= )等 a 函数的括号:function hello  (name)  {}    看 (参数)的 "括号外左右"(  ) 是有空格的,"括号内name左右" 是没…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3575599.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 第2条:在类的头文件中尽量少引入头文件 1. 常规情况: 在.h文件中:(写在@interface之前) @class SomeClass; 在.m文件中: #import "SomeClass.h" 2. 必须在.h中引入头文件的情况: 类继承某个超类 类实现某个协议 第3条:尽量使…
(from 新表 in db.books where 新表.bookid < 400 select 新表).Take(11); storeDB.Albums.OrderByDescending(a => a.OrderDetails.Count()).Take(count).ToList();数据上下文.Albums数据表.倒序排序(条件为按照各数据关联的OrderDetails数据表中数据的条数).拿记录(count条).立即执行转为list…
Performance Tips 1.In this document Avoid Creating Unnecessary Objects 避免多余的对象 Prefer Static Over Virtual  多用static方法,它比其它方法快15%-20% Use Static Final For Constants   多用 static final 基本类型常量 Avoid Internal Getters/Setters   在类内部避免使用getter,setter而直接使用成员…
对于每一个学习 Python 的同学,想必对 @ 符号一定不陌生了,正如你所知, @ 符号是装饰器的语法糖,@符号后面的函数就是我们本文的主角:装饰器. 装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上.和这个函数绑定在一起.在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶上这顶帽子,这顶帽子我们称之为 装饰器 . 曾经我在刚转行做程序员时的一次的面试中,被面试官问过这样的两个问题: 1.你都用过装饰器实现过什么样的功能? 2.如何写一…
56.  为所有已公开的API元素编写文档注释 要正确地记录API,必须在每个导出的类.接口.构造方法.方法和属性声明之前加上文档注释.如果一个类是可序列化的,还需要记录它的序列化形式. 文档注释在源代码和生成的代码中都应该是可读的通用原则. 类或接口中的两个成员方法或构造方法不应具有相同的概要描述. 总结起来就是一句话,文档注释要规范. 阿里规约如下: [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用 // xxx 方式.[强制]所有的抽象方法(…
45.  明智谨慎地使用Stream 46.  优先考虑流中无副作用的函数 47.  优先使用Collection而不是Stream作为方法的返回类型 48.  谨慎使用流并行 49.  检查参数有效性 大多数方法和构造方法对可以将哪些值传到其对应参数有一些限制.例如:索引必须是非负数.对象引用必须是非null.你应该清楚地在文档中记载所有这些限制,并在方法主体的开头用检查来强制执行. 每次编写方法或构造方法时,都应该考虑对其参数存在哪些限制.应该记住这些限制,并在方法体的开头使用显示检查来强制…
1. 负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) 2. 前导模糊查询不能使用索引 select * from order where desc like '%XX' 而非前导模糊查询则可以: select * from order where desc like '…
1. 忘了数据规范化 2. 没有检查结果 3. 忘了数据预处理 4. 忘了正则化 5. 设置了过大的批次大小 6. 使用了不适当的学习率 7. 在最后一层使用了错误的激活函数 8. 网络含有不良梯度 9. 没有正确地初始化网络权重 10. 神经网络太深了 11. 隐藏unit的数量不对 12.补充 1. 忘了数据规范化 在使用神经网络的过程中,非常重要的一点是要考虑好怎样规范化(normalize)你的数据.这一步不能马虎,不正确.仔细完成规范化的话,你的网络将会不能正常工作. 因为规范化数据这…
1.局部变量和全局变量 var操作符定义的变量将成为定义该变量作用域中的局部变量.这个局部变量会在函数退出后销毁.不同于其他语言,javaScript不存在块级作用域. 全局变量就是window对象的属性,所有未定义的变量和在最外层(非函数体内)的变量都拥有全部作用域.如非必要,尽量避免在函数体内使用全局变量. function test(){ for(var i=0;i<10;i++) { var sum=i; } alert(sum);//javaScript作用域是函数决定的.提示为10…
0和nullptr/NULL 至于指针(地址值),根据实际选择用0.NULL还是nullptr.对使用了C++11特性的项目,选用nullptr:对于C++03项目,推荐NULL,因为它像是一个指针…
#HTML5: The Missing Manual# 如果说HTML是一部电影,那HTML5就是一次大转折.HTML本来是不会活过21世纪的.官方Web标准组织W3C在1998年对HTML就已经撒手不管了.W3C把未来都寄托在XHTML,这个更具现代特色的后续标准身上. 是一群被剥夺了话语权的人,让HTML起死回生并为本书将要探讨的功能奠定了基础. HTML5的“自由散漫”表现在:(1)不要求网页中必须包含<html>.<head>和<body>元素:(2)标记和属性…
Clone提供一种语言之外的机制:无需调用构造器就可以创建对象. 它的通用约定非常弱: 创建和返回该对象的一个拷贝.这个拷贝的精确含义取决于该对象的类.一般含义是,对于任何对象x,表达式x.clone() != x 将会是true,并且,表达式x.clone().getClass() == x.getClass() 将会是true,但这些不是绝对的要求,通常情况下,表达式 x.clone().equals(x) 将会是true,这也不是一个绝对的要求,拷贝对象往往是创建它的类的一个新实例,但它同…
C语言使用“静态绑定”,也就是说,在编译期就能决定运行时所应调用的函数(也就是说函数地址硬编码在指令之中). 如果是内联函数,就无法硬编码在指令之中,而是要在运行期读取出来(也就是动态绑定). 在底层,所有方法都是普通的C函数. OC对象的每个方法都可以视为简单的C函数. <return_type> Class_selector(id self, SEL _cmd, parameter.....); 动态绑定由编译器转换成一条C语言函数,所调用的函数乃是消息传递机制中的核心函数,叫做objc_…
比较简单,基础. 一.引用外部文件中的js脚本 <script type="text/javascript" src="ext.js"></script> 也可以象下面这样写,language不是必要的,但是推荐上面的写法 <script language="javascript" type="text/javascript" src="ext.js"></scri…
@Html.TextBoxFor() 讲解(其他类似的 @Html.LabelFor 等)同理 @Html.TextBoxFor(model => model.SearchParams.Name, new { @class = "col-md-12 searcher-input search-login-name", @placeholder = "请输入登录名/姓名", maxLength = "50" }) new{ }:这里写的是匿名…
JavaScript执行在html中,引用有几种方式? 我知道的方法有3种: 第一种:外部引用远程JavaScript文件.如<script type="text/javascript" src="../js/jquery-1.8.3.js"></script>(相对路劲)或者是<script src="http://common.cnblogs.com/script/jquery.js" type="te…
一下三块均以 foo.js 为示例文件名,以 jQuery,underscore 为需求组件 ADM:异步模块规范, RequireJs 的支持格式 // 文件名: foo.js define(['jquery', 'underscore'], function ($, _) { // 方法 function a(){}; // 私有方法,因为没有被返回(见下面) function b(){}; // 公共方法,因为被返回了 function c(){}; // 公共方法,因为被返回了 // 暴…
以下面这个UL做演示 <ul> <li><a href="#"><span>2014-4-1</span>教育</a></li> <li><a href="#"><span>2014-5-1</span>专家</a></li> <li><a href="#"><s…
核心知识点: (1)内置的zip函数可以平行地遍历多个迭代器. (2)python3中地zip相当于生成器,会在遍历过程中逐次产生元祖.而python2中地zip则是直接把这些元祖完全生成好,并一次性地返回整份列表. (3)如果提供地迭代器长度不等,那么zip就会自动提前终止. (4)itertools内置模块中地zip_longest函数可以平行地遍历多个迭代器,而不用在乎它们地长度是否相等. 在编写python代码时,我们通常要面对很多列表,而这些列表里的对象,可能也是相互关联的. 通过列表…
<script> $(function () { var barTop = $('#bar').offset().top; //on方法相当于原生的绑定 $(window).on('scroll',function () { var scrollTop = $(document).scrollTop(); if (scrollTop >= barTop) { //固定在上方 $('#bar').css({position: 'fixed',top: 0}); // 显示替代的条 $('#…
今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下. ID连续的情况下(注意不能带where,否则结果不好): SELECT * FROM `talbe` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ; ID不连续的情况…