Насколько важный шаблоны разработки в веб-разработке? [закрытый]

5
задан TIMEX 13 January 2010 в 21:16
поделиться

6 ответов

Стеллажи и разветвления - две совершенно разные вещи. Стеллажи позволяют хранить все изменения в TFS, но они фактически не регистрируются в какой-либо конкретной ветви. Изменения просто сохраняются под заданным именем. Это на самом деле очень полезно, потому что это отличный способ сделать обзор кода. Возможно, я внес изменения в 10 различных файлов. Я создам набор отложенных изменений с именем. Тогда я попрошу кого-нибудь еще просмотреть мой набор отложенных изменений. Затем я могу отменить эти изменения или удалить набор отложенных изменений.

Ветвление - это процесс, посредством которого вы создаете полную копию магистрали кода и даете ей имя и местоположение. Затем можно выполнить возврат/выход/слияние по ветви кода. Это здорово при работе над следующей версией приложения. Можно создать ветвь для работы с новыми элементами.

Вот хорошее объяснение наборов отложенных изменений: http://msdn.microsoft.com/en-us/library/ms181403 (VS.80) .aspx

-121--1603171-

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

Я думаю, что это все еще актуально, но SVN исторически работал плохо с двоичными файлами. Разработчик Java в IBM столкнулся с этой проблемой, исследовал и написал свои выводы. Вы можете найти его полезным:

Настройка производительности Subversion: Хранение и обработка двоичных файлов без перетаскивания производительности

Вот выбор:

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

  • Наиболее эффективным с точки зрения времени методом является создание единого сжатого файла, содержащего двоичный файл.
  • Наиболее компактным методом является использование эффективного сценария регистрации Subversion в обычной структуре каталогов.
  • Использование любой формы аутентификации на сервере Subversion приведет к потере производительности.
  • Выделенная мощная машина оптимальна для запуска Subversion.
-121--2954007-

Забыть синглтон. Это запутанно и редко нужно.

Изучение состояния , стратегии и команды . Они постоянно используются.

Состояние для всего, что имеет логику, которая зависит от состояния объекта. Короче говоря, каждый оператор if, возможно, лучше выполнить через State . Серьезно. Слишком много операторов if являются кодовым запахом и указывают на то, что существует обработка с указанием состояния, которая распространяется по всему месту.

Стратегия относится к любой обработке «plug-in» или «expansion» или «option».

Команда предназначена для любого расширяемого (и компонуемого) набора действий. Резервное копирование, восстановление. «Таблица», «Создать», «Индекс», «Заполнить». Проверка, загрузка, суммирование, отчет. Любая из этих командов-подобные вещи, которые могут быть объединены различными способами, различные заказы и т.д., вероятно, должны выполняться с формальным дизайном команды .

10
ответ дан 18 December 2019 в 06:22
поделиться

В C назначение является выражением, которое оценивает назначенное значение

-121--4294059-

MVP или MVC

Смотреть модель или Контроллер представления модели

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

11
ответ дан 18 December 2019 в 06:22
поделиться

Ваш последний метод должен работать лучше всего, даже если он беспорядочный. Вот небольшое уточнение:

$('span').click(function() {
    var span = $(this);
    // Mark the span active somehow (you could use .data() instead)
    span.addClass('span-active');

    $('div').click(function(e) {
        // If the click was not inside the active span
        if(!$(e.target).hasClass('span-active')) {
            span.removeClass('span-active');
            // Remove the bind as it will be bound again on the next span click
            $('div').unbind('click');
        }
    });
});

Оно не чистое, но оно должно работать. Никаких ненужных привязок, и это должно быть глупо (никаких ложных срабатываний и т.д.).

-121--4859830-

Дэйв - Вам повезло найти решение проблемы браузера? Существует ли способ принудительного обновления?

Что касается первоначальной проблемы, попробуйте следующее при инициализации формы:

def __init__(self, *args, **kwargs):
  super(MyForm, self).__init__(*args, **kwargs)   
  self.base_fields['MyChoiceField'].initial = initial_value
-121--724446-

Честно говоря, узоры важны, но знать, когда их использовать, так же важно. Там никогда не будет никакого набора ответа это то, что вы должны почувствовать для себя. Люди, которые борются за то, чтобы быть абсолютным, где вы всегда должны использовать их или не использовать их, неверны. Узоры конструкции - это инструмент. Я бы предложил посмотреть на Amazon.com для книги на любом языке, который вы пишете, который касается конкретно узоров дизайна. Я знаю, что есть одна написанная для Ruby on Rails, которая великолепна, хотя я не помню название, также есть одна для Java под названием Head First Design Patterns, и для C # написанная Бобом и Майкой Мартинами, которая превосходна. Прочитайте любой из тех, которые относятся к языку, с которым вы знакомы больше всего. Даже если вы не используете все узоры, хорошо понять, как они работают и когда они будут полезны для использования.

2
ответ дан 18 December 2019 в 06:22
поделиться

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

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

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

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

1
ответ дан 18 December 2019 в 06:22
поделиться

MVVM - это более новый, который я видел, когда использовался с Silverlight. Это немного много, но кажется эффективным.

0
ответ дан 18 December 2019 в 06:22
поделиться

Для веб-приложений, понимание, по крайней мере, на элементарном уровне, шаблоны, описанные в шаблонах архитектуры приложений предприятия , доказали значение для меня. Банда из четырех узоров стоит знать тоже.

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

Чтение только «часть 1» разделов GOF или POEAA поможет вам намного больше, чем учить три или четыре шаблона, потому что вы будете знать, где смотреть, когда вы столкнулись с проблемами, которые они описывают. И вы можете посмотреть детали большинства шаблонов, которые они описывают онлайн.

Гробовые модели, которые я использую прямо или косвенно, часто неосознанно, в веб-разработке, включают в себя: наблюдатель, команду, композит, состояние, стратегию. Я обычно не использую Singleton, за исключением клиента журнала и сервисных локаторных инструментов для инъекций / зависимости. Узоры Poeaa, которые я использую регулярно, обычно неосознанно, или кстати, как часть стратегии доступа к данным или веб-каркас, я использую, представляют собой активную запись, контроллер приложений, Mapper Data, доменную модель, шлюз, ленивую нагрузку, слой Supertype, Page Контроллер, вид шаблона и объект стоимости. Это не исчерпывающе; Это всего лишь несколько, которые вскочили.

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

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

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

1
ответ дан 18 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

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