Общие рекомендации по разработке веб-приложения - PullRequest
3 голосов
/ 11 июля 2010

Как программист, привыкший к разработке нативных приложений, я расширяю свой кругозор и разрабатываю свое первое веб-приложение.Я средний и эксперт по Linux и C, средний по Python и HTML, а начинающий - по MySQL и Java.

Я занимаюсь разработкой веб-приложения, которое более или менее выделяет ресурсы для другамой.Проще говоря, я хочу, чтобы эта программа помогала ему управлять работой, назначать техников и оборудование.Основным экраном будет встроенный фрейм Календаря Google, который можно динамически обновлять с помощью.их API.Теперь для выполнения определенных работ технические специалисты должны иметь определенные сертификаты, а оборудование должно быть откалибровано по определенному графику.Я также хотел бы отслеживать дополнительные данные, такие как номера телефонов, адреса электронной почты, сведения о работе и т. Д. В довершение всего, я хочу, чтобы это выглядело красиво!

Я потратил довольно много временизнакомство с PHP, JavaScript и DOM, и я разработал некоторые функциональные возможности и аккуратный интерфейс.До сих пор я программировал на стороне сервера w / PHP для доставки динамического HTML через.MySQL, а затем JavaScript для управления DOM.У меня есть таблицы для техников, сертификаты, рабочие места, номера телефонов и т. Д.

Мои вопросы:

  1. Что-то не хватает в моем общем подходе к разработке веб-приложения?(Сценарии на стороне сервера взаимодействуют с базой данных для создания динамического HTML, который затем обрабатывается на стороне клиента с помощью сценариев DOM / на стороне клиента).

  2. Я выбрал PHP, потому что он обычно связан с веб-разработкой.Какие есть альтернативы?Как новичок, я хотел бы знать «лучший» язык на стороне сервера для изучения (и я готов принять вызов), или, по крайней мере, знать об альтернативах.

  3. Что касается клиентской части, то кажется, что JavaScript - это ЭТО.Это?

  4. Я много слышал об AJAX, но почти ничего не знаю об этом.Является ли это альтернативой генерации HTML на стороне сервера через.база данных?Что это / преимущества / недостатки.

  5. Я читал, что фреймы устарели.Должен ли я перейти от кадров и больше к манипулированию DOM?

  6. Если это приложение будет доступно через Интернет, мне нужно будет настроить систему входа в систему.Каковы обычные способы настройки аутентификации с использованием размещенных или частных служб?
  7. (Немного не по теме) Есть предложения по бесплатному хостингу?Я студент, и хостинг сервера сам по себе был бы ненадежным для моего друга.
  8. Я бы очень хотел реализовать большую часть этого проекта через.Питон как возможно.Что Python может сделать с точки зрения программирования для браузера и что для этого потребуется?

Ответы [ 3 ]

3 голосов
/ 11 июля 2010
  1. Что-то не хватает в моем общем подходе к разработке веб-приложения? (Сценарии на стороне сервера взаимодействуют с базой данных для создания динамического HTML, который затем обрабатывается на стороне клиента с помощью сценариев DOM / на стороне клиента).

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

  1. Я выбрал PHP, потому что он обычно связан с веб-разработкой. Какие есть альтернативы? Как новичок, я хотел бы знать «лучший» язык на стороне сервера для изучения (и я готов принять вызов), или хотя бы знать об альтернативах.

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

Очень быстро, PHP является наиболее распространенным, потому что его проще всего настраивать, но он имеет множество ошибок. Perl - старая школа и довольно нечитаемый. Python и Ruby в настоящее время самые горячие благодаря удивительным динамическим фреймворкам (CherryPy и Django против Sinatra и Rails), но конкуренция сильна, и каждый выбрал сторону. Я скажу вам, что с Руби приятнее работать, но кто-то еще скажет то же самое для Python. Однако их настройка немного сложнее (то есть обычно не является стандартной опцией для большинства хостинг-провайдеров).

  1. Что касается клиентской части, то кажется, что JavaScript - это ЭТО. Это так?

Вот и все, если вы говорите о HTML. Альтернативы умерли.

  1. Я много слышал об AJAX, но почти ничего не знаю об этом. Является ли это альтернативой генерации HTML на стороне сервера через. база данных? Что это / достоинства / недостатки.

AJAX - причудливое имя для выполнения HTTP-запроса из JavaScript без перезагрузки страницы. Запрашиваемый контент может быть исполняемым JS, или синтаксическим XML, или готовым для вставки HTML ... и это единственный способ получить некоторые данные на стороне клиента без обновления всей страницы.

  1. Я читал, что фреймы устарели. Должен ли я перейти от кадров и больше к манипулированию DOM?

Выраженный Да . Тем не менее, iframe имеют свое (ограниченное) использование. Скорее всего, они вам не нужны.

  1. Если это приложение будет доступно через Интернет, мне нужно будет настроить систему входа в систему. Каковы общие способы настройки аутентификации с использованием размещенных или частных служб?

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

Другим способом является OpenID, но для этого требуется сторонний поставщик OpenID.

  1. (Немного не по теме) Есть предложения бесплатного хостинга? Я студент, и хостинг сервера сам по себе был бы ненадежным для моего друга.

Не слишком хорошо осведомлен. Я знаю о comyr (общего назначения) и heroku (Ruby), оба бесплатных для некоммерческого использования, AFAICR, но некоторые исследования помогут вам получить больше.

  1. Я бы очень хотел реализовать как можно больше этого проекта. Питон как возможно. Что Python может сделать с точки зрения программирования для браузера и что для этого потребуется?

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

Но я думал, что вы выбрали PHP? ...

2 голосов
/ 11 июля 2010

Чего не хватает в моем общем подходе к разработке веб-приложения?(Сценарии на стороне сервера взаимодействуют с базой данных для создания динамического HTML, который затем обрабатывается на стороне клиента с помощью. DOM / сценарии на стороне клиента).

Вам понадобится планировщик типа cron для принудительного примененияна стороне сервера за пределами календаря.Календарь отлично подходит для записи событий (таких как техническое обслуживание оборудования или вызовы для инженеров), но для обеспечения этого вам может потребоваться приостановить вызовы для инженера, если их оборудование пропустило техническое обслуживание и т. Д.

Я выбрал PHP, потому что он обычно связан с веб-разработкой.Какие есть альтернативы?Как новичок, я хотел бы знать «лучший» язык на стороне сервера для изучения (и я готов принять вызов), или, по крайней мере, знать об альтернативах.

Есть много альтернатив, Pylons или Google App Engine могут быть хорошими альтернативами для вас из фона Python.

Что касается клиентской части, то кажется, что JavaScript являетсяЭТО.

Существует Flash , Silverlight и т. Д. jQuery (платформа JavaScript), кажется, популярным выбором.

Я много слышал об AJAX, но почти ничего не знаю об этом.Является ли это альтернативой генерации HTML на стороне сервера через.база данных?Что это / преимущества / недостатки.

AJAX сводится к динамическому обновлению просматриваемой страницы вместо создания новой страницы каждый раз.

Я читал эти кадрыосуждаются.Стоит ли переходить от кадров и больше к манипулированию DOM?

Это зависит от того, переходите ли вы в AJAX или нет.iframes, скорее всего, останутся, даже если из браузеров будут удалены традиционные фреймы.

Если это приложение будет доступно через Интернет, мне нужно будет настроить систему входа в систему какого-либо рода.Каковы распространенные способы настройки аутентификации с использованием размещенных или частных служб?

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

(Немного не по теме) Есть предложения бесплатного хостинга?Я студент, и хостинг сервера сам по себе был бы ненадежным для моего друга.

Google App Engine бесплатен для 5 миллионов просмотров страниц в месяц (приблизительно).Если вы выставите счет на 0 долларов в день, вы получите еще больше ресурсов бесплатно.

Я бы очень хотел реализовать как можно большую часть этого проекта.Питон как возможно.Что Python может сделать с точки зрения программирования для браузера и что для этого потребуется?

Если вы программируете для использования Internet Explorer, вы можете вызывать Python с использованием объекта activex, но тогда все становится запутанным.

В качестве дополнительного бонуса Google Support Engine планирует графики, имеет встроенные библиотеки для общения с Календарем Google, поддерживает OpenID (так называемый федеративный вход в систему) и предоставляет бесплатный хостинг для небольшого использования.

ТипПриложение, которое вы описываете, обычно называется «Полевая служба».Другие вещи, на которые вы можете обратить внимание: ViaPost для рассылки документов, Lone Worker для обеспечения безопасности инженеров на месте (может быть регулирование), планировщики (существует много моделейи системы, в том числе те, которые используют триангуляцию для повышения эффективности работы инженеров) и автоматизированные голосовые системы (некоторые из них имеют API) в сочетании с отслеживанием транспортных средств для информирования клиентов об опоздании инженера (это может быть автоматизировано).

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

1 голос
/ 11 июля 2010

Я хотел бы предложить отказаться от PHP как можно скорее.Поиск 'php wtf' здесь должен быть осветительным.Хотя можно писать безопасные, надежные и надежные приложения на PHP, я думаю, что это несмотря на все усилия команды PHP по созданию самого захватывающего и удивительного языка EVAR .С множеством забавных побочных эффектов.И притворяйся-параметры безопасности.Если большая часть того, на что похож PHP, вам нравится, я думаю, что вместо этого я бы предложил использовать Perl.Это должно быть гораздо менее удивительно.

Так что, с моими разглагольствованиями против PHP, у вас МНОГО гораздо лучших вариантов.В Python есть Django, Zope и Twisted Matrix.Каждый из них решает разные задачи, позволяя вам писать приложения на разных уровнях: Django налагает некоторую структуру Model-View-Controller на ваш код, Zope - гораздо более крупную инфраструктуру CMS, а Twisted Matrix предоставляет множество супер-острых программных примитивов, если выхочу писать вещи довольно близко к проводу.(Вы похожи на пять строк кода от очень простого, но аккуратного веб-сервера с Twisted, который запускает код вашего приложения ..)

Если вы действительно хотите изучать другой язык в процессе,Ruby on Rails получает много шумихи, и в основном по веским причинам.Я действительно наслаждался кодированием Ruby on Rails, навязанная структура является фантастической для чего угодно, кроме тривиальных приложений, и в большинстве случаев она уходит с вашего пути с разумными предположениями.

Perl - это «старый резерв».Я бы взял это за PHP в любой день, но я не могу перенести OL или систему модулей Perl.Поэтому мне трудно действительно это одобрить.

Я бы хотел предложить вам не использовать Flash и Silverlight на стороне клиента: во-первых, Flash - это гигантская катастрофа с ресурсами и катастрофа в области безопасности, а Silverlight, хотя, вероятно, и лучшечем Flash на обоих фронтах, даже на 1013 * меньше портативнее, чем Flash.(Я настоятельно рекомендую попробовать ваш сайт в нескольких мобильных браузерах; он не должен выглядеть симпатично , но все должно работать.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...