The "ends" of web development

the front-end, the back-end and any other loose-ends

notes2023-11-02 02:22

Web development traditionally has two ends, the front-end and the back-end, but there also exist some processes which require involvement from both ends:

  • The front-end (presentation-oriented programming - what you see)
  • The back-end (data and logic-oriented programming - what you get)

Front-end

The front-end usually involves the following "3 S's":

  • Structuring (HTML)
    • to enforce the sensibility (order) of visual components
    • to ensure that a web resource has accessibility to everyone
  • Styling (CSS)
    • to enhance the visual look-and-feel
  • Scripting (e.g. JavaScript, React, Angular, jQuery, etc.)
    • to manage user input and data changes
    • to work with the back-end

Sometimes, front-end developers may have to take part in:

  • Imaging (e.g. Photoshop)
    • to adjust (resize, crop, etc.) visual assets provided by a client
    • to take the load off the design team who might work with more complex imaging and graphics projects

Back-end

The back-end usually involves:

  • Scripting (e.g. also JavaScript, with some PHP, Ruby, Perl and older programming languages)
    • to process the results from database querying
  • Database querying (e.g. GraphQL, MongoDB, MySQL)
    • to get/set data from a database
  • Authorization and authentication
    • the former refers to allowing a user into a system
    • the latter refers to determining that the user is genuine

Every-end

Each developer may also have to take part in: ‌

  • Versioning or version control (e.g. Git or Mercurial)
    • to not only submit content "to the cloud" but also to ensure backups if something goes wrong
    • to allow for collaboration by multiple developers within the same project(s)
  • Deployment (e.g. FTP, Jenkins, Netlify, Vercel, etc.)
    • to get that web project onto the Internet servers!
      • usually nowadays handled by a specialized team called development operations (or dev ops)
  • Documenting (e.g. GitBook!)
    • to communicate cases and learnings for obvious reasons
  • Organizing (e.g. SCRUM)
    • to ensure that all the programming, layout, look-and-feel, content, images (and any other assets) all come together, so that the development experience goes as smoothly as possible
  • Optimizing
    • for more universal accessibility, better usability, improved speed
    • for enhancing the experience of the "finished" product
      • note: no product ever really gets "finished"

‌As one can gather, a lot of web development involves tasks other than simply programming!