Привет, ребята! Если вы давали какое-либо собеседование по программированию, значит, вы знаете, что проблемы проектирования системы или программного обеспечения являются важной частью собеседований при приеме на работу программистов, и если вы хотите преуспеть, вы должны подготовить эту тему. Когда я искал, я не нашел ни одного онлайн-курса, полностью ориентированного на решение проблем проектирования системы от ведущих компаний, таких как Amazon, Google, Microsoft, Apple, SalesForce, FlipKart и т. Д.

В любом случае, если вы объедините этот курс с этим списком вопросов, у вас будет лучший материал для подготовки к собеседованию по проектированию системы. Вы также можете сначала попробовать все эти вопросы самостоятельно, прежде чем присоединиться к курсу или найти мое решение для некоторых вопросов.

Самые популярные вопросы на собеседовании по системному дизайну и ООП-дизайну

Без лишних слов, вот список некоторых из самых популярных вопросов системного или объектно-ориентированного анализа и проектирования, которые помогут взломать любое собеседование при приеме на работу программиста.

1. Как создать торговый автомат на Java?

Вам нужно написать код для реализации торгового автомата, который имеет набор продуктов, таких как шоколад, конфеты, холодные напитки, и принимает некоторые монеты, такие как никель, десять центов, четверть, цент и т. Д. Убедитесь, что вы вставляете монету, получаете продукт назад, и верни свой шанс. Кроме того, напишите модульный тест, чтобы продемонстрировать, что эти распространенные варианты использования работают.

2. Как разработать сервис сокращения URL-адресов, такой как Goo.gl или Bit.Ly?

Это еще один распространенный вопрос о проектировании системы. Вы дали (обычно) длинный URL-адрес, как бы вы спроектировали сервис, который генерировал бы для него более короткий и уникальный псевдоним? Если вы не знакомы со службой сокращения URL-адресов, взгляните на некоторые из популярных, таких как goo.gl от Google и bit.ly, который используется Twitter.

Обязательно предоставьте схему базы данных и обоснование некоторых проектных решений, например, как долго вы храните данные, как получать статистику и аналитику и т. Д.

3. Как разработать систему управления движением?

Классический вопрос системного дизайна от старости, который все еще популярен. Убедитесь, что вы знаете, как переходить из одного состояния в другое, например из КРАСНОГО в ЗЕЛЕНЫЙ и из ЗЕЛЕНОГО в ОРАНЖЕВЫЙ в КРАСНЫЙ и т. Д.

4. Как создать книгу лимитных ордеров?

4. Как создать книгу лимитных ордеров?

РЕШЕНИЕ

Книга лимитных заявок используется на фондовых биржах для сопоставления заявки на покупку с заявкой на продажу на основе приоритета цены и времени. Как бы вы это сделали? Какую структуру данных вы будете использовать? Помните, что скорость сопоставления является ключевым фактором, а также надежность.

5. Как создать веб-сайт, подобный Pastebin?

Pastebin позволяет вставлять текст или код, а затем делиться ссылкой на этот код в любом месте. Это не онлайн-редактор кода, но вы можете использовать его для хранения любого текста.

6. Как бы вы создали свой собственный Instagram?

Instagram - это приложение для обмена фотографиями, которое предоставляет несколько настраиваемых фильтров для повышения качества ваших фотографий. Ваше приложение должно иметь функцию загрузки фотографий, пометку фотографий для поиска и некоторые базовые фильтры. Если бы вы могли добавить общий ресурс или социальную сеть, это было бы здорово.

7. Как разработать приложения для глобального обмена файлами и хранения, такие как Google Диск или Dropbox?

Они используются для хранения и обмена файлами, фотографиями и другими медиафайлами. Как вы подходите к разработке таких вещей, как предоставление пользователям возможности загружать / просматривать / искать / обмениваться файлами или фотографиями? отслеживать разрешения для совместного использования файлов и разрешать нескольким пользователям редактировать один и тот же документ?

8. Как создать приложение для чата, такое как Whatsapp или Facebook Messenger?

Вы ведь наверняка пользовались WhatsApp и Facebook? Нет? Если нет, позвольте мне сказать вам, что приложение чата позволяет отправлять сообщения вашему другу. Это соединение точка-точка. Вы ведете список друзей, видите их статус и общаетесь с ними. В WhatsApp вы также можете объединять группы, но это для продвинутых и опытных разработчиков. Как минимум, вы должны предоставить дизайн, чтобы вести список друзей и отправлять и получать от них сообщения.

9. Как создать клон Twitter?

Twitter - популярная служба обмена сообщениями, которая позволяет транслировать сообщения всем своим подписчикам. Вы пишете в Твиттере, и ваши подписчики видят эти сообщения, они могут лайкать или ретвитнуть. Убедитесь, что вы реализовали общие функции, такие как подписчики, хэштег, твит, удаление и т. Д.

пожалуйста, поделитесь своим опытом в комментариях и прокомментируйте еще несколько вопросов по этому поводу.

Если вы хотите увидеть еще несколько вопросов, нажмите здесь