Ну вот — совсем другое дело. Следы раскаяния налицо. А минусовали вас, скорее всего не за нерадивость, а за то упорство, с которым вы пытались поддержать автора и доказать тут всем, что эта статья хорошая и пушистая, и ее автор вовсе не хотел сказать что все C# программисты нубы и могут писать только ХеллоуВорлд.
ЗЫ Я кстати не минусовал ни один ваш комментарий, поскольку все ваши комментарии не были лишены смысла.
Я скажу последнее слово — скачайте ЛЮБОЙ проект команды Patterns&Practicies и изучите хотя бы поверхностно. Думаю вам (или вашему коллеге, которого вы тут так рьяно защищаете) станет очень стыдно за этот пост.
Я не говорил что Code Analisys — панацея от всех бед. Но уж по крайней мере он, например, помешает вам обратиться к виртуальным свойствам или методам в конструкторе класса и спасет таким образом от весьма трудноотлаживаемых ситуаций.
Перила моста как-то не помешали самоубийце сброситься вниз.
Читаю и умиляюсь… А КАК именно он должен был вам помешать писать ПЛОХОЙ код? Если вы хотите писать хотя бы отчасти правильный и безопасный код — включайте Code Analisys в проектах и радуйтесь жизни.
Если уж на то пошло, я могу нарыть такую массу гавнокода на С++, что будет просто жутко от того, насколько неумело и не к месту используются конструкции и возможности этого великолепного и гибкого языка.
Код, который вы привели, откровенно «пахнет». Это свидельствует либо о невысокой квалификации автора кода (т.е. отсутствию знаний в области паттернов и базовых навыков рефакторинга), либо о спешке, в которой данный код писался, с заделом на рефакторинг (который, видимо, так и не был выполнен). Думаю, что данный код вполне поддается простому рефакторингу — причем под нож пойдет, скорее всего, вся логика, завязанная в методах UseViva64Analysis, UseGeneralAnalysis и UseVivaMPAnalysis. Какой паттерн использовать — не могу сказать точно, поскольку не обладаю контекстом. Но могу предположить что это будет гибрид стратегии и фабричного метода (а может и абстрактной фабрики).
Навигация по коду в Visual Studio
Не вижу ничего плохого в этом коде. Его сложность обусловлена большим количеством обращений к большому количеству сервисов и обработкой промежуточных результатов. Вполне нормальная ситуация, называемая «decomposition overhead». Все лучше чем «high coupling». А по поводу того, сложен этот код или нет… Что ж — брось новичка на более-менее большой реальный проект — ему все покажется сложным, вплоть до точки с запятой.
Работа с датой
DateTime.FromXXX — вы не пропустили этот методы? Возможно среди них скрывается нужный вам. Я не вникал, но там как минимум один метод, который принимает long в качестве параметра.
Перебор всех проектов одного решения (solution)
Данные классы являются обертками над COM-компонентами IDE. Именно поэтому выглядят и ведут себя подобным образом. Да — это плохо, некрасиво. Но это — тяжелое наследство.
Выводы
Как выше верно заметили, пост напоминает какой-то наброс. Автор увидел массу кода, которая испугался его и убежал программировать на Visual Basic-е, где все просто и понятно.
Напомнило фрагмент из Терминатора:
— Эй, приятель! Какого черта у тебя из номера воняет так, как будто кошка сдохла?
… Поиск…
Возможные варианты ответов:
1 Зайдите попозже
2 Не беспокойте меня сейчас пожалуйста
3 Пошел нахер!
Выбран вариант:
3 Пошел нахер!
… Конец поиска…
Напомнило почему-то бородатый анекдот:
Получают на почте письмо, адресованное деду Морозу. Что с ним делать? Ну решили вскрыть, читают:
«Здравствуй Дедушка Мороз!
Меня зовут Павлик, мне восемь лет, я живу один с мамой. Мама очень мало зарабатывает и нам часто не хватает не еду. Пожалуйста пришли мне теплые варежки, шапку и шарф, а то я очень мерзну...»
Все прослезились и решили собрать деньги со всего почтового отделения. Собрали, и купили мальчику шапку и шафр а на рукавички не хватило — решили послать как есть. Через неделю снова приходит письмо деду Морозу с того же обратного адреса:
«Дедушка Мороз!
Спасибо тебе — ты такой добрый! Мне очень понравились шапка и шарф! Вот только варежки наверное какие-то суки на почте спиздили!»
А GuardMailRu — да. Реально доставляющая тема. Этот сервис каждый продукт Mail.ru ставит — причем действительно silent. Я ставил Mail.Ru Agent — когда обнаружил это, неистово снес его нахер, и окропил компьютер святой водой трижды.
Вопрос здесь в том как Mail.Ru относится к таким делам, санкционировали ли они такое использование своих продуктов.
Они одной рукой будут держать надо головой плакат «МЫ ТУТ НЕ ПРИ ЧЕМ!» а другой параллельно нажимать кнопочку «Отправить» в окне проведения платежки на коррсчет сайта SoftPortal.ru в Интернет-банкинге.
ЗЫ Я кстати не минусовал ни один ваш комментарий, поскольку все ваши комментарии не были лишены смысла.
Вообще никак не вяжется с текстом статьи. Пост совсем о другом.
Очень похоже на
Читаю и умиляюсь… А КАК именно он должен был вам помешать писать ПЛОХОЙ код? Если вы хотите писать хотя бы отчасти правильный и безопасный код — включайте Code Analisys в проектах и радуйтесь жизни.
Код, который вы привели, откровенно «пахнет». Это свидельствует либо о невысокой квалификации автора кода (т.е. отсутствию знаний в области паттернов и базовых навыков рефакторинга), либо о спешке, в которой данный код писался, с заделом на рефакторинг (который, видимо, так и не был выполнен). Думаю, что данный код вполне поддается простому рефакторингу — причем под нож пойдет, скорее всего, вся логика, завязанная в методах UseViva64Analysis, UseGeneralAnalysis и UseVivaMPAnalysis. Какой паттерн использовать — не могу сказать точно, поскольку не обладаю контекстом. Но могу предположить что это будет гибрид стратегии и фабричного метода (а может и абстрактной фабрики).
Навигация по коду в Visual Studio
Не вижу ничего плохого в этом коде. Его сложность обусловлена большим количеством обращений к большому количеству сервисов и обработкой промежуточных результатов. Вполне нормальная ситуация, называемая «decomposition overhead». Все лучше чем «high coupling». А по поводу того, сложен этот код или нет… Что ж — брось новичка на более-менее большой реальный проект — ему все покажется сложным, вплоть до точки с запятой.
Работа с датой
DateTime.FromXXX — вы не пропустили этот методы? Возможно среди них скрывается нужный вам. Я не вникал, но там как минимум один метод, который принимает long в качестве параметра.
Перебор всех проектов одного решения (solution)
Данные классы являются обертками над COM-компонентами IDE. Именно поэтому выглядят и ведут себя подобным образом. Да — это плохо, некрасиво. Но это — тяжелое наследство.
Выводы
Как выше верно заметили, пост напоминает какой-то наброс. Автор увидел массу кода, которая испугался его и убежал программировать на Visual Basic-е, где все просто и понятно.
— Эй, приятель! Какого черта у тебя из номера воняет так, как будто кошка сдохла?
… Поиск…
Возможные варианты ответов:
1 Зайдите попозже
2 Не беспокойте меня сейчас пожалуйста
3 Пошел нахер!
Выбран вариант:
3 Пошел нахер!
… Конец поиска…
— Пошел нахер!
Получают на почте письмо, адресованное деду Морозу. Что с ним делать? Ну решили вскрыть, читают:
«Здравствуй Дедушка Мороз!
Меня зовут Павлик, мне восемь лет, я живу один с мамой. Мама очень мало зарабатывает и нам часто не хватает не еду. Пожалуйста пришли мне теплые варежки, шапку и шарф, а то я очень мерзну...»
Все прослезились и решили собрать деньги со всего почтового отделения. Собрали, и купили мальчику шапку и шафр а на рукавички не хватило — решили послать как есть. Через неделю снова приходит письмо деду Морозу с того же обратного адреса:
«Дедушка Мороз!
Спасибо тебе — ты такой добрый! Мне очень понравились шапка и шарф! Вот только варежки наверное какие-то суки на почте спиздили!»
Они одной рукой будут держать надо головой плакат «МЫ ТУТ НЕ ПРИ ЧЕМ!» а другой параллельно нажимать кнопочку «Отправить» в окне проведения платежки на коррсчет сайта SoftPortal.ru в Интернет-банкинге.