Backend Developer

Step by step guide to becoming a modern backend developer in 2023

JКомпетенции уровня JuniorMКомпетенции уровня MiddleSКомпетенции уровня SeniorTКомпетенции уровня Техлид1-3Уровень владения технологиейИнтернетИзучение языкаСистемы управления версиямиХостинг-сервисы репозиториевОбщие знания ОСБазы данных SQLБазы данных NoSQLГрафовые БД: Neo4jБазы данныхМасштабирование БДИзучение APIКэшированиеВеб-безопасностьТестирование приложенийCI / CDПринципы дизайна и разработкиАрхитектурные паттерныПоисковые движкиБрокеры сообщенийКонтейнеризация и виртуализацияGraphQLServer Sent EventsВеб-сокетыВеб-серверыМасштабированиеDNSПринципы работы ИнтернетаДоменное имяHTTPХостингБраузерыGoRustJavaJavaScriptC#PythonPHPRubyGitGitHubGitLabBitbucketИспользование терминалаОсновы POSIX: stdin, stdout, stderr, pipesОсновные команды CLI grep, awk, sed и т.д.Принципы работы ОСУправление памятьюМежпроцессное взаимодействиеУправление вводом/выводомОсновные концепции сетиПотоки и паралеллизмУправление процессамиPostgreSQLMySQLMariaDBMS SQLOracleДокументные БД: MongoDB, CouchDBБД временной последовательности: InfluxDB, TimeScaleКолоночные БД: Cassandra, HBaseБД реального времени: Firebase, RethinkDBБД ключ-значение: Redis, DynamoDBORMACIDТранзакцииПроблема N+1НормализацияРежимы аварийной работыМониторинг производительностиИндексированиеРепликация данныхСтратегии разделенияТеорема CAPHATEOASOpen APIАутентификацияRESTJSON APISOAPgRPCGraphQLКлиентская сторонаСерверная сторонаCDNMD5SHAbcryptscryptHTTPSРиски безопасности OWASPCORSSSL/TLSContent Security PolicyБезопасность сервераИнтеграционные тестыЮнит-тестыФункциональные тестыПаттерны проектирования GOFПредметно-ориентированное проектированиеРазработка на основе тестированияCQRSEvent SourcingМонолитные приложенияМикросервисыSOAБессерверные функцииСервисная сетка12-факторные приложенияElasticsearchSolrRabbitMQKafkaKubernetesDockerLXCApolloRelay ModernNginxApacheCaddyMS IISСтратегии смягчения последствийИнструментарий, мониторинг и телеметрияСтратегии миграцииТипы масштабированияВедение журнала показателей мониторингаCookieOAuthBasic AuthToken AuthJWTOpenIDSAMLRedisMemcachedИзящная деградацияThrottlingОбратное давлениеLoadshiftingАвтоматический выключатель

Часто задаваемые вопросы

Backend web development is the part of web development that deals with the server-side of a web application. This includes creating and managing the server-side logic, connecting the application to a database, creating server-side APIs, handling user authentication and authorization, and processing and responding to user requests. It often involves the use of programming languages such as Python, Java, Ruby, PHP, JavaScript (Node.js), and .NET languages.

A backend developer is responsible for the development of server-side components of a web application i.e. working with databases, handling requests, creating server-side APIs that can be consumed by frontend developers to retrieve and manipulate data, ensuring the scalability of the systems i.e. making sure that the backend can handle a high volume of traffic and is performant, integrating external services like payment gateways, message queues, cloud services, etc.