È utile studiare oltre le basi di un linguaggio di base quando l'obiettivo primario è fare affidamento sul suo framework? [chiuso]


10

Tieni presente che questo non è un altro 'Quanto [ inserisci qui il linguaggio di programmazione ] dovrei sapere prima di passare a [ inserisci qui il framework ]?' Quello che mi piacerebbe sapere è quanto sia utile imparare quei concetti avanzati di un linguaggio di programmazione quando la tua intenzione è quella di fare affidamento pesantemente sul suo framework per la maggior parte del tempo. Quindi, ad esempio, ho iniziato a utilizzare jQuery e per prima cosa mi sono preso il tempo di cogliere davvero i concetti chiave di Javascript. Inoltre, sullo scaffale ne ho alcuni oltre i libri di base (ad esempio i segreti di un ninja Javascript) che approfondiscono davvero la lingua. Mentre sfoglio le pagine, però, scopro che un bel po 'di esso non si basa sul fatto che jQuery è che la mia intenzione principale è la manipolazione del DOM.

Lo stesso si può dire per Ruby e RoR. Questi libri mi renderanno un programmatore migliore nel complesso? Probabilmente. Questi argomenti possono aiutarmi a diventare molto meglio con il suo framework? Questo è quello che sto facendo fatica a capire.


7
Durante il debug, spesso aiuta se si capisce cosa sta accadendo dietro il sipario. A parte questo, imparo soprattutto nuove cose quando incontro il bisogno e mi diverto.
marczellm,

2
Sono un po 'con Marczellm su questo. Il mio atteggiamento generale è che hai solo così tanto codice che sarai in grado di produrre nella tua vita e che lingue, dialetti e framework stanno uscendo sostanzialmente più velocemente di quanto tu possa scrivere codice. Se sei già in grado di lavorare con diverse lingue e framework, probabilmente vorrai studiarli sulla base di una necessità o di una conoscenza, non come tacche sempre crescenti nella tua cintura.
Panzercrisis,

Direi che questa è un'altra domanda "Quanto" - ha certamente la stessa risposta che è che è una scala mobile a seconda delle circostanze esatte.
jmoreno,

jQuery è un po 'un caso speciale. È quasi un altro linguaggio specifico di dominio incorporato in Javascript. (quasi ma non silenzioso). Mi chiedo sia per questa particolarità che questa domanda sarebbe meglio scritta specificamente su jQuery e Javascript (piuttosto che jQuery e javascript sono solo un esempio)
Lyndon White,

Risposte:


27

È più importante studiare la lingua che studiare la struttura. Impara bene la lingua e utilizzerai bene il framework.

In ordine di importanza (prima il più importante):

  1. Principi fondamentali di programmazione - Algoritmi, strutture di dati, ecc.
  2. Paradigmi linguistici - OOP, Funzionale, ecc.
  3. Caratteristiche del linguaggio.
  4. Sintassi e framework.

2
Molti molti voti su questo, se potessi. Un programmatore sarà limitato nella progettazione e nella capacità di lavorare in modo avanzato da ciò che non conosce.
Peter Smith,

8
5. Codice idiomatico. Leggi il codice di altre persone e impara gli stili di questa particolare lingua.
Joshua Taylor,

5
@JoshuaTaylor Penso che lo metterei in primo piano rispetto ai framework, poiché è probabile che il codice idiomatico venga usato con il framework e apprenderli separatamente sia più utile - gli idiomi linguistici non fanno parte del framework e gli utenti del framework probabilmente aggiunto di più
Izkata,

È stato votato perché conferma i miei pregiudizi personali. Tuttavia, vorrei avere le tue fonti per favore.
Aaron Hall,

5

Ovviamente. La domanda è: "questo vantaggio vale l'investimento nel tempo?". Direi che lo è sempre, ma dipende sicuramente da te e dal tuo ambiente poiché avranno un impatto sul beneficio (quanto il tuo ambiente guadagnerà dalle tue conoscenze) rispetto al costo (quanto tempo ti serve per imparare e quanto bene tu assorbire la conoscenza).

Perché dovrei dire che è benefico? Perché non sarai sempre nel framework. Anche il quadro più completo fa ancora parte di un ecosistema più ampio. Non puoi effettuare chiamate jQuery da solo. Devi sapere come associare il tuo script alla pagina, come viene eseguito, come interagisce con le cose che vuoi fare. Questo potrebbe essere "nozioni di base" nel tuo libro, ma ho sempre scoperto che una conoscenza più approfondita mi ha aiutato a rendere il codice più veloce e sicuramente a eseguire il debug più velocemente. Quadro o no.

Oltre a ciò, il mondo reale ha la brutta abitudine di intromettersi nei programmatori. Certo, il tuo compito oggi potrebbe essere quello di fare un po 'di manipolazione del DOM, ma domani potresti dover collegare qualche oggetto SWFO. Avere una buona base ti consentirà di adattarti più facilmente ai mutevoli ambienti.

E infine, anche se potresti voler solo manipolare il DOM, pochissimi programmatori lavorano più da soli. I tuoi colleghi probabilmente faranno cose più avanzate con il linguaggio di programmazione. Dovrai essere in grado di leggere quel codice o, per lo meno, non rovinarlo.


1

Probabilmente hai bisogno di un piccolo equilibrio nella quantità che dovresti imparare. Non è tutto o niente, quindi mettici tutto il tempo che puoi. Devi chiederti quali rischi stai accettando facendo affidamento sul framework.

È fantastico se tutto ciò che serve è mettere in funzione un minimo di prodotto valido. Non ci saranno grandi prestazioni o problemi complessi. Ciò presuppone che tu abbia scelto un framework in grado di gestire ciò che stai cercando di costruire.

Dall'altro lato dello spettro è se stai lavorando su un'applicazione abbastanza grande / complessa e trovi qualcosa che il framework gestisce male. Non è un grosso problema, quindi devi imparare più JavaScript. Avresti dovuto passare quel tempo su di esso se l'avessi imparato dall'inizio. Ma hai tempo? Sarai in grado di imparare i fondamenti sotto lo stress di non fare qualcosa in tempo? Nessuno può rispondere a questo.

Il bilanciamento è probabilmente la scommessa migliore. Calmati. Impara un po 'di JavaScript se puoi. Potresti non diventare un esperto, ma questo non è un motivo per ignorarlo. I framework sono stati creati da persone che avevano bisogno di risolvere un problema simile al tuo, ma non esattamente come il tuo.


1

Un'area generale che soffre di approfondire il / i framework / i prima di conoscere bene il linguaggio di base è la performance. Questo vale per tutte le lingue / piattaforme ( Hibernate n + 1 seleziona ecc.). Ecco molti suggerimenti e trucchi di JQuery che si basano (tra le altre cose) su una buona conoscenza del linguaggio principale in relazione alle prestazioni:

Utilizzare per Invece di ogni nativo le funzioni sono sempre più veloci di qualsiasi controparte helper. Ogni volta che esegui il looping di un oggetto ricevuto come JSON, è meglio riscrivere il tuo JSON e farlo restituire un array attraverso il quale puoi eseguire il loop più facilmente.

Usa ID invece di Classi È molto meglio selezionare oggetti per ID a causa del comportamento della libreria: jQuery utilizza il metodo nativo del browser, getElementByID (), per recuperare l'oggetto, risultando in una query molto veloce.


0

Penso che la tua domanda si basi su una premessa errata. Inizi dicendo che stai pianificando di fare affidamento su un framework e poi chiedi se è utile imparare oltre il framework. Quindi, naturalmente, giungi alla conclusione che non ne vale la pena. Ma questa premessa è imperfetta. Non dovresti concentrarti sull'uso di un framework. Dovresti concentrarti sull'uso dello strumento giusto per il lavoro giusto . jQuery è davvero bravo in determinati compiti, così come Ruby on Rails o qualsiasi altro framework. Ma non sono sempre lo strumento giusto per tutto. Conoscere la lingua oltre il framework e persino conoscere altri framework o microframeworks o altri strumenti, ti aiuta a identificare quando il tuo framework si mette sulla tua strada più di quanto non ti aiuti, e ti dà la possibilità di cercare altro,

Quindi la mia risposta è: sì, ne vale assolutamente la pena perché il framework non è lo strumento giusto per ogni lavoro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.