zoukankan      html  css  js  c++  java
  • Good Routine Names

    Describe everything the routine does  描述子程序所作的所有事情

    • describe all the outputs and side effects. If a routine computes report totals and opens an output file, ComputeReportTotals() is not an adequate name for the routine. ComputeReportTotalsAndOpen-OutputFile() is an adequate name but is too long and silly.

    Avoid meaningless, vague, or wishy-washy verbs 避免使用无意义的,模糊的,表述不清晰的动词

    • Routine names like HandleCalculation(), PerformServices(), OutputUser(), ProcessInput(), and DealWithOutput() don't tell you what the routines do.
    • Sometimes the only problem with a routine is that its name is wishy-washy; the routine itself might actually be well designed. If HandleOutput()is replaced with FormatAndPrintOutput(), you have a pretty good idea of what the routine does
    • In other cases, the verb is vague because the operations performed by the routine are vague. The routine suffers from a weakness of purpose, and the weak name is a symptom. If that's the case, the best solution is to restructure the routine and any related routines so that they all have stronger purposes and stronger names that accurately describe them.

    Don't differentiate routine names solely by number 不要仅通过数字来形成不同的子程序的名字

    Make names of routines as long as necessary 根据需要确定子程序的名字

    • Research shows that the optimum average length for a variable name is 9 to 15 characters. Routines tend to be more complicated than variables, and good names for them tend to be longer.

    To name a function, use a description of the return value 给函数命名时要对返回值有所描述

    • A function returns a value, and the function should be named for the value it returns. For example, cos(), customerId.Next(), printer.IsReady(), and pen.CurrentColor() are all good function names that indicate precisely what the functions return.
    • In object-oriented languages, you don't need to include the name of the object in the procedure name because the object itself is included in the call. document.Print(), orderInfo.Check(), and monthlyRevenues.Calc().document.PrintDocument() are redundant and can become inaccurate when they're carried through to derived classes. If Check is a class derived from Document, check.Print() seems clearly to be printing a check, whereas check.PrintDocument() sounds like it might be printing a checkbook register or monthly statement, but it doesn't sound like it's printing a check.

    Use opposites precisely 准确使用对仗词

    Using naming conventions for opposites helps consistency, which helps readability. Opposite-pairs like first/last are commonly understood. Opposite-pairs like FileOpen() and _lclose() are not symmetrical and are confusing. Here are some common opposites:

    add/remove

    increment/decrement

    open/close

    begin/end

    insert/delete

    show/hide

    create/destroy

    lock/unlock

    source/target

    first/last

    min/max

    start/stop

    get/put

    next/previous

    up/down

    get/set

    old/new

  • 相关阅读:
    linux配置Java环境变量(详细)
    linux下的挂载点和分区是什么关系
    VNC的安装与配置
    Linux下的字符集问题
    Freemarker学习中遇到的问题
    ABAP- INCLUDE Zxxx IF FOUND.
    ABAP读取工单状态 STATUS_READ
    WIN7系统设置wifi
    201702-增强记
    20170301 Excel 分多个sheet 导出
  • 原文地址:https://www.cnblogs.com/Cmpl/p/2920736.html
Copyright © 2011-2022 走看看