Читать книгу Мастерство Программирования - - Страница 4
▍Что такое "мастерство"в программировании?Кодер vs. Программист-Мастер
ОглавлениеПредставьте себе двух поваров. Один может приготовить вкусное блюдо по рецепту, которое всем понравится. Это кодер. Он знает ингредиенты, порядок действий, и в итоге на столе появляется еда. Она работает!
А теперь представьте шеф-повара, который может не только следовать рецепту, но и адаптировать его под настроение гостей, заменить ингредиент, если чего-то нет, создать новое блюдо из того, что есть в холодильнике, и сделать так, чтобы оно было не просто вкусным, но и выглядело как произведение искусства. И даже если что-то пойдет не так, он знает, как спасти ситуацию. Это программист-мастер.
Кодер:
• Фокус: "Как заставить это работать сейчас?"
• Результат: Рабочий код, но иногда хрупкий, сложный для понимания, трудноизменяемый.
• Видение: Решает конкретную, текущую задачу.
• Отношение: "Моя часть сделана, дальше не моя забота."
Программист-Мастер:
• Фокус: "Как заставить это работать сейчас, завтра и через год? Как сделать это понятным и расширяемым?"
• Результат: Рабочий, надежный, читабельный, легко поддерживаемый и расширяемый код.
• Видение: Видит задачу в контексте всего проекта, думает о будущем, о возможных изменениях, о тех, кто будет читать его код (включая себя через полгода). НО при этом умеет соблюсти баланс и не усложнять там, где не нужно.
• Отношение: Берет ответственность за качество и долгосрочность своего "изделия", осознавая при этом оптимальность решения.
Вы когда-нибудь задумывались, в чем разница между тем, кто просто "пишет код", и настоящим Мастером программирования? На первый взгляд, оба делают одно и то же: набирают символы на клавиатуре, и на выходе получается программа. Но дьявол, как говорится, кроется в деталях – и в мышлении.
Представьте себе: есть кодер. Он получает задачу: "Сделай так, чтобы эта кнопка сохраняла данные". Он быстро пишет код, кнопка работает, данные сохраняются. Готово. Отлично! На первый взгляд.
А есть Мастер. Он тоже получает ту же задачу. Но прежде чем начать писать, он задумывается:
• "Как эти данные будут использоваться потом?"
• "Что будет, если сохранение не удастся?"
• "Будет ли удобно коллегам через год читать этот код и добавлять новую функциональность?"
• "А не сделал ли я это уже где-то в другом месте, и можно ли переиспользовать?"
Для кодера важен результат "здесь и сейчас". Для Мастера –качество, надежность, поддерживаемость и масштабируемостьрешения в долгосрочной перспективе. Он видит не только текущую задачу, но и весь жизненный цикл кода.
Мастерство в программировании – это не только знание языков и технологий. Это умение думать на шаг вперед, видеть за синтаксисом архитектуру, предвидеть проблемы и писать код для людей, которые будут его читать (прежде всего, для себя самого в будущем!). Это понимание, что каждая строчка кода – это ваш вклад в общее дело, который должен быть не только функциональным, но и качественным и при этом оптимальным по своей сложности.