Revision: 76206 http://sourceforge.net/p/brlcad/code/76206 Author: brlcad Date: 2020-06-25 21:11:53 +0000 (Thu, 25 Jun 2020) Log Message: ----------- give libged it's own readme so some design thoughts, intention, and framing can be preserved
Modified Paths: -------------- brlcad/trunk/src/libged/CMakeLists.txt Added Paths: ----------- brlcad/trunk/src/libged/README Modified: brlcad/trunk/src/libged/CMakeLists.txt =================================================================== --- brlcad/trunk/src/libged/CMakeLists.txt 2020-06-25 21:03:59 UTC (rev 76205) +++ brlcad/trunk/src/libged/CMakeLists.txt 2020-06-25 21:11:53 UTC (rev 76206) @@ -420,6 +420,7 @@ set(ged_ignore_files CMakeLists.txt + README TODO alphanum.h bot/ged_bot.h Added: brlcad/trunk/src/libged/README =================================================================== --- brlcad/trunk/src/libged/README (rev 0) +++ brlcad/trunk/src/libged/README 2020-06-25 21:11:53 UTC (rev 76206) @@ -0,0 +1,40 @@ +BRL-CAD's Geometry Editing Command Library (LIBGED) +=================================================== + +By design, LIBGED is intended to be a simple command interface upon +which GED-style applications, utilities, and scripting may be built. +Commands may be invoked directly via C bindings or indirectly via +scripting languages such as Python, Tcl, Shell, etc., that are bound +to LIBGED. The command interface is intentionally stateless, though +applications can specify some information (e.g., objects and views) +via a ged context structure that is passed to all commands. + +The longer-term but not-yet-realized goals of the library include +modular self-documenting encapsulation, versioning, and transactions. + +LIBGED has a design objective to present fewer than 100 top-level +commands using a consistent "{action} [args]" command pattern for all +processing commands and "{obj_type} {action} [args]" for commands +specific to an object type. + +For development, the following guidelines are recommended best +practice for consistency and uniformity. + +1. Usability first. Helps to develop UI before doing implementation. + +2. If something doesn't work well, deprecate, replace, and/or retire. + +3. Maintainable means high cohesion, low coupling, & quick to modify. + +4. All commands must be documented. Docs help with scope and design. + +5. Take features to completion, not perfection. Iterate on feedback. + +6. Coding solo can be satisfying, but often results in design poison. + +7. Reduce, Reuse, Refactor; leverage existing; push duplication down. + +Per ISO 9126-1, development priorities SHOULD typically be: +Usability > Reliability > Maintainability > Functionality > Efficiency + +See TODO and include/ged.h for additional notes on LIBGED's design. Property changes on: brlcad/trunk/src/libged/README ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits