Нужна помощь в определении того, как подойти к созданию моего проекта - PullRequest
2 голосов
/ 17 мая 2011

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

Итак, имея в виду идею онлайн-приложения с генеалогическим деревом, вот некоторые характеристики. - Я не хочу использовать вспышку. - Приложение должно быть масштабируемым и прокручиваемым (вроде как Google Maps) - Приложение должно иметь возможность добавлять контент без перезагрузки страницы. Возможно, есть небольшой знак «+», и когда я нажимаю на него, я могу добавить тег / заголовок / описание / изображение - Приложение должно быть в состоянии сохранить вашу работу для того, чтобы этот пользователь впоследствии мог ее найти. - Макет, в котором пользователь может создавать вид, является своего рода виджетом, в котором пользователь может добавить новый пузырь, а затем в этот пузырь он может добавить текст или контент.

Я начал программировать это с помощью HTML5 canvas и Javascript, но я застрял при создании соединения с базой данных, которое не напрямую из Javascript (потому что это кажется мне небезопасным). Но я не просто озадачен тем, как безопасно взаимодействовать с базой данных (у меня даже не выбрана база данных), но я также обеспокоен тем, что не смогу создать приложение только с помощью javascript и может понадобиться что-то еще, например ajax или что-то еще, но я не знаю, что делает каждый язык в наши дни.

Ответы [ 4 ]

1 голос
/ 17 мая 2011

Если вы начинаете с нуля, то лучшим языком будет тот, который вам наиболее удобен. С другой стороны, если вы не планируете разрабатывать все самостоятельно , и у вас уже есть какие-то другие заинтересованные стороны на борту , то лучшим языком для вас будет тот, с которым большинству из вас удобно. Если это только вы, а у вас еще нет избранных, то посмотрите вокруг и поиграйте с несколькими из них - это способ only , чтобы узнать, действительно ли вам понравятся / будут эффективны с ними.

При этом некоторые из наиболее вероятных кандидатов в наши дни:

  • JavaScript: Давно прошли те времена, когда этот язык был просто способом поместить D в DHTML. В наши дни JavaScript является жизнеспособным клиентским языком и на стороне сервера. (Другие здесь уже рекомендовали Node.js - я бы также рекомендовал NPM (менеджер пакетов узлов) для обработки ваших зависимостей). При небольшом планировании вы можете повторно использовать большую часть кода приложения как на стороне клиента, так и на стороне сервера. С другой стороны, большая часть серверной технологии является очень новой (максимум несколько лет), и поэтому вы можете обнаружить, что внедряете инструменты для использования в своем приложении, а не в самом приложении. Найти серверы, которые его поддерживают, также будет сложнее, опять же из-за его возраста.
  • Perl: На противоположном конце спектра возраста мы находим Perl - первый широко распространенный язык, используемый для создания веб-приложений. все еще поддерживает множество полезных веб-сайтов. там (включая новые, такие как Pinboard.) Инструменты, которые популярны на CPAN , были проверены под fire . Хорошей новостью является то, что она никуда не денется в ближайшее время. Плохая новость в том, что вам, возможно, придется поискать немного сложнее, чтобы найти модуль, который поддерживает [ эту самую новую, самую плохую вещь, которая только что вышла вчера ].
  • PHP: ОСНОВНОЙ (или Perl, в зависимости от того, кого вы спрашиваете) современного Интернета, PHP был разработан с нуля, чтобы сделать одну вещь - сделать создание динамических веб-страниц проще. Его популярность означает, что существует довольно большая поддержка серверов (PHP + Apache + MySQL - это модель T Ford для веб-серверов - каждый может себе это позволить) и огромное количество готового кода, доступного для прочтения. Однако, как и BASIC, сильная сторона PHP - это также и его самая большая слабость. Почти каждый может написать что-то, что работает в PHP ... насколько хорошо это работает, зависит от того, кто это написал. caveat emptor , который применяется ко всем фрагментам кода, найденным в Интернете, применяется в качестве пиков к фрагментам кода, написанным на PHP.
  • Python: Язык, который снова сделал программирование забавным (по крайней мере, для тех, кто может видеть за пределами значительного пробела и отсутствия блоков / анонимных функций и игнорировать <3.x's <a href="http://farmdev.com/talks/unicode/" rel="nofollow"> проблемы с не ASCII из коробки .) Это универсальное, гибкое и мульти - парадигма язык с довольно существенной стандартной библиотекой (но без .NET или невероятных возможностей Java). Кроме того, в нем было проделано довольно много работы, поэтому есть большая вероятность, что то, что вам нужно, уже разработано кем-то другим. Плюс, это может заставить вас летать .
  • Ruby (с или без Rails): Язык, который сделал Интернет интересным, в сочетании, если хотите, с каркасом, который сделал MVC крутым . Существует много документации и большое сообщество со множеством готовых инструментов (называемых gems ), из которых можно выбирать - бесплатные и дешевые серверы не так распространены, как их Аналоги PHP, но они, вероятно, будут более высокого качества (при случайном выборе).

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


С другой стороны, если вам нужно что-то более сложное или менее распространенное ... Я работаю с .NET приложениями на работе и с Lisp (SBCL) на основе услуги в свободное время. Я слышал много хорошего о Lua и Java тоже ... есть, по крайней мере, два C ++ веб-фреймворки ... и я уверен, что есть кто-то развлекается созданием веб-сервиса на языке COBOL с бэкэндом FORTRAN. ; -)

1 голос
/ 17 мая 2011

Как уже указывалось, вам нужно будет работать и с языком на стороне сервера.(Ruby, Python, PHP) Вы совершенно правы, что вам не следует пытаться подключиться к базе данных через javascript в браузере.

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

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

0 голосов
/ 17 мая 2011

Если вы уже знакомы с HTML5 и JavaScript, могу ли я порекомендовать использовать Node.JS ? Это самое близкое к тому, что вы уже знаете о разработке браузеров. Он также может подключаться к системам баз данных, которые ближе к HTML5 IndexedDB .

.

с учетом этого ...

Если вы не знакомы с программированием и языками программирования, то приложение, которое вы описываете, будет включать довольно большую кривую обучения. Хотя Flash и Flex имеют действительно приятные интерфейсы для создания приложений с помощью перетаскивания мышью, инструменты для HTML5 гораздо менее развиты.

Это не значит, что это невозможно с HTML5. Просто еще есть время подождать, пока люди не создадут инструменты, чтобы приблизить процесс создания приложений к тому, что предоставляет Adobe.

0 голосов
/ 17 мая 2011

Вам понадобятся серверные сценарии на языке, таком как PHP или Ruby on Rails для взаимодействия с базой данных.

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