Oct. 17th, 2008

metaclass: (Default)
Опять увлекся массовым рефакторингом проекта и спать ложусь чорт знает во сколько ночью.
И это я еще всерьез за него не брался - всего лишь меняю в 90 проектах солюшена свой логгер на log4net и несколько базовых классов обновил/выкинул/переделал.

Как-то блин не выходит у меня на .NET адекватно архитектуру классов и проектов в солюшене организовать, не понимаю почему. Вот в другом проекте на дельфи - все кошерно, из одной базовой заготовки пять разных проектов собирается, друг другу не мешая. А тут какая-то хрень, как ни крутишь - обязательно какие-нибудь говнозависимости кругами друг за другом. И файлов тысячи, каждый по десятку строк. И билдится это все в десять раз медленнее чем в тех же дельфях.
Хотя, казалось бы - тут тебе и рефлекшн, и тебе логи готовые, и веб-сервисы и asp.net и сборка мусора и интерфейсы, да еще LINQ в 3.5 C#.
metaclass: (Default)
Проблема: есть два сервера, разговаривающих по RMI. На сервера поставили Firewall - система легла.

Чего, собственно говоря, мы и опасаемся при разработке систем, состоящих из множества компонентов - появляются зависимости от внешней "неведомой херни".
metaclass: (Default)
А вот кто в курсе, какие из ликеров на травах можно купить сейчас в Минске и где?
Бехеровка, похоже, кончилась по причине невхождения ее импортера в список кошерных, Егермайстер вроде пока бывает, а какие еще ликеры есть?
metaclass: (Default)
Windows Imaging Component от разработчика Микрософт.

Все более-менее понятно, кроме двух вещей:
1) Почему обязательно COM, а не flat API с хендлами?
2) Почему нельзя использовать исключения?

Фиг с ним с COM, это какая-то странная микрософтовская религия, но вот про исключения я не понимаю. Такое ощущение, что в С/С++ какие-то есть тонкости с исключениями, которых я не знаю и которые мешают их использовать.

По-моему, в начале метода гораздо проще выполнить проверки и кинуть исключение, которое обработается там, где юзер нашего API знает, что с ним делать, или показать пользователю сообщение об ошибке, которое будет показано тому, кто знает что с ним делать, чем проверять на каждом уровне вызовов коды возврата ВСЕХ вызовов, которые могут вернуть ошибку.
Причем try finally, по-моему, более простой вариант очистки выделенных ресурсов, чем куча goto и проверок.

UPD: Насчет исключений разъяснили. В c++ try/finally конструкция нестандартная, а вместо нее используется RAII (который еще и менее многословен, вообще-то).

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 8th, 2025 02:01 pm
Powered by Dreamwidth Studios