Python
Озадачили претензией на собеседовании
Собеседовался на вакансию разработчика бэкэнда, при просмотре примера моего кода сказали что "код очень императивный, слишком много состояний", я облазил гугл, и все еще не могу понять почему это плохо
Чем больше состояний, тем больше операций требуется для их "разруливания", что снижает эффективность кода и его читаемость. Также, выше вероятность ошибок при выполнении.
Слишком императивный - это так мягко намекнули на линейный (либо раздутый) спагетти-код. Для решения этой проблемы обычно используют организацию кода (импорты), а также те возможности функционального и объектного программирования, которые предоставляет язык.
Объектный подход удобен прежде всего инкапсуляцией и наследованием, а функциональный - гибкостью, и чистотой (отсутствием побочных эффектов) когда она возможна. Каждый подход хорош для своей категории задач, и программист должен уметь выбирать из них: в первую очередь ориентируясь на ТЗ (джуниору достаточно учитывать только текущее задание, прогнозирования от него не требуют).
Рекомендую почитать о принципах эффективной разработки (технологиях программирования), и о принципах проектирования логики (SOLID). Это общая инфа, она очень полезна при любом уровне навыка - и к ней еще не раз вернешься, заново переосмыслив после очередного шага в проф. развитии.
Слишком императивный - это так мягко намекнули на линейный (либо раздутый) спагетти-код. Для решения этой проблемы обычно используют организацию кода (импорты), а также те возможности функционального и объектного программирования, которые предоставляет язык.
Объектный подход удобен прежде всего инкапсуляцией и наследованием, а функциональный - гибкостью, и чистотой (отсутствием побочных эффектов) когда она возможна. Каждый подход хорош для своей категории задач, и программист должен уметь выбирать из них: в первую очередь ориентируясь на ТЗ (джуниору достаточно учитывать только текущее задание, прогнозирования от него не требуют).
Рекомендую почитать о принципах эффективной разработки (технологиях программирования), и о принципах проектирования логики (SOLID). Это общая инфа, она очень полезна при любом уровне навыка - и к ней еще не раз вернешься, заново переосмыслив после очередного шага в проф. развитии.
Твой main должен был состоять из создания экземпляра некоторого класса и далее из работы с этим классом. Вся императивная фигня должна была быть спрятана в этом классе, он же должен был заниматься ее разруливанием, ибо инкапсуляция. А у тебя идет голый код прямо в main'е.
если хочешь код ревью, то выкладывай код, а так гадать на гуще почему он так сказал можно, но не слишком полезно
Похожие вопросы
- Алгоритмические собеседования в IT компаниях
- Япония озадачила. Что это за штука у японцев саду? (смотри фото)
- страх перед собеседованием
- Озадачили(((Меня спросили:- Какую рыбу я больше всего люблю ловить? А какую Вы ???
- Про прохождение собеседования
- Про собеседования
- Нормально ли говорить потенциальному работодателю о другом собеседование?
- 2,5 месяца поиска работы! 12 собеседований! ни одного предложения... почему и что делать?
- Если на собеседовании тебя "подставляет" секретарша?
- Как провести собеседование
def main():
file_worker = FileWorker()
painter = Painter()
file_worker.read(PATH_TO_INPUT)
query = file_worker.get_query()
for element in query:
painter.draw(element)
file_worker.write(painter.return_state())