Pull to refresh

Comments 46

Переводы нужно не отправлять в хаб «Переводы», а делать переводами:

Насколько я знаю, на это карма не нужна
Блин, не знал. А как теперь исправить положение? После нажатия на значок редактирования поста я там не вижу такой возможности.
Можно написать в тех.поддержку хабра, перенесут в нужный раздел — уже были прецеденты.
На мой взгляд достаточно сомнительный позыв в статье. Resharper дополняет студию, делает многие рутинные операции за меня. Та же навигация по коду ускоряет поиск нужного фрагмента в разы. Да и рефакторинг не лишний.

IDE для того и нужны, чтобы упрощать разработку. Они берут на себя огромное число разных не относящихся к делу моментов (создание проекта, компиляция, проверка на ошибки, в том числе и до компиляции и многое другое).

В принципе многое можно сделать и в простых текстовых редакторах + командная строка. Но зачем? Чтобы считать себя крутым? Я типа могу делать это и без IDE? Смешно звучит.

Есть задача, есть инструменты, с помощью которых задачу можно решить. И чем удобнее инструмент, чем лучше им владеет программист, тем эффективнее он может решить эту задачу.
В принципе, я тоже не совсем согласен с автором. Но в идее о том, что без инструментов мы становимся беспомощными что-то есть. В той статье Петцольда, которую рекомендовал Марк, Чарльз пишет, что почувствовал себя настоящим программистом, когда после программирования в Visual Studio он стал писать программу в блокноте на чистом С. Ещё там Чарльз пишет, что ему нравится самому писать метод Main() и, что его раздражает генерация кода в WinForms)))

Но, вы знаете, я в разных местах обнаружил на удивление много людей, которые согласны с Марком.
В принципе многое можно сделать и в простых текстовых редакторах + командная строка. Но зачем? Чтобы считать себя крутым? Я типа могу делать это и без IDE? Смешно звучит.

Смешнее когда он не может этого делать. Еще смешнее когда не знает как пишутся базовые конструкции яп без автокомплита и автогенерации.

И да IDE расхолаживают. Думаю, что главный посыл статьи, что IDE должна быть дополнением программиста, а не наоборот
Я не понимаю, почему не упоминается момент, когда нужно анализировать существующий код проекта из тысяч классов, написанный сотней разработчиков разного уровня подготовки? Как насчет рефакторинга в таких условиях? Конечно, можно обойтись простым «Search+Replace», но на эту обезъяью работу уйдет уйма времени. И как раз нежелание делать обезъянью работу будет сдерживать девелоперов заниматься рефакторингом. Так что камень в огород Resharper-a не зачтен.
Я скорее не понимаю, почему в статье не упоминается тот момент, что когда пишешь без помощи IDE, тебе приходится думать, как структурировать код проекта из тысячи классов так, чтобы можно было разобраться в нём без сторонних инструментов. И в получившейся структуре, которая прошла проверку твоим мозгом, разобраться куда легче.

Я согласен с автором, что ребята Ruby on Rail куда продуктивнее нас, да и что спорить — их инструменты на порядок легче в использовании. Взять к примеру тестирование — я в восторге от реализации BDD в Ruby и никак не могу удобно и просто реализовать подобный процесс в .NET.
Автор исходного поста по крайней мере честен — признаётся что любит потроллить :)

По поводу неудобства TDD в Visual Studio — как раз с ReSharper это происходит очень даже удобно.

Сводить Visual Studio + ReSharper к скорости печатания — тоже тот ещё троллинг — помимо повышения скорости эта связка даёт ещё и быструю проверку ошибок, стиля кодирования, предупреждения о возможных проблемах, не говоря уже про рефакторинг.

Про скорость печатания… Может конечно всё очень индивидуально, но лично у меня программирование идёт двумя способами, которые иногда пересекаются:

1) Подумать как сделать, быстро написать, причесать.

2) Подумать как сделать, понять что лучше разбить задачу на мелкие, вероятно описать архитектуру, мелкие задачи решить способами 1 и/или 2. После этого интегрировать в общее решение, выполнить тесты, сделать ревью, вероятно рефакторинг.

И для таких вариантов VS + ReSharper тоже весьма полезны.

P.S. Всё это не относится к математическим/алгоритмическим задачам, где собственно программирование занимает очень небольшой процент времени.
Признаюсь, я уже начал теряться в догадках. Возможно, Марк преуменьшил своё желание к троллингу :) Может, он всё-таки в данном случае очень сильно потроллил, а я зря перевёл? :-D

Но, опять же, статья Петцольда повествует об этих же проблемах. И там, совсем не похоже, что Чарльз троллит.
Почему же зря — сколько людей, столько и мнений.

От задачи, опять же, многое зависит. Если, например, писать оптимизатор SQL-запросов — скорость набора отходит не на второй, а на какой-то запредельный план и если есть другие средства проверки корректности кода — то можно хоть в блокноте писать. Хотя, конечно, лучше в sublime/vim/notepad++ :)
Хорошо, когда люди имеют разные мнения.

Для меня IDE — это не средство скоростного ввода, а облегчение чтения кода, облегчение отладки, ускорение понимания кода. На все это и работает и автодополнение, и быстрая навигация, и контекстные подсказки, и проч.
Спасибо за этот комментарий. На самом деле, я сделал перевод именно по этой причине. В то время как все сходят с ума по R# (ну, честно говоря, я им активно пользуюсь, купил лицензию), есть люди, которые относятся к этому настороженно. Вот, например, Боб Мартин рекомендует использовать метод Extract till you drop (извлекай пока нечего будет извлекать), чтобы получать короткие методы. Однако есть и выступление Кристины Горман, которая считает это бездумной практикой и рекомендует пользоваться своей головой а не механизированными методами. Когда изучаешь различные мнения — ты начинаешь лучше понимать суть вещей.
А я так и не понял, что хотел сказать автор. Увидел такой посыл: использование R# повышает скорость написания кода (только?) => повышение скорости нафиг не надо, ибо это не основное => R# нафиг не нужен.

Т.е. во-первых, он свёл функционал решарпера к какому-то тупому бесполезному автокомплиту, совершенно забыв про мощнейшие инструменты рефакторинга и поиска кода, умные снипплеты, стиль и прочее, а потом сделал на основании всего такой мегавывод.

В общем, автор на мой взгляд троллит и передёргивает.
Не, просто автор опытный и хорошо знает возможности VS. Знает, что там есть и поиск и сниппеты и много чего.
Да, там много чего интересного есть. Но реализовано это мягко говоря странно. (Как я понял, они принципиально не хотят конкурировать с Решарпером, и добавляют уж то, без чего совсем плохо жить становится).

Если ближе к теме, я периодически бываю на разных конференциях от Microsoft, там иногда демонстрируется код, иногда демонстрируется сама студия. И уже много лет я смотрю, как бедные докладчики мучаются без решарпера и рассказывают про новые «мегафичи», которые там уже давным-давно есть. А тебе пытаются продать худшую реализацию за большие деньги.
Хорошо знает возможности VS, но, судя по твитам, нифига не знает про возможности решапрера(окромя автокомплита и темплайтов).
UFO just landed and posted this here
Я думаю, что основное содержится в коротеньком разделе «указывание пути». Действительно, очень легко попасть в ловушку и выпустить скрытый страшный баг в продакшн, если ты не понимаешь внутренних механизмов, на которые ты неявно ложишься, через использование какого-нибудь генератора. Просто пользуешься бездумно чем-то сгенерированным и предоставляющем тебе некое API. А ты возьми и попробуй пару раз сам вручную написать всё что генерирует дизайнер linq2sql, к примеру.
Да что там говорить о таких инструментах, когда даже использование очень высокого уровня API без разбора его внутренних механизмов может привести к очень плохим последствиям. Мне кажется его идеи ведут к таким рассуждениям.
Оффтопик.
А за что минусуют статью? За плохой перевод? За несогласие с автором? За то, что я просто не сделал статью в статусе «перевод»? Просто если так происходит из-за банального несогласия с тем, что излагается в статье, я так с отрицательным рейтингом скоро буду — обидно как-то.
Я лично минусовал статью за категорическое несогласие с автором. А за перевод конечно же спасибо. Но не могу сказать что, объективно и аргументировано написано.
Конечно из-за несогласия с автором.

Вот вы перевели, новички начитаются и будут говорить что они мега крутые программисты, потому что пишут в блокноте. Зачем это на хабре?

А карму не знаю зачем минусуют. Наверно чтобы следующий раз тщательней выбирали что переводить.
Это для всех. Если человек во всё верит — не быть ему программистом хорошим никогда. В кодексе хабра где-то написано, что не надо минусовать статью сразу — сначала почитай комментарии (ну или что-то в этом роде). Я полагаю, что новичок должен посмотреть комментарии. А если новичок будет думать, что умение программировать в блокноте это круто — то он будет прав. Он будет не прав, если будет этим всё время заниматься.
Да, это круто, когда автомеханик может починить сломаный в чистом поле автомобиль одной отверткой. Но это ни разу не круто если в автосервисе с кучей инструментов он чинит автомобили одной отверткой. Зачем советовать это? Я против, поэтому от меня минус статье.
«Если вы считаете, что выигрываете от использования вашего любимого «инструмента повышения производительности» я не буду вас переубеждать.» — кусочек из статьи.

Максимум, что он советует это просто попробовать свои силы без инструментов. Хотя таких призывов я тоже не видел. В остальном он высказывает своё мнение насчёт некоторых вещей.

Ну а минусовать за то, что несогласен с ИМХО автора — ИМХО, мне кажется неправильно. Я перевёл потому что это явно альтернативное мнение одного из очень крутых и уважаемых западных специалистов и поэтому оно достойно внимания и того, чтобы его обсудили на Хабре. Мне вот интересны были рассуждения людей на эту тему. Ещё я вынес для себя то, что, вероятно, 15 человек, которые заминусовали статью (боже упаси, я за плюсами не сильно гонюсь) испытали личную обиду из-за альтернативного мнения автора и это меня немного пугает.
Человек считает что статья хорошая — ставит плюс. Плохая — минус. Человек может выражать как согласие, так и несогласие безо всяких личных обид. Для этого и создан рейтинг, для этого и существуют две стрелочки, на этом и построена саморегуляция сообщества.

Nothing personal. Боже упаси на каждую хреновую статью обижаться.
> «Остерегайтесь инструментов повышения производительности»
А ведь сама студия тоже инструмент производительности. Можно заменить в статье R# на VS и будет такой же ошибочной статьей. Можно ведь писать в блокноте и компилировать код из консоли — студия только мешает так как навязывает «программирование снизу-вверх».

Рассматривать R# только как инструмент для быстрого набивания кода так же абсурдно как и рассматривать VS в том же ключе.
Коллективный разум уже догадался, что часть представленного в статье — троллинг. Другая часть ведёт к философской дискуссии о смехотворности программиста, который не может сделать и шага без среды разработки. Вот ссылка на соответствующий комментарий. И, да, вы правы, насчёт студии, Петцольд негодует и насчёт студии безо всяких R#.

Мой личный взгляд таков: R# — годный, хороший инструмент, который позволяет не пропускать лишний раз потенциальный NullReferenceException, R# позволяет прилизывать код, делать его настолько чистым, что без него такой чистоты добиться просто невозможно, в силу ограниченности человеческих способностей. В таком ракурсе, IDE + R# выступают в качестве экзоскелета для мозга программиста. Но во всём этом кроется маленький подвох — подсаживание на иглу и ослабление собственных возможностей. Это как отрофирование мышц при их неиспользовании. Честно говоря, если выбить R# у меня сейчас из под рук — моя ментальная часть будет очень сильно страдать при попытках писать код без этой усиленной мега-оболочки, я уж молчу про студию, без которой я просто не смогу скомпилироваться (ну, про студию-то ладно — это, конечно, перебор, на мой взгляд, хотя никто не мешает писать батник для компиляции, ага :)). Хорошо ли это? Я затрудняюсь ответить на этот вопрос, хотя интуитивно мне не нравится такое положение вещей — эта зависимость о которой говорят Марк и Петцольд.
Зависимость от инструментов может не нравиться.
Однако, могу предложить аналогию: ходить нужно всегда пешком, потому что автомобили и самолёты — это для слабаков, зависимых от технического прогресса и не контролирующих весь процесс целиком :)
Марк не предлагает всегда ходить пешком. Он предлагает понимать как работает автомобиль, иначе вы однажды попадёте на youtube и получите миллион просмотров и не отнюдь не потому, что вы хороший водитель-профи. Случай с самолётом я бы исключил — здесь полная делегация ответственности.
Вся эволюция человека разумного — это эволюция инструментов. Объем мозга со времен ранних кроманьонцев не менялся. Бороться с решарпером в пользу чистой студии, все равно что бороться со студией в пользу блокнота (ну и так далее). Типичный луддизм.
… с автомобилями в пользу лошадей. А то ишь, совсем отучились какашки с улиц убирать, а ведь это жизненно необходимый навык!
Однако до сих пор есть простые инструменты, например молоток. Можно конечно научиться управлять специальным роботом для забивания гвоздей, но это и не мешает уметь забивать гвозди молотком. Луддизм тут не причём.
В visual studio мне очень, очень не нравится парадигма решений/проектов. CMake для С++ мне кажется напорядок удобнее и гибче. Можно конечно создавать свои конфигурации помимо стандартных debug/release и переключаться между ними. Но все же гораздо удобнее просмотреть мейкфайл и что-то где то закоментировать чем создавать новую конфигурацию проекта VC++ лазить по куче вкладок смотреть где какая галка стоит. В C# решениями/проектами более меннее удобно пользоваться, но все равно например пребилд/постбилд события неудобно настраивать, приходится делать отдельный батник и его запускать уже из событий сборки/построения.
В свое время я работал с Delphi, потом ушёл на VS.NET.

Позднее через Perl ушел в RoR.

И я могу только подтвердить слова автора статьи.

Я лет шесть писал с помощью vim, сейчас пишу с использованием Sublime Text 2, и я сейчас более производителен, чем когда использовал Visual Studio + Resharper. Сейчас, правда, сами VS и Resharper тоже стали намного удобнее.

Кстати, самое мое большое достижение за четыре месяца уложилось в 30 строк кода.

Хотя, думаю, это индивидуально.
Очень интересный комментарий. Кстати, да, почему-то никто не обратил внимание на то, что автор также говорит о том, что при изучении доп. инструментов повышается привязанность к VS, а значит к стеку технологий от Microsoft, что, в конечном счёте, приводит к сложности с освоением других технологий.

Хотя, возможно, это является платой за рост в глубину в определённой технологии? Т.е., получается, что рост в глубину в данном контексте, может, и, вероятно, мешает росту в ширину.
Имхо смысл поста в том, что через решарпер может быть приятнее писать, но на продуктивность это не влияет, потому спор использовать решарпер или нет, это спор о вкусах, а не о хороших практиках.
Я могу отказатся от решарпера. Дома у меня его нет (равно как и больших проектов).
Но зачем мне запомниать нэймспесы и имена всех классов солюшаена на 100 проектов вместо ctrl+alt+tab я не знаю.
Зачем мне помнить в какой папке леждит какой файл вместо shif+alt+l я тоже не знаю.
Я могу на бумажке нарсовать дерево вызовов и источник какого либо значения в стеке вызово, но зачем мне это длеать вместо shif+ctrl+alt+a
Зачем запонимнать мена всех классов, вместо того чтоб помнить хоть какую то его чать и сделать ctrl+n тоже не знаю.
Зачем мне искать каждый класс и метод из стэк трейса, который я взял в логе, вместо shift+ctrl+e?
Или может быть я стану хуже программировать если решарпер мне подскажет где вызывался определенный виртуальный метод, у переменной определенного типа?

Без всего этого можно жить. И я живу дома без решарпера. Я пишу на асме в как блокноте (на само деле в AvrStudio но это как блокнот).
Но я не могу понять зачем отказыватся от инструмента, когда он есть! Зачем мне забивать мозг ненужной информацией, вместо того, тчоб сосредоточится на решении проблемы?
А мне кажется здесь вопрос нахождения золотой середины.

Можно уйти в одну крайность и писать в Блокноте и компилировать каждый файл в командной строке по отдельности. Но так само можно уйти и в другую крайность с генераторами кода и визуальными редакторами, когда целые классы появляются и компилируются в продакшн без хоть какого либо ознакомления разработчика с ними.

Тогда весь это спор сводится (впрочем, как и большинство споров) к нахождению золотой середины. Автор статьи утверджает, что продвинутые редакторы (Vim/Emacs/Sublime) — это и есть та самая золотая середина. Если кто-то не согласен, то он должен представить свое видение золотой середины.

Утверждения вида «редактор — это деградация. точка.» как по-мне не аргументированы.
Всю свою историю человечество пользуется инструментами — мы носим одежду, обувь, ездим на машинах и метро, используем плиту для приготовления пищи. И почему то ни разу не слышал чтобы повара называли лузером если он готовит торт не на костре, а в хорошей духовке. Та же картина с врачом — если хирург к вам подступит с куском обсидина вместо скальпеля и булыжником вместо наркоза…
А если серьезно — без нормальной IDE даже просто переименовать класс это целое дело, которое отнимает время и внимание. Возможность посмотреть значение переменной во время отладке экономит время, а уж возможность реально за несколько секунд увидеть все версии изменений — просто бесценно.
А не расскажете, что у вас со ссылками в статье?
А что с ними? Если что-то не открывается — пожалуйста, напишите в личку что именно.
Они не прямые а через какой-то редиректор. Зачем?
Ааа… всё может быть. Я просто ссылки скопировал из оригинала статьи и не заморачивался.
Sign up to leave a comment.

Articles