Hi everyone,
I am programming since quite some years now.
Until now I was mainly focused on writing “normal” applications which run inside a console or with a GUI, sometimes also applications which interact with hardware components such as sensors / actors / …
During this time I got to know a lot of cool programming principles and tools such as object orientation, modularization, unit-testing, test-driven-development, desing-patterns, code-analysis, ..
Also I have some first experience with hosting a wordpress blog, running static web-sites on a nginx webserver, and writing some small php-forms. But I feel like there is still too much magic in all these web-development topics. And I would like to fill this gap and learn a bit more about all these connected scripting / programming languages and technologies. (Because I hate, when I don’t understand how things are working
I started with some online “Web-development bootcamp” course at udemy to get a rough overview. This took quite some days now and I think HTML, CSS and Javascript for DOM manipulation / animations are clear to me now. Also I heard a lot about NodeJS and all it’s derivate languages and databases like Mongo-DB. But still I feel like there is a lot of things unclear to me.
To get to a better understanding I wanted to development some small web-application. Nothing very special, just some website where you have to login to, are able to generate some data and this data is then persisted into a database and once you login again you are able to see the data again.
I first started with developing some classes in Javascript to represent the data in the browser while you are logged in. But I very soon realized that the Javascript which can run inside the browser is very limited and already for unit-testing and modularization into separate files that include each other I actually needed to do some crazy work-arounds or use other server-side languages like nodejs / php / … .
After some time coding I decided to take one step back, trying to understand the basic design patterns of web-applications and not running for a long time into the wrong direction.
My questions are:
– Is there some typical way to go while developing web-applications?– What are the typical key players? I know there is the difference between front-end, back-end and databases.– But are there some do’s and don’t’s that good WebDev’s follow?
For example:
– which code is usually written in back-end / server-side languages?– What is usually done in the front-end? (Only desing and animations?)– Do I have to move all business logic into the back-end, also for security reasons or is this maybe also a bad idea because of peformance reasons?– What programming languages are more or less dead and not to be used in the future?– What things are typically reused from frameworks, for example authentication and session handling?
Also I felt like some things I know from other programming languages are not so easy in languages like javascript / nodejs. I am willing to spend time and effort into learning all these things but I would also like to keep the quality standards that I know from C++ /
Python. On the other side I also wondered if these patterns that I have in my head are maybe just boundaries that are completely useless in modern web-development? (e.g. typing, object orientation, modularization / splitting the code to be very reusable )
What do you think am I on the wrong track here, or do I maybe simply use the wrong languages?
I hope the long text is not knocking everyone down / keeping everyone from answering me 😮
I would really appreciate your help and guidance to understand everything a bit better and to not repeat the things already a lot of others have done wrong
BR, mezorian