DEV Community

Discussion on: How To Become A Senior Developer

Collapse
 
jamesmh profile image
James Hickey

Thanks! Visual data-modelling is fine as long as it's restricted to database models (I find). They are helpful to build out your tables, relationships, etc. fast and get a handle on the overall structure.

However, what I find is that a more "code first" approach is, in the long run, a way better and maintainable way to approach building software.

This would be more in-line with a Domain Driven approach. Your data doesn't drive your code, but your code (with very rich domain models) drives your data storage/models.

I think it was Martin Fowler who once talked about working on a project where they literally ignored the database for a project, building all the code and focusing on modelling the business domain well. For the time being, they just stored everything in memory (or perhaps just to a plain binary file...something like that).

Only at the end of the project did they "plug in" a real storage mechanism.

I think that type of approach is best. And I don't think visual modelling works that well with building out code architecture, classes, etc. (although perhaps there are some tools that DO work well? Just as long as you aren't focusing on data, but on modelling the business domain ala Domain Driven Design, etc.)

Collapse
 
gavrielshaw profile image
Gavriel Shaw

Thanks for the insight James. Forrester Research shows low-code platforms growing by 50% year on year at present. outsystems.com/ and mendix.com/ are current market leaders. Outsystems developers seem to like it a lot. Do you think that's because they're... not very good developers and use it as a crutch or perhaps it actually makes a bunch of things easier, so they can focus on the more creative / challenging parts that require new coding?

Thread Thread
 
jamesmh profile image
James Hickey

If I took Ionic Studio as an example (since I'm currently leading a project building an app using ionic) - this is great.

It's great to work with the UI and build it out fast.

That being said, (I've never used ionic studio), there's probably a lot of manual tweaking that needs to be done to the generated UI code.

Now, when we talk about non-UI stuff like making API requests, auth logic, caching mechanism, network detection, etc. I would think that's best handled best manually.

I personally see lots of value in building UIs like this, but when it comes to the code that is generated....well, I don't expect it to be that "great". And even if it is, there will still be lots of other non-UI stuff to get done.

So, can a dev team use one of these tools? Sure! But like you said, if used by entry-level devs...should we expect a performant and maintainable product in the end?

These do look like great tools for building (probably) more simple straightforward apps. And there's a place for that, sure. But the trade-off is that any complex logic that is needed by the app, or perhaps unconventional experiences probably won't fit.

Especially for mobile apps, that are usually more simplistic than, lets say, a web app, I have no real big issue in general.

But you'll still an API on the back-end to hook into to do all the "heavy lifting".

Thread Thread
 
gavrielshaw profile image
Gavriel Shaw

Thank you so much. So interesting!