DEV Community

fluffy
fluffy

Posted on • Originally published at beesbuzz.biz on

Advice to young web developers

I’ve been making websites in some form or another since 1995. After 25 years of experience I think I’ve accumulated enough knowledge to know a few things. Here’s some things I’d like younger developers to think about, in no particular order:

  • Sometimes a website is just a website.
  • The browser is already a client; HTML is its language.
  • The web is built around server-side rendering.
  • You can provide your data in more than one way; consider HTML to be one of several possible data representations.
  • Scaling your server helps everyone. Expecting client-side scaling only helps people with the fastest computers and Internet connections.
  • Not everyone has (or can use) a mouse.
  • Not everyone has (or can use) a keyboard.
  • Not everyone has (or can use) a touchscreen.
  • Not everyone can see colors or pictures the same way you can.
  • Not everyone can process information the same way you do.
  • It is inhumane to move things around on people.
  • The browser’s native HTML parsing is far faster than anything you can write in JavaScript.
  • HTML is already an ideal representation of DOM nodes.
  • HTML is a rich framework.
  • You can probably do that layout change in CSS.
  • Before you roll your own UI component, consider that HTML probably provides it. If it doesn’t provide it, that’s probably for a reason. Attaching DOM events to a <div> or <span> is probably not the best way of doing things.
  • Not everything has to be a “single-page application.”
  • Even if you need to preserve client state between page loads (for e.g. music or video playback) you can let the browser do most of the heavy lifting by fetch()ing a new page and replacing your content container at the DOM level.
  • Infinite scrolls are inhumane. People need to be able to reach “the end.” There are forms of eternal torment described in religious texts that are less mean.
  • If you must do an infinite scroll (and you don’t), make sure that there’s nothing you need to reach at the bottom.
  • Give people consistent but random stimulus and you will be habit-forming. Getting people hooked on your product might seem like a good idea, but the tobacco industry feels the same way.
  • If you design with CDNs in mind, then a server round-trip won’t be slow.
  • It is okay to use multiple languages in a thing. Not everything has to be isomorphic.
  • Always validate your data server-side; anything that comes from the client is suspect.
  • To the developer, “isomorphic” code breaks down the barrier between client and server. To a malicious client, it means they have control over the server too.
  • Browsers change. Relying on browser-specific behavior means you’re relying on that one browser at that one point in time. Code to the standard, and test everywhere.
  • Use polyfills to support browsers that don’t yet support the standard you’re using.
  • It’s okay to copy others; it’s how we learn things. Just remember to learn from it.

comments

Discussion (1)

Collapse
pavelloz profile image
Paweł Kowalski • Edited on

The web is built around server-side rendering.
Not everything has to be a “single-page application.”

So many forget that it becomes a meme... :)