sajad torkamani

Here is a list of common tasks you typically do when building a web application. This list is useful if you want to master web development (the better you are at more of these things, the more well-rounded you’ll be as a web developer). It can also be useful to compare how different web frameworks (e.g., Laravel, Ruby on Rails, ASP.net, Spring MVC, Django, etc) handle these things.

  • Routing requests to code.
  • Running middleware to deal with requests (e.g., authentication, rate limiting, logging, A/B testing).
  • Rendering HTML using a templating language (e.g., Laravel Blade, Twig, C#’s Razor, Nunjucks)
  • Validating incoming HTTP requests.
  • Handling errors (e.g., setting up an error monitoring tool like Sentry so you’re notified of errors).
  • Bundling front-end assets (CSS & JavaScript).
  • Caching requests.
  • Dispatching events when things happen & registering event listeners to handle those events.
  • Storing files on the server or a cloud provider.
  • Sending emails.
  • Deferring tasks with queues.
  • Rate limiting.
  • Scheduling tasks
  • Registering users
  • Logging in users.
  • Authentication & Authorization
  • Encrypting data.
  • Querying & manipulating data from a database.
  • Managing database changes with migrations.
  • Using an ORM to make it easier to work with the database.
  • Testing
    • Unit testing
    • Integration testing
    • End-to-end testing
  • Protecting against common security vulnerabilities
    • CSRF
    • XSS
    • SQL injection
    • DDoS
  • Deploying a web application
    • Setting up the server.
    • Setting up continuous delivery.
  • Creating UI components to make UI code reusable.