You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a number of internal data objects in Armory that make the code brittle and hard to reason about.
During early armory versions, it was convenient and speedy to use bag-of-properties dicts to marshal internal data structures. Adding a new dict key allows easy addition of parameters, but then users of that dict sometimes have to check for the presence of a member because the dict might not have it. This litters the code with conditionals which may or may not properly guard operations on missing elements. Because dicts allow random modification, mutations of these objects happen throughout the code which breaks locality.
We need to define some of these core objects better so that their members and semantics are locked down:
identify the application objects worth promoting
hunt down all mutations of those objects and localize them to the class
Example objects that we defined in tiga were Experiment, Credentials, Environment, Attack, Dataset, Metrics, Model, etc. The members of these are well defined and their contents and semantics mostly "locked-down" even in the present Armory. The lock-down needs to be more complete.
The text was updated successfully, but these errors were encountered:
There are a number of internal data objects in Armory that make the code brittle and hard to reason about.
During early armory versions, it was convenient and speedy to use bag-of-properties dicts to marshal internal data structures. Adding a new dict key allows easy addition of parameters, but then users of that dict sometimes have to check for the presence of a member because the dict might not have it. This litters the code with conditionals which may or may not properly guard operations on missing elements. Because dicts allow random modification, mutations of these objects happen throughout the code which breaks locality.
We need to define some of these core objects better so that their members and semantics are locked down:
Example objects that we defined in
tiga
wereExperiment
,Credentials
,Environment
,Attack
,Dataset
,Metrics
,Model
, etc. The members of these are well defined and their contents and semantics mostly "locked-down" even in the present Armory. The lock-down needs to be more complete.The text was updated successfully, but these errors were encountered: