#android #highload #задание_на_собеседовании
На одном собеседовании на позицию Android developer мне был задан вопрос: "Имею ли я опыт создания высоконагруженных Android приложений." (Жаль, что мысль уточнить определение этого понятия мне пришла уже после собеседования) Разработкой приложений для Android я занимаюсь уже несколько лет. Так получилось, что проекты с которыми я работаю(л) не имели большого успеха в плане количества пользователей. Исходя из этого, на вышеупомянутый вопрос я ответил, что такого опыта не имел, все проекты доростали в лучшем случае до нескольки тысяч пользователей. (В данном случае, я интерпретировал highload как количество активных пользователей) Ранее я не встречал применение понятия "высоконагруженный" (highload) в контексте Android приложений. И сейчас, задавшись вопросом я вижу, что это понятие применяется по отношению к бекенду и сайтам. После проведения аналогий с highload в вебе, я бы сказал, что highload Android app - это приложение архитектура которого будет легко поддерживать внедрение новых функций, оптимально расходовать ресурсы Android девайса. Но разве не каждое приложение должно разрабатываться с учетом этих требований? Хочу поинтересоваться у других специалистов, как вы понимаете "высоконагруженный" (hihgload) по отношению к Android приложению?
Ответы
Ответ 1
Сложно сказать, что именно имели в виду на собеседовании, но я могу предположить следующие ситуации: Собеседование проводил нетехнический специалист, у которого был опросник (или опыт) для собеседования бекенд-специалистов, который на лету как-то адаптировал вопросы, а в ответах надеялся услышать уверенный ответ (не важно какой) Собеседование проводил грамотный интервьюер, вопрос задавался с целью проверить уверенность знаний или ввести в некий стресс. Ожидаемым ответом на такие вопросы являются уточняющие вопросы или рассказ о том, что вопрошающий спрашивает чушь. Собеседник разговаривает на каком-то внутреннем диалекте, известном только ему или его окружению. В этом случае он хотел узнать что-то конкретное, но вот что именно - остается только гадать. И если с первыми 2 случаями все относительно понятно, то в последнем варианте можно подумать о: Отзывчивости и плавности приложения, особенно когда оно обвешано сторонними модулями и библиотеками. Мне порой попадались приложения, которые на топовом железе прошлого года выдавали ну просто сверх-тормозящие списочки. Впрочем, гигагерцы и ядра только растут, а списочки все равно всегда тормозят. Оптимизации сетевого обмена с сервером. Когда сервер задыхается от миллионов запросов, то тут надо бы подумать, как сделать работу сервера попроще. К примеру, отказаться от XML/JSON и других человекочитаемых протоколов, как бы ввести несколько серверов, как бы снизить число запросов так, чтобы и функциональность не пострадала, и при этом сервер без лишней надобности не трогать. Надо сказать, что это в общем-то не работа Андроид-девелопера, но порой больше этим некому заниматься. Вопрос мог означать, умеете ли вы работать с байтиками или ума хватает только на парсинг XML и голые запросы по http. Иногда надо работать с большими объемами данных. К примеру, отображать карту с миллионами объектов на ней одновременно. Да, это возможно, но если все приложение написать на сишечке, а не использовать гугломапсы, как это делают все. Есть ряд приложений, где отзывчивость критически важна и которые потребляют максимум ресурсов. К примеру, Angry Birds делает внутри себя какую-то магию, что мой планшет становится горячим примерно за 10 минут игры. Я не знаю как они этого добились, но я верю, что это пример высоконагруженного приложения Майнинг биткоинов, подсчет прогноза погоды, рисование чего-то поверх фотографий на основе нейросетей. Возможно, в скрытом режиме. Наверное злые птицы чем-то таким в фоне и занимаются. Думаю, список можно продолжать бесконечно. Если кто-то напишет другие варианты, то будет круто. А вообще, порог входа в профессию "погромизд на андроид" настолько низок, что достаточно понимать как правильно копипастить код со стековерфлоу и клеить свои приложения из копипасты. АПИ меняется постоянно, равно как и практики, равно как и требования. Я совершенно не понимаю, зачем проводят такие собеседования.
Комментариев нет:
Отправить комментарий