Я даже не знаю, мне досталась как инсталлятор. Теоретически где-то в хранилище должны быть и сорцы, но сомневаюсь, что найду :)
Да сама программа в общем-то тупа по своей логике, скорее всего берет открытый Sollution, проходится по всем Project которые ему принадлежат и правит ихние настройки. Эти же файлы в виде XML хранятся. Студия после её запуска ещё говорит о том, что Project изменен внешней программой, перезагрузить или оставить таким как есть.
Завтра выйду на работу — посмотрю. А то в обещаную пятницу закрутился и вспомнил только дома об этом :)
Зачем вы в крайности? Я ещё в первом комментарии написал
А с названиями методов вы правы на 100%, их такими нужно давать как при наличии xml-comments так и без них
Одно не противоречит другому. Вы ведь видели в сигнатуре каждого метода, описание отдельного параметра? Там можно писать и об ограничениях. В описании метода можно указать какие исключения он вызывает. И пользуясь такими «сигнатурами», вы получаете исчерпывающую информацию о вызываемом методе.
Я вот просто сейчас вижу, что вы немного не о тех вещах говорите. Вы правильно поняли, как xml-comments работают? Это в первую очередь нужно не для того, чтобы вы не понимал из вот этого в коде за что метод отвечает
/// <summary>
/// Этот метод передаёт привет ХабраХабру столько раз, сколько скажите.
/// </summary>
/// <param name=«repeat»>Сколько раз передать привет</param>
/// <returns>Сама строка с приветами
А для того, чтобы вашими библиотеками потом было удобно пользоваться всем и по полной, с привильно описаными сигнатурами методов и так далее. И этот ваш труд в комментариях ещё как оценен будет.
На сим со своей стороны беседу останавливаю, так как вижу что мы или в разных плоскостях рассуждаем, или говорим о разных вещах, так как не сходимся во мнениях.
Мне кажется 99% людей, кто пользуется новой какой-то библиотекой смотрят на подсказки в IntelliSense, что делают функции, зачем те или иные параметры… У меня Ctrl + Shift + Space одно из самых частоиспользуемых сочетаний клавиш.
Не спорю что лог пишет туда, но зачем мне узнавать о причине ошибки в рантайме, если я могу её предотвратить на этапе написания?
Число принимаемое может быть ограничено по определенному диапазону. На них перечислений не напасешься.
Я о своем исключении и писал. Вот только если это мой класс будет, как вы узнаете как он называется? Опять в рантайме?
Я понимаю, что писать эту всю документацию лениво, но не могу понять вашу категоричную точку зрения. Я когда начал работать с jquery, то подключил для него IntelliSense с описанием всех методов и параметров. Таким образом получилось писать сразу, практически не обращаясь ко всяким справочникам. Мне нравится пользоваться хорошо написанным кодом, поэтому стараюсь делать такой же для других.
Это вставляет VS2008, решарпер вроде не при чем. Хотя может эта фича просто пересекается. А в один клик у меня получается генерить такие комменты в R# 4.1 просто нажав на название метода, слева появляется «лампочка», по ней уже щелкаем и выбираем «generate xml comments». Но тут нужно, чтобы отсутствие этих комментариев вызывало Warnings при компиляции. По-моему, так.
Это все понятно, но писать в лог — это все как дополнительные вещи. Зачем мне писать метод в коде, вызывать его, смотреть что результат не ожидаемый вышел, лезть в лог и смотреть в чем ошибка, потом только исправлять её. Проще посмотреть сразу при написании кода какие допустимые значения.
Другой вопрос. А куда этот метод пишет? В файл, в лог, в консоль, в Response.OutputStream? Останется известным только вам.
И опять же. Если вы сгенерируете потом нормальную документацию из этого, то другие разарботчики смогут без проблем её читать, иметь представление что и как работает, для чего все нужно, а потом уже начнуть писать код. Без такой же документации все придется делать методом тыка.
И ещё, какие исключения этот метод может сгенерировать? InvalidArgumentException, IoException? Или может какое-то свое исключение? Не перехватывать же базовый Exception.
В общем, писать или не писать комментарии зависит от нескольких вещей. Будет ли кто-то кодом работать ещё, планируется ли это выкладывать в общее пользование, насколько вероятна поддержка кода в будущем. Я для своих каких-то целей когда пишу, то xml комментариями не пользуюсь, а на работе всегда так пишу и понимаю, что не зря.
А с названиями методов вы правы на 100%, их такими нужно давать как при наличии xml-comments так и без них :) Не комментариями едиными.
Кем-то из сотрудников написанная много лет назад, так что тут врядли порекомендовать смогу :) Завтра посмотрю детальнее что она в проектах меняет, расскажу.
Удобства проявляются потом, кода пользуешься задокументированными таким образом библиотеками. К тому же в этих комментариях работает IntelliSense, буковками приходится писать только по делу.
По поводу удобства для человека — это все потом можно перевести в файлики mht (вроде так называются) и получить документацию как в msdn, что вполне удобно для человека.
И если заговорили про нормально. Как вам это видится? Какой формат придумать чтобы можно было описать все эти данные и в тоже время совсем не напрягаться?
У нас в компании есть специальная тулза. Её нужно запускать перед тем, как сабмитить код в систему контроля версий. Она правит проекты в Sollution, изменяя настройки таким образом, что все Warning выскакивают ошибками, и компиляция не проходит. А предупреждения вставляются на такие вещи как: отсутствие XML документации к не private методам, наличие неиспользуемых переменных и т. д. Поначалу непривычно писать, потом привыкаешь, но зато в репозиторий уже попадают коды в очень хорошем виде.
Хотя я на этапе разработки предпочитаю отключать эту фичу, а документировать все что сделал уже перед сабмитом на сервер.
Да, я, наверное, имел в виду нечто другое.
Ежедневники сам не люблю, планировать звонок завтра, или поход в магазин с 18:30 до 19:00 это в топку. Забыл и ладно. А если сильно кому-то нужен, то сами перезвонят. Так в 99% случаев.
Но, если я начинаю делать проект, а особенно где-то в середине его реализации, появляется достаточно таки внятный список TODO. Вот его я предпочитаю вести или на бумаге (если этот todo я сформировал с расчетом на 1-2 дня), или в электронном виде, если имеются ввиду какие-то более крупные вещи.
Да и тренировка памяти способом запоминания чего нужно сделать — не правильная для меня. Я могу запоминать то с чем работаю, взаимодействую (город, люди, информация, проекты с которыми работаю), но всякой мелочью засорять голову не считаю правильным. Это постоянно отвлекает. Это можно прочесть в любой другой книге или статье по тайм менеджменту.
Так что очень противоречивое мнение о материале осталось, читал к стати его раньше.
«Не занимайтесь сложными делами» — от простых дел тупеешь, их иногда можно просто в удовольствие на досуге поделать. Но заниматься ними постоянно не хочу.
Ну а вообще ресурсы то понятно, но мне кажется, нужно все совмещать. И это можно делать. С глобальной точки зрения понятно, что большинство войн происходит за ресурсы. При чем не жалеют ни своих же солдат (действительно как ресурсы их используют), ну и понятное дело не жалеют противника. Но все эти войны, по большому счету, организовывают единицы, может десятки, остальные просто подхватывают и все идет до низов в иерархии власти, до простого народа, которому идет пропаганда и особо деваться некуда. Поэтому нельзя сказать, что «в этом мире», тут больше подойдет в мире тех, кто занимает верх иерархии в государствах, к счастью не для всех.
Если перейти на локальный и приближенный уровень, вы же не пойдете убивать соседа, потому что у него мерс и бабки. Тут вот вам те же самые «эльфы» и «ресурсы» :)
Почему-то если брать глобально, то все кричат, что люди мало чего значат. А вот если взять конкретные случаи на личностях, то все обстоит совсем по другому. Поэтому, люди все же значимы в нашем мире, не только сырье ;)
Да, это неплохо. Хотя использовать его и сейчас со студией что мешает? :)
Судя по комментариям, половине людей пора уже менять стереотипы и предвзятость, MS — не такое уж и зло ;)
Касательно интеллисенса. Его можно без проблем сейчас подключить. Подробно описано в этом посте, может кому пригодиться, кто ещё не знает. Штука мощная, с интеллисенсом получается даже первый раз скачав jQuery сразу писать скрипты, все достаточно интуитивно.
И ещё о AJAX. Не помню точно в каком, но в одном из подкастов с сайта asp.net достаточно четко высказали позицию: ASP.NET AJAX больше подходит для взаимодействия с сервером, события, часть библиотеки System туда перенесенная (например, работа со строками) — это все удобно для обработки данных. jQuery в свою очередь идеально подходит для манипуляции страницей на клиенте, работа с DOM, эффекты и т. д. Поэтому эти две библиотеки немного пересекаются между собой, но мало конкурируют. В основном дополняют друг друга.
Их размер — 88кб и 55кб. В современном мире 33кб не такая уж огромная разница, чтобы называть ASP.NET AJAX очень тяжеловесным :)
В общем, ждем следующих поставок Visual Studio с jQuery на борту :)
существуют особо непонятливые пользователи которые не найдут своей ошибки и просто напросто уйдут с вашего веб-сайта
Вот интересно откуда такие сведения берут кроме как с потолка? :)
А вообще мне не очень понравилось. Если проверять «на лету», то пользователь явно увидит изменения и выделения цветом в той ячейке, где он только что вводил информацию. А если все по сабмиту делается, то как быть с несколькими неверными полями?
Ну это все к авторам сиго чуда, а вам спасибо за то что донесли до нас. Может его будет интересно применить к чему-то другому, а не указанию на ошибки.
Тут уже от приложения зависит. Часто бывают случаи, когда нужно получить дочерние элементы без самого родительского. Тут уж статический метод не помешает. Хотя делать по другому уже извращение будет.
Нужно будет посмотреть свои коды, какие методы из них можно пометить статическими, подумать. А то что-то сходу не могу придумать в голове удачный пример, если у кого рабочий есть, выкладывайте :) Хотя первым нужно ждать такой от XaocCPS, тебе же решарпер предложил. :)
А по поводу сабжа в целом, думаю это вполне нормальная практика.
Да сама программа в общем-то тупа по своей логике, скорее всего берет открытый Sollution, проходится по всем Project которые ему принадлежат и правит ихние настройки. Эти же файлы в виде XML хранятся. Студия после её запуска ещё говорит о том, что Project изменен внешней программой, перезагрузить или оставить таким как есть.
Завтра выйду на работу — посмотрю. А то в обещаную пятницу закрутился и вспомнил только дома об этом :)
Одно не противоречит другому. Вы ведь видели в сигнатуре каждого метода, описание отдельного параметра? Там можно писать и об ограничениях. В описании метода можно указать какие исключения он вызывает. И пользуясь такими «сигнатурами», вы получаете исчерпывающую информацию о вызываемом методе.
Я вот просто сейчас вижу, что вы немного не о тех вещах говорите. Вы правильно поняли, как xml-comments работают? Это в первую очередь нужно не для того, чтобы вы не понимал из вот этого в коде за что метод отвечает
А для того, чтобы вашими библиотеками потом было удобно пользоваться всем и по полной, с привильно описаными сигнатурами методов и так далее. И этот ваш труд в комментариях ещё как оценен будет.
На сим со своей стороны беседу останавливаю, так как вижу что мы или в разных плоскостях рассуждаем, или говорим о разных вещах, так как не сходимся во мнениях.
Вы к стати на C# работаете?
Не спорю что лог пишет туда, но зачем мне узнавать о причине ошибки в рантайме, если я могу её предотвратить на этапе написания?
Число принимаемое может быть ограничено по определенному диапазону. На них перечислений не напасешься.
Я о своем исключении и писал. Вот только если это мой класс будет, как вы узнаете как он называется? Опять в рантайме?
Я понимаю, что писать эту всю документацию лениво, но не могу понять вашу категоричную точку зрения. Я когда начал работать с jquery, то подключил для него IntelliSense с описанием всех методов и параметров. Таким образом получилось писать сразу, практически не обращаясь ко всяким справочникам. Мне нравится пользоваться хорошо написанным кодом, поэтому стараюсь делать такой же для других.
Подробнее о настройках смогу посмотреть попозже.
Другой вопрос. А куда этот метод пишет? В файл, в лог, в консоль, в Response.OutputStream? Останется известным только вам.
И опять же. Если вы сгенерируете потом нормальную документацию из этого, то другие разарботчики смогут без проблем её читать, иметь представление что и как работает, для чего все нужно, а потом уже начнуть писать код. Без такой же документации все придется делать методом тыка.
И ещё, какие исключения этот метод может сгенерировать? InvalidArgumentException, IoException? Или может какое-то свое исключение? Не перехватывать же базовый Exception.
В общем, писать или не писать комментарии зависит от нескольких вещей. Будет ли кто-то кодом работать ещё, планируется ли это выкладывать в общее пользование, насколько вероятна поддержка кода в будущем. Я для своих каких-то целей когда пишу, то xml комментариями не пользуюсь, а на работе всегда так пишу и понимаю, что не зря.
А с названиями методов вы правы на 100%, их такими нужно давать как при наличии xml-comments так и без них :) Не комментариями едиными.
то вообще выходит чуть больше 7 «запчастей» в день (если считать только рабочие дни)
Только сразу предупреждаю, могу забыть :)
По поводу удобства для человека — это все потом можно перевести в файлики mht (вроде так называются) и получить документацию как в msdn, что вполне удобно для человека.
И если заговорили про нормально. Как вам это видится? Какой формат придумать чтобы можно было описать все эти данные и в тоже время совсем не напрягаться?
Хотя я на этапе разработки предпочитаю отключать эту фичу, а документировать все что сделал уже перед сабмитом на сервер.
Нужно посмотерть что ещё полезного и частоиспользуемого там есть.
Ежедневники сам не люблю, планировать звонок завтра, или поход в магазин с 18:30 до 19:00 это в топку. Забыл и ладно. А если сильно кому-то нужен, то сами перезвонят. Так в 99% случаев.
Но, если я начинаю делать проект, а особенно где-то в середине его реализации, появляется достаточно таки внятный список TODO. Вот его я предпочитаю вести или на бумаге (если этот todo я сформировал с расчетом на 1-2 дня), или в электронном виде, если имеются ввиду какие-то более крупные вещи.
Так что очень противоречивое мнение о материале осталось, читал к стати его раньше.
«Не занимайтесь сложными делами» — от простых дел тупеешь, их иногда можно просто в удовольствие на досуге поделать. Но заниматься ними постоянно не хочу.
Ну а вообще ресурсы то понятно, но мне кажется, нужно все совмещать. И это можно делать. С глобальной точки зрения понятно, что большинство войн происходит за ресурсы. При чем не жалеют ни своих же солдат (действительно как ресурсы их используют), ну и понятное дело не жалеют противника. Но все эти войны, по большому счету, организовывают единицы, может десятки, остальные просто подхватывают и все идет до низов в иерархии власти, до простого народа, которому идет пропаганда и особо деваться некуда. Поэтому нельзя сказать, что «в этом мире», тут больше подойдет в мире тех, кто занимает верх иерархии в государствах, к счастью не для всех.
Если перейти на локальный и приближенный уровень, вы же не пойдете убивать соседа, потому что у него мерс и бабки. Тут вот вам те же самые «эльфы» и «ресурсы» :)
Почему-то если брать глобально, то все кричат, что люди мало чего значат. А вот если взять конкретные случаи на личностях, то все обстоит совсем по другому. Поэтому, люди все же значимы в нашем мире, не только сырье ;)
Судя по комментариям, половине людей пора уже менять стереотипы и предвзятость, MS — не такое уж и зло ;)
Касательно интеллисенса. Его можно без проблем сейчас подключить. Подробно описано в этом посте, может кому пригодиться, кто ещё не знает. Штука мощная, с интеллисенсом получается даже первый раз скачав jQuery сразу писать скрипты, все достаточно интуитивно.
И ещё о AJAX. Не помню точно в каком, но в одном из подкастов с сайта asp.net достаточно четко высказали позицию: ASP.NET AJAX больше подходит для взаимодействия с сервером, события, часть библиотеки System туда перенесенная (например, работа со строками) — это все удобно для обработки данных. jQuery в свою очередь идеально подходит для манипуляции страницей на клиенте, работа с DOM, эффекты и т. д. Поэтому эти две библиотеки немного пересекаются между собой, но мало конкурируют. В основном дополняют друг друга.
Их размер — 88кб и 55кб. В современном мире 33кб не такая уж огромная разница, чтобы называть ASP.NET AJAX очень тяжеловесным :)
В общем, ждем следующих поставок Visual Studio с jQuery на борту :)
Вот интересно откуда такие сведения берут кроме как с потолка? :)
А вообще мне не очень понравилось. Если проверять «на лету», то пользователь явно увидит изменения и выделения цветом в той ячейке, где он только что вводил информацию. А если все по сабмиту делается, то как быть с несколькими неверными полями?
Ну это все к авторам сиго чуда, а вам спасибо за то что донесли до нас. Может его будет интересно применить к чему-то другому, а не указанию на ошибки.
Просто реализация от Microsoft паттерна MVC (Model View Controller), который в свою очередь был предложен давно давно для реализации на Smalltalk.
Нужно будет посмотреть свои коды, какие методы из них можно пометить статическими, подумать. А то что-то сходу не могу придумать в голове удачный пример, если у кого рабочий есть, выкладывайте :) Хотя первым нужно ждать такой от XaocCPS, тебе же решарпер предложил. :)
А по поводу сабжа в целом, думаю это вполне нормальная практика.