Чи корисно вивчати основи основної мови, коли головна мета - спиратися на її рамки? [зачинено]


10

Будь ласка, майте на увазі, це не інше "Скільки [ вставте сюди мову програмування ] я повинен знати, перш ніж перейти до [ вставити рамку сюди ]?" Що я хотів би знати, наскільки корисно вивчити ті передові концепції мови програмування, коли більшість часу ви маєте намір покладатися на його рамки. Так, наприклад, я почав використовувати jQuery і вперше взяв час, щоб справді зрозуміти основні поняття Javascript. Крім того, у мене на поличці є декілька книг з основ (Секрети, наприклад, JavaScript Ninja), які справді заглиблюються в мову. Поки я проглядаю сторінки, хоча я виявляю, що ярмарок цього не переходить до jQuery, оскільки головним моїм наміром є маніпуляція з DOM.

Те саме можна сказати і для Ruby та RoR. Чи зроблять мене ці книги кращими програмістами? Мабуть. Чи можуть ці теми допомогти мені стати набагато кращим за його рамки? Ось що я важко розумію.


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

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

Я б сказав , що це IS інший «Скільки» питання - це , звичайно , має той же самий відповідь , який є те , що її ковзної шкалою в залежності від ваших конкретних обставин.
jmoreno

jQuery - трохи особливий випадок. Його майже інша мова, що відповідає домену, вбудована в Javascript. (майже, але не тихо). Цікаво, що через цю особливість це питання краще писати спеціально про jQuery та Javascript (а не про jQuery та javascript, що є лише прикладом)
Lyndon White

Відповіді:


27

Це більш важливо для вивчення мови , ніж вивчати основи. Вивчіть мову добре, і ви добре будете використовувати рамки.

У порядку важливості (найголовніше спочатку):

  1. Основні принципи програмування - Алгоритми, структури даних тощо.
  2. Мовні парадигми - ООП, функціональні тощо.
  3. Мовні особливості.
  4. Синтаксис і рамки.

2
Багато хто підкреслює це, якби міг. Програміст буде обмежений як в дизайні, так і в можливості для розширеної роботи тим, чого вони не знають.
Пітер Сміт

8
5. Ідіоматичний код. Читайте код інших людей та вивчайте стилі саме цієї мови.
Джошуа Тейлор

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

Оновлено, оскільки це підтверджує мої особисті упередження. Тим не менш, хотіли б мати свої джерела.
Аарон Хол

5

Звичайно. Питання в тому, "чи варта ця вигода, яка коштує часу?". Я заперечую, що це завжди, але це, безумовно, залежить від вас та вашого оточення, оскільки вони впливатимуть на користь (наскільки ваше середовище отримає ваші знання) порівняно з вартістю (скільки часу вам потрібно вчитися та як добре ви засвоювати знання).

Чому я б стверджував, що це вигідно? Тому що ти не завжди будеш в рамках. Навіть найбільш всеосяжна структура все ще є частиною більшої екосистеми. Ви не можете робити дзвінки jQuery самостійно. Вам потрібно знати, як прив’язати свій скрипт до сторінки, як він працює, як він взаємодіє з речами, які ви хочете зробити. Це може бути "основою" у вашій книзі, але я завжди знаходив, що більш глибокі знання допомогли мені зробити код швидшим, і, звичайно, швидше налагодити проблеми. Рамки чи ні.

Крім того, у реальному світі є шкідлива звичка втручатися у програмістів. Звичайно, ваше завдання сьогодні може бути зробити деякі маніпуляції з DOM, але завтра вам може знадобитися зв’язати якийсь SWFObject. Маючи хорошу основу, ви зможете легше налаштуватись на мінливі умови.

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


1

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

Чудово, якщо все, що вам потрібно, - це створити і запустити якийсь мінімальний життєздатний продукт. Не буде великої продуктивності чи складної кількості вимог. Це передбачає, що ви вибрали рамку, яка може обробляти те, що ви намагаєтеся створити.

З іншого боку, це спектр, якщо ви працюєте над досить великим / складним додатком, і ви виявите, що рамка погано справляється. Нічого страшного, тому вам доведеться вивчати більше JavaScript. Вам довелося б витратити цей час на це, якби ви засвоїли це з самого початку. Але у вас є час? Чи зможете ви вивчити основи під напругою, якщо не встигнути щось зробити вчасно? На це ніхто не може відповісти.

Врівноважити це, мабуть, найкраще. Темп себе. Дізнайтеся трохи JavaScript, якщо можете. Ви можете не стати експертом, але це не привід ігнорувати це. Рамки були створені людьми, яким потрібно було вирішити подібну до вашої проблеми, але не зовсім як вашу.


1

Загальна сфера, яка страждає від заглиблення в рамки, перш ніж добре знати основну мову, - це продуктивність. Це справедливо для всіх мов / платформ ( Hibernate n + 1 вибирає тощо). Ось багато з JQuery рад і трюків , які покладаються (крім усього іншого) на хорошому знанні основного мови по відношенню до продуктивності:

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

Використовувати ідентифікатори замість класів Набагато краще вибирати об'єкти за ідентифікатором через поведінку бібліотеки: jQuery використовує власний метод браузера getElementByID () для отримання об'єкта, в результаті чого з'являється дуже швидкий запит.


0

Я думаю, що ваше питання ґрунтується на помилковій передумові. Ви починаєте з того, що плануєте покладатися на рамки, а потім запитуєте, чи корисно вчитися поза рамками. Тож звичайно ви прийшли до висновку, що цього не варто. Але ця передумова є хибною. Не слід орієнтуватися на використання рамки. Ви повинні зосередитись на використанні правильного інструменту для правильної роботи . jQuery справді хороший у певних завданнях, як і Ruby on Rails або будь-який інший фреймворк. Але вони не завжди є правильним інструментом для всього. Дізнавшись про мову поза рамками і навіть дізнавшись про інші рамки чи мікрорамки чи інші інструменти, ви зможете визначити, коли ваша рамка стає на ваш шлях більше, ніж допомагає, і дає вам можливість шукати інших,

Тож моя відповідь така: так, цього абсолютно варто, тому що рамки не є правильним інструментом для кожної роботи.

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