Скорее, не разработчики а менеджеры — разрабы там давно не рулят, ИМХО.
А насчет продукта — да, хороший, но по-моему, не отличный. Но здесь у каждого свое мнение и требования. Плюс его в том что оценка «хороший» зарабатывалась им сразу после установки, без «допиливания». Минус — до «отличный» допилить его нельзя (в отличие от той же miranda).
Мой же комментарий относился к малоприятным для пользователей этого продукта новостям, которые как-то зачастили последнее время.
assert (я_инициализирован)
assertions позволяют вам иметь столько контроля над проинициализированностью объекта, сколько вам хочется.
Код, который работает только если всё написали, всё прочитали, ничего не забыли, никто ничего не бросил… такой код я и считаю небезопасным. статья как раз про то, как такого избежать.
Вообще-то это довольно точное определение работающего кода. Я бы с большим интересом прочитал статью о методах написания кода, всегда работающего правильно, если указанные выше условия не выполнены :)
Не опасно. Поведение объектов документируется, и ритуальный танец (состоящий из одного вызова) описывается.
Эти объекты ничуть не коварнее прочих. Вы ведь вызываете open перед началом работы с файлом? Если созданный объект непригоден для использования, то это должно тут же обнаруживаться, например, с помощью assertions.
Кроме того, нельзя полностью избежать исключений в конструкторах
Как минимум, пустой конструктор не бросит исключения, если такового не бросает базовый класс.
Дело в том, что, на мой взгляд, при создании «опасных» конструкторов (с возможностью возникновения исключений в них), программист идет против «философии» языка. Конструктор в C++ должен создавать объект, имеющий некое стабильное состояние (даже если он в этом состоянии непригоден для использования). Все исключения — после, когда объект уже создан, в инициализирующем методе.
Исключения в конструкторах — прерогатива языков со сборщиками мусора.
«Пусть у нас есть некий класс, конструктор которого, в некоторых случаях, может вызывать исключение»
На мой взгляд, лучше не писать конструкторов, которые могут приводить к исключениям. Я бы предложил использовать связку конструктор + дополнительный инициализирующий метод (например, setup()).
Если вы так говорите, то у меня нет причин с вами не согласиться. Под окнами, как я уже говорил, я не работаю и не планирую — для разработки Linux много удобней (для меня).
Эмм, покраснел, — вот что значит сидеть под *никс — совсем забыл про эту чудо-особенность Окон.
Хотя должен признать, что сидеть под виндой под ограниченной учеткой крайне неудобно, тут троянописатели должны отдать МС должное.
У меня такого впечатления нет.
А вот то что видишь изображение которое пытается показать на экране комп, без «бонуса» в виде изображений всего вокруг — этого глянцу не перебить, ИМХО.
Лучше он только выглядит на полке магазина.
Глянцевый экран, на ярком свету — жутко неудобно! Имейте в виду.
Это, конечно, не ваша вина, а производителей (точнее, сейлсменов/вуменов). Но оттого не легче.
Софт к вышесказанному:
* антивирус (нерезидент) — ClamWin; резидент не пользовал, не буду и рекомендовать.
* файрволл — например, Comodo, он вроде бесплатен и дружелюбен, по слухам;
* Firefox + расширение Noscript
Топик навряд ли — я под Linux работаю, так что винда меня не очень интересует, а на топик, советующий, как настроить систему — необходимо затратить массу времени.
Может воспользуемся мощью хабрасообщества? Пускай кто может, отпишет в комментах свои предложения. Глядишь, если выйдет что-то дельное, можно будет скомпилировать в топик.
Вот, навскидку, мои предложения:
— обновить хотя бы security critical заплатками;
— отключить службы, которые не используются;
— поставить файрволл (либо настроить на роутере);
— поставить резидентный антивирус, можно нерезидентный, с проверкой файлов по команде пользователя — если пользователь толковый а циклов процессора жалко;
— просмотреть список сетевых шар и убрать ненужные (все?);
— поставить Firefox с Noscript;
А вот и нет! По уму, капчу надо подсовывать после 10-й попытки как минимум. Человек уже устанет и плюнет, или поймет что его проверяют и раздражаться не будет — а робот будет только в самом начале перебора.
Почему «ветки», а не «версии»? Это ведь развитие а не параллельная KDE1-2-3 разработка?
А насчет продукта — да, хороший, но по-моему, не отличный. Но здесь у каждого свое мнение и требования. Плюс его в том что оценка «хороший» зарабатывалась им сразу после установки, без «допиливания». Минус — до «отличный» допилить его нельзя (в отличие от той же miranda).
Мой же комментарий относился к малоприятным для пользователей этого продукта новостям, которые как-то зачастили последнее время.
С квипом? По счастью, знаком исключительно теоретически.
assertions позволяют вам иметь столько контроля над проинициализированностью объекта, сколько вам хочется.
Код, который работает только если всё написали, всё прочитали, ничего не забыли, никто ничего не бросил… такой код я и считаю небезопасным. статья как раз про то, как такого избежать.
Вообще-то это довольно точное определение работающего кода. Я бы с большим интересом прочитал статью о методах написания кода, всегда работающего правильно, если указанные выше условия не выполнены :)
Эти объекты ничуть не коварнее прочих. Вы ведь вызываете open перед началом работы с файлом? Если созданный объект непригоден для использования, то это должно тут же обнаруживаться, например, с помощью assertions.
Кроме того, нельзя полностью избежать исключений в конструкторах
Как минимум, пустой конструктор не бросит исключения, если такового не бросает базовый класс.
Исключения в конструкторах — прерогатива языков со сборщиками мусора.
На мой взгляд, лучше не писать конструкторов, которые могут приводить к исключениям. Я бы предложил использовать связку конструктор + дополнительный инициализирующий метод (например, setup()).
Хотя должен признать, что сидеть под виндой под ограниченной учеткой крайне неудобно, тут троянописатели должны отдать МС должное.
А вот то что видишь изображение которое пытается показать на экране комп, без «бонуса» в виде изображений всего вокруг — этого глянцу не перебить, ИМХО.
Лучше он только выглядит на полке магазина.
Это, конечно, не ваша вина, а производителей (точнее, сейлсменов/вуменов). Но оттого не легче.
* антивирус (нерезидент) — ClamWin; резидент не пользовал, не буду и рекомендовать.
* файрволл — например, Comodo, он вроде бесплатен и дружелюбен, по слухам;
* Firefox + расширение Noscript
Может воспользуемся мощью хабрасообщества? Пускай кто может, отпишет в комментах свои предложения. Глядишь, если выйдет что-то дельное, можно будет скомпилировать в топик.
Вот, навскидку, мои предложения:
— обновить хотя бы security critical заплатками;
— отключить службы, которые не используются;
— поставить файрволл (либо настроить на роутере);
— поставить резидентный антивирус, можно нерезидентный, с проверкой файлов по команде пользователя — если пользователь толковый а циклов процессора жалко;
— просмотреть список сетевых шар и убрать ненужные (все?);
— поставить Firefox с Noscript;
высказывайтесь!