I recently started at a new job.
The existing system works OK but is poorly designed and hard to maintain, and they are planning to rebuild it in MVC and I fear it will be much worse. (Not because of MVC) I want to discourage the lead dev from using an anti-pattern
Existing issues include
- Hard coded strings in the business logic which are also tied to the interface (e.g.
if (x.CustomerType.Contains("Shipping Customer") foobar();
is everywhere - Some classes map to dbTables directly (which is good). But because the software
has to be "easy to add features to ", there is a Sharepoint-esque "DynamicData" table for storing new fields that the customer may require. a la
[FieldName] [FieldValue] [FieldType]
- Refusal to use Linq but chains lamda queries for about 2 page widths.
- Exceptions not explicitly thrown or rethrown, but not handled properly (the client can see the call stack because it is just dumped into a popup dialog)
- Refusal to use
var
but loves the idea ofdynamic
everything.
What is the best way to go about convincing my lead dev to avoid these horrible methods and not put everything in the generic key-value-pair table in version 2.0? (Considering I am new here and the team lead has been here for many years)