Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm glad you asked this!

I generally give these business systems the name of "interactive information systems." That's exactly primarily what I work on as well (and I imagine what most people work on, but not all of course).

Maybe counterintuitively, this kind of system is what brought me to math. I kept hearing things like "oh this is just a CRUD app" and it's a solved problem - yet we were opening 50 bug tickets per week (and that's not an exaggeration, we have a large application, and we measure our bug intake and report on it every sprint).

So the first place where math can help with this is at the source - the data! I know not everyone is using a relational database, but the relational model of data is firmly based on math. Learning more about set theory explicitly has improved my interactions with our relational DB immensely.

In my experience, I was taught data access through ORMs. Honestly, the relational model is so much simpler and more elegant. I read somewhere that Edgar Codd used to express relational queries using only predicate logic notation, and I imagine that that would be so much simpler than SQL, and certainly more simpler than bloated ORM code.

On the query front, we like to treat the database as an implementation detail, but I find that this is not practical. Practically, lots of domain logic has to live in queries. I have had 2 bugs recently where a query itself was not returning the right data. Improving my formal reasoning via sets and predicate logic has improved my querying immensely.



Thanks for the great response!

I may be wrong, but it seems your design architecture is similar to “structured design”. Where you model data, and alongside that the transformations to be performed on that data. Traditionally this might have been documented using entity-relationship and dataflow diagrams.

In our case, we model our complex business problem domain using an object model independent of persistence and any particular user/system interaction. Perhaps unusually for these days, we also model the many constraints (business rules) within the object model.

Given that the nature of our domain model is not based on transformations that I guess are more easily quantified (or as Dijksta would say “calculated”), I’m still unsure that formal methods would apply or bring any benefits to us at large, other than perhaps some areas of specific behavior?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: