среда, 31 октября 2007 г.

Class Designer

Недавно для себя открыл в полной мере Class Designer в Visual Studio 2005. В полной мере - это значит что теперь я сначала что то в нем рисую, а не делаю классы, а дизайнер использую просто для красивого их отображения (их - это классов);)
Вообще, про то, что Class Designer в VS представляет собой некий аналог диаграмм классов UML, но только для .NET и с моментальным отображением в код и, соотвественно, кода в него (другими словами синхронизация диаграмм и кода), я слышал уже давно. Но до недавнего времени я не уделал этому большое внимание (всетаки раньше я был больше программистом). Недавно же передо мною встала задача спроектировать ряд бизнес объектов. Начал я по старинке, т.е. с написания кода интерфейсов. Через некоторое время меня утомило писать фигурные скобки, геты, сеты и т.п. К тому же при таком подходе небыло видно всей картины в целом (кто от кого наследуется, какие связи существуют между объектами).
Для начала я просто решил воспользоваться Class Designer для того, что бы как раз посмотреть общую картину (точнее показать другим то, что я натворил в красивом виде). Потом я заметил, что изменять название полей, методов, да и добавлять новые гораздо легче с того же самого дизайнера классов (через окно Class Details), к тому же через окно Class Details очень удобно сразу же писать документацию к полям, методам и т.п. Так же довольно просто создать класс, унаследовать его от того, который уже есть на диаграмме, а так же указать что у него должны быть поля вот такого то и такого типа (которые тоже уже есть на диаграмме), одним словом - метод перетягивания "стрелочек" и никакого кода.
Еще один плюс в использовании Class Designer - это то, что видны все связи (ну если отображать некоторые поля как связь), а следовательно гораздо легче принимать некоторые решения. Ну например, был у меня интерфейс "факультет" со своими полями, а так же был интерфейс "кафедра" у которого тоже были свои поля, в том числе ссылка на "факультет", методов ни у одного интерфейса небыло. Увидев же связь, сразу становится понятно, что целесообразно в интерфейс "факультет" добавить метод создания кафедры на этом самом факультете. Может быть это кажется довольно тривиальным примером, но создавал бы я эти интерфейсы ручками в коде, то я бы и не подумал бы про их связь, а так же про то, что у факультета может быть метод создания кафедры на нем - по крайней мере заметил бы это не сразу. Кстати, через дизайнер можно вызвать и часть методов рефакторинга.
Ну, несмотря ни на что, нашлись и некоторые минусы в Class Designer. Например меня огорчил тот факт, что нельзя прямо из дизайнера указать то, что свойство должно быть только на чтение, а не на чтение и запись. Точнее сказать, дизайнер создает для свойства и get и set, а поправить это можно только в коде ручками. Так же довольно сложно указать от каких интерфейсов должен наследоваться конкретный класс (ну или другой интерфейс) - это можно сделать только если интерфейс отображен на самой диаграмме (а вот как добавить стандартный интерфейс на диаграмму? Ну я то на самом деле знаю один способ, но он извращенный).
К тому же, одним из самых больших минусов многие считают отсутствие поддержки Class Designer для C++, говорят она была в бете VS 2005, но ее в итоге исключили из финальной версии, т.к. не успели ее до конца оттестировать (от греха подальше другими словами). Но стоит сказать, что про данный минус я вычитал уже потом, а сам бы его никогда бы не обнаружил, т.к. уже давно полностью продался C# и про C++ вспоминаю только в страшном сне;) Ну и к тому же - в Visual Studio 2008, Class Designer теперь поддерживает и C++.
Так же не стоит забывать, что Visual Studio поддерживает плагины. В том числе мне довольно быстро удалось найти плагин который немного расширяет функциональность дизайнера (в 2005 студии), правда не совсем то, что мне было надо, да и некоторые методы вылетали (судя по трекеру - из-за того, что у меня стоит TestDriven. Странная связь, согласитесь).
Подытожим. Лично по мне, так Class Designer - это очень удобное средство на этапе проектирования, да и не только. Оно позволяет спроектировать систему не прибегая к непосредственному написанию кода. Да, это не вполне UML, но это явно его конкурент, по крайней мере для .NET.
P.S. Кстати говоря, в Visual Studio Team Suit for Architector есть еще ряд дизайнеров, с помощью которых можно конструировать другие схемы чем то аналогичные соответствующим схемам в UML (естесвенно плюс в том, что все это сразу же отражается на коде или еще чем то и синхронизируется с этим чем то), но, к сожалению, про это я пока только мельком читал, так что ничего не могу пока сказать;) Ну и на последок официальный блог Class Designer (жаль что он уже давно не обновляется).

понедельник, 29 октября 2007 г.

Екатеринбург (фото)

Часть фотографий с последней поездки в Екатеринбург (буквально вот сегодня приехал):
2007_10_28

Лабиринты Ехо

И все таки от поездки в Екатеринбург была польза, по крайне мере для меня;) Теперь я счастливый обладатель всех книжек из серии "Лабиринты Ехо". Так сказать - чтиво на месяц обеспеченно!
А еще - стояли они в Екатеринбурге гораздо дешевле чем у нас (и даже дешевле чем заказывать по интернету)... Вот думаю, когда же у нас будут нормальные цены... да хотя бы нормальные книжные магазины:)

четверг, 18 октября 2007 г.

И куда делась романтика?

Дочитал вчера Лукьяненко - "Чистовик"... как то это произведение оставило во мне некоторые грустные отголоски. Наверное потому что я надеялся на другой конец, хотя и этот меня вполне устраивает (в том плане, что я не ждал того, что главный герой устроит всем кузькину мать, не в стиле Лукьяненко). Быть может потому что не получил ответы на вопросы, ну или неудовлетворен ими (а ну все быстро забыли про идею с миром номер ноль, которая мне, как программисту, очень понравилась... тем более теперь мы знаем про мир номер 16), а быть может потому что главный герой так и пробегал всю книжку от функционалов (вся история вообще напомнила чем то серию "Башня" у Стивина Кинга, хотя я читал только ее часть). Ну и самое главное, никакой романтики (а мне быть может ее сейчас очень не хватает...), а ведь сколько было поводов. Лично мне больше всего симпатизировала кузнец из Харькова... такая "могучая" женщина... и со "вторым высшим", и с "трудовой книжкой" (ну это поймут не все...) у нее было все в порядке (по крайней мере в моем представлении). Так нет, совсем наш Кирилл в этом плане неудачник, да и намека даже нет на то, что он помирится со своей бывшей подружкой, что было самой самой последней надеждой. Осталось только , наверное, порадоваться за Котю с Итан.
С другой стороны сама книжка, конечно, мне всетаки понравилась. Сам стиль написания и эти мои любимые размышления в начале каждой главы. Кстати, по поводу них. Часть из них автор размешал в своем блоге до выхода книжки но как то без особого указания что они из книжки (первые 7 глав я не считаю). В итоге во время прочтения у меня возникало такое милое чуство - вот они, способности функционала - ведь я это уже откуда то знаю... откуда?
В общем, распрощался я с Кирилом и вернулся я к Максу... Максу Фраю, которого безобразно бросил читать ради "Чистовика" в начале главы "Жертвы обстоятельств". После недолгого возвращения внутри меня загорелась надежда - ну хоть тут у главного героя не все наперекосяк (я был наивен). Свидание наяву, а потом во сне - в этом как раз было что то романтичное:) И вот, только ей стоило появится у него под одеялом... как все тут же испортилось. Ну вот скажите мне, какая разница, что она через сон попала в его кровать, ей же вроде тоже этого хотелось... принуждают ее видете ли... Ну да ладно, остались надежды, помирятся и все такое, читаем дальше. Ага, и вот наш герой попал в "Квартал свиданий" (забавное местечко) и вот ему сама судьба указала на Меламори (вот вечно они так, как что, так сразу надо идти мстить с первым попавшимся... нашего то героя туда случайно занесло)... в общем, была у них веселая ночка (интересно как себя чуствовал в это время арестант), но последняя... суеверия и все такое, в общем после этого идея квартала свиданий мне разонравилась еще больше, а самое главное теперь никаких надежд. Даже не знаю кто больший неудачник, Максим или Кирилл (это который из Чистовика ;)).
В общем, подытожив все - что то никак у героев книг, которые я читаю, с личной жизнью не ладится... пойду ка я, найду свою незабвенную, а то в данной ситуации брать пример с героев нехорошо ;) Ах да - и что бы обязательно была романтика (прям как маленький)...

воскресенье, 14 октября 2007 г.

Прием, прием, кто на связи?

Now playing: Patrick Wolf - Ghost Song
Как докричаться до человека, когда он находится в другой комнате, да еще за компьютером и в наушниках? Моя мама "изобрела" один способ - она просто звонит мне на сотовый, ну а ведь правильно - ножки то у нее болят. Причем если я не отвечаю (а это означает что мой телефон не рядом со мной), то она звонит на свой второй мобильный (который преднамеренно перед этим уже положен на компьютерный стол) - в этом случае я не смотрю на то, кто ей звонит, а просто иду искать в квартире маму (она ведь у меня "громадная" :D), что бы отдать ей телефон, когда же я, наконец то, нахожу ее, то понимаю что звонит она сама себе, лишь бы "вызвать" меня.
А вот вчера, когда я опять же сидел за компом в наушниках, а мама лежала позади на диване, я заметил как на кровать (которая рядом с компом) был кинут мой телефон... ну кинут и кинут, что бы я не потерял наверное. Потом я заметил, что он звонит, взял... опять мама, снял наушники, повернулся к ней, а она и говорит:
-а сходи на кухню пожалуйста, принеси мне очки.
P.S. Так что, как говорит один мой знакомый, сотовый - это зло. С этой "высокотехнологичной" вещью в нашем современном мире уже не от кого не скрыться, а уж учитывая вечные нововведения сотовых операторов в борьбе за конкуренцию, теперь тебя достанут и при минусовом балансе (а как было раньше хорошо, отключил телефон а потом говоришь всем -ой, а у меня баланс кончился, теперь осталось все списывать только на батарейку). Ну и к тому же эти вечные 6секундные разговоры... из-за которых возникают милые недопонимания, вытекающие потом в большие казусы.

пятница, 12 октября 2007 г.

Самара (11 октября)

Давно что то не писал в свой блог, решил начать понемножку исправляться:)
Недавно был в Самаре, в том числе посетил "Дни разработчика 07" о которых, быть может, я расскажу чуть позже;) Пока же хочу просто показать вам некоторые фотографии, которые я успел там наснимать пока "гулял" по городу на следующий день после семинара:
Самара (11 октября)