"Fossies" - the Fresh Open Source Software Archive

Member "brlcad-7.32.4/src/libged/README" (29 Jul 2021, 1782 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 BRL-CAD's Geometry Editing Library (LIBGED)
    2 ===========================================
    3 
    4 LIBGED is a CLI library for working on BRL-CAD geometry.
    5 
    6 LIBGED provides commands that may be invoked via C API or scripting
    7 languages bound to the API.  It supports the following features:
    8 
    9 * stateless command interface
   10 * stateful commands via context structure (e.g., for objects & views)
   11 * short and long versions of all flags
   12 * automatic help generation for commands and flags
   13 * TODO: automatic help flag recognition for -?, -h, and --help
   14 * TODO: automatic detailed help for "help [command]"
   15 * TODO: built-in globbing support
   16 * TODO: transactional changes (all or nothing)
   17 * TODO: built-in undo support
   18 * TODO: command versioning
   19 
   20 = Design =
   21 
   22 LIBGED's CLI uses a consistent "{action} [args]" (i.e., VERB NOUN)
   23 command pattern or "{obj_type} {action} [args]" for commands
   24 specific to an object type (e.g., "attr show myobj").
   25 
   26 LIBGED aims to present fewer than 100 top-level commands.
   27 
   28 For development, the following guidelines are recommended best
   29 practice for consistency and uniformity.
   30 
   31 1. Usability first.  Helps to develop UI before doing implementation.
   32 
   33 2. If something doesn't work well, deprecate, replace, and/or retire.
   34 
   35 3. Maintainable means high cohesion, low coupling, & quick to modify.
   36 
   37 4. All commands must be documented.  Docs help with scope and design.
   38 
   39 5. Take features to completion, not perfection.  Iterate on feedback.
   40 
   41 6. Coding solo can be satisfying, but often results in design poison.
   42 
   43 7. Reduce, Reuse, Refactor; leverage existing; push duplication down.
   44 
   45 Per ISO 9126-1, development priorities SHOULD typically be:
   46 Usability > Reliability > Maintainability > Functionality > Efficiency
   47 
   48 See TODO and include/ged.h for additional notes on LIBGED's design.