|
Stick to Basics - no (so called) helper frameworks
HTML5/CSS3/javaScript/php - and then roll your own.
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.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
W∴ Balboos wrote: 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.
|
|
|
|
|
honey the codewitch wrote: 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 " // ".
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Tables are easy and honestly if I didn't sort of hate myself for relying on them I'd just stick with them.
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.
|
|
|
|
|
honey the codewitch wrote: if I didn't sort of hate myself for relying on them I'd just stick with them. I never understood this anti-table nonesense.
They work and make many things very much easier (and readable ! ! ! !).
Someone got a burr up their ass and decided to denigrate them. Why should I care what they think? And by proxy, why should you care? Wait for them to offer to do your work for you.
(by the way - if life were all tables we'd not have this thread).
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
One of the rationales is it combines layout and structure, whereas if you avoid them in favor of CSS tables and such you can better "skin" your site using CSS.
However, no matter what you do in the real world with HTML and CSS there's going to be intermingling of structure and layout.
Another rationale, and this one is compelling: lack of fluidity in layout which means entirely separate content for mobile, which means more work.
So I don't know. I'm ambivalent about tables due to the second thing.
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.
|
|
|
|
|
honey the codewitch wrote: entirely separate content for mobile, Mobile? We don't do no stinkin' mobile!
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.
You have made my LG flip-phone weep.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
well for certain things mobile is desirable, even for work. I worked at a little dev house in the early aughts that adopted mobile early to create apps for mobile a salesforce and mobile technicians.
It was pretty lucrative, and shockingly practical.
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 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.
Elephant elephant elephant, sunshine sunshine sunshine
|
|
|
|
|
God bless JSON and JSONP these days I don't have a problem separating front and backend.
Through talking about it on this thread I've come to realize it's mostly CSS I hate.
And it's because its layout engine is just awful.
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.
|
|
|
|
|
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.
Elephant elephant elephant, sunshine sunshine sunshine
|
|
|
|
|
i usually do backend stuff as well, but sometimes front end is unavoidable.
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.
|
|
|
|
|
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.
|
|
|
|
|
i already do all of that except the php bit. ick. i'm not worried about xamp. And I integrate VS with github.
None of that is the issue. Really, CSS is what makes web dev crappy.
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.
|
|
|
|
|
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.
|
|
|
|
|
I usually use bootstrap to get to a baseline, but I've used resetters before too.
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.
|
|
|
|
|
HTML/CSS/JavaScript has long been a black hole for programming and debugging time. Those technologies were never intended to do what is asked of them today.
My advice is to focus on WebAssembly (in the Microsoft world, that is Blazor). HTML and C# is all that is needed. The temptation for web developers is to fall back on JavaScript (via JS Interop in Blazor) instead of learning how things are done in Blazor (HTML and C#).
|
|
|
|
|
webassembly is great but i imagine it's hell on page load times.
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.
|
|
|
|
|
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.
|
|
|
|
|
That's interesting. It must support partial assembly loading to keep page load times down i guess. That's cool, if true. Even loading the entire System.dll into a page is reams of "asm.js"
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.
|
|
|
|
|
One of the solutions is by using RAD controls. There are some controls out there like D*vExpress, T*lerik, etc.
They do have some tools to help you with this problem.
If you are working with a company that has an R&D team then you can build your own framework to tackle this issue.
|
|
|
|
|
the tools are never good enough, IME.
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.
|
|
|
|
|
The zenith of web development ease was reached with ASP.NET's WebForms. Though the internals were constantly being refined, in 2010 ao decision was made somewhere to promote the MVC paradigm of development. Everyone got on the band wagon and the rest is history.
The result is the mess of tools, tool kits, JavaScript frameworks, JavaScript, and a lots of other technologies people now have to contend with simply to develop web applications.
People should learn to leave well enough alone and stop complaining about every technical idiosyncrasy they come across.
WebForms was surely not a perfect environment but to date there has been nothing better to compete with it in terms of ease of use and just getting the job done....
WebForms is still available so maybe it would be a good idea to return to them and drop the rest of the crap that has been promoted in the past 9 years...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@ix.outlook.com
|
|
|
|
|
I tend to agree, but then I've never liked MVC and I find it heavy handed.
Usually I just develop UI apps as kind of last mile glue, and all the important stuff is wrapped up in nice class based apis the the UI calls.
I don't care about separating content and layout and control in such an environment, although I'll concede that the web with its myriad of devices make it somewhat useful, but it's still a lot of churn to build and maintain.
MVC is useful if you're building something like Visual Studio or MS Word.
With UIs being glue I just tie whatever i need to work together, factor only as much as I have to, or as much comes naturally, and make my class libraries do all the heavy lifting.
No need for MVC. No need for huge UI frameworks. Just give me what i need.
WebForms was good at that. Its abstractions were clunky in the beginning sometimes (postback initially not working on all browsers in ASP.NET 1, etc) but they're generally just enough to be useful without being impositional.
I really liked it. HTML layout was still a pain. But then CSS is CSS and it's cranky about layouts, especially doing single screen layouts that don't scroll and require fixed heights.
I just get frustrated with 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 always found WebForms to be far superior to all of the MVC nonsense. True, they had their own complexities but they were all manageable within its development environment.
When the migration to MVC began I started considering retiring and 4 years later I did so. The entire case for MVC and Agile and everything else that surrounded MVC just made no sense to me.
Who really cares about the edges in performance, which over the larger scheme of things really wasn't all that impressive, when compared to the ease of development that webForms provided?
The entire profession took a very bad turn in 2010 and it has been paying the price since...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|