Что случилось с “волшебством”?

viewDidAppear определенно не тот, который вы хотите использовать, он «приостанавливает» представление от ответа во время загрузки данных.

Обычно viewDidLoad - это тот, который вы хотите поместите его.

32
задан Ignacio Vazquez-Abrams 14 January 2009 в 02:34
поделиться

8 ответов

Ну, считайте пару битов направляющих "волшебством": когда Вы пишете класс контроллера, его методы имеют доступ к определенным переменным и определенным другим классам. Но эти переменные и классы не были ни определены, ни импортированы чем-либо в файле кода Ruby, на который Вы смотрите; направляющие сделали большую незаметную работу, чтобы гарантировать, что они просто будут там автоматически. И когда Вы возвращаете что-то из метода контроллера, направляющие удостоверяется, что результат передается соответствующему шаблону; Вы не должны писать код для сообщения этого, какой шаблон использовать, где найти его, и т.д., и т.д.

, Другими словами, это - как будто эти вещи происходят "волшебством"; Вы не должны шевелить пальцем, они просто происходят для Вас.

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

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

разработчики Django имеют мнение, что этот вид "волшебства" является плохой вещью, потому что действительно не экономит всему так много времени (некоторые import, операторы не являются грандиозным предприятием в главной схеме вещей), и имеет эффект сокрытия, что действительно продолжается, мешая разрабатывать, как переопределить материал, или тяжелее отлаживать, если что-то идет не так, как надо.

Оба из них являются, конечно, допустимыми позициями для взятия, и обычно кажется, что люди просто естественно гравитируют одному или другому; те, кому нравится "волшебство", собираются вокруг направляющих или платформ, которые пытаются эмулировать его, те, кто не собирается вокруг Django или платформ, которые пытаются эмулировать его (и, в более широком смысле, эти позиции являются несколько стереотипными из разработчиков Python и Ruby; разработчики Ruby склонны любить делать вещи один путь, разработчики Python склонны любить делать вещи иначе).

В конечном счете, это, вероятно, не имеет огромного значения для фактора, Вы говорите, что обеспокоены в - оплачиваемые часы - так позвольте своему разработчику выбрать то, чем он является самым довольным, так как это, более вероятно, получит полезные результаты для Вы .

77
ответ дан 27 November 2019 в 19:38
поделиться

Основная проблема происходит, когда Вы не понимаете волшебства. Это может привести к чему-либо из приложений, которые плохо стерилизованы полностью к спорадическим, фатальным катастрофам.

35
ответ дан 27 November 2019 в 19:38
поделиться

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

Для больше, действительно считайте Joel Spolsky Закон Текучего Abtractions

21
ответ дан 27 November 2019 в 19:38
поделиться

Волшебство запутывает функциональность. Это создает поведения неявно вместо явно, такой, что у программиста нет потребности понять, как поведение работает, и что еще более важно, как они могли бы пойти об изменении его.

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

Теперь, к вопросу того, кого необходимо нанять, чтобы сделать задание: если Вы обеспокоены долгосрочной способностью других программистов понять код Ваших подрядчиков, может иметь смысл идти с Django (это - конечно, мое предпочтение). Однако существуют многие, многие эксперты Rails там, которые могут поддержать Ваш веб-сайт хорошо в будущее.

выбор должен свестись, кого среди подрядчиков Вы оцениваете, a) имейте успешный опыт работы и b) Вы доверяете. Хороший разработчик преуспеет или на направляющих или на Django.

13
ответ дан 27 November 2019 в 19:38
поделиться

При использовании волшебства... для обеспечения понимания одной части системы необходимо понять все это. Так как трудно определить, не влияет ли никакое волшебство на часть, Вы исследуете.

Это похоже на чтение истории, и наличие автора не учитывают соответствующие повороты сюжета, потому что они являются повторяющимися.

Shazam

10
ответ дан 27 November 2019 в 19:38
поделиться

Проблема с "волшебством" состоит в том, что оно скрывает много вещей от Вас, и IMO мешает разыскивать проблемы или знать, что/оптимизировать, после того как Вы начинаете думать "вне поля" и оказываетесь в "мертвой волшебной зоне" (т.е. часть, где волшебство не помогает Вам).

IMO это - основная проблема с Ruby on Rails (и не понимайте меня превратно, я действительно как Ruby on Rails); слишком легко начать с ним, и затем после того как Вы сталкиваетесь с препятствием, где направляющие не делают работы для Вас, или где конвенции направляющих не соответствуют..., Вы в значительной степени завинчены, если Вы не гуру Ruby, потому что Вы не можете больше полагаться на волшебство и потому что это абстрагировало все от Вас, у Вас нет подсказки, как сделать это "твердый путь"

8
ответ дан 27 November 2019 в 19:38
поделиться

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

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

4
ответ дан 27 November 2019 в 19:38
поделиться

Говоря о магии, я считаю, что Rails, Django и большинство, если не все, фреймворки творит какое-то волшебство. То, как они абстрагируются, обертывают низкоуровневые сервисы в API, интегрируют маршруты, контроллеры и т. Д., Является своего рода волшебством для людей, которые мало что знают. Я признаю, что в Rails больше магии, и иногда люди могут заблудиться. Однако мы не должны отказываться от Rails только из-за этого. Как я уже сказал, дело не в том, что магия очень плоха, и только Rails творит ее, а большинство. Мы должны видеть, что Rails развивается очень быстро, качество его кода улучшается, и он становится все более и более модульным. Ресурсы вокруг Rails огромны. Это тоже нужно учитывать.

3
ответ дан 27 November 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: