name?
I got some inspiration from RFC 1178 (choosing a good hostname): use
theme names, but I don't know if any of you have a better method.
[/QUOTE]
generally, I name libraries basically using abbreviation of various
things combined together into acronyms.
ex: BGB (myself), Tech -> BGB+Tech -> BT,
Game Engine -> GE
Server -> SV
BT+GE+SV -> BTGESV
likewise, BTGECM, ...
sometimes, there are variations, like:
'BGBBTJPG' for my main graphics/image library, its name being mostly
because it started out mostly as a library specifically for an extended
JPEG variant, but basically expanded to a mass of image-loaders and
video-codecs and logic for working with various compressed texture
formats and similar.
and, my 3D renderer is called "LBXGL" originally meaning "Lang/BGB
eXtensions for OpenGL", where "Lang/BGB" was an earlier name for my
script-language efforts, but later coalesced into a language I call
"BGBScript", with a VM backend with parts named as "BSVMC" ("BGBScript
VM Compiler"), "BSVMI" ("BGBScript VM Interpreter"), ...
likewise, "BGBGC" and "BGBDY" for "BGB Garbage Collector" and "BGB
Dynamic" (the dynamic-types library, actually serves as a pretty major
hub for the "VM sub-project", and by extension pretty much the entire
engine-codebase).
then names are generally formed as:
LIBNAME_SubSystem_Function
or:
LIBNAME_SubSystem_Function_SubFunction
and sometimes:
LIBNAME_SubSystem_FunctionSUFFIX
or:
LIBNAME_SubSystem_Function_SubFunctionSUFFIX
where subsystem refers to various subdivisions within a given library,
for example:
BGBBTJPG_BC7_... //stuff for BC7 texture-compression
BGBBTJPG_BT1C_... //stuff for the BTIC1C video codec
....
sub-function is when a given functions' logical operation needs to be
broken up into multiple functions for some reason, generally not
intended to be used by itself.
suffixes are typically multi-letter codes that indicate special
properties or variants of a functions' logical operation.
function names are typically on of:
VerbSubject
VerbSubjectObject
VerbSubjectSubClauses
such as:
AllocSomething
FreeSomething
DoSomethingWithSomethingElse
....
often:
LIBNAME_Function
is user for library level functions (exported API) whereas typically
subsystem-qualified names are considered internal to the library (and
are very often not exported).
another variant is having the name lower-case, ex:
libname_subsys_someFunction
which generally means "this function is private, don't use".
sometimes:
"pfxSomeFunction" is used for "formal APIs", which are basically public
APIs functions intended to be used as part of the core project
infrastructure. generally, these are used sparingly (and in my codebase
the prefixes are typically 3 or 4 letters).
generally, with a lot of this, internal name clashes are avoided, and it
makes keeping track of inter-library dependencies easier.
though, granted, my codebase isn't particularly small, and these
conventions mostly emerged to help deal with scalability issues.
or such...