Должен ли я использовать структуру во время обучения веб-разработке
Я понимаю, что это может быть субъективным, но мне действительно нужен ответ на этот вопрос, и я не могу найти что-то достаточно близко к нему в остальной части Форума. Я прочитал, что некоторые люди говорят, что структура (любая инфраструктура MVC) может скрывать слишком много вещей, в то время как другие говорят, что она может способствовать передовым методам. Я понимаю, что рамки отлично подходят для определенного уровня программиста, но как насчет того, чтобы люди начали? Следует ли просто сосредоточиться на языке или узнать их вместе?
Ответы
Ответ 1
Я думаю, что веб-разработка намного больше, чем кто-либо схватывает, когда они впервые начинают в нее входить! Прочтите это и знайте, что все это необязательно... но вам нужно быть действительно хорошим в том, что вы делаете.
Я предлагаю вам сначала изучить язык. Я бы предложил изучить С# просто потому, что он намного более продаваемый и обычно поддерживается непосредственно в большинстве продуктов MS. Изучая С# - программирование в ASP.NET, консольные приложения, серверы, службы, настольные приложения и т.д. Все будут в пределах досягаемости. Вы можете запрограммировать большинство продуктов MS, а также на многих платформах Linux.
Как только у вас это будет, вы можете перейти к программированию для Интернета, поскольку для программирования в Интернете есть некоторые тонкости, которых нет в большинстве других сред. Концепции, такие как сеансы, кеширование, управление штатами, межсайтовый скриптинг, стилизация, клиентская сторона и серверное программирование, поддержка браузера, работа HTTP, получение сообщения о нарушении, способ работы формы, файлы cookie и т.д. Находятся на вершине список предметов, которые нужно изучать отдельно, не говоря уже об изучении базовых фреймворков и пространств имен ASP.NET.
Когда у вас есть язык программирования вниз, а затем концепции веб-программирования, я предлагаю вам приостановить и изучить дизайн базы данных. Не беспокойтесь о производительности, пока... попробуйте сначала изучить хороший дизайн. Далее придет производительность. Хорошим началом для вас является доступ (богохульство, которое я знаю). С новичком легко работать. И это легко преобразуется в более надежную платформу, такую как SQL Server. Изучите, по крайней мере, некоторый SQL... но я предлагаю вам учиться так же, как и ваш желудок. Я слышал, что кто-то говорит, что SQL похож на язык ассемблера базы данных. Первым делом, замедляющим приложение, является плохой дизайн базы данных и плохие запросы. Как только у вас есть это знание - напишите это в глубине вашего разума и взгляните на хороший ОРМ. NHybernate, вероятно, лучше всего на данный момент, но более сложна, чем требуется базовому ученику. По этой причине в настоящее время я предлагаю запустить LINQ to SQL и работать, поскольку он работает с SUPER EASY. Затем посмотрите на Entity Framework (хотя я все еще думаю, что это отстойно... и вам стоит подождать, пока EF 2.0... ERRRRR... теперь 4.0 выпущен с .net 4.0). Затем NHybernate.
Настало время начать понимать инфраструктуру, необходимую для веб-разработки. Вы можете столкнуться с этим, когда вы изучите некоторые материалы веб-программирования. Но вам нужно понять основы DNS, IIS, балансировки нагрузки, липкую маршрутизацию, круговую разметку, кластеризацию, отказоустойчивость, настройку аппаратного обеспечения сервера, веб-фермы, фермы кэшей (MemCached Win32, Velocity), SMTP, MSMQ, и т.д. Многие люди могут сказать, что вам это не нужно. Что будет полезный администратор сети, который поможет вам здесь. Однако они обычно знают то, что воздействует на них... не вы. Чем больше вы знаете, тем более ценным вы окажетесь в компании, которая нанимает вас.
Теперь вы можете ознакомиться с деталями лучших практик и шаблонов проектирования. Узнайте об основных принципах, таких как шаблон репозитория, шаблон factory, шаблон фасада, шаблон представления представления модели, шаблон контроллера модели, шаблон наблюдателя и многое другое. Следуйте за Мартином Фаулером и другими за предложениями здесь. Взгляните на такие понятия, как инверсия управления, инъекция зависимостей, принцип SOLID, DRY, FIT, дизайн, основанный на тестах, и дизайн, основанный на домене, и т.д. Узнайте, как вы можете здесь, прежде чем перейти к следующему шагу.
СЕЙЧАС вы можете думать о каркасах! Начните с создания базового приложения с помощью ASP Classic (поставляется с IIS бесплатно!). Это даст вам вкус без излишеств в веб-среде разработки. Взгляните на веб-формы ASP.NET(кратко), чтобы увидеть, как MS попыталась облегчить ситуацию, спрятав все сложные вещи (которые вы теперь знаете, как самостоятельно управлять своими показаниями из вышеуказанных материалов!!!). Теперь вам больше не нужны веб-формы ASP.NET. Немедленно перейдите в ASP.NET MVC. Фреймворк MVC дает вам всю необходимую мощность для создания хорошо управляемого веб-приложения. Если вы создадите что-то действительно большое, никакие рамки для чистой веб-разработки не смогут справиться с тем, что вам нужно. Однако MVC является более расширяемым для таких пользовательских сценариев UBER.
Теперь, когда вы прошли через дорогу к ASP.NET MVC, вы можете взглянуть на такие вещи, как Microsoft Enterprise Application Blocks (например, они используются в MySpace). Посмотрите Elmah запись ошибок (обязательно). Посмотрите, как создать настраиваемый SiteMapProvider для вашего сайта MVC. Если вам нужно найти материал для поиска, Lucene.NET.
И если вы сделали это так далеко, вы готовы разобраться в остальном сами по себе, когда он появится! Удачи. В этом пространстве есть много места для человека с некоторым пониманием всех вышеперечисленных концепций.
Ответ 2
Веб-разработка требует определенной степени организации, поскольку она так сильно зависит от разделения проблем. Браузер, например, предназначен для отображения данных и взаимодействия с пользователем. Он не предназначен для поиска данных из базы данных или анализа. Следовательно, структура веб-разработки может помочь предоставить услуги, необходимые для того, чтобы сделать браузер более практичным.
Самое приятное в использовании платформы - это то, что она предоставит основные компоненты, необходимые для создания любого веб-приложения, которое вам не нужно (и не должно) думать, например, о членстве пользователей. Многие дизайнерские решения и глубокое размышление о том, как реализовать эти услуги, уже были сделаны для вас, освобождая вас, чтобы сосредоточиться на том, что вы действительно хотите, чтобы ваше приложение выполняло.
Из доступных фреймворков я нахожу, что фреймворки, реализующие шаблон MVC (model-view-controller), очень практичны. Они четко организуют различные функции веб-разработки, предоставляя вам полный контроль над разметкой, представленной в браузере.
Все, что сказано, вам понадобятся некоторые фундаментальные навыки, чтобы полностью реализовать веб-разработку, такую как HTML, CSS и основной язык программирования для основной базовой программы, независимо от того, используете ли вы платформу или нет.
Ответ 3
Вы будете использовать некоторую структуру. Вопрос в том, на каком уровне вы хотите учиться?
Вам, вероятно, не стоит узнавать об асинхронных вводах-выводах и mutlithreaded против стилей выбора/опроса веб-серверов.
Итак, ваш язык выбора будет обеспечивать слой поверх этого, языки предпочитают API "веб-интерфейса". Для Java это Servlets, самый низкий уровень, который вы обычно кодируете для веб-приложений на стороне сервера.
Вы должны найти, что этот слой "нижнего уровня" на вашем языке, и изучить API по крайней мере. Вы должны знать базовые HTTP-коды состояния, файлы cookie, перенаправления, POST vs GET, кодирование URL и, возможно, некоторые из более важных заголовков.
Затем вы поймете, что эти высокоуровневые структуры принесли в таблицу, и сможете лучше оценить, какой уровень абстракции подходит для ваших потребностей/проекта.
Ответ 4
Я не думаю, что согласен с Эндрю. Я не думаю, что обучение C является предварительным условием для веб-разработки. На самом деле, изучение чего-то вроде Javascript, Action- script или PHP часто бывает проще из-за большого количества доступных сайтов и обучающих программ, и их достаточно, чтобы разоблачить основные принципы программирования. Переменные, условия, циклы и ООП. Я просто думаю, что обучение С# знакомит с большим количеством обучения, которое не имеет особого отношения к веб-разработке, например, указатели и управление памятью.
Что же касается вас, вы должны сначала изучить структуру? Точно нет. Никогда. Вы должны быть в состоянии стоять на своих двух ногах в первую очередь и быть комфортно с HTML/CSS, на стороне сервера Scripting (PHP/ASP/Python/Ruby) и любить его или ненавидеть, но вам придется иметь достойное понимание Flash и Action- script.
Порядок, в котором вы их узнаете, полностью зависит от вас. Но мой учебный план будет таким...
Начните с HTML. Потребуется около получаса, чтобы получить основы (они состоят из тегов с атрибутами, конец урока 1), и это хорошо, чтобы сначала избавиться от него.
Затем начните использовать CSS. Вы снова получите основы, очень быстро. Но CSS - это минное поле, поэтому ожидайте провести остаток своей жизни, выясняя это.
Следующее действие - script. Большинство людей не согласились бы со мной, но несут меня. HTML и CSS не являются языками программирования. Действие - script есть. И изучение программирования языка в первый раз является сложным и утомительным. Преимущество Action- script на большинстве других языков заключается в том, что результаты очень визуальные. Это приятно работать, и вы можете сидеть сложа руки и гордиться своими достижениями через регулярные промежутки времени. Это невозможно с серверными скриптовыми языками или Javascript, и там есть целый ряд материалов, которые вам нужно научиться запускать и запускать серверные скрипты. Вы не можете создавать космические захватчики в PHP, например.
Я изменил свое мышление здесь. Я бы рекомендовал начинающим игнорировать ActionScript и сосредоточиться на Javascript. Я по-прежнему считаю, что возможность быстро увидеть материал на экране - хороший мотиватор, но я бы посоветовал людям смотреть на теги и рамки для холстов. Javascript прошел долгий путь с 2009 года, и теперь он является языком программирования, поэтому он невероятно полезен. Мой исходный пункт о HTML и CSS, не являющихся языками программирования, все еще стоит.
Затем вы можете начать со своего языка на стороне сервера. В то же время вам придется выяснить материал базы данных. Я рекомендую PHP и MySQL, потому что он бесплатный.Дел >
Опять же, я изменил свое мышление здесь. Я бы посоветовал начинающим использовать Javascript на бэкэнде (Node.js) и разделить их изучение базы данных между реляционными базами данных и решениями noSql, такими как Mongo.
Затем... узнайте свою структуру. Или еще лучше, сверните свой собственный. Это то, что я делал, и это наполнило мое обучение.
Если вы попадаете в веб-разработку, вам нужно знать, как работают эти строительные блоки. Вам не обязательно быть экспертом во всех областях, но вы должны попытаться стать экспертом по крайней мере в одном из них. Если вы начнете изучать рамки до того, как получите основные принципы, вы окажетесь в липкой средней точке, где вы не поймете, почему что-то не работает, что вас разозлит, и всех, кто должен работать с вами.
Ответ 5
вы должны научиться использовать фреймворк, потому что в будущем это будет полезно для вас, и его легче освоить.
MVC поможет вам многое... доверься мне... я разрабатывал веб-проект, не используя mvc, и это похоже на беспорядок... (в прошлом нет хорошо известных mvc, и я никогда не слышал об этом)
Ответ 6
Короткий вариант: да, а затем некоторые.
Ответ 7
FWIW: Этот более общий ответ может быть полезен для кого-то там.
Что: Рамки снова и снова извлекают скуку с использованием кода котельной. Они скрывают сложности и проблемы дизайна под мастерами и соглашениями. Они также используют специальные библиотеки, шаблоны проектирования и т.д. Способами, которые далеко не очевидны для новичков.
Таким образом, использование фреймворка полезно для того, чтобы все было сделано, не зная точно, как использовать ATM, не зная внутренности. Вы просто добавляете свои биты кода в определенные места, и вещи "просто работают".
HTML > CSS > Ruby > SQL > Rails/Javascript framework > Библиотеки создадут хороший учебный трек. Постарайтесь учиться, когда вы идете вперед, будучи любопытным, болтающимся на форумах или расширенным обучением по мере необходимости.
КАК: Проблема начинается с минуты, когда вы выходите за пределы простых примеров текстовых книг (т.е. когда вы пытаетесь заставить его сделать что-то даже немного другое).
Расшифровка загадочных сообщений об ошибках, когда кажется, что вы все сделали правильно, но все еще не работает. Поиск по ошибкам в форумах может помочь. Или просто начинайте с нуля.
Чтение статей и книг, видеороликов, пробных ошибок, трудовых, поисковых движков, stackoverflow/форумов, локальных гуру, дизайнерских статей, использование библиотек, просмотр исходного кода - хороший способ подняться на обучение кривой мягко и на основе требований.
Работа-против-рамки - проблема номер один для начинающих. Понимание того, что ожидает система, является ключом к предотвращению появления белых волос на этой фазе. Имея достаточно знаний, чтобы вручную делать то, что автоматизирует каркас, может помочь уменьшить эту попытку второго угадывания.
ПОЧЕМУ: Для более продвинутой отладки/дизайна хорошо знать, что делает инфраструктура под капотом esp. когда что-то не работает, как вы планировали. Первоначально вы можете взять на себя помощь локальных гуру или гуру форума, которые уже сделали тяжелую работу. Позже, когда вы пойдете глубже, вы можете взять на себя большую часть этой роли. Например, есть книга "Восстановление рельсов", которая выглядит под капотом Ruby on Rails.
Примечание. Некоторые из советов ориентированы на Ruby/Rails, но вы можете легко заменить ваш любимый язык/фреймворк.