Энтерпрайзные решения — мечта любого программиста с самомнением. Тут тебе и высокие нагрузки и отказоустойчивость — всё то, на чём реально можно проверить навыки. Мечта красивая, но, зачастую, несбыточная.
— Сделай так, чтобы я выиграл в лотерею.
Такие молитвы воссылал он год за годом, но оставался бедняком.
Но вот он и умер и, как человек праведной жизни, попал прямо к райским вратам.
Но входить отказался. А заявил, что прожил всю свою жизнь, не нарушая заповедей и в полном соответствии с тем, чему его учили, а вот Бог все равно так и не послал ему выигрыш в лотерею.
— И все, что Ты мне обещал, ничего не стоит! – в ярости кричал он.
— Я был готов помочь тебе, — отвечал Господь. – Но ты бы хоть раз купил лотерейный билет!
Пауло Коэльо, «Мактуб»
Именно так, многие мечтают, да не многие стремятся. Что обычно делают программисты? — Пишут программы. Для кого? Для непрограммистов, которым до лампочки энтерпрайзность их приложения. Главное — чтобы работало как-то. При чём здесь, казалось бы, программиста должна поджимать проблема безопасности: сломают — работать не будет :) Но нет, не тут то было: защита «неуловимого Гарри» (да кому он нужен?) работает для большинства проектов.
Архитектурная сложность вытесняется непостоянством и привередливостью заказчика. Рутина съедает мозг и, казалось бы, неплохой программист становится повседневным прогером.
Место для подвига есть везде
Первое, что нужно сделать в случае ЧС — успокоиться. Первый шаг к решению проблемы — принятие её. Главное, что нужно сделать, когда затягивает рутина — совершить безумство — превратить рутину в нечто интересное! Вместо того, чтобы тупо писать тонны никому не нужного кода, можно абстрагироваться от задачи и решать её для более широкого спектра потребностей, автоматизировать её решение, придумать оригинальный ход — всё то, что выделит её из серого списка. В конце концов, её можно решить лучше всех, оптимально и элегантно.
Если заказчик / начальник / менеджер этого не оценят — не их дело — Вы просто веселились. Делали то, что им нужно, но так, как Вам нравится!
Читай код вместо доков
Лучшая документация к коду — это сам код. Доки нужны тогда, когда делать всё нужно быстро и не задумываясь. Но мы то всё ещё хотим думать, а главное — можем! Если предстоит пользоваться какой-то платформой долгое время, вполне логично изучить её, понять, что же хотел передать автор этим циклом, какие мысли мучили его, когда он писал этот класс. И куда важнее — в чём смысл этого класса? Может он не нужен, а может наоборот — решает более широкий круг задач, чем заявлено. Всё это сложно понять, читая доки. Да и сложно по докам перенять манеру автора. А ведь вы используете его продукт в качестве платформы — у него есть чему поучиться.
Пиши велосипеды
Велосипеды и костыли — это те вещи, которых стараются избегать многие программисты: зачем писать то, что уже написано? Но может ли быть способ лучше понять MVC модель, чем написать собственный MVC фреймворк? Ощутить на себе: какие проблемы возникают и какие места могут быть узкими.
Именно написание велосипедов, а не тупое следование шаблонам разработки развивает те качества, которые нужны программисту, программному архитектору. Прогер / кодер вполне могут писать программы не углубляясь — они пользуются тем, что уже сделано за них, не претендуя на что-то большее. Программист же пишет велосипеды. Ведь в некоторых ситуациях лучше, чтобы колёса были квадратными — он это видит, он это делает.
Opensource проекты
Не стоит витать в облаках — никто не будет переделывать свой бизнес ради Вашей, пусть даже замечательной, идеи. Бизнес есть бизнес — ему нужны деньги (результаты) здесь и сейчас. Отдушиной же для программиста могут стать OpenSource проекты. Где почти никто никому не обязан, где код открыт и кривизна его становится очевидной, где сроки гибки, а пользователи благодарны. Именно так бы выглядела разработка ПО без коммерции :) Монетизация Свободного ПО, естественно, возможна, но сейчас не об этом. Ведь именно здесь отсутствуют сдерживающие факторы, от которых жизнь-нежизнь в бизнесе. Именно здесь можно тренировать своё мастерство. Проколы будут замечены, но на них вы ничего не потеряете. Однако, опыт приобретёте.
Максимум, чем вы рискуете — добрым именем ником.
Так на чём же писать то?
На чём написан энтерпрайзный код — мало кому интересно, кроме как скучающим прогерам. Программа должна работать. Работать хорошо и надёжно. Если есть желание писать такие программы — нужно не язык учить, на котором они написаны, а писать программы, стремясь к совершенству.