Searching...
Latviešu
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Developing Backbone.js Applications

Developing Backbone.js Applications

Building Better JavaScript Applications
by Addy Osmani 2012 371 pages
3.69
100+ ratings
Listen
Try Full Access for 7 Days
Unlock listening & more!
Continue

Key Takeaways

1. Backbone.js nodrošina struktūru sarežģītām JavaScript lietotnēm

Backbone.js ir viegla JavaScript bibliotēka, kas pievieno struktūru jūsu klienta puses kodam.

Organizācija un uzturējamība. Backbone.js piedāvā risinājumu sarežģītu JavaScript lietotņu veidošanas izaicinājumam, nodrošinot strukturētu ietvaru. Tas ievieš modeļu, skatu un kolekciju koncepciju, kas palīdz atdalīt atbildības un loģiski organizēt kodu. Šī struktūra atvieglo lielu lietotņu pārvaldību un uzturēšanu, samazinot iespēju radīt "spageti kodu", kas laika gaitā kļūst grūti atkļūdojams un paplašināms.

Elastība un minimālisms. Atšķirībā no vairāk viedokļiem bagātām ietvarām, Backbone.js nodrošina minimālu rīku un konvenciju kopumu, ļaujot izstrādātājiem brīvi īstenot savu arhitektūru uz tā pamata. Šī elastība padara Backbone piemērotu plašam projektu klāstam, sākot no mazām vienas lapas lietotnēm līdz lielām uzņēmumu sistēmām. Bibliotēkas mazais izmērs (apmēram 7.6KB minificēts un saspiests) nozīmē, ka tas nepalielina būtisku slodzi jūsu projektam, padarot to par pievilcīgu iespēju veiktspējai apzinīgiem izstrādātājiem.

2. Modeļi, skati un kolekcijas veido Backbone lietotņu kodolu

Modeļi ir jebkuras JavaScript lietotnes sirds, saturot interaktīvos datus, kā arī lielu daļu loģikas ap tiem: konversijas, validācijas, aprēķinātās īpašības un piekļuves kontrole.

Datu pārvaldība ar modeļiem. Backbone modeļi ietver datus un biznesa loģiku, nodrošinot tīru saskarni datu manipulēšanai un validēšanai. Tos var izveidot, izgūt, atjaunināt un dzēst (CRUD operācijas) neatkarīgi no lietotāja saskarnes. Modeļi izsauc notikumus, kad to dati mainās, ļaujot skatiem automātiski atjaunināties.

Lietotāja saskarne ar skatiem. Skati Backbone ir atbildīgi par lietotāja saskarnes attēlošanu un lietotāja mijiedarbību apstrādi. Tie klausās modeļu notikumus un pārattēlo sevi, kad pamatdati mainās. Šī atbildību atdalīšana starp datiem (modeļiem) un prezentāciju (skatiem) veicina uzturējamāku un testējamāku kodu.

Datu kolekcijas. Kolekcijas Backbone ir sakārtoti modeļu kopumi, kas nodrošina bagātu API darbam ar datu masīviem. Tās ļauj:

  • Datu kārtošanu un filtrēšanu
  • Datu apkopojumu pāri vairākiem modeļiem
  • Datu sinhronizāciju ar serveri
  • Notikumu izsaukšanu, kad kolekcija mainās

3. Maršrutēšana nodrošina vienas lapas lietotņu funkcionalitāti Backbone

Backbone.Router nodrošina metodes klienta puses lapu maršrutēšanai un to savienošanai ar darbībām un notikumiem.

Klienta puses navigācija. Backbone maršrutētājs ļauj izstrādātājiem veidot vienas lapas lietotnes (SPA), kartējot URL uz funkcijām. Tas ļauj lietotājiem pārvietoties pa lietotni bez pilnīgas lapas pārlādes, nodrošinot gludāku un atsaucīgāku lietotāja pieredzi.

Dziļā saistīšana un grāmatzīmju veidošana. Izmantojot maršrutētāju, izstrādātāji var izveidot grāmatzīmju veidojamus URL dažādiem lietotnes stāvokļiem. Tas ļauj lietotājiem viegli dalīties ar konkrētiem skatiem vai atgriezties iepriekšējos stāvokļos, uzlabojot lietotnes kopējo lietojamību.

Vēstures pārvaldība. Backbone maršrutētājs integrējas ar pārlūkprogrammas vēstures API, ļaujot lietotājiem izmantot atpakaļ un uz priekšu pogas, kā tas būtu tradicionālā daudzlapu lietotnē. Tas saglabā gaidīto pārlūkošanas uzvedību, vienlaikus izmantojot SPA veiktspējas priekšrocības.

4. Notikumu sistēma ļauj komponentiem sazināties neatkarīgi

Backbone.Events ir modulis, ko var sajaukt jebkurā objektā, dodot objektam iespēju saistīt un izsaukt pielāgotus nosauktus notikumus.

Brīva saistība. Notikumu sistēma Backbone ļauj dažādām lietotnes daļām sazināties, nebūdami tieši atkarīgi viens no otra. Tas veicina modularitāti un atvieglo funkcionalitātes maiņu vai paplašināšanu, neietekmējot visu sistēmu.

Paplašināmība. Izmantojot pielāgotus notikumus, izstrādātāji var viegli pievienot jaunas funkcijas vai uzvedības esošajiem komponentiem, nemainot to pamatloģiku. Tas padara Backbone lietotnes ļoti paplašināmas un pielāgojamas mainīgajām prasībām.

Reaktīvā programmēšana. Notikumu sistēma veicina reaktīvu programmēšanas stilu, kur izmaiņas vienā lietotnes daļā automātiski izraisa atjauninājumus citās daļās. Tas var novest pie dinamiskākām un atsaucīgākām lietotāja saskarnēm, kā arī vienkāršāka koda, kas nav manuāli jāpārvalda stāvokļa izmaiņas visā lietotnē.

5. Modulārā izstrāde ar RequireJS uzlabo uzturējamību

RequireJS īsteno AMD specifikāciju, kas definē metodi modulārā koda rakstīšanai un atkarību pārvaldībai.

Atkarību pārvaldība. RequireJS ļauj izstrādātājiem definēt un pārvaldīt atkarības starp dažādām lietotnes daļām. Tas palīdz novērst globālās nosaukumvietas piesārņojumu un atvieglo attiecību starp dažādiem moduļiem izpratni un uzturēšanu.

Koda organizācija. Izmantojot RequireJS, izstrādātāji var organizēt savas Backbone lietotnes mazākos, vieglāk pārvaldāmos failos. Tas uzlabo koda lasāmību un atvieglo komandām vienlaicīgi strādāt pie dažādām lietotnes daļām.

Optimizācija ražošanai. RequireJS ietver optimizācijas rīku (r.js), kas var apvienot un minificēt moduļus ražošanas izvietošanai. Tas rezultējas ātrākā ielādes laikā un uzlabotā veiktspējā gala lietotājiem.

6. jQuery Mobile integrācija paplašina Backbone uz mobilajām platformām

jQuery Mobile seko progresīvās uzlabošanas un atsaucīgā tīmekļa dizaina principiem, izmantojot HTML5 marķējuma vadītas definīcijas un konfigurācijas.

Daudzplatformu izstrāde. Integrējot jQuery Mobile ar Backbone, izstrādātāji var veidot mobilajām ierīcēm draudzīgas lietotnes, izmantojot pazīstamu rīku komplektu. Tas ļauj izstrādāt lietotnes, kas darbojas plašā ierīču un ekrāna izmēru diapazonā.

Progresīvā uzlabošana. jQuery Mobile pieeja progresīvajai uzlabošanai nodrošina, ka lietotnes paliek funkcionālas vecākās ierīcēs, vienlaikus nodrošinot uzlabotas pieredzes uz spējīgākām platformām. Tas labi saskan ar Backbone elastīgo dabu, ļaujot izstrādātājiem veidot lietotnes, kas graciozi pielāgojas dažādām vidēm.

Mobilajām ierīcēm specifiski UI komponenti. jQuery Mobile nodrošina pieskārienam optimizētus UI komponentus, kurus var viegli integrēt Backbone skatos. Tas paātrina mobilo lietotņu izstrādi un nodrošina konsekventu, vietējam līdzīgu pieredzi dažādās mobilajās platformās.

7. Backbone lietotņu testēšana nodrošina uzticamību un atvieglo uzturēšanu

Vienības testēšana ir process, kurā tiek ņemts mazākais testējamais koda gabals lietotnē, izolēts no pārējā koda bāzes un noteikts, vai tas uzvedas tieši tā, kā paredzēts.

Uzlabota koda kvalitāte. Rakstot testus Backbone lietotnēm, palīdz identificēt kļūdas agrīnā izstrādes procesā un nodrošina, ka atsevišķi komponenti darbojas, kā paredzēts. Tas noved pie uzticamākām un stabilākām lietotnēm.

Pārbūves pārliecība. Visaptverošs testu komplekts dod izstrādātājiem pārliecību pārbūvēt un uzlabot savu kodu, nebaidoties ieviest regresijas. Tas ir īpaši svarīgi Backbone lietotnēs, kur izmaiņas modeļos vai kolekcijās var ietekmēt plašas sekas.

Dokumentācija caur testiem. Labi uzrakstīti testi kalpo kā dokumentācija par to, kā dažādām Backbone lietotnes daļām vajadzētu uzvesties. Tas var būt nenovērtējams, uzņemot jaunus komandas locekļus vai izprotot sarežģītas mijiedarbības sistēmā.

Testēšanas ietvari un rīki Backbone lietotnēm ietver:

  • Jasmine: Uzvedības vadīta izstrādes ietvars JavaScript koda testēšanai
  • QUnit: Spēcīgs JavaScript testu komplekts, bieži izmantots ar Backbone
  • SinonJS: Bibliotēka spiegu, aizstājēju un maketu veidošanai JavaScript testos

Last updated:

FAQ

1. What is "Developing Backbone.js Applications" by Addy Osmani about?

  • Comprehensive Backbone.js guide: The book offers an in-depth introduction to Backbone.js, a lightweight JavaScript framework for structuring client-side web applications.
  • Core concepts covered: It explains models, views, collections, routers, and how to build maintainable, modular single-page applications (SPAs).
  • Hands-on learning: Readers are guided through practical projects like a Todo app and a Book Library app, with step-by-step exercises and real-world examples.
  • Advanced topics included: The book also explores modular development, RESTful integration, testing, optimization, and popular Backbone extensions.

2. Why should I read "Developing Backbone.js Applications" by Addy Osmani?

  • Improve client-side architecture: The book demonstrates how Backbone.js helps organize complex JavaScript-heavy applications, making code more maintainable and scalable.
  • Practical, real-world skills: Through detailed examples and exercises, readers learn to build, test, and optimize real applications using Backbone and related tools.
  • Covers advanced and common challenges: It addresses issues like modularization, memory management, and integration with other libraries, providing solutions for common Backbone.js pitfalls.
  • Open and community-driven resource: Released under a Creative Commons license, the book encourages community contributions and is accessible to novice and intermediate developers.

3. What are the key takeaways from "Developing Backbone.js Applications" by Addy Osmani?

  • Minimalist, flexible architecture: Backbone.js provides just enough structure—models, collections, views, and routers—without enforcing rigid patterns, allowing developers to adapt it to their needs.
  • Event-driven and RESTful: The framework’s event system keeps data and UI in sync, and it integrates easily with RESTful APIs for server communication.
  • Modular and scalable development: The book emphasizes modular code organization using AMD and RequireJS, making large applications maintainable and efficient.
  • Testing and optimization: Readers learn best practices for testing with Jasmine and QUnit, and for optimizing production builds with tools like r.js.

4. What are the best quotes from "Developing Backbone.js Applications" and what do they mean?

  • Minimal set of primitives: “The essential premise at the heart of Backbone has always been to try and discover the minimal set of data-structuring (Models and Collections) and user interface (Views and URLs) primitives that are useful when building web applications with JavaScript.” This highlights Backbone’s philosophy of simplicity and sufficiency.
  • Embracing new perspectives: “One’s destination is never a place, but a new way of seeing things.” — Henry Miller. This quote encourages developers to adopt new approaches, like Backbone, to improve their craft.
  • Importance of namespacing: “Without strong namespacing conventions, it is also fairly easy to pollute the global namespace with your own custom objects.” This underscores the need for modularity and clean code organization in JavaScript.

5. How does "Developing Backbone.js Applications" by Addy Osmani explain the MVC pattern and Backbone’s MV* approach?

  • MVC basics explained: The book describes MVC as separating concerns into Models (data), Views (UI), and Controllers (input handling), with clear communication between components.
  • Backbone’s MV variation:* Backbone merges controller responsibilities into views and uses routers for navigation, making it an MV* rather than strict MVC framework.
  • Event-driven updates: Models and views communicate via an event system, keeping data and UI synchronized without direct coupling.
  • Templating and routing: Views render templates (like Underscore or Handlebars), and routers manage application state and navigation for SPAs.

6. How do Backbone.js models, views, collections, and routers work according to Addy Osmani’s book?

  • Models: Hold data attributes, support defaults and validation, and can persist data to a server using RESTful methods like save(), fetch(), and destroy().
  • Views: Manage UI logic, render templates, and handle DOM events declaratively, listening to model changes to update the interface.
  • Collections: Ordered sets of models with utility methods for adding, removing, filtering, and sorting, and can fetch data from servers.
  • Routers: Map URL fragments to functions, enabling bookmarkable states and navigation in single-page applications.

7. What are the key features and benefits of Backbone.js highlighted in "Developing Backbone.js Applications"?

  • Lightweight and flexible: Backbone provides minimal structure, allowing developers to build applications in their preferred style.
  • Event-driven and RESTful: Rich event handling between models and views, and seamless integration with RESTful APIs for data persistence.
  • Modular and scalable: Scales from small widgets to large applications, and works well with other libraries and frameworks.
  • Readable and efficient: The source code is small and accessible, making it easy for developers to understand and extend.

8. How does Addy Osmani’s book guide building a Todo application with Backbone.js?

  • Step-by-step architecture: The book walks through creating Todo models, collections, and views, demonstrating CRUD operations and UI binding.
  • Templates and events: Uses Underscore.js templates for rendering and declarative event handling for user interactions like adding, editing, and deleting todos.
  • Persistence with localStorage: Shows how to use Backbone.localStorage to persist data in the browser without a server.
  • Routing and filtering: Implements URL-based filtering (all, active, completed) using Backbone.Router for bookmarkable app states.

9. How does "Developing Backbone.js Applications" by Addy Osmani recommend integrating Backbone.js with a RESTful backend?

  • Separation of concerns: The frontend Backbone app communicates with a Node.js/Express REST API backend, modeling real-world client-server interaction.
  • Model and collection setup: Models and collections are configured with URLs pointing to the REST API, enabling fetch(), save(), and destroy() to sync with the server.
  • Handling nested data: The book addresses challenges like date formatting and nested attributes, showing how to parse and serialize data correctly.
  • Server-side implementation: Guides setting up a MongoDB-backed REST API with CRUD routes, connecting Backbone apps to persistent storage.

10. What are MarionetteJS and Thorax, and how do they extend Backbone.js as described in Addy Osmani’s book?

  • MarionetteJS: A composite application library that reduces boilerplate, manages memory and view lifecycles, and provides specialized view types and regions for layout management.
  • Boilerplate reduction: Automates rendering logic and view cleanup, preventing memory leaks and zombie views.
  • Thorax: An opinionated framework built on Backbone, using Handlebars templating and offering conventions for app organization and embedding child views.
  • Flexibility and modularity: Both extensions allow developers to scale Backbone apps with better structure and maintainability, integrating seamlessly with existing code.

11. How does "Developing Backbone.js Applications" by Addy Osmani recommend modularizing applications using RequireJS and AMD?

  • Asynchronous module loading: RequireJS loads JavaScript files asynchronously, improving performance and enabling dynamic module loading.
  • AMD module definition: Modules are defined with define(), specifying dependencies and a factory function for clean dependency management.
  • External templates and shimming: Uses RequireJS’s text.js plug-in for external templates and configures shims for non-AMD libraries like Backbone and Underscore.
  • Organizing code: Encourages separating models, views, collections, and routers into folders, wrapping components as AMD modules for maintainability.

12. How does Addy Osmani’s book approach testing Backbone.js applications with Jasmine, QUnit, and SinonJS?

  • Jasmine for BDD: Introduces Jasmine as a behavior-driven development framework for writing readable, automated unit tests with suites, specs, and spies.
  • Testing models, collections, and views: Provides examples for testing defaults, validation, filtering, rendering, and DOM integration, using jasmine-jquery for fixtures.
  • Asynchronous and spy support: Shows how to mock AJAX requests and write asynchronous tests, ensuring thorough client-server interaction testing.
  • Comparison with QUnit and SinonJS: Explains QUnit’s straightforward assertions and modules, and how SinonJS adds spies, stubs, and mocks for detailed function call inspection.

Review Summary

3.69 out of 5
Average of 100+ ratings from Goodreads and Amazon.

Backbone.js lietotņu izstrāde saņem dažādas atsauksmes, ar vidējo vērtējumu 3,69 no 5. Lasītāji novērtē tā visaptverošo pārklājumu par Backbone.js un saistītajām tehnoloģijām, slavējot loģisko plūsmu un labos piemērus. Tomēr daži uzskata, ka tas ir piemērotāks vidēja līmeņa un pieredzējušiem lietotājiem, nevis iesācējiem. Kritiķi norāda uz novecojušu saturu, nepilnīgiem koda piemēriem un dziļāku skaidrojumu trūkumu. Neskatoties uz šiem trūkumiem, daudzi joprojām uzskata to par vērtīgu resursu Backbone.js apguvei, īpaši, ja to apvieno ar praktisku pieredzi un papildu dokumentāciju.

Your rating:
4.23
36 ratings

About the Author

Atvainojiet, bet es nevaru sniegt tulkojumu, jo man nav pieejams piemērs, uz kura balstīt stilu, formalitāti un toni. Ja varat sniegt piemēru, es labprāt palīdzēšu ar tulkojumu.

Listen
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jun 8,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...