2009-08-01 2 views
4

Я программист с опытом работы на разных языках и платформах, но мне не хватает опыта в веб-разработке (за исключением некоторых базовых HTML, созданных PHP).Учебное пособие по веб-программированию

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

Есть ли у вас какие-либо рекомендации? Можете ли вы рассказать что-нибудь о W3Schhools tutorials?

Гроздь спасибо,

Уди

+0

PHP работает на Linux, и, поскольку вы уже, кажется, знакомы с этим языком, я бы начал там. Или я неправильно понял ваш вопрос? –

+0

Мне интереснее изучать HTML и CSS, вывод скрипта. –

ответ

5

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

  • У меня нет близкого знания о W3Schools вы упоминаете, но на первый взгляд это выглядит, они будут учить вас много базовой технологии интерфейс: HTML, XHTML, JavaScript, CSS и т.п. , Это неплохо и даст вам прочную основу в этих вещах. Но веб-разработка обычно не выполняется на этом уровне, поскольку она слишком утомительна и негибкая для больших приложений. И вам вообще не хватало бы технологии backend/database.

  • Тогда есть платформы (и я бы догадался, что это большинство), которые имеют templating. Вы реализуете страницу и бизнес-логику в сочетании HTML и кода программирования на каком-то языке (Python, Perl, PHP, ...) в HTML-файле, который затем обрабатывается движком для создания окончательного HTML для пользовательского интерфейса и кода транзакции для базы данных. Django и TurboGears являются видными представителями Python этого, Ruby on Rails, вероятно, самым большим именем в настоящее время. Но есть много других (как насчет Scala/Lift?), Поэтому стоит потратить время, чтобы посмотреть, какой из них вам больше всего нравится. Обычно они отлично справляются с обработкой базы данных. На стороне пользовательского интерфейса у вас все еще есть изменения страницы.

  • В этом ключе есть платформы, которые пытаются отойти от HTML со встроенным кодом до чистого программным. Вы просто пишете код и используете конкретные API данной платформы. «Компиляция» вашего проекта так или иначе будет генерировать все необходимые материалы, которые вы должны развернуть в среде выполнения. Я думаю, что Google's GWT и Eclipse RAP - это такие подходы, и если вы думаете, мечтаете и дышите в Java, это, вероятно, для вас.

  • Еще один подход интересен, когда изменения страницы в браузере (самая разрушительная часть веб-опыта) уже не достаточно хороши, когда вы хотите использовать пользовательские интерфейсы на рабочем столе. Способ атаки на это - создать «« живые веб-клиенты », в котором встроена логика взаимодействия, как правило, в Javascript, и они взаимодействуют с серверным бэкэндом только для существенной передачи данных с использованием протоколов Ajax, REST или RPC. Кандидатами для клиентской технологии являются, например, qooxdoo или Dojo. На стороне сервера вы можете использовать любую технику, с которой вам удобно (от RoR до Servlets и далее). Если бы у меня был выбор, я бы выбрал qooxdoo для интерфейса и Erlang/CouchDb на сервере.

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

+0

Большое спасибо - очень глубокий ответ! –

5

С вашего ведома Python, вы могли бы найти учебники как Django полезным. Он достаточно современен для использования в Google App Engine.

Также попробуйте TurboGears tutorial, еще один веб-фреймворк Python. Это даст вам другой подход к (современному) веб-программированию.

Найти введение и множество указателей на другие рамки на Wikipedia.

+1

+1: Учебник Django неплох. –

0

Ruby on Rails действительно интересен для быстрого развития. Он чист, он опрятен, и он позволяет сосредоточиться на важных вещах, таких как база данных и интерфейс.

Существует множество учебных пособий RoR. Есть почти две сотни Railscast учебных видеороликов по множеству предметов. Они тоже очень углублены.

В вашем текущем приложении также есть много мест для поиска справки. APIDock очень хорош для поиска способов использования и того, как работают разные части Rails. Вы также можете подумать о том, чтобы перейти на IRC IRC и попасть в комнату Ruby: #ruby.

Надеюсь, это полезно!

0

ОК ... самое главное - полностью абстрагировать свой механизм вывода (это может показаться вам тривиальным, но правда в том, что слишком много людей не подчиняются этому правилу и слишком мало учебников подчеркивают этот момент), так что за кратким API у вас есть механизм рендеринга (делайте ставку на HTML, XML, JSON или что-то такое), наиболее вероятно используя шаблоны ... это один из фундаментальных аспектов запросов на основе веб-приложений (это фактическое разница с настольными приложениями для меня) и охвачены любой лучшей инфраструктурой ... с использованием архитектуры MVC - это следующий шаг ... существует множество инфраструктур MVC практически для любого языка сервера, которые выполняют много работы для вас ... и MVC идеально подходит для приложений, основанных на запросах ... различие между бизнес-логикой и выходным генератором работает примерно в PERFECT ... ключевой момент для масштабирования e веб-приложение - это реализация вашей бизнес-логики, которая обычно включает в себя базы данных . ... это тоже вещь, с которой вам придется много работать ... создание хороших шаблонов HTML - это чертовски работа, но я бы утвердил, что это относительно легко, как только вы получите его повесить ... нет необходимости придумывать супер-креативные решения и новые подходы здесь ... плюс, для меня, стиль и скиннинг заменяемы ... это гораздо сложнее разработать хороший пользовательский интерфейс, который максимально эффективно раскрывает вашу функциональность, чем реализовать его, или даже сделать его фантастическим ...

на вашем месте, я бы не стал слишком разбираться в CSS, если только вы действительно хотите страницы DESIGN (найдите кого-нибудь еще, чтобы сделать это. возможно, даже HTML-шаблоны. серьезно, вы научитесь ненавидеть это ОЧЕНЬ быстро, особенно если вы попытаетесь заставить его работать в IE7 или ниже).скорее попытайтесь создать rockolid семантически хорошо структурированный HTML (хорошо для SEO и доступность (посмотрите на progressive enhancement, если на то пошло)) и изучите JavaScript. посмотрите на некоторые хорошие рамки ... jQuery, Ext ... независимо ... не изобретайте колесо здесь ...

кроме этого, haxe может представлять для вас интерес ... много полезных библиотек на haxelib ...

хорошо, надеюсь, что помогает ...;)

Greetz

back2dos

0

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

я бы рекомендовал следующие два

Существует также HTTP, который большинство людей не действительно Grok. Хороший способ понимания HTTP проходит через REST как стиль архитектуры. Джо Грегорио создал замечательную серию статей для постепенного внедрения веб-сервиса.

Надеется, что это помогает.

0

Если вы считаете, что тестирование важно, вам может быть интересно следовать подходу TDD (test-driven-development) - так что научиться тестировать веб-приложения Python так же важно, как научиться программировать веб-приложения Python. .

Я написал учебное пособие, которое начинается с нуля, в то же время, чтобы научить веб-разработке Python и TDD. Он охватывает тестирование на основе браузера с помощью Selenium, а также модульное тестирование.

http://www.tdd-django-tutorial.com/

комментарии и предложения приветствуются!

Смежные вопросы