Який шлях до майстерності JavaScript? [зачинено]


18

Я знаю, як ми починаємо з JavaScript, ми вирізаємо і вставляємо snippit, щоб отримати трохи функціональності або перевірки на стороні клієнта.

Але якщо ви слідуєте цьому шляху, намагаючись реалізувати насичену інтерактивну поведінку, це не пройде багато часу, перш ніж ви зрозумієте, що ви створюєте Big Ball Of Mud.

То який шлях до досвіду програмування шару взаємодії? Які книги, навчальні посібники, вправи та процеси сприяють здатності програмувати надійний, бездоганний JavaScript?

Ми всі знаємо, що практика важлива в будь-яких починаннях, але я шукаю шлях, подібний до відповіді тут: /programming/2573135/


"Шаром взаємодії?"
Роберт Харві

1
Повинен бути новий тег на мою думку: P
Майк

1
Ще одне питання, де відповідь є практикою, як і будь-яке інше поле, яке ви хочете освоїти. Практикуйтесь, вчіться у своїх однолітків (тих, хто більш кваліфікований), а чи згадував я практику. Процес освоєння мови програмування x такий же, як і для мови програмування y, який є таким же, як освоєння ліплення або в'язання гачком або будь-якої іншої торгівлі.
Кріс

1
@johnny: Коли ви можете вийняти виняток із сліду стека ...
TMN

1
@Chris - якщо ви перейдете за посиланням, яке я включив, ви побачите, що на таке питання можна корисно відповісти. Сказати "відповідь є практикою" не корисно. Вкажіть на деякі орієнтири на корисному шляху, не просто скажіть мені почати ходити.
Ерік Вілсон

Відповіді:


15

читайте код інших народів ( ЛОТ ) і намагайтеся зрозуміти, що вони роблять, і чому вони це роблять. Напишіть власний код ( ЛОТ ), спробуйте нові концепції та ідеї, перш за все пограйте та розважайтеся. Найкращий спосіб поправитись у чомусь - це попрактикуватись, попрактикуватись, а потім ще трохи потренуватися.

Читайте книги, навчальні посібники, статті, блоги, RSS-канали тощо.

Створіть проект, над яким працюватимете у вільний час. Якщо ви щось не можете придумати, знайдіть проект з відкритим кодом, над яким ви могли б працювати.

Крім того, не відволікайтесь і, перш за все, пам’ятайте, що «майстерність» - це не призначення, а подорож - прийміть це у своєму власному темпі, розважайтеся та насолоджуйтесь краєвидами. Якщо ви сприймете це занадто серйозно, ви згорієте, і це нікому не принесе користі.


7
Я б хотів, щоб це відповідало автоматично, коли хтось запитує "як навчитися / опанувати X". Дуже схоже на те, як ви опановуєте математичний доказ чи вдосконалюєте роман. Перегляньте інші роботи X, попрактикуйтесь з X, промийте, повторіть -> Master in X.
Chris

@Chris, Yup. Це майже моя стандартна відповідь.
Muad'Dib

Хоча я можу сказати, що питання, де можна отримати хороші довідники / книги / матеріали - це питання, які мені подобаються. Нещодавно взяв на себе python, і питання, яке ми мали у програмі .
Кріс

@Chris Так, ця відповідь є більш загальною порадою і не має певних кроків, які, на мій погляд, можуть бути дуже об'єктивними. Я теж люблю бачити посилання. Але це саме те, для чого Google, правда?
Muad'Dib

Правильно, але Google не може забезпечити будь-яку реакцію / враження матеріалу. Google робить добре, але це не все. Домовились незалежно. t
Кріс

9

Кілька посилань на майстерність JS


3

По-перше, ви повинні знати, якою буде ваша мета щодо вивчення JavaScript. Якщо ви просто хочете зробити деяку перевірку вводу та зробити користувальницький інтерфейс трохи простішим для користувача, тоді вам не потрібно мати повне глибоке розуміння мови, якщо ви використовуєте рамки, такі як jQuery .

Це означає, що якщо ви хочете отримати чітке розуміння JavaScript, спробуйте написати і розширення до існуючої основи, яка реалізує корисний інструмент.

Що стосується книг та інших ресурсів, я насправді не чула багато чого на шляху корисних книг, і, як правило, я вивчила мову, хоча намагаюся вирішити проблеми і перевіряючи, щоб мій код був чистим згідно JSLint . Поєднання цікавої проблеми (наприклад, розширення фреймворку), JSLint та достатньо часу, щоб отримати добру практичну практику, швидше за все, стане вашою найкращою ставкою щодо вивчення мови.


2

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

ECMAScript (це назва мовного стандарту - javascript посилається на кілька реалізацій) - дуже цікава мова. Це динамічна, функціональна та орієнтована на прототип об'єктно-орієнтована мова, тому вам слід витратити свій час, щоб зрозуміти принципи цих парадигм.

Дізнайтеся, використовуючи інтерактивну консоль у своєму браузері (у Chromium, ви можете отримати доступ до цього, натиснувши Ctrl+ Shift+ J), що схоже на такі інструменти, як IRB та інтерактивний інтерпретатор Python. Це корисно для тестування мовних функцій та налагодження.

Використовуйте JSLint для перевірки якості вашого коду.

Коли ви починаєте робити «справжню» розробку за допомогою DHTML, полегшіть своє життя, використовуючи рамки, такі як JQuery , для вирішення розчаруючих проблем між браузером.


1

Тут можна застосувати безліч методів, які роблять програміста експертом з даної мови, хоча у JavaScript є пара перлин, які дозволяють використовувати його до надзвичайного ефекту. Мабуть, одне з найбільших перешкод, яке мені довелося перевершити за допомогою JavaScript, - це скасувати менталітет програмування "С", тобто тисячу крихітних функцій, скупчених у єдиний js-файл.

Деякі загальні поради - абстрактно, коли можна, і намагайтеся формувати заняття, коли зможете організувати загальну поведінку. Створіть нові js-файли для будь-яких функціональних можливостей, які можуть бути використані для хорошого ефекту у ваших інших js-файлах (в межах причини) і уникайте глобальних змінних, якщо це можливо. Я дуже рекомендую вам вивчити jQuery, якщо ви ще цього не зробили. Це інструмент, який я полюбив, і тепер я не обійдуся. Це надзвичайно гнучка розширення javascript, яка дозволяє вам надзвичайно спростити свій код, що добре для простоти та можливості кодування швидко та ефективно. jQuery постачається з великою бібліотекою плагінів, яка дозволяє вам робити багато речей, які не могли б бути більш вражаючими, якби ви це робили у спалах. Перевірте інтерфейс jQueryдля цілої тематичної системи для вашого сайту, що дозволяє ефективно змінювати весь макет вашого сайту, не роблячи взагалі багато чого. Поставляється з безліччю ефектів анімації та зручними елементами керування, які зазвичай використовуються на веб-сайтах (інструмент вибору дати, кнопка, панель прогресу тощо), більшість з яких можна активувати за допомогою одного рядка javascript.

Сподіваюся, що це допомагає!


1

Багато з того, що ви робите в JavaScript, по суті переплітається з сумісністю DOM, CSS та браузера, тому розуміння DOM є однією з головних вимог до оволодіння JavaScript.

Вивчення основних особливостей мови, таких як орієнтація об'єкта на основі прототипу, анонімні функції та більш загальні мовні функції, такі як петлі, умови тощо, є ключем до розуміння будь-якого прочитаного вами коду, який спеціально не взаємодіє з DOM / CSS .

Вам також потрібно буде вивчити стандартну бібліотеку мови, наприклад, String and Math та інші основні функції об'єкта.

Ви також повинні вивчити алгоритми, якщо ви хочете отримати справжнє і повне розуміння того, як все робиться, і як реалізувати більш досконалі рішення, ці знання є основними для розуміння розширеного програмування і виходять за межі синтаксису, що відповідає мові.


1

Прочитайте код використовуваних бібліотек. Читання джерела jQuery або Prototype навчить вас oodles про те, що насправді відбувається в javascript та в dom. Методи дослідження, якими користуються бібліотеки, щоб ви могли їх зрозуміти. Не соромтеся починати, читаючи мікро-рамки на веб -сайті http://microjs.com/ . Переконайтеся, що ви дивитесь на власне джерело, а не лише на розподілені файли. (jQuery має десяток і більше таких вихідних файлів, але вони збираються процесом збирання.)


0

Зараз JavaScript застосовується у багатьох областях розвитку.

  • Це єдина мова, присутня в сучасному браузері.
  • Він може працювати на сервері, завдяки node.js та двигуну V8.
  • Він може працювати вбудовано в мобільні пристрої через PhoneGap або інші альтернативи.
  • Його можна використовувати для створення програм Windows 8.

Тому я вважаю, що існує більше майстерностей javascript. Це залежить від того, з чого ви хочете почати, але будьте впевнені, кожен із цих 4 предметів, згаданих вище, поставить перед вами різні завдання - нормально, можливо, вікно 8 та поля фонегапу можуть бути схожими, але решта відрізняються -.

Якщо ми говоримо про середовище браузера, то вивчення того, як майже кожен веб-додаток повинен бути організований, може бути одним із шляхів, якими ви можете піти. Я йду цим шляхом і експериментую з власними ідеями, перевіряючи git repos таких популярних бібліотек організації коду, як dojo, хребет, ембер тощо.

Якщо ми говоримо про середовище njs js, це вже інша історія. Ми не переймаємось мінімізацією та розміром файлу. Створюючи цілі програми в вузлі, будуючи системи, сайти, REST api, там є багато чого відкрити.

Якщо ми говоримо про мобільний світ, над оптимізацією приходить на думку. CSS3, прискорені властивості, анімації, сенсорні події та спроба використовувати ту саму архітектуру, що й Інтернет з більш спеціалізованими компонентами інтерфейсу - це чудові речі.

Загалом, як відповіли інші, експеримент із власним кодом та з кодом інших - це найкращий спосіб долучитися, бути в курсі нового та, хто знає, можливо, придумати наступну велику справу.

Ще одна річ, яка допомагає, це робота в команді та розуміння відмінностей між вашим способом та способом написання коду команди. Працюючи в команді розробників javascript, ви змусите вас написати кращий код та добре документувати його. Я думаю, немає кращого способу дізнатися про архітектуру програми, ніж написати вікі про те, що ви маєте намір реалізувати або вже реалізували.


-1

Я ненавидів JavaScript, поки не виявив jQuery. Зараз я люблю це і постійно користуюсь ним. Напевно, занадто багато.


Ви ненавиділи DOM і відповідність крос-браузера, а не EcmaScript.
Райнос

jQuery робить Javascript цікавим! +1
Динамічний
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.