精华内容
下载资源
问答
  • 按照官方例子调用validate方法: this.$refs.registerForm.validate((valid) => { console.log(valid) if (valid) { // this.registerNext = true } else { return false } }) 发现不管表单中内容是否...

    问题描述

    按照官方例子调用validate方法:
    在这里插入图片描述

    this.$refs.registerForm.validate((valid) => {
            console.log(valid)
            if (valid) {
              // this.registerNext = true
            } else {
              return false
            }
          })
    

    发现不管表单中内容是否检验通过,valid参数的值始终为true

    原因及解决方法

    通过查阅文档发现出现这个问题的原因是对于同一个校验规则rules,我同时在多个同名表单(即ref名相同)中使用了该规则。虽然rules能够对每个el-form里的表单进行校验,但返回回来的valid只代表最后一个el-form的状态。

    因此解决方案即为将用了同一rules的多个表单的ref属性命名为不同的即可,在调用validate校验时,只会校验该表单下的属性是否符合相应的规则。

    展开全文
  • 所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对 Java 领域相关命名进行整理和总结,仅供参考。 一,Java 中的命名规范 好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速...

    每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能。所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对 Java 领域相关命名进行整理和总结,仅供参考。

    一,Java 中的命名规范

    好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速厘清程序的脉络。不同语言中采用的命名形式大相径庭,Java 中常用到的命名形式共有三种,既首字母大写的 UpperCamelCase,首字母小写的 lowerCamelCase 以及全部大写的并用下划线分割单词的 UPPER_CAMEL_UNSER_SCORE。通常约定,类一般采用大驼峰命名,方法和局部变量使用小驼峰命名,而大写下划线命名通常是常量和枚举中使用。

    类型约束
    项目名全部小写,多个单词用中划线分隔‘-’spring-cloud
    包名全部小写com.alibaba.fastjson
    类名单词首字母大写Feature, ParserConfig,DefaultFieldDeserializer
    变量名首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写password, userName
    常量名全部大写,多个单词,用’_'分隔CACHE_EXPIRED_TIME
    方法同变量read(), readObject(), getById()

    二,包命名

    包名统一使用小写点分隔符之间有且仅有一个自然语义的英文单词或者多个单词自然连接到一块(如 springframework,deepspace 不需要使用任何分割)。包名统一使用单数形式,如果类命有复数含义,则可以使用复数形式。

    包名的构成可以分为以下几四部分【前缀】 【发起者名】【项目名】【模块名】。常见的前缀可以分为以下几种:

    前缀名含义
    indi(或 onem )indi.发起者名.项目名.模块名.……个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,copyright 主要属于发起者。
    perspers.个人名.项目名.模块名.……个人项目,指个人发起,独自完成,可分享的项目,copyright 主要属于个人
    privpriv.个人名.项目名.模块名.……私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright 属于个人。
    teamteam.团队名.项目名.模块名.……团队项目,指由团队发起,并由该团队开发的项目,copyright 属于该团队所有
    顶级域名com.公司名.项目名.模块名.……公司项目,copyright 由项目发起的公司所有

    三,类命名

    类名使用大驼峰命名形式,类命通常时名词或名词短语,接口名除了用名词和名词短语以外,还可以使用形容词或形容词短语,如 Cloneable,Callable 等,表示实现该接口的类有某种功能或能力。对于测试类则以它要测试的类开头,以 Test 结尾,如 HashMapTest。

    对于一些特殊特有名词缩写也可以使用全大写命名,比如 XMLHttpRequest,不过笔者认为缩写三个字母以内都大写,超过三个字母则按照要给单词算。这个没有标准如阿里巴巴中 fastjson 用 JSONObject 作为类命,而 google 则使用 JsonObjectRequest 命名,对于这种特殊的缩写,原则是统一就好。

    属性约束
    抽象类Abstract 或者 Base 开头BaseUserService
    枚举类Enum 作为后缀GenderEnum
    工具类Utils 作为后缀StringUtils
    异常类Exception 结尾RuntimeException
    接口实现类接口名+ ImplUserServiceImpl
    领域模型相关/DO/DTO/VO/DAO正例:UserDAO 反例:UserDo, UserDao
    设计模式相关类Builder,Factory 等当使用到设计模式时,需要使用对应的设计模式作为后缀,如 ThreadFactory
    处理特定功能的Handler,Predicate, Validator表示处理器,校验器,断言,这些类工厂还有配套的方法名如 handle,predicate,validate
    测试类Test 结尾UserServiceTest, 表示用来测试 UserService 类的
    MVC 分层Controller,Service,ServiceImpl,DAO 后缀UserManageController,UserManageDAO

    四,方法

    方法命名采用小驼峰的形式,首字小写,往后的每个单词首字母都要大写。和类名不同的是,方法命名一般为动词或动词短语,与参数或参数名共同组成动宾短语,即动词 + 名词。一个好的函数名一般能通过名字直接获知该函数实现什么样的功能。

    4.1 返回真伪值的方法

    注:Prefix-前缀,Suffix-后缀,Alone-单独使用

    位置单词意义
    Prefixis对象是否符合期待的状态isValid
    Prefixcan对象能否执行所期待的动作canRemove
    Prefixshould调用方执行某个命令或方法是好还是不好,应不应该,或者说推荐还是不推荐shouldMigrate
    Prefixhas对象是否持有所期待的数据和属性hasObservers
    Prefixneeds调用方是否需要执行某个命令或方法needsMigrate

    4.2 用来检查的方法

    单词意义
    ensure检查是否为期待的状态,不是则抛出异常或返回 error codeensureCapacity
    validate检查是否为正确的状态,不是则抛出异常或返回 error codevalidateInputs

    4.3 按需求才执行的方法

    位置单词意义
    SuffixIfNeeded需要的时候执行,不需要的时候什么都不做drawIfNeeded
    Prefixmight同上mightCreate
    Prefixtry尝试执行,失败时抛出异常或是返回 errorcodetryCreate
    SuffixOrDefault尝试执行,失败时返回默认值getOrDefault
    SuffixOrElse尝试执行、失败时返回实际参数中指定的值getOrElse
    Prefixforce强制尝试执行。error 抛出异常或是返回值forceCreate, forceStop

    4.4 异步相关方法

    位置单词意义
    Prefixblocking线程阻塞方法blockingGetUser
    SuffixInBackground执行在后台的线程doInBackground
    SuffixAsync异步方法sendAsync
    SuffixSync对应已有异步方法的同步方法sendSync
    Prefix or AlonescheduleJob 和 Task 放入队列schedule, scheduleJob
    Prefix or Alonepost同上postJob
    Prefix or Aloneexecute执行异步方法(注:我一般拿这个做同步方法名)execute, executeTask
    Prefix or Alonestart同上start, startJob
    Prefix or Alonecancel停止异步方法cancel, cancelJob
    Prefix or Alonestop同上stop, stopJob

    4.5 回调方法

    位置单词意义
    Prefixon事件发生时执行onCompleted
    Prefixbefore事件发生前执行beforeUpdate
    Prefixpre同上preUpdate
    Prefixwill同上willUpdate
    Prefixafter事件发生后执行afterUpdate
    Prefixpost同上postUpdate
    Prefixdid同上didUpdate
    Prefixshould确认事件是否可以发生时执行shouldUpdate

    4.6 操作对象生命周期的方法

    单词意义
    initialize初始化。也可作为延迟初始化使用initialize
    pause暂停onPause ,pause
    stop停止onStop,stop
    abandon销毁的替代abandon
    destroy同上destroy
    dispose同上dispose

    4.7 与集合操作相关的方法

    单词意义
    contains是否持有与指定对象相同的对象contains
    add添加addJob
    append添加appendJob
    insert插入到下标 ninsertJob
    put添加与 key 对应的元素putJob
    remove移除元素removeJob
    enqueue添加到队列的最末位enqueueJob
    dequeue从队列中头部取出并移除dequeueJob
    push添加到栈头pushJob
    pop从栈头取出并移除popJob
    peek从栈头取出但不移除peekJob
    find寻找符合条件的某物findById

    4.8 与数据相关的方法

    单词意义
    create新创建createAccount
    new新创建newAccount
    from从既有的某物新建,或是从其他的数据新建fromConfig
    to转换toString
    update更新既有某物updateAccount
    load读取loadAccount
    fetch远程读取fetchAccount
    delete删除deleteAccount
    remove删除removeAccount
    save保存saveAccount
    store保存storeAccount
    commit保存commitChange
    apply保存或应用applyChange
    clear清除数据或是恢复到初始状态clearAll
    reset清除数据或是恢复到初始状态resetAll

    4.9 成对出现的动词

    单词意义
    get 获取set 设置
    add 增加remove 删除
    create 创建destory 移除
    start 启动stop 停止
    open 打开close 关闭
    read 读取write 写入
    load 载入save 保存
    create 创建destroy 销毁
    begin 开始end 结束
    backup 备份restore 恢复
    import 导入export 导出
    split 分割merge 合并
    inject 注入extract 提取
    attach 附着detach 脱离
    bind 绑定separate 分离
    view 查看browse 浏览
    edit 编辑modify 修改
    select 选取mark 标记
    copy 复制paste 粘贴
    undo 撤销redo 重做
    insert 插入delete 移除
    add 加入append 添加
    clean 清理clear 清除
    index 索引sort 排序
    find 查找search 搜索
    increase 增加decrease 减少
    play 播放pause 暂停
    launch 启动run 运行
    compile 编译execute 执行
    debug 调试trace 跟踪
    observe 观察listen 监听
    build 构建publish 发布
    input 输入output 输出
    encode 编码decode 解码
    encrypt 加密decrypt 解密
    compress 压缩decompress 解压缩
    pack 打包unpack 解包
    parse 解析emit 生成
    connect 连接disconnect 断开
    send 发送receive 接收
    download 下载upload 上传
    refresh 刷新synchronize 同步
    update 更新revert 复原
    lock 锁定unlock 解锁
    check out 签出check in 签入
    submit 提交commit 交付
    push 推pull 拉
    expand 展开collapse 折叠
    begin 起始end 结束
    start 开始finish 完成
    enter 进入exit 退出
    abort 放弃quit 离开
    obsolete 废弃depreciate 废旧
    collect 收集aggregate 聚集

    五,变量&常量命名

    5.1 变量命名

    变量是指在程序运行中可以改变其值的量,包括成员变量和局部变量。变量名由多单词组成时,第一个单词的首字母小写,其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 computedValues,index、变量命名时,尽量简短且能清楚的表达变量的作用,命名体现具体的业务含义即可。

    变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。pojo 中的布尔变量,都不要加 is(数据库中的布尔字段全都要加 is_ 前缀)。

    5.2 常量命名

    常量命名 CONSTANT_CASE,一般采用全部大写(作为方法参数时除外),单词间用下划线分割。那么什么是常量呢?

    常量是在作用域内保持不变的值,一般使用 final 进行修饰。一般分为三种,全局常量(public static final 修饰),类内常量(private static final 修饰)以及局部常量(方法内,或者参数中的常量),局部常量比较特殊,通常采用小驼峰命名即可。

    public class HelloWorld {
    
        /**
         * 局部常量(正例)
         */
        public static final long USER_MESSAGE_CACHE_EXPIRE_TIME = 3600;
    
          /**
         * 局部常量(反例,命名不清晰)
         */
        public static final long MESSAGE_CACHE_TIME = 3600;
    
        /**
         * 全局常量
         */
        private static final String ERROR_MESSAGE = " error message";
    
        /**
         * 成员变量
         */
        private int currentUserId;
    
        /**
         * 控制台打印 {@code message} 信息
         *
         * @param message 消息体,局部常量
         */
        public void sayHello(final String message){
            System.out.println("Hello world!");
        }
    
    }
    

    常量一般都有自己的业务含义,不要害怕长度过长而进行省略或者缩写。如,用户消息缓存过期时间的表示,那种方式更佳清晰,交给你来评判。

    通用命名规则

    1. 尽量不要使用拼音;杜绝拼音和英文混用。对于一些通用的表示或者难以用英文描述的可以采用拼音,一旦采用拼音就坚决不能和英文混用。正例:BeiJing, HangZhou 反例:validateCanShu
    2. 命名过程中尽量不要出现特殊的字符,常量除外。
    3. 尽量不要和 jdk 或者框架中已存在的类重名,也不能使用 java 中的关键字命名。
    4. 妙用介词,如 for(可以用同音的 4 代替), to(可用同音的 2 代替), from, with,of 等。如类名采用 User4RedisDO,方法名 getUserInfoFromRedis,convertJson2Map 等。

    六,代码注解

    6.1 注解的原则

    好的命名增加代码阅读性,代码的命名往往有严格的限制。而注解不同,程序员往往可以自由发挥,单并不意味着可以为所欲为之胡作非为。优雅的注解通常要满足三要素。

    1. Nothing is strange 没有注解的代码对于阅读者非常不友好,哪怕代码写的在清除,阅读者至少从心理上会有抵触,更何况代码中往往有许多复杂的逻辑,所以一定要写注解,不仅要记录代码的逻辑,还有说清楚修改的逻辑。
    2. Less is more 从代码维护角度来讲,代码中的注解一定是精华中的精华。合理清晰的命名能让代码易于理解,对于逻辑简单且命名规范,能够清楚表达代码功能的代码不需要注解。滥用注解会增加额外的负担,更何况大部分都是废话。
    // 根据id获取信息【废话注解】
    getMessageById(id)
    
    1. Advance with the time 注解应该随着代码的变动而改变,注解表达的信息要与代码中完全一致。通常情况下修改代码后一定要修改注解。

    6.2 注解格式

    注解大体上可以分为两种,一种是 javadoc 注解,另一种是简单注解。javadoc 注解可以生成 JavaAPI 为外部用户提供有效的支持 javadoc 注解通常在使用 IDEA,或者 Eclipse 等开发工具时都可以自动生成,也支持自定义的注解模板,仅需要对对应的字段进行解释。参与同一项目开发的同学,尽量设置成相同的注解模板。

    a. 包注解

    包注解在工作中往往比较特殊,通过包注解可以快速知悉当前包下代码是用来实现哪些功能,强烈建议工作中加上,尤其是对于一些比较复杂的包,包注解一般在包的根目录下,名称统一为 package-info.java。

    /**
     * 落地也质量检测
     * 1. 用来解决什么问题
     * 对广告主投放的广告落地页进行性能检测,模拟不同的系统,如Android,IOS等; 模拟不同的网络:2G,3G,4G,wifi等
     *
     * 2. 如何实现
     * 基于chrome浏览器,用chromedriver驱动浏览器,设置对应的网络,OS参数,获取到浏览器返回结果。
     *
     * 注意:网络环境配置信息{@link cn.mycookies.landingpagecheck.meta.NetWorkSpeedEnum}目前使用是常规速度,可以根据实际情况进行调整
     *
     * @author cruder
     * @time 2019/12/7 20:3 下午
     */
    package cn.mycookies.landingpagecheck;
    

    b. 类注接

    javadoc 注解中,每个类都必须有注解。

    /**
    * Copyright (C), 2019-2020, Jann  balabala...
    *
    * 类的介绍:这是一个用来做什么事情的类,有哪些功能,用到的技术.....
    *
    * @author   类创建者姓名 保持对齐
    * @date     创建日期 保持对齐
    * @version  版本号 保持对齐
    */
    

    c. 属性注解

    在每个属性前面必须加上属性注释,通常有一下两种形式,至于怎么选择,你高兴就好,不过一个项目中要保持统一。

    /** 提示信息 */
    private String userName;
    /**
     * 密码
     */
    private String password;
    

    d. 方法注释

    在每个方法前面必须加上方法注释,对于方法中的每个参数,以及返回值都要有说明。

    /**
      * 方法的详细说明,能干嘛,怎么实现的,注意事项...
      *
      * @param xxx 	 参数1的使用说明, 能否为null
      * @return 返回结果的说明, 不同情况下会返回怎样的结果
      * @throws 异常类型   注明从此类方法中抛出异常的说明
      */
    

    e. 构造方法注释

    在每个构造方法前面必须加上注释,注释模板如下:

    /**
      * 构造方法的详细说明
      *
      * @param xxx 	 参数1的使用说明, 能否为null
      * @throws 异常类型   注明从此类方法中抛出异常的说明
      */
    

    而简单注解往往是需要工程师字节定义,在使用注解时应该注意一下几点:

    1. 枚举类的各个属性值都要使用注解,枚举可以理解为是常量,通常不会发生改变,通常会被在多个地方引用,对枚举的修改和添加属性通常会带来很大的影响。
    2. 保持排版整洁,不要使用行尾注释;双斜杠和星号之后要用 1 个空格分隔。
    id = 1;// 反例:不要使用行尾注释
    //反例:换行符与注释之间没有缩进
    int age = 18;
    // 正例:姓名
    String name;
    /**
     * 1. 多行注释
     *
     * 2. 对于不同的逻辑说明,可以用空行分隔
     */
    

    总结

    无论是命名和注解,他们的目的都是为了让代码和工程师进行对话,增强代码的可读性,可维护性。优秀的代码往往能够见名知意,注解往往是对命名的补充和完善。命名太南了!

    参考文献:

    https://github.com/AndyYoungCN/ebook/blob/master/java/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C(%E7%BB%88%E6%9E%81%E7%89%88).pdf

    《码出高效》

    https://www.cnblogs.com/wangcp-2014/p/10215620.html

    https://qiita.com/KeithYokoma/items/2193cf79ba76563e3db6

    https://google.github.io/styleguide/javaguide.html#s2.1-file-name

    展开全文
  • java命名总结

    2021-02-26 16:05:30
    大原则:见名知意,名副其实对于方法或变量命名,编写者应当做到:一个初次接触代码的阅读者仅通过其名字就能揣测其用途,而不需要通过仔细代码来分辨。反之,如果阅读者需要认真审视上下文才能了解其含义,可以认为...

    下文主要来源于网上,我做了一些编辑整理。

    “如果你不知道一件事物叫什么,

    你就不知道它是什么。

    如果你不知道这是什么,

    你就不可能坐下来写代码。”

    ----萨姆·加德纳(Sam Gardiner)

    1.大原则:见名知意,名副其实

    对于方法或变量命名,编写者应当做到:一个初次接触代码的阅读者仅通过其名字就能揣测其用途,而不需要通过仔细代码来分辨。

    反之,如果阅读者需要认真审视上下文才能了解其含义,可以认为其命名是令人费解的;如果其真实含义和名字存在分歧,则可以认为其命名是不恰当的。

    下面是一个对照的例子:

    令人费解的命名好的命名

    x = x -xx

    xxx = fido + salesTax( fido );

    x = x + LateFee(x1, x) + xxx;

    x = x + Interert(X1, x);

    balance = balance - lastPayment;

    monthlyTotal = newPurchases + addSalesTax( newPurchases );

    balance = balance + evaluateLateFee( customerID, balance ) + monthlyTotal;

    balance = balance + addInterest( CustomerID, balance);

    2.命名细则:

    原则解释

    同一性

    在编写一个子模块或派生类的时候,要遵循其基类或整体模块的命名风格,保持命名风格在整个模块中的同一性。如骆驼命名法,大括号位置等。

    标识符组成

    标识符采用英文单词(必要或无歧义可以加入数字或下划线)或其组合,应当直观且可以拼读,可望文知意,用词应当准确。

    最小化长度 && 最大化信息量原则

    在足够描述用途的前提下,尽量以最小词汇量去描述事物,如staff就比 company_person_collection要简捷易记。

    也可采用有广泛共识的缩写后缀,如msg,idx,cnt,btn,id ,flg等,如果缩写共识度不高,请在取得同事们共识后用注释说明其含义。

    变量/函数长度控制在4~18个字符内,有助于对代码的理解。

    过长的变量:howLongDoesItTakeToOpenTheDoor, howBigIsTheMaterial…

    简捷的变量:timeToOpenTheDoor, materialSize.

    避免过于相似

    不要出现仅靠大小写区分的相似的标识符,例如“i”与“I”,“function”与“Function”等等。

    正确命名具有互斥意义的标识符

    用正确的反义词组命名具有互斥意义的标识符 ,如

    add / remove       begin / end        create / destroy

    insert / delete       first / last         get / release

    increment / decrement                 put / get

    add / delete         lock / unlock      open / close

    min / max          old / new         start / stop

    next / previous      source / target     show / hide

    send / receive       source / destination

    cut / paste          up / down

    这些有助于理解成对的变量/函数的意义.

    尽量避免名字中出现数字编号

    尽量避免名字中出现数字编号,如value1,value2等,除非逻辑上的确需要编号。

    少使用类型前缀

    C/C++程序员喜欢这么做,那是因为环境特殊。但在Java中并不提倡,最好从名字上就能揣测出其类型。加后缀说明是可以的。

    少单独使用含义广泛的词

    如data,info,value等。

    能用主动语态的词就不用被动语态的词

    能用主动就绝不用被动语态的词,便于用户理解,同时也遵守标识符的语法规则。

    被动语态:class PlanEvents

    主动语态:class EventPlanner/class Scheduler

    避免过度使用get作为方法前缀

    应该用更精确的动词描述动作,如“请求”request,“获取”acquire,“查找”search/lookfor/find,“查询”inquire,“构建”build 或“创建”create

    3.名词、动词和形容词在命名中的使用

    对于变量,一般采用名词命名,如salary;如果其含义较复杂,建议采用形容词+名词的形式,如totalSalary;如果不会产生歧义,可以使用名词+名词的方式,如minerSalavry,flightNumber, carColor

    对于方法,一般采用动词+名词的方式命名,如drawBullet,cleanScreen; 也可以采用省略动词的介词+名词的形式,如onMessage,onAbort,onExit.

    如用于限制范围,可以在名词前加入介词,如要修饰名词,可以在名词前加入形容词,如sumZombieFansCnt。

    4.多使用常见的有共识的词汇

    生僻词汇容易造成困惑,常见词汇易于达成共识。

    词性常见词汇

    名词

    comparison比较(结果) ,decrement递减量 , decrement递减量 , dest/destination目标 , expected value/expectation:期望值 , idx:index的简写 , height高 ,increment递增量 , msg:message的简写 , num数字 , price价钱价格 , priority优先级 , rate比率 , score成绩分数 , src/source 源 , sum累计值 , total总和总计的 , usr/user用户 , weight重量

    动词

    access存取 , add添加 , append添加到尾部 , apply(to)适用于 , cancel取消 , can能做什么 , change交换 , compare比较 , contains包含 , crash崩溃 , create创建 , decode解码 , delete删除 , display显示 , encode编码 , erase 抹去 , evaluate计算 , execute执行 , exist存在 , fetch取回 , flush清空缓存 , get获得 , has有什么 , insert插入 , invoke调用 , is是什么 , list列举 , manage管理 , minus减 , need需要什么 , provide提供 , query查询 , remove 搬离 , run运行 , save保存 , select选择 , should应当做什么 , sort排序 , store存储 , submit提交 , update更新

    形容词

    avg/average平均 , corresponding相应的对应的 , decisive决定性的 , final最终的 , legal合法的,illegal不合法的 , max最大 , min最小 , often used/frequently used:常用的 , partly:部分的 , periodically:定期的 , relevant:相关的 , seldom used:不常用的 , time-consuming:耗时的, unpredictable:不可预计的 , unrecongnized:未被认定的

    5.分类单词表

    返回真伪值的方法

    場所单词意义例

    Prefix

    is

    对象是否是所期待的状态

    isChecked

    Prefix

    can

    对象能否执行所期待的动作

    canRemove

    Prefix

    should

    调用方执行某个命令好还是不好

    shouldMigrate

    Prefix

    has

    对象是否持有所期待的数据和属性

    hasObservers

    Prefix

    needs

    调用方是否需要执行某个命令

    needsMigrate

    按需求才执行的方法

    場所单词意义例

    Suffix

    IfNeeded

    需要的时候执行,不需要的时候什么都不做

    drawIfNeeded

    Prefix

    might

    同上

    mightCreate

    Prefix

    try

    尝试执行,失败时抛出异常或是返回errorcode

    tryCreate

    Suffix

    OrDefault

    尝试执行,失败时返回默认值

    getOrDefault

    Suffix

    OrElse

    尝试执行、失败时返回实际参数中指定的值

    getOrElse

    Prefix

    force

    强制尝试执行。error抛出异常或是返回值

    forceCreate, forceStop

    异步相关方法

    場所单词意义例

    Prefix

    blocking

    线程阻塞方法

    blockingGetUser

    Suffix

    InBackground

    执行在后台的线程

    doInBackground

    Suffix

    Async

    异步方法

    sendAsync

    Suffix

    Sync

    对应已有异步方法的同步方法

    sendSync

    Prefix or Stem

    schedule

    Job和Task放入队列

    schedule, scheduleJob

    Prefix or Stem

    post

    同上

    postJob

    Prefix or Stem

    execute

    执行异步方法(注:我一般拿这个做同步方法名)

    execute, executeTask

    Prefix or Stem

    start

    同上

    start, startJob

    Prefix or Stem

    cancel

    停止异步方法

    cancel, cancelJob

    Prefix or Stem

    stop

    同上

    stop, stopJob

    回调方法

    場所单词意义例

    Prefix

    on

    事件发生时执行

    onCompleted

    Prefix

    before

    事件发生前执行

    beforeUpdate

    Prefix

    pre

    同上

    preUpdate

    Prefix

    will

    同上

    willUpdate

    Prefix

    after

    事件发生后执行

    afterUpdate

    Prefix

    post

    同上

    postUpdate

    Prefix

    did

    同上

    didUpdate

    Prefix

    should

    确认事件是否可以发生时执行

    shouldUpdate

    与集合操作相关的方法

    单词意义例

    contains

    是否持有与指定对象相同的对象

    contains

    add

    添加

    addJob

    append

    添加

    appendJob

    insert

    插入到下标n

    insertJob

    put

    添加与key对应的元素

    putJob

    remove

    移除元素

    removeJob

    enqueue

    添加到队列的最末位

    enqueueJob

    dequeue

    从队列中头部取出并移除

    dequeueJob

    push

    添加到栈头

    pushJob

    pop

    从栈头取出并移除

    popJob

    peek

    从栈头取出但不移除

    peekJob

    find

    寻找符合条件的某物

    findById

    与状态相关的方法

    单词意义例

    ensure

    检查是否为期待的状态,不是则抛出异常或返回error code

    ensureCapacity

    validate

    检查是否为正确的状态,不是则抛出异常或返回error code

    validateInputs

    操作对象生命周期的方法

    单词意义例

    initialize

    初始化。也可作为延迟初始化使用

    initialize

    abandon

    销毁的替代

    abandon

    destroy

    同上

    destroy

    dispose

    同上

    dispose

    与数据相关的方法

    单词意义例

    create

    新创建

    createAccount

    new

    新创建

    newAccount

    from

    从既有的某物新建,或是从其他的数据新建

    fromConfig

    to

    转换

    toString

    update

    更新既有某物

    updateAccount

    load

    读取

    loadAccount

    fetch

    远程读取

    fetchAccount

    delete

    删除

    deleteAccount

    remove

    删除

    removeAccount

    save

    保存

    saveAccount

    store

    保存

    storeAccount

    commit

    保存

    commitChange

    apply

    保存或应用

    applyChange

    clear

    清除数据或是恢复到初始状态

    clearAll

    reset

    清除数据或是恢复到初始状态

    resetAll

    常见布尔变量:

    单词意义

    done

    完成

    error

    错误

    success/ok

    成功

    available

    可用

    found

    已找到

    complete(d)

    完成

    6.结语

    对于非英语系程序员来说,变量的起名和函数的命名都是一件令人头疼的事情,主因是词汇量和对单词的认知程度先天有限.....但我们编码是为了让别人或未来的自己更好的去阅读,而不是“迷惑”别人或自己。

    无论是想要有效的管理一个复杂程度稍高的代码体系,或是维护自己的代码库,能有一套统一的、清晰明了的命名原则是一件事半功倍的有效手段,利人利己,值得花不多的工夫把它掌握熟悉起来。

    每个东西都有一个名称,每个名称只用于一件事。使用多个词来表示相同的事物,或者同一个词来表示不同的事物,会浪费认知的努力并且可能导致混淆。这不仅适用于代码,而且适用于我们工作环境中的所有内容。

    展开全文
  • 方法一:引用文件 use app\admin\validate\EnealValidate; validate(EnealValidate::class)->check($postData); 或 validate(EnealValidate::class)->scene($scene)->check($postData); 不使用静态方法...

    方法一:引用文件

    use app\admin\validate\EnealValidate;
    validate(EnealValidate::class)->check($postData);
    或
    validate(EnealValidate::class)->scene($scene)->check($postData);
    
    不使用静态方法:
    validate(EnealValidate)->check($postData);
    
    

    方法二:直接使用

    validate(app\admin\validate\EntalValidate::class)->check($postData);
    或
    validate(app\admin\validate\EntalValidate)->check($postData);

    方法三:使用变量名称

    $kd='\app\admin\validate\EntValidate';
    // $kd=\app\admin\validate\EntValidate::class;
    validate($kd)->check($postData);

    其它例子:

    要注意 '/' 字符的位置

     

    php中的动态类名

    参考:http://www.voidcn.com/article/p-sssefeod-btp.html

    使用include_once()以递归方式在目录中动态调用扩展字段类的类.我这样做是为了让我(和其他人)只需添加一个文件即可轻松添加新的字段类型

    我想知道的是:有没有办法从其中一个动态包含的变量名扩展类中证实一个新对象?

    例如一个名为checkbox的类:

    $field_type = 'checkbox';

    $field = new {$field_type}();
    也许这会起作用?但它没有?

    $field_type = 'checkbox';

    $field = new $$field_type();
    这应该用于实例化具有字符串变量值的类:
    $type = 'Checkbox'; 
    $field = new $type();
    echo get_class($field); // Output: Checkbox

     

    参考:https://blog.csdn.net/weixin_39989688/article/details/115239879

    我最近研究过一些代码,我必须在类中动态调用一个方法.

    我最终使用的解决方案是2行,因为“动态”部分只是我需要调用的实际方法名称的一小部分.

    这是我最终使用的解决方案:

    $pull = "pull_{$type}_day";

    $day = $download->$pull();

    最初,我试图让这一行,但它没有用.从技术意义上讲,为什么上面的代码有效但下面的代码没有?

    $day = $download->"pull_{$type}_day"();

    解决方法:

    如果您使用字符串或字符串的一部分作为方法(或属性),则需要将其包围在{}中,如下所示:

    #property

    echo $foo->{"bar"};

    #method call

    echo $foo->{"bar"}();

    因此,如果您需要字符串部分中的变量,则遵循与任何普通字符串相同的规则.

    echo $foo->{"bar".$bar}();

    echo $foo->{'bar'.$bar.'bar'}();

    echo $foo->{"bar{$bar}bar"}();

    等等.这是一个完整的例子

    class foo{
    function pull_1_day(){
    echo "bar";

    }

    }

    $a = 1;

    (new foo)->{"pull_{$a}_day"}();

    输出

    bar

    这与PHP允许您使用字符串作为变量的方式相同,例如:

    $foo = 'bar';

    echo ${"foo"};

    输出

    bar

    同样的语法.

     

    展开全文
  • validate.js页面验证js使用方法

    千次阅读 2014-12-03 08:43:46
    validate.js包含三个主要的构造: FormValidator,InputValidator,BaseValidator构造会new一个对象,对有限属性进行覆盖:  FormValidator是表单的验证构造,需要两个参数,第一个为表单元素,第二个为构造的...
  • VeeValidate 中文文档-Guide

    千次阅读 2018-12-11 16:09:15
    项目中的 Vue 需要使用表单验证,在网上搜了一些资料,看来看去,还是 VeeValidate 貌似好用点,至少 github 排行最高。 此外 Vue 官网的 Cookbook,其中的 "表单校验" 最后的 "其他替代模式" ...
  • django restfremwork serializer的validate机制

    千次阅读 2019-05-23 17:04:02
    使用DRF去创建标准API的时候有一个日常操作就是serializer.is_valid(),用于检查序列...在自定义的serializer内自定义validate方法名用validate和要做特殊检查的字段用下划线连起来命名就可以直接检查,比如要实现...
  • Struts2之validate数据校验两种方式

    千次阅读 2016-03-23 11:18:58
    1.Action中的validate()方法Struts2提供了一个Validateable接口,这个接口中只存在validate()方法,实现这个接口的类可直接被Struts2调用,ActionSupport类就实现了Vadidateable接口,但他的validate()方法是一个空...
  • JAXB解析xml时忽略命名空间的方法

    千次阅读 2013-03-06 17:11:07
    本文转自:... public static ConnectivityDeliveryResponse unmarshall(String response) throws JAXBException, ParserConfigurationException, SAXException { ...
  • jq-validate实现表单即时验证功能,可做插件扩展于layui 最近在做公司后台的前端页面用的是layui有需求是要写公共文件来实现表单的即时验证我经过多方查找用了jq的validate来实现的话不多说上代码 前端页面 <!...
  • 这样可以确保与Validate.io模块的当前命名保持一致。 有效名称包括: validate.io-object , validate.io-string , validate.io-array等,不要有空格或名称的特殊符号; 例如, validate io check
  • mysql 安装密码校验插件validate_password

    千次阅读 2019-12-02 14:36:34
    使用这种插件加载方法,必须在每次服务器启动时提供该选项。例如,将这些行放到服务器my.cnf文件中(根据需要调整平台的.so后缀): [mysqld] plugin-load-add=validate_password.so #服务器在启动时加载插件,并...
  • laravel validate 验证器

    万次阅读 2018-09-09 13:50:20
    Laravel 提供了多种方法来验证应用输入数据。默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验证规则来验证输入的 HTTP 请求。 2、快速入门 要掌握...
  • 较好的方法命名规则

    千次阅读 2015-11-19 14:34:08
    2015年11月19日 第一版原文链接:...原作者:KeithYokoma 译者:dssunxun返回真伪值的方法 場所 单词 意义 例 Prefix is 对象是否是所期待的状态 isChecked Prefix can 对象能否执行所期待的动作
  • 网上大部分都是2.x版本的内容,但是veevalidate在3.0的时候进行了一次大版本的更新,有了很大的不同,官网文档是英文的,感兴趣的小伙伴们也可以去直接观看哈,现在适配vue3.0的第四个版本都出了。但是我感觉3.x还是...
  • Apache Calcite教程-validate校验

    千次阅读 2019-05-19 15:58:57
    核心校验validate方法,该方法主要是调用 SqlNode和子类的 的validate方法 主要以 SqlSelect 的方法validate() 来说明 public void validate(SqlValidator validator, SqlValidatorScope scope) { validator....
  • 检查文件路径 一般是文件的命名和文件的问题
  • 本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器.  1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接口只有一个valudate()方法,只要类实现此接口name可以直接被...
  • 如果您最顶层的模板没有这样命名,请使用rootLayout标志对其进行配置。 如果需要调试,请添加调试标志以将日志转储到控制台。 可选的 // client.js ValidateForm . config ( { debug : true } ) ; 用法 最简单的...
  • 这篇文章主要为大家详细介绍了Java struts2 validate用户登录校验功能实现的具体步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下首先贴一下搭配的环境:配置:Eclipse4.3.2jdk1.7_45Mysql 5.0+然后切入正题...
  • 使用这种插件加载方法,必须在每次服务器启动时提供该选项。例如,将这些行放到服务器my.cnf文件中(根据需要调整平台的.so后缀): [mysqld] plugin-load-add=validate_password.so #服务器在启动时加载插件,并防止在...
  • jaxb解析xml忽略命名空间

    千次阅读 2014-05-12 21:47:22
    当解析xml时我们一般要的是内容,一般不解析xml,当用jaxb解析XML时,如果记录命名空间相关信息,也会让类显得臃肿 以下为忽略命名空间的解析xml的代码 /** * 解析xml(忽略命名空间) ...
  • validateapi API客户端 验证API可帮助您验证数据。... 如果API需要身份验证,请更新安装程序中的命名凭据。 使用运行您的Apex测试 $ sfdx sfdx force:apex:test:run 从控制台检索作业ID并检查测试结果。 $
  • Flink SQL·validate

    2022-01-09 19:23:58
    核心概念 SqlValidator 验证 SQL 语句的解析树...比如SqlLiteral#validate(SqlValidator, SqlValidatorScope)调用#validateLiteral(org.apache.calcite.sql.SqlLiteral)SqlCall#validate(SqlValidator, SqlValidat..
  • Spring自定义命名空间

    千次阅读 2018-07-30 14:46:52
    对每个Element,如果是默认的URI(即beans命名空间内的定义),调用parseDefaultElement()方法, 否则调用BeanDefinitionParserDelegate中的parseCustomElement()方法。 在parseCustomElement()方法中,它找到当前...
  • Struts2的输入校验有两种方式:一种是用Action中定义的validate()方法进行校验,一种是用Struts2定义好的校验框架进行校验。前者里面的逻辑判断要自己写,而后者只需要传递相应的参数即可。 不管是哪种方式,程序...
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 今天开始跳lumen的表单验证Validate...先来看看官方的方法,验证不通过直接返回json。 $this->validate($request, $rules, $message, $attributes);...
  • hibernate validate入门学习

    千次阅读 2016-10-21 16:57:48
    第一章:hibernate validate入门   1:搭建 1.1:下载架包4.0.2版本的架包。为什么使用该版本,在hibernate validate项目应用中进行说明。 1.2:解压下载的压缩包,导入hibernate-validator和...
  • PCB学习笔记——AD17如何批量命名元器件 假如我们画了一堆电阻,但是一个一个命名显然很麻烦,这时候就需要批量命名R1——R8。 首先把电阻排成一排(不排也可以,按自己需求来)。如下图: 然后按住鼠标,从左上角...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,749
精华内容 11,899
关键字:

validate方法命名