I'm tasked with implementing a spec for a simple simulated shopping system. The spec however uses strange abreviations everywhere (it has a 2 page long table of nonsense abreviations). For example the contains lines like this:
Each potential VG has a AL of VGI's.
When replacing the abreviations using the abreviations table we get something that isn't much better:
Each potential value generator has an acquisition list of value generating items.
Through much digging and translating I decipher this to:
Each customer has a shopping cart containing a set of products.
This could be implemented in 2 ways:
class VG { private List<VGI> AL {get;} = new List<VGI>(); } class ShoppingCart { private List<Product> Products {get;} = new List<Product>(); } Is it okay for me to write the code in the readable version? This would make the code readable to future victims of this project, but it would totally disconnect the spec from the actual code?
class AcquisitionList { private List<ValueGeneratingItem> ... }. and FYI option (1) is pretty bad, but I've seen worse!