Когда инженер-программист не является инженером-программистом? Должность «инженер-программист» входит в число самых злоупотребляемых в мире корпоративных высоких технологий.
Это также один из самых популярных.
И почему бы нет? Это звучит намного лучше, чем «программист», и гораздо лучше смотрится на визитной карточке.
К сожалению, это часто неточно.
В конце концов, инженерия — это применение надежных технических принципов для разработки надежных, эффективных и элегантных систем.
Я обнаружил, что очень многие инженеры-программисты могут разрабатывать работающие программы, но практически не занимаются реальным инженерным проектированием.
Это звучит грубо? Возможно, но мне также трудно это отрицать.
Например, я встречал очень мало инженеров-программистов, у которых был чистый, четкий и читаемый стиль программирования — важный элемент элегантного дизайна программного обеспечения.
Я также столкнулся с преобладанием загадочно написанных функций, неуклюжими программными абстракциями и причудливым спагетти-кодом.
К своему ужасу, я обнаружил, что даже среди выпускников компьютерных наук многие сводят объектно-ориентированное программирование к простому использованию частных данных, общедоступных функций и создания экземпляров объектов.
Этого достаточно, чтобы разбить сердце учителя.
Я не буду заходить так далеко, чтобы сказать, что большинство программистов пишут спагетти-код. Это было бы несправедливо.
Однако я думаю, что относительно немногие программисты глубоко ценят искусство разработки программного обеспечения.
Это не значит, что они не знают о таких вещах; нисколько.
Скорее, дело скорее в том, что инженерные аспекты элегантного дизайна кода слишком часто игнорируются.
Я думаю, это происходит потому, что современные инструменты программирования сделали правильный дизайн кода обузой.
На заре компьютерной эры людям приходилось записывать проекты своих программ, обдумывая множество мелких деталей, прежде чем они садились перед компьютером.
Сегодня, благодаря нашим быстрым компиляторам и интерактивным системам отладки, программистам зачастую удобнее просто сесть и начать программировать, приложив лишь немного усилий к проектированию программного обеспечения.
Имейте в виду, я понимаю, что иногда это более эффективно — например, когда задача программирования довольно рутинная.
Однако когда разработка программного обеспечения по принципу «проектирование по мере использования» становится стандартной практикой, возникает полный хаос.
Частично эта проблема также коренится в гибкой природе компьютерного программного обеспечения.
Ни один уважающий себя инженер-строитель не станет проектировать мост, соединяя балки вместе, пока не получит что-то работающее; в конце концов, если мост рухнет, на его восстановление могут уйти месяцы.
Точно так же ни один разумный архитектор не захочет строить дом без чертежей и планов этажей.
Тем не менее, программисты обычно разрабатывают программное обеспечение, используя плохо выбранные функции и лишь самые схематичные проекты.
В конце концов, если программа не работает, они всегда могут найти ошибку и исправить ее — по крайней мере, теоретически.
На практике эти ошибки часто трудно обнаружить, и их исправление может потребовать обширного хирургического вмешательства.
Последствия плохо разработанной программы могут быть поистине катастрофическими.
По этой причине я считаю, что высокотехнологичные компании должны уделять разработке программного обеспечения то уважение, которого она заслуживает. Им необходимо развивать настоящую культуру систематического проектирования программного обеспечения, а не просто довольствоваться «всем, что работает».
Компания, которая смотрит в будущее, должна уделять должное внимание принципам удобства сопровождения программного обеспечения, правильной документации и элегантного и надежного дизайна.
Он также должен привить своим сотрудникам культуру настоящей разработки программного обеспечения.
Неспособность сделать это может сработать в краткосрочной перспективе, но это верный путь к долгосрочной катастрофе.
-
Корпоративный Рататуй
19 Oct, 24 -
Языковая Панель Untamed Или «Дайте Выбор»!
19 Oct, 24 -
Инструкция: Как Создавать Ботов В Telegram
19 Oct, 24 -
Вы Верите В Деда Мороза?
19 Oct, 24 -
О Дублировании Фрагментов Веб-Карты
19 Oct, 24