The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Stick to Basics - no (so called) helper frameworks
Naturally, like any programming, there's an induction period where you get used to the idea of how to do things and the comparative uniqueness of the isolation of the client from the server and statelessness. But it all becomes familiar. And you maintain control.
For myself - I don't give a damn about the conventional wisdom of the layout. I want all the components on the page to work exactly as I wish them to (along with the server). Design - well, they could hire a web designer. I'll keep it clean and, in particular, a very small set of interfaces for my users (familiarity breeds contentment). I go for eye-friendly, and, since these are for office workers to stare at all day, kind to the eyes based on colors/contrasts/font-sizes.
If an extension is added (really, 'when' an extension is added) is must not interfere with existing code and design. They must embrace or ignore one another - no half-assed measures or you'll pay down the line. Also, never use the latest-and-greatest extension to (HTML/CSS) as you then have browser incompatibility(s) or even worse, you handle it, fork you design, crash, and burn.
Remember - you are working concurrently with three-to-five languages per page (if you count SQL). It's not like the happy place in your C++ environment - everything made to a single monolithic paradigm. And you need to redesign there, too.
Thereby set up a stable world and the problems all but disappear.
I want all the components on the page to work exactly as I wish them to
That's the problem, especially with CSS.
And I roll my own stuff a lot of times, except these days I do use jquery precisely because it eliminates some of the inconsistencies of "DHTML", especially taking multiple browsers into account.
Less stress. Still, it's mostly CSS that sticks in my craw. It's just so freakin arcane.
Even I get the concepts enough that I could roll my own basic CSS engine, things like lack of a hard "height" feature, clearfix problems, and just the layout quirks - it's a damned mess. I know one person that can navigate that mud and make it seem easy, and if I wasn't a better person I'd hate them for it
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
I know one person that can navigate that mud and make it seem easy,
So - you have supplied apriori proof that it can be done if you know what you're doing - really like any other programming languages.
Now - there's no need for you to specialize for a now-and-then pain.
I came to my current job for my C++ - but am now 'the' web programmer. What I have found, as a self criticism, is that I usually know how to get the page to appear as I wish - but don't want to make the effort.
Between sending you my first mail in this series and your reply I worked on a modification. It didn't work out and I commented it out, for now. I do know the solution (in programming, I guess it's always properly written as "a solution", not "the solution") but I have neither the urge nor the time, right now, to go there. Really easy: make a two-column table into three so I can right-justify a like (whose class makes it look like a button) on the far right of a <th> element and combine all the lower rows to mimic the original two-column behavior with a column span, along with using <td>, instead, and gain back some control. Or whatever floats by when I open the page again. All of the above formatting is from AJAX (php). Right now, I just don't feel like it.
So, instead of putting in the effort it got " // ".
I create software for grownups earning their living. And a fraternal district full of users on an informational site. So far, no complaints from a single phone-addicted user although Google analytics puts them at ca. 40% share.
I had really good luck with combining B.E.M[^], a css preprocessor, and something like patternlab[^] to develop the front end independently of the back end. That lets you develop the front end without the nasty css cascades, and by using components with mock data and multiple states.
yeah CSS is horrid and overly powerful. I was so happy to work on a project that implemented BEM. After that I saw that it could at least be reigned in. I do mostly server side and backend type work now, not a front end dev anymore.
1. Don't support Internet Explorer. The only reason it exists anymore is for legacy business web apps and Microsoft has told web devs to stop supporting it in new sites and applications.
2. Invest in a browser screenshot tool like LambdaTest to cut down on your browser testing time. You can run a test and only do detailed testing on the screenshots that don't look right.
3. Use source control like git. This is a general development tip, but many in Web Dev seem to skip stuff like this to save time. It is worth it to be able to have a history of your changes. There are plenty of IDEs like Visual Code Code that integrate with git directly to make this really easy.
4. Use a smart deployment tool like git-ftp. Free for all FTP'ing everything to server will just lead to issues in the long run, especially if you need multiple people pushing changes out to your server.
5. Setup a local web server for development. This cuts all of the time involved pushing your changes out to test them. Their are plenty of AMP packages to pick from (XAMP or MAMP comes to mind) also if you have Windows Pro you can install IIS and install MySQL and PHP natively. You can also use a host file tool to redirect your domain name to your local machine while testing. I prefer HostProfiles for this on Windows (open to other suggestions if anyone knows of a better Windows tool in active development) and Gasmask for this on macOS.
Google "object oriented CSS". Its a practice of creating reusable css classes and styles that helps eliminate the tediousness of working with CSS.
I would also recommend separating your text css and site layout css into separate files that are loaded before your general css file. Having all of the general elements already styled out before doing specific element overrides will help eliminate the amount of CSS you have to write. You could even do this with form element CSS as well.
You should also look at using a css reset vs using a css normalize and decide which approach fits your css approach best. I prefer using a reset because of the consistency it provides to the design in the end, but I know a lot of folks prefer using a normalize because there is less general element styling you end up needing in the end.
Nope. A page may load a little slower the first time, but not really that noticeable. Since webassembly is stateful, not stateless, page operation is actually faster. And loads are minimized to just what is needed.
You should try it for yourself. I think you will find that server-side Blazor is quite fast, especially for intranet applications. The improvement in stability and decreased development time more than makes up for a few microseconds of latency or initial page load delay.