function foo() {
console.log("HEY")
}
foo() //logs "HEY" in the console
//correct way
// foo() is calling the function and asigning its return value
// foo is the function
var test = foo
//then we call the stored function
test()
при определении "поиска и устранения неисправностей" для включения "отладки" затем да, это очень важно!
Править: на основе Ваших редактирований нисходящий метод процесса устранения, который Вы перечислили, систематичен и очень ценен.
Другая техника рассуждает назад:
Это полезно, когда существует много вперед питающихся путей/возможностей, которые, возможно, вызвали проблему, но имеют преимущество не необходимости в отладчике или трассировки для выяснения наиболее вероятной причины.
Другая техника является методом обычных подозреваемых, где Вы начинаете свое расследование с любой частью кода, был затронут в последний раз или дал Вам большинство проблем, чтобы видеть, изменилось ли что-то в нем для порождения новой проблемы
Другая техника состоит в том, чтобы просто находиться и думать о том, какие ситуации могли возможно произвести наблюдаемую ошибку/поведение/значение. Эта техника полезна, когда Вы спешите и не хотите систематически сканировать много мест, но требует, чтобы у Вас уже было полное понимание системы. Это полезно, когда рассматриваемая ошибка/поведение происходит из-за недостатка дизайна или контроля и не ошибки кодирования.
Поиск и устранение неисправностей в мире компьютеров обычно подразумевает Вашу основную работу типа "My-computer-doesn't-work-can-you-fix-it", которую в лучшем случае Покупают парни позади счетчика, делают. Я думаю, что Вы имеете в виду, Отлаживает, и в то время как оба могут быть ценными (я, конечно, рад, что не должен идти, работая для поддержки для каждого незначительного сбоя, который мой компьютер имеет), Отладка является, конечно, более критическим навыком для разработчика. То независимо от того, что язык, зная, как отследить, определяют и устраняют ошибки, является одним из самого трудного сингла и обычно выполненные задачи, которые программист сделает в течение его карьеры.
Однако я на самом деле сказал бы, что то, что я считаю самым важным навыком в своем арсенале, является настойчивостью. Когда мой менеджер помещает меня на задачу, они знают, что я сделаю ее, несмотря ни на что. Период. Какие контрольно-пропускные пункты помещаются в мой путь, независимо от того, что временная шкала, независимо от того, что конечная цель, я сделаю столько, сколько по-человечески возможно оправдать их надежды, пока не сделано задание, или они удовлетворены результатами. Это, между прочим, является очень важным различием! Исходная цель не всегда выполнима, и когда это не, это - мое задание, чтобы гарантировать, что управление знает точно, почему это не и что их альтернативы как можно скорее. И важно обеспечить те альтернативы. Никто не хочет услышать, "Ну, извините. Вы в значительной степени завинчены". Предоставление другого решения проблемы является частью этого perserverance вещь. Вы никогда не выходите, если Вы не проинструктированы к.
Короче говоря, способность видеть проект до конца, не будучи отвлеченным или сдаваясь является, по-моему, единственной самой эффективной вещью, которую можно сделать, чтобы отделить себя и сделать себя желанными работодателям. И верьте мне, это чертовски трудно! Но это - то, что делает это ценным!:)
Поиск и устранение неисправностей навыка очень важен. Обычно хорошее диагностическое средство имеет больше вопросов, чем ответы. У них также будет методический подход к тестированию решений проблем, которые они находят. Они не будут бояться того, что они не знают или смущаются для выяснения у "глупого" вопроса. Они учатся быстро. Все хорошие черты для программиста.
Когда я покинул колледж, я думал, что ключ к тому, чтобы быть великим программистом должен был сделать прекрасным (и в функции и в форме), кодируют в первый раз. Любые проблемы, которые появились, состояли в том, потому что я не был достаточно хорош, или потому что я не был достаточно осторожен, или не мог думать достаточно далеко вперед или провести достаточно времени, планируя. Если бы только я мог бы решить все проблемы на электронной доске, я был бы великим программистом.
Я запустил свою карьеру программирования, работающую над отладчиком. После пары, годы которой, я был убежден, что самый важный навык для успешного программиста отлаживал. Я признал, что не мог написать идеальный код в первый раз, и, ни мог кто-либо еще. При проведении всего моего времени на электронной доске никогда производимый рабочий код, но уверенный требовалось много времени. Вместо этого я просто записал бы что-то, что казалось вероятным, и затем отладьте. Не было никакого способа написать большой код как, я желал, но я мог стать действительно хорошим в фиксации взломанного кода.
Это работало. Я смог создать поставлющееся программное обеспечение, только беря 2x или 3x как долго как запланировано. Я смог исправить почти все важные ошибки перед поставкой, не представляя слишком много других ошибок по пути. (Я вздрагиваю для записи этого!).
Затем я считал Рефакторинг Fowler. Это полностью изменило мои взгляды. Это учило меня, что, в то время как я не мог записать простому, четкому, чистому, удобному в сопровождении коду первый раз, я мог добраться там. Причина я не мог разобраться в своем дизайне на электронной доске в первый раз, состояла в том, потому что Вы не можете сказать, правильно ли это, пока Вы не видите его в коде. Только затем можете Вы решать что случилось и как зафиксировать его. Ключ, казалось, был для входа для кодирования как можно скорее при создании его максимально дешевым и безопасным зафиксировать дизайн кода, после того как это записано.
Это приводит меня к Экстремальному программированию, где я узнал, что путем написания хорошо учтенного кода, где классы являются маленькими, простыми, и легкими понять, у меня могли также быть простые, легкие к записи, и легкие к передаче модульные тесты. Когда Вы кодируете как этот, модульный тест, приводя точки к сбою Вы к корню проблемы очень быстро. Когда я делаю его правильно, разыскивание проблем так легко, что я редко касаюсь отладчика.
Теперь, я не ангел кода. Я редко парная программа, и я не всегда пишу свои модульные тесты сначала. Я обвиняю своих родителей. О, и то, что мой работодатель и мои инструменты столь не поддерживают, как я мог пожелать. И конечно же, я плачу за него. Затем я выкрикиваю отладчик и применяю те старые навыки отладки при жалел, что я только что не записал лучшие модульные тесты.
Существует другое место, где отладка очень важна: в производстве. При рассмотрении проблемы в дикой природе способность диагностировать ее быстро в отладчике очень мощна. Я могу учиться писать программы, которые способны к самодиагностике, где я могу предсказать слабость, но для непредсказуемых проблем, я думаю, что мне всегда будет нужен отладчик.
Это важно, но диагностирует/отлаживает для меня, справедливо:
Так да это важно, но дело не в этом далекий от других Вы упомянули. Я имел бы размеры (1) сначала. Подарите проблеме с некоторыми частями, намеренно оставленными неопределенными. Он должен смочь понять это. Следующий шаг (2), он задал правильные вопросы. И затем принимается за решение проблемы неслучайным образом (3).
Знание, как к:
Если, именно это поиск и устранение неисправностей, то да это очень важно :D
Мне нравится, как один из моих бывших боссов определил эти 2 части к тому, чтобы быть разработчиком, который объясняет, почему простое "Да" не может быть достаточным здесь:
1) Программирование - способность разработать и написать код.
2) Диагностируя - отладка, исследуя проблемы, чтобы определить, является ли это код, данные или сетевая проблема, исправляют ошибки.