У меня есть несколько разработчиков, которые начнут работать над интерфейсом веб-приложения на основе jquery. Как мы можем структурировать приложение, чтобы одновременно несколько разработчиков могли работать с ui. Конечный результат для пользователя будет всего лишь одной веб-страницей, но я не все клиентская разработка встречаются в одном файле. На заднем плане уже работает другая команда.структурирование большого веб-приложения для нескольких разработчиков
ответ
Мы закончили использование Dojo (1.3) для этого проекта, так как у него был механизм для написания модульного javascript (dojo.require), который мы не смогли найти в jQuery. В настоящее время существует несколько библиотек AMD (асинхронное определение модулей), таких как RequireJS или curl.js, которые можно использовать с jQuery. Если бы я начал этот проект сейчас (вместо 2008 года), ответ на мой вопрос будет включать использование библиотеки AMD и, возможно, фреймворка javascript mvc. Доджо все еще имеет все это, мы все еще используем его.
Если вы начинаете полностью с нуля, вы можете разбить его на стандартную трехуровневую архитектуру.
У одного человека, работающего над структурой базы данных, и создания соответствующих библиотек доступа к данным.
Есть ли один человек, работающий над уровнем бизнес-процессов и процессов, создавая все взаимодействие данных.
Попросите третьего человека выполнить всю работу переднего конца с помощью jQuery.
Я уверен, что после этого будет минимальное столкновение, и каждый из них может работать с некоторыми макетными данными/методами, пока официальные материалы не поступят в интернет.
Если у вас будет несколько человек, работающих с одними и теми же файлами, ваш SCM должен иметь возможность управлять этим для вас.
Однако, если вы хотите упростить свою работу, вы всегда можете разбивать файлы javascript на несколько частей, которые вы можете включить динамически или во время фазы сборки/развертывания, которые могут объединяться, а затем минимизировать.
Фактор из фрагментов вашей целевой страницы на серверной стороне включает в себя или другие составные части, каждая из которых завернута в DIV (или другой соответствующий тег) с уникальным идентификатором, а затем добавляет отдельные CSS и JS-ссылки для стилей CSS и биты jQuery, которые стилируют и оживляют каждую часть.
В то время как CSS-правила выполняют каскадные запросы, а запросы jQuery могут сталкиваться (поскольку они основаны на CSS-селекторе), тщательное использование идентификаторов и классов может значительно помочь созданию на вашем последнем сайте грубых «песочниц», -end разработчик может работать относительно независимо.
В то же время (или отдельные части начинают стабилизироваться) вы можете выделить некоторую энергию для разработки стратегии интеграции для развертывания, которая включает в себя объединение ваших отдельных файлов CSS и JS в отдельные ресурсы (где это возможно) и gzipping, , и т. д.
Вы хотите следить за заказом, в котором вы объединяете свои CSS-файлы из-за присущего им каскада, но если вы их изолируете, ограничив все ваши селекторы стиля в пределах определенного тега ID'd для каждой части вы должны быть в порядке.
Попробуйте моделировать объектно-ориентированный подход к проблеме, чтобы одна группа разработчиков могла кодировать необходимую функциональность внутри объектов, в то время как другие основывались на функциях, которые объекты предоставили.
JavaScript отлично подходит для такого подхода: разработчики, которые строят на согласованных объектных интерфейсах, могут разрабатывать простые макеты прототипов, которые будут отброшены, когда будут записаны реальных объектов.
Конечно, как сказал jonnii, вы должны полагаться на некоторый SCM для управления параллельными изменениями в вашей кодовой базе. Даже если задачи разделены, разработчику, возможно, потребуется изменить код других. Я бы рекомендовал git или SVN, если вы находитесь под Windows (потому что у него есть TortoiseSVN, который очень мил, если вы только начинаете с SCM).
Похоже, вы уже знаете, какую часть продукта вы хотите, над чем работают разработчики, и спланировали рабочие нагрузки, чтобы предотвратить совпадение. Что-то вроде subversion позволит вам отслеживать, кто добавил какой предмет в какой документ, а также отменить нежелательные изменения или слить то, что ранее было переписано, и многое другое. Это бесплатно, и это спасатель жизни. :) HTH
Я знаю, что это может быть не вариант, но это то, где светит MVC или MVP archiecture. Он удаляет подход «веб-страницы» к разработке вашего сайта и переходит к строго типизированному дизайну кода модели, используя «методы» для вызова нужной логики. Другими словами, «физические страницы» не существуют в MVC, а только методы для объектов.
(Примечание: Я не разработчик Java, C# на самом деле, но и может получить идею)
Адрес страницы:
/products/532
С Url переписывание, это было бы «веб-страница "и его скомпилирован "код", как:
/products/showproduct.jsp?productid=532
/products/showproduct.java (code behind)
Но со страницами в MVC, это было бы:
/Controllers/ProductController.java <- ProductController.ViewProduct(int id)
/Models/ViewModels/Product.java <- Product() class
/Views/Product/Index.html <- very simple display of html.
ProductController ищет и получает ViewModel продукта(), прокладывает представление индекса, заменяет любые отображаемые переменные и, наконец, ProductController возвращает завершенный html клиенту.
Этот подход абстрагирует логику веб-страницы в коде, который может управляться, версироваться, объединяться, разветвляться и т. Д. В вашем исходном репозитории.
- 1. Структурирование большого PHP-проекта
- 2. Node.JS Express структурирование большого приложения
- 3. Структурирование большого проекта PHP + MySQL
- 4. Рекомендуемая структура ветвления TFS для нескольких разработчиков
- 5. EGit ветвление для нескольких разработчиков
- 6. Структурирование нескольких игровых объектов противника
- 7. Структурирование команды разработчиков программного обеспечения - по специализации или по задаче?
- 8. Модели для разработчиков и нескольких пользователей
- 9. Как использовать git для нескольких разработчиков
- 10. Использование ветвей git для нескольких разработчиков
- 11. Архитектура управления версиями для большого проекта со многими группами разработчиков
- 12. Структурирование нескольких модулей в арифметической викторине
- 13. Структурирование приложения для playframework
- 14. Структурирование исходного кода для нескольких версий веб-служб
- 15. Структурирование сообщения электронной почты для отображения на нескольких устройствах/клиентах
- 16. Структурирование Github для циклов выпуска
- 17. Преимущества MVVM для разработчиков фрилансеров?
- 18. Веб-сервер - Программа разработчиков для разработчиков ОС
- 19. Национальная панель разработчиков для разработчиков Android
- 20. Начальное приложение для разработчиков Android-разработчиков
- 21. Вопросы интервью для разработчиков Flash
- 22. Объединение нескольких учетных записей разработчиков AWS?
- 23. Структурирование тестов для унаследованного архитектуры
- 24. Структурирование URI для многостраничной формы регистрации?
- 25. Отправка приложений с нескольких учетных записей разработчиков
- 26. Виртуализация - мощность обработки, требуемая для нескольких серверов-разработчиков
- 27. GIT - Настройка для нескольких разработчиков на 1 машине
- 28. Могу ли я зарегистрировать свой iPhone для нескольких разработчиков?
- 29. Лучшая практика для PFX файлов в нескольких разработчиков среде
- 30. Как управлять и записывать изменения базы данных для нескольких разработчиков?
В идеале мы хотим, чтобы на лицевой стороне находилось более одного человека. – 2008-10-28 20:06:24
Если это так, пусть один парень будет парнем DAL/BLL, а остальные два разработчика работают в разных областях приложения. Если у вас многопользовательская среда, поставите одного человека на административные страницы, а другой - на общедоступные страницы. – 2008-10-28 20:18:05
похоже, что вы не совсем поняли вопрос; Кажется, aeryn71 спрашивает, как управлять несколькими webdevs, работающими над разложенными модулями, которые предназначены для отображения на одной странице. Он особо указывает на пользовательский интерфейс: «На заднем плане уже работает другая команда». – 2009-04-03 16:44:43