Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

Qt

Каждого программера наверное всегда будет тянуть в какие-нибудь дебри напрямую с его работой не связанные. Вот и я занимаясь web-programming for livig, тем не менее иногда ударяюсь в какие-то странные изыски.

Надо сказать, что когда в 1999 году, я хотел устроиться на работу в СберБанк неизвестно кем :), дело в том, что вроде как специалистом по веб-разработкам, но в то же время я имел собеседование, похожее на экзамен по Си. В качестве отступления скажу, что позвали работать туда через 3 месяца после этого собеседования на поддержку программы для POS-терминала, на что, я подумав, отказался работая уже в другом месте. Так вот тут интересен сам этот экзамен, поскольку я заявлял что знаю Си++. После задачек на Си мне были заданы вопросы про STL (C++ Standard Template Library). Я про это слыхом не слыхивал. На этом экзамен закончился с формулировкой "Си++ Вы не знаете, но я все равно буду вас рекомендовать, как ведущего специалиста".

Надо заметить, что на дворе был 1999 год и 3-е издание книжки Страуструпа на русском языке только-только вышло, а мой экзаменатор видимо читал английскую версию, которая лежала на его столе рядом :). В тот момент "Фраза Си++ Вы не знаете" очень меня расстроила, тем более, что во втором издании книжки Страуструпа про Си++ STL, кажется даже и не упоминалось. Ну я — парень-то упорный, книжку купил и начал читать.

Книжка удивляла тем, что призывала к смене парадигмы (т.е. образа мышления) с привычного процедурно-ориентированного на новый объектно-ориентированный. И это было не привычно и не очень понятно. Опять отступая, скажу, что отличие между процедурным программированием с классами и ООП я понял только в этом году, жадно заглотив книжку Фаулера про Рефакторинг и книжку Банды четырех про паттерны проектирования (Банду четырех только в эти выходные дочитал, непрочитанной осталась POEAA Фаулера, но не думаю что от нее будет еще одна революция в голове). Но главное, все, что касалось Си++ было понятно и приятно читалось. Однако в том месте, где начиналось изложение STL получался фулл стоп. И никак. Ни в 1999, ни в 2005 пробиться через этот ужасный барьер темплейтов у меня не получилось.

А тут руки дошли до книги The C++ Standard Library: A Tutorial and Reference, By Nicolai M. Josuttis. И каким-то чудесным образом все вдруг встало на свои места. При этом я и книгу Страуструпа тоже перелистывал в тех сложных местах, и как ни странно все было понятно.

Теперь можно было браться за Qt, что тоже очень давно хотелось сделать. Я обнаружил, что в Qt большая часть контейнеров STL сделана заново. И интересно что это действительно разумно. Поскольку Си++ в силу своей близости к железу, очень статичный язык, а при работе с интерфейсом нужны динамические связывания, определения типов и динамическая работа со свойствами объектов. Такая задача решается мета-конструкциями Qt. Надо сказать, что тенденция к динамическим объектным конструкциям есть и веб-разработках — об этом говорит шум вокруг Ruby On Rails, который нельзя было бы сделать без замыканий и прочих конструкций языка Ruby.

Как я уже сказал, что все эти Си++ детали к моей работе напрямую не относятся, но тем не менее очень мне нравятся. Наконец я смог построить у себя на компьютере Си++ среду для программирования GUI, работу которой, я полностью понимаю — она для меня прозрачна — нет никаких магических чудес, производимых средой.

В общем рекомендую — MinGW (это порт gcc без зависимостей от Cygwin (порт POSIX-Unix среды под windows)) + Qt (Там даже QTest есть — можно писать модульные тесты и работать в стиле Test Driven Development) + Какой-нибудь текстовый редактор (в моем случае это ультраедит) + Subversion (если Вы еще не пробовали эту радость, Вам обязательно стоит сделать это!) + Багтреккер (не важно какой, важно чтобы он был — пускай это будет мантис например http://www.mantisbt.org). Все вместе дает очень приятную среду разработки.

Наверное в .Net все совсем шоколадно :) только я об этом еще не узнал :)

Tags: development
Subscribe

  • Так. Чуть не бросил дневник :)

    Ну вот, хотел не бросать и опять сюда не пишу :( Потому, что в будние дни сил нет писать, а в выходные вот то у меня ДР, то у пасынка. То просто…

  • 46

    Дня рожденья пост. Ну ничего, мы еще позажигаем :)

  • Завтра в офис

    Завтра выхожу на работу в офис. Будет, как первый день, поскольку у меня места рабочего нет пока -- ноутбук есть, а места нет. Выходящие либо сдают…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments