понедельник, 31 декабря 2012 г.

</2012>

Тишина. Вся семья отсыпается перед долгим празднованием Нового года. Самое время написать, чем же мне запомнился 2012 год, кратко:

Screen Shot 2012 12 31 at 4 25 14 PM

Чистый текст, простота и понятные решения.

Если вы не понимаете, как на всех уровнях работает ваша система - вас ждут проблемы. Лучшие решения - простые. Любая сложность должна быть необходимой и абстракции не должны создаваться ради абстракций. Когда вы делаете что-то, нужно отвечать себе на вопросы "зачем" и "почему". Когда я пишу код или проектирую пользовательский интерфейс, я постоянно задаю себе эти вопросы. Программный код должен быть красивым и понятным. Инструменты так же простыми и надежными. Поверьте, вы в любом случае сделаете сложную систему, просто если вы будете стремиться к простоте - она будет просто сложная, если вы будете писать сразу сложную систему, она будет архисложная. Не нужно бояться исправлять и улучшать проблемные места вашей программной системы. Если вы боитесь вносить изменения - значит у вас плохая программная система и лучше сломать сейчас чем она сломается сама потом и будет поздно. Не слушайте маркетологов, двигайтесь от низкого уровня к высокому, от простого к сложному. В 2012 году я по-настоящему оценил простые подходы, инструменты, повышающие эффективность понятным образом, предсказуемые системы. 

Что я использовал.

В качестве ОС для разработки в 2012 году я использовал OS X 10.8. В то же время очень страшно смотреть, что творит главный конкурент, Microsoft, сейчас на десктопе. Миллионы подопытных кроликов-пользователей и разработчиков, выступающих в роли альфа-тестеров нового UI и переломанного способа разработки приложений. Эффективные бизнесмены, сейлы и маркетинг делают свое дело. В Редмонде не многие верят в светлое будущее. Конечно все зависит от команды, но меня впечатлило, когда я узнал, что многие стратегические подразделения, про которые мы выискиваем слухи и новости, пока мы тут с вами обсуждаем их, целыми днями играют в снукер. И не работают. Зато гигантские подразделения сейлов и евангелистов впаривают вам отличные продукты. 

При этом в качестве ServerSide платформы у меня окончательно утвердились Linux контейнеры RHEL-based (RHEL, Oracle Linux, CentOS) поверх Linux хостов RHEL. При этом абсолютно нет разницы между нашими серверами и облачными, основанными на Linux виртуалках. Для контейнерной технологии оптимальным решением для меня стала технология OpenVZ с OpenVZ Web Panel. Для организации публичного облака при необходимости я выбрал #PACI от infobox с зеркалом критически важных машин на amazon cloud. 

В качестве платформ разработки на ServerSide я использовал Java, Java EE, Python, для клиентского UI – Javascript с кучей собственных расширений, типа modules.js. В самом конце 2012 года я все-таки начал процесс модуляризации GEO4GEO, выделил отдельно инфраструктуру Semantics, перевел все это на maven. Все это сделано для уменьшения сложности сервера. На клиенте я постоянно борюсь с желанием написать свой язык, компилируемый в JavaScript. Но это порочный путь и поэтому 99% усилий я вкладываю в JS–фреймворки, не зависящие ни от чего. Ближайшее, что мне хочется сделать - изолировать в момент загрузки сторонних глобальных библиотек JS их в отдельное поле видимости в рамках модуля. Однако сейчас это очень сильно убивает производительность, поэтому я просто пока не использую сторонние JS-библиотеки или переписываю их части в более тестируемом и поддерживаемом виде. И конечно между клиентом и сервером прекрасно себя чувствует REST. В качестве тест-фреймворка для Java в 2012 я открыл для себя PowerMock и пользуюсь им и сейчас. В качестве IDE - IntelliJ IDEA, которая недавно доросла до 12 версии и просто прекрасна особенно с темной стороны. Так же я довольно много времени трачу на изучение базовых инстроментов: vi/vim/sublime и простых базовых технологий, которые позволяют просто автоматизировать рутинные операции например с python для скриптинга. И еще я полностью перешел на github для личных проектов в приватных репозиториях. Этот сервис сейчас вне конкуренции. 

Многие компании пытаются навязать мысль, что нужно ИСПОЛЬЗОВАТЬ те или иные технологии. Задача программиста СОЗДАВАТЬ технологии и РЕШАТЬ проблемы. А молоток, которым вы забиваете гвозди - совсем не важен. Важны фундаментальные знания, ваш мозг и чувство прекрасного.

Что произошло еще.

В 2012 году я женился и теперь у меня прекрасная собственная семья:) Я нашел новых друзей и познакомился с новыми и очень интересными людьми, которые стали очень важны для меня. Я стал гораздо меньше времени тратить на офлайн активности и я по-настоящему верю в то, что будущее сообществ онлайне. Однако я всегда по мере возможностей рад выступать на конференциях и принимать в них участие. Всегда добро пожаловать в Geek Community на Facebook и в мой свиттер

Пора за праздничный стол.

В новом 2013 году я желаю вам быть здоровыми, счастливыми и умными, а так же заработать головой много денег и сделать здоровыми, счастливыми и умными и людей вокруг. Делайте мир лучше! Делайте свою работу хорошо, каждый день. Просто сходите в детский дом и сделайте приятно и тем, кому по иронии судьбы хуже, чем вам. И тогда у нас с вами все будет замечательно! И не важно в какой стране вы живете. Мы все живем на одной планете, и в будущем году давайте сделаем ее прекраснее. 

NewImage

Комментариев нет:

Отправить комментарий