Намного серьезнее все обстоит в корпоративной среде, где на Windows XP работают тысячи машин, обновление которых выльется в миллионные траты и непредвиденные проблемы с годами отточенным корпоративным софтом.
Забавно, непредвиденные проблемы. Это как у ЖЭКа каждый год внезапно наступает зима. Сколько лет говорили и трясли пальцем «сейчас-сейчас закроем поддержку», все проносило, тянули как могли. В итоге «волки волки» действительно пришли, пользователи по привычке проигнорили, и тут действительно поддержку закрыли. «А что, а как, что делать, кто виноват??» понеслось по офисам и городам. Люди, которые наняли программистов, которые чихали на гайдлайны и «ну мы тут заюзаем недокументированную функцию, она побыстрее на 20% будет, сэкономим десяток нс!», либо по причине низкой квалификации, либо из-за отсутствия опыта корпоративной разработки (например, вчерашние студенты, которые обошлись в разы дешевле «обычных программистов»). А если нет разницы, зачем платить больше?..
У нас по-моему вообще больше чем на шаг вперед думать у людей трудно получается, это и по законодательным нормам видно, и по вот такой корпоративной культуре. На западе без этого «культа пиратской хрюшки» намного проще идет переход, т.к. они постепенно шли вместе с МС от ХР до 7 (а некоторые и до 8), а у нас как всегда русский стиль — лежать на печи до дедлайна, а потом, прилагая нечеловеческие усилия, рвя кожу от натуги все-таки как-то пересилить себя и сделать то, что должно было сделано в течение всего времени, а потом опять ложиться на печь и гордиться собой
Вариант неплох, но проблема, что в данном случае библиотека, имеющая ошибку на этапе компиляции, будет выбрасывать исключение в рантайме. Да и вообще, библиотека обработки ошибок, бросающая исключения, это немного странно. Вариант ниже обладает теми же достоинствами, но исключает эти недостатки — создать объект можно только со всеми параметрами, а затем менять их можно только на валидные.
Можно сделать конструктор с обязательными параметрами, а свойства сделать либо read-only, либо меняющие свое значение только при валидных данных (то есть не авто-свойства, а обычные свойства с какой-то логикой). Тогда settings будет всегда в валидном состоянии (такой вот транзакционный подход).
Читал с немалым интересом, но углядев фразу про ремейк Hospital… О господи, неужели?
Огромное спасибо за статью, и главное — за эту фразу, теперь я знаю, чем займусь после сессии. Если будет возможность, постараюсь помочь с проектом, хотя я боле шарпист, нежели плюсоасмщик. Но, за такую информацию чего только не сделаешь, да и ради общего дела.
А теперь если посчитать, какие перегрузки там будут, чтобы с помощью рельсотрона достигнуть хотя бы первой космической, то я не уверен, что тонкая электроника выживет, не говоря про что-то органическое. А поведение органики в космосе на данный момент едва ли не самое важное, что нам собственно требуется знать для дальнейшей экспансии…
Строительство ведётся с геостационарной станции. Это единственное место, где может причалить космический аппарат. Один конец опускается к поверхности Земли, натягиваясь силой притяжения. Другой, для уравновешивания, — в противоположную сторону, натягиваясь центробежной силой. Это означает, что все материалы для строительства должны быть подняты на геостационарную орбиту традиционным способом, независимо от места назначения груза. То есть стоимость подъёма всего космического лифта на геостационарную орбиту — минимальная цена проекта.
Поясните, пожалуйста, в чем по-вашему разница между ошибкой и исключением? По моему опыту это синонимы. Просто исключением вы называете проброс ошибки наверх, а ошибкой — оборачивание её в какой-то другой тип, если судить по вашему коментарию:
например, из вызванной функции мы получили ошибку DNS «host not found», а выше возвращаем ошибку «не могу скачать url (host not found)».
В свое время мне очень помогла в этом плане эта статья Сергея. И отсюда весьма четко следует, что как раз-таки библиотека, которая не знает, смертельная ошибка или нет, должна сообщить о ней выше. А самый простой способ это сделать — выкинуть исключение, потому что смысл в раскрутке стека именно в том, чтобы найти ближайшее место, где это исключение обрабатывается. Таким образом, своим принципом «ошибки != исключения» вы затем только подтверждаете, что как раз-таки они являются одним и тем же. Вернее, исключение — следствие ошибки.
Насколько я помню, гарантия 3 года дается на работу диска в режиме перезаписи 40гб в день. Не знаю как вы, а я столько записываю только в тот день, когда ставлю систему со всеми утилитами, и вряд ли чаще раза в год, а после установки SSD пропала необходимость ежегодной переустановки — разница при загрузке в 5-10 секунд не критична.
Чем больше памяти, тем больше можно пустить на резерв, получив выигрыш по объему при том же уровне отказоустойчивости, плюс появляется возможность регулировать эту характеристику (объем/отказоустойчивость) при одной и той же цене.
«Самая большая уязвимость со стороны Microsoft — это не Windows, а программная среда Microsoft.Net, у которой закрытый код и компоненты которой не раскрываются полностью для разработчиков. Это все равно что ставить в комнате черный ящик и не спрашивать, что внутри. Предприятиям гораздо безопаснее будет использовать программное обеспечение с открытым кодом», — говорит Черногоров.
Даже комментить это не хочется. Столько экспертов развелось. И это говорит секретарь комиссии Госдумы по стратегическим информационным системам…
Чтобы не быть голословным, просто оставлю это здесь:
Структуру передать ничем не медленнее, чем 2 параметра. И да, goto не поругается только на уровне ассемблера. С уже достаточно высокоуровневый язык, чтобы на нем писать читабельные программы, не теряющие от этого в скорости…
Как говорится у функции может быть 0 параметров, 1 параметров, 2 параметра, 3 параметра, слишком много параметров. Если имеется 20 параметров, то вы явно делаете что-то не так. все это заворачивается в структуру и передается одна структура.
Уже прямо смешно, как носятся с этой кнопкой запуска.
Не понимаю обе стороны, ни пользователей, ни microsoft.
Пользователей понять легко — инерционность мышления, старое привычнее итп.
Майкрософт тоже понять легко — 95% пользователей винды — далекие от IT люди, и старые кнопочки для них намного важнее, чем оптимизации в работе ядра или улучшение АПИ. Впрочем, МС сами добивались такого отношения, завязывая пользователей на свой интерфейс, чтобы максимально захватить рынок и затруднить переход на альтернативы, так что за что боролись, на то и напоролись в общем-то. Даже они не ожидали такой рьяной защиты устаревшего контрола.
Что до меня, то мне новый пуск изначально был приятен, а этот франкенштейн, сотканный из кусков старой и новой винды, вызывает разве что жалость. Будем надеяться, догадаются ввести несколько видов для пуска: «Классический» (Win 7), «Полноэкранный» (Win 8.1), «Смешанный» (как на картинке). Причем даже не знаю, кому в голову придет использовать последний вариант.
У меня IP5. Но при этом я сижу на 6.1.4, потому как 7 вполне обоснованно, как мне кажется, считаю шлаком. Поэтому был весьма расстроен, что iOS 6 не поддерживается. Хабр хорош, но не настолько, чтобы ставить ради него одного неудобную для меня ОС. Так что, long live Safari.
Посмотрел, в целом очень даже неплохо (по крайней мере благодаря тому, что он в метро-режиме можно переключаться в один клик, а не вести в верхнюю часть мышку, потом ждать, пока вылезет скрытая панелька rdp, и только после этого свернуть). Один минус — серверы только по IP различаются, назначить как в RDCMan'е имена нельзя. Да и опций поменьше — нет группирования и т.д. Хотя плюсы одно-кликабельности перевешивают, в целом. Спасибо за наводку.
Забавно, непредвиденные проблемы. Это как у ЖЭКа каждый год внезапно наступает зима. Сколько лет говорили и трясли пальцем «сейчас-сейчас закроем поддержку», все проносило, тянули как могли. В итоге «волки волки» действительно пришли, пользователи по привычке проигнорили, и тут действительно поддержку закрыли. «А что, а как, что делать, кто виноват??» понеслось по офисам и городам. Люди, которые наняли программистов, которые чихали на гайдлайны и «ну мы тут заюзаем недокументированную функцию, она побыстрее на 20% будет, сэкономим десяток нс!», либо по причине низкой квалификации, либо из-за отсутствия опыта корпоративной разработки (например, вчерашние студенты, которые обошлись в разы дешевле «обычных программистов»). А если нет разницы, зачем платить больше?..
У нас по-моему вообще больше чем на шаг вперед думать у людей трудно получается, это и по законодательным нормам видно, и по вот такой корпоративной культуре. На западе без этого «культа пиратской хрюшки» намного проще идет переход, т.к. они постепенно шли вместе с МС от ХР до 7 (а некоторые и до 8), а у нас как всегда русский стиль — лежать на печи до дедлайна, а потом, прилагая нечеловеческие усилия, рвя кожу от натуги все-таки как-то пересилить себя и сделать то, что должно было сделано в течение всего времени, а потом опять ложиться на печь и гордиться собой
Огромное спасибо за статью, и главное — за эту фразу, теперь я знаю, чем займусь после сессии. Если будет возможность, постараюсь помочь с проектом, хотя я боле шарпист, нежели плюсоасмщик. Но, за такую информацию чего только не сделаешь, да и ради общего дела.
В свое время мне очень помогла в этом плане эта статья Сергея. И отсюда весьма четко следует, что как раз-таки библиотека, которая не знает, смертельная ошибка или нет, должна сообщить о ней выше. А самый простой способ это сделать — выкинуть исключение, потому что смысл в раскрутке стека именно в том, чтобы найти ближайшее место, где это исключение обрабатывается. Таким образом, своим принципом «ошибки != исключения» вы затем только подтверждаете, что как раз-таки они являются одним и тем же. Вернее, исключение — следствие ошибки.
Даже комментить это не хочется. Столько экспертов развелось. И это говорит секретарь комиссии Госдумы по стратегическим информационным системам…
Чтобы не быть голословным, просто оставлю это здесь:
referencesource.microsoft.com/
(P.S. Radix — мне тут больше всех нравится)
Пользователей понять легко — инерционность мышления, старое привычнее итп.
Майкрософт тоже понять легко — 95% пользователей винды — далекие от IT люди, и старые кнопочки для них намного важнее, чем оптимизации в работе ядра или улучшение АПИ. Впрочем, МС сами добивались такого отношения, завязывая пользователей на свой интерфейс, чтобы максимально захватить рынок и затруднить переход на альтернативы, так что за что боролись, на то и напоролись в общем-то. Даже они не ожидали такой рьяной защиты устаревшего контрола.
Что до меня, то мне новый пуск изначально был приятен, а этот франкенштейн, сотканный из кусков старой и новой винды, вызывает разве что жалость. Будем надеяться, догадаются ввести несколько видов для пуска: «Классический» (Win 7), «Полноэкранный» (Win 8.1), «Смешанный» (как на картинке). Причем даже не знаю, кому в голову придет использовать последний вариант.
Add:
habrahabr.ru/company/eset/blog/220601/#comment_7526623
ППКС