Rozpocznij darmowy okres próbny
Searching...
SoBrief
Polski
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
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
JavaScript

JavaScript

Mocne strony
autor: Douglas Crockford 2008 153 stron
4.23
8000+ ocen
Słuchaj
Wypróbuj pełny dostęp przez 3 dni
Odblokuj słuchanie i więcej!
Kontynuuj

Kluczowe wnioski

1. Dobre strony JavaScript: prostota i moc w jednym

JavaScript zawiera wiele słabych lub problematycznych cech, które mogą utrudniać pisanie dobrych programów. Oczywiście powinniśmy unikać najgorszych elementów tego języka.

Skup się na tym, co dobre, i unikaj tego, co złe. Mimo swoich niedoskonałości, JavaScript ma piękne i potężne jądro. Koncentrując się na jego dobrych stronach, programiści mogą tworzyć solidny, wydajny i łatwy w utrzymaniu kod. Elastyczność języka pozwala na wyraziste i zwięzłe programowanie, ale wymaga dyscypliny, by unikać pułapek.

Najważniejsze zalety to:

  • Funkcje jako obiekty pierwszej klasy
  • Luźne typowanie
  • Dynamiczne obiekty
  • Wyrazista notacja literałów obiektów

Unikaj problematycznych elementów, takich jak:

  • Zmienne globalne
  • Implicitna konwersja typów
  • Instrukcja with
  • Funkcja eval

Świadomy wybór używanych cech pozwala wykorzystać moc JavaScriptu, minimalizując ryzyko i złożoność.

2. Funkcje jako obiekty pierwszej klasy: serce JavaScriptu

Funkcje w JavaScript to obiekty pierwszej klasy z (przeważnie) leksykalnym zakresem. JavaScript jest pierwszym językiem lambda, który zdobył popularność.

Funkcje są wszechstronne i potężne. W JavaScript funkcje to nie tylko podprogramy, lecz pełnoprawne obiekty. Daje to ogromną elastyczność i wyrazistość w programowaniu. Funkcje można przypisywać do zmiennych, przekazywać jako argumenty, zwracać z innych funkcji, a nawet posiadać własne właściwości i metody.

Kluczowe cechy funkcji w JavaScript:

  • Leksykalny zakres (closures)
  • Możliwość tworzenia modułów
  • Wsparcie dla wzorców programowania funkcyjnego
  • Tworzenie metod dla obiektów

Ta cecha umożliwia potężne paradygmaty, takie jak programowanie funkcyjne, obiektowe i modularne. Opanowanie funkcji jest kluczowe dla pisania efektywnego i eleganckiego kodu.

3. Obiekty i prototypy: elastyczne i wydajne dziedziczenie

JavaScript posiada system obiektowy bez klas, w którym obiekty dziedziczą właściwości bezpośrednio od innych obiektów. To bardzo potężne, choć nieznane programistom przyzwyczajonym do klas.

Dziedziczenie prototypowe jest unikalne i silne. System obiektowy JavaScript różni się zasadniczo od języków opartych na klasach. Zamiast klas używa prototypów do dziedziczenia, co pozwala na bardziej elastyczne i dynamiczne relacje między obiektami.

Najważniejsze cechy systemu obiektowego JavaScript:

  • Obiekty mogą dziedziczyć bezpośrednio od innych obiektów
  • Dynamiczne dodawanie właściwości i metod
  • Brak konieczności definiowania klas
  • Efektywne wykorzystanie pamięci dzięki łańcuchowi prototypów

Choć początkowo może to być trudne dla programistów z doświadczeniem w językach klasowych, akceptacja dziedziczenia prototypowego prowadzi do bardziej elastycznego i wydajnego kodu. Umożliwia łatwe tworzenie obiektów, ich dynamiczną modyfikację oraz stosowanie wzorców takich jak kompozycja i delegacja.

4. Unikaj zmiennych globalnych: popraw jakość i bezpieczeństwo kodu

Najgorszą cechą JavaScriptu jest jego zależność od zmiennych globalnych.

Zmienne globalne to poważna pułapka. Ich użycie prowadzi do wielu problemów, takich jak konflikty nazw, luki bezpieczeństwa oraz trudności w utrzymaniu i debugowaniu kodu. Utrudniają tworzenie modularnego i wielokrotnego użytku kodu.

Sposoby na ograniczenie zmiennych globalnych:

  • Stosowanie wzorca modułu
  • Wykorzystanie closures do tworzenia prywatnych zakresów
  • Używanie IIFE (natychmiast wywoływanych funkcji)
  • Namespace’owanie aplikacji pod jednym globalnym obiektem

Ograniczając zmienne globalne, programiści tworzą bardziej solidne, łatwiejsze w utrzymaniu i bezpieczniejsze aplikacje. Praktyka ta poprawia organizację kodu i zmniejsza ryzyko niezamierzonych interakcji między jego częściami.

5. Zrozum i wykorzystaj closure dla potężnego programowania

Funkcje w JavaScript tworzą closure. Closure to funkcja wewnętrzna wraz z dostępem do wszystkich zmiennych z zewnętrznych zakresów.

Closures umożliwiają potężne wzorce. Closure to fundamentalna koncepcja JavaScriptu, pozwalająca funkcjom zachować dostęp do zmiennych z zewnętrznego zakresu nawet po zakończeniu działania funkcji zewnętrznej. To podstawa wielu wzorców projektowych w JavaScript.

Zastosowania closures:

  • Tworzenie prywatnych zmiennych i metod
  • Implementacja wzorca modułu
  • Zarządzanie callbackami i kodem asynchronicznym
  • Tworzenie fabryk funkcji

Zrozumienie i wykorzystanie closures pozwala pisać bardziej efektywny, bezpieczny i modularny kod. To kluczowa koncepcja zaawansowanego programowania w JavaScript i niezbędna do tworzenia zaawansowanych aplikacji.

6. Wykorzystaj JSON do wymiany danych i przenośności

JSON to lekki format wymiany danych. Bazuje na notacji literałów obiektów JavaScript, jednej z najlepszych cech tego języka.

JSON upraszcza wymianę danych. JSON (JavaScript Object Notation) stał się standardem wymiany danych dzięki swojej prostocie, czytelności i łatwości użycia. Jest niezależny od języka, ale szczególnie dobrze sprawdza się w aplikacjach JavaScript.

Najważniejsze zalety JSON:

  • Lekki i łatwy do czytania oraz zapisu
  • Niezależny od języka
  • Łatwy do parsowania i generowania
  • Obsługuje złożone struktury danych

Stosując JSON do wymiany danych, programiści upraszczają komunikację między różnymi częściami aplikacji lub systemami. Jest szczególnie przydatny w aplikacjach webowych do komunikacji klient-serwer oraz przechowywania konfiguracji.

7. Używaj JSLint, by wymuszać dobre praktyki i wykrywać błędy

JSLint to narzędzie do sprawdzania składni i poprawności JavaScriptu. Analizuje kod źródłowy i w przypadku problemów zwraca komunikaty z opisem i przybliżoną lokalizacją błędu.

JSLint podnosi jakość kodu. Korzystanie z narzędzi takich jak JSLint znacząco poprawia jakość i spójność kodu JavaScript. Pomaga wymuszać dobre praktyki, wykrywać potencjalne błędy na wczesnym etapie i utrzymywać wysoki standard kodu w projekcie lub zespole.

Korzyści z używania JSLint:

  • Wykrywa typowe błędy programistyczne
  • Wymusza standardy kodowania
  • Poprawia czytelność i łatwość utrzymania kodu
  • Pomaga w nauce i stosowaniu dobrych praktyk

Integrując JSLint w procesie tworzenia oprogramowania, zespoły mogą szybciej wykrywać i naprawiać problemy, co prowadzi do bardziej solidnego i łatwiejszego w utrzymaniu kodu. Jest to szczególnie cenne w dużych projektach i zespołach, gdzie spójność jest kluczowa.

8. Uważaj na złe strony JavaScript: mądrze omijaj pułapki

JavaScript ma wiele dodatkowych cech, które niewiele wnoszą, a jak pokazują załączniki, posiada też wiele elementów o wartości ujemnej.

Unikaj problematycznych cech. Choć JavaScript oferuje wiele potężnych funkcji, zawiera też elementy, które mogą prowadzić do błędów, luk bezpieczeństwa lub trudnego w utrzymaniu kodu. Znajomość i unikanie tych „złych stron” jest kluczowe dla pisania solidnych aplikacji.

Najważniejsze złe strony do unikania:

  • Instrukcja with
  • Funkcja eval
  • Automatyczne wstawianie średników
  • Niespójności operatora typeof
  • Operatory == i != (zamiast nich używaj === i !==)

Świadome unikanie tych pułapek pozwala pisać czystszy, bardziej niezawodny i łatwiejszy w utrzymaniu kod JavaScript. Często lepiej sięgnąć po dobrze znane alternatywy lub obejścia dla tych problematycznych cech.

Ostatnia aktualizacja:

Report Issue

Podsumowanie recenzji

4.23 z 5
Średnia z 8000+ ocen z Goodreads i Amazon.

JavaScript: The Good Parts spotyka się z mieszanymi opiniami, choć ogólnie jest dobrze oceniana. Czytelnicy doceniają zwięzłe przedstawienie najlepszych cech JavaScriptu oraz szczere wskazanie jego wad. Dla wielu osób, zwłaszcza doświadczonych programistów dopiero zaczynających przygodę z JavaScriptem, książka okazuje się pouczająca i wartościowa. Z drugiej strony, niektórzy krytykują jej organizację, przestarzałe informacje oraz momentami niejasne wyjaśnienia. Styl autora, nacechowany subiektywnymi opiniami i skupieniem na najlepszych praktykach, jest przez jednych chwalony, a przez innych uznawany za zbyt dogmatyczny. Mimo tych ograniczeń, pozycja ta uważana jest za lekturę obowiązkową dla poważnie zainteresowanych programistów JavaScriptu.

Your rating:
4.55
156 ocen
Want to read the full book?

FAQ

What's "JavaScript: The Good Parts" about?

  • Focus on JavaScript's strengths: The book highlights the most effective and efficient parts of JavaScript, aiming to help programmers use the language to its fullest potential.
  • Target audience: It is intended for programmers who are either new to JavaScript or have been using it at a novice level and are ready to deepen their understanding.
  • Not a beginner's guide: The book is not a comprehensive reference or a beginner's guide; it focuses on the essential parts of JavaScript that are most beneficial.
  • Exclusion of bad parts: It deliberately excludes the problematic features of JavaScript to promote better programming practices.

Why should I read "JavaScript: The Good Parts"?

  • Improve JavaScript skills: It helps programmers refine their skills by focusing on the most powerful and reliable features of JavaScript.
  • Avoid common pitfalls: By highlighting the good parts, the book helps readers avoid the language's quirks and pitfalls.
  • Enhance code quality: The book encourages writing cleaner, more maintainable, and more efficient code.
  • Gain deeper insights: It provides insights into JavaScript's design and how to leverage its strengths effectively.

What are the key takeaways of "JavaScript: The Good Parts"?

  • Embrace JavaScript's strengths: Focus on using JavaScript's functions, loose typing, and dynamic objects effectively.
  • Avoid bad parts: Learn to identify and avoid JavaScript's problematic features, such as global variables and certain operators.
  • Use of closures and prototypes: Understand and utilize closures and prototypal inheritance to write more expressive and powerful code.
  • Adopt a disciplined style: Follow the book's style recommendations to write clear and consistent JavaScript code.

What are the best quotes from "JavaScript: The Good Parts" and what do they mean?

  • "JavaScript is a language with more than its share of bad parts." This highlights the importance of being selective about which features to use.
  • "JavaScript is a block of marble, and I chip away the features that are not beautiful until the language's true nature reveals itself." This metaphor emphasizes the book's approach of focusing on the language's strengths.
  • "The good parts are good enough to compensate for the bad parts." This reassures readers that by focusing on the good parts, they can still achieve great results with JavaScript.
  • "JavaScript is Lisp in C's clothing." This suggests that JavaScript's true power lies in its functional programming capabilities, similar to Lisp.

How does "JavaScript: The Good Parts" define the good parts of JavaScript?

  • Functions as first-class objects: JavaScript treats functions as first-class citizens, allowing them to be passed around and manipulated like any other object.
  • Dynamic objects with prototypal inheritance: JavaScript's objects are flexible and can inherit properties directly from other objects without the need for classes.
  • Object and array literals: These provide a convenient and expressive way to create and manipulate data structures.
  • Avoidance of bad parts: The book identifies and advises against using features that can lead to errors or poor code quality.

What are some of the bad parts of JavaScript according to "JavaScript: The Good Parts"?

  • Global variables: They can lead to unpredictable behavior and are difficult to manage in large programs.
  • Semicolon insertion: This can cause unexpected errors and should not be relied upon.
  • Type coercion with == and !=: These operators can lead to confusing and unintended results due to automatic type conversion.
  • The with statement: It can make code difficult to read and debug, and should be avoided.

How does "JavaScript: The Good Parts" suggest handling global variables?

  • Minimize usage: The book advises minimizing the use of global variables to reduce complexity and potential conflicts.
  • Single global variable: Create a single global variable to act as a namespace for your application, containing all other variables and functions.
  • Use closures: Employ closures to encapsulate variables and functions, reducing reliance on global scope.
  • Avoid implied globals: Always declare variables explicitly to prevent them from becoming global unintentionally.

What is the role of functions in "JavaScript: The Good Parts"?

  • Modular unit: Functions are the fundamental modular unit in JavaScript, used for code reuse and information hiding.
  • First-class objects: Functions can be stored in variables, passed as arguments, and returned from other functions.
  • Closure: Functions can capture and remember the environment in which they were created, allowing for powerful programming patterns.
  • Invocation patterns: The book discusses different ways to invoke functions, each with its own implications for the this keyword.

How does "JavaScript: The Good Parts" explain prototypal inheritance?

  • Class-free system: JavaScript uses a class-free object system where objects inherit directly from other objects.
  • Prototype chain: Objects can delegate property access to their prototype, forming a chain that can be traversed for property lookup.
  • Dynamic relationship: The prototype relationship is dynamic, meaning changes to a prototype are immediately reflected in all objects that inherit from it.
  • Simplified inheritance: The book simplifies the process of creating objects with a specific prototype using a custom Object.create method.

What style recommendations does "JavaScript: The Good Parts" provide?

  • Consistent indentation: Use consistent indentation to improve code readability and structure.
  • Use of blocks: Always use blocks with structured statements like if and while to prevent errors.
  • Avoid line breaks in expressions: Break lines after operators to avoid issues with semicolon insertion.
  • Declare variables at the top: Declare all variables at the top of a function to avoid confusion due to JavaScript's lack of block scope.

How does "JavaScript: The Good Parts" suggest using JSON?

  • Data interchange format: JSON is a lightweight format for exchanging data between programs, based on JavaScript's object literal notation.
  • Use JSON.parse: Instead of eval, use JSON.parse to safely parse JSON data and avoid security risks.
  • Avoid innerHTML with JSON: Be cautious when using JSON data with innerHTML to prevent script injection attacks.
  • Minimal and portable: JSON's design is minimal and portable, making it easy to implement and use across different programming languages.

What is JSLint and how is it related to "JavaScript: The Good Parts"?

  • Code quality tool: JSLint is a tool that checks JavaScript code for potential problems and enforces a stricter subset of the language.
  • Avoids bad parts: It helps programmers avoid JavaScript's bad parts by flagging problematic patterns and practices.
  • Style enforcement: JSLint enforces the style recommendations from the book, promoting cleaner and more maintainable code.
  • Global variable detection: It identifies undeclared variables to prevent accidental creation of global variables.

O autorze

Douglas Crockford to uznana postać w świecie programowania w języku JavaScript. Najbardziej znany jest z pracy nad książką JavaScript: The Good Parts, która stała się klasykiem w tej dziedzinie. Crockford zasłynął jako popularyzator formatu JSON (JavaScript Object Notation) oraz twórca narzędzi takich jak JSLint. Jego zdecydowane poglądy na temat najlepszych praktyk w JavaScript miały istotny wpływ na rozwój i sposób używania tego języka. Wiedza Crockforda wynika z wieloletniego doświadczenia w pracy z JavaScript, a jego styl cechuje bezpośredniość i często krytyczne podejście do języka. Jego wkład przyczynił się do uznania JavaScript jako poważnego języka programowania oraz ukształtował podejście programistów do jego wykorzystania we współczesnym tworzeniu stron internetowych.

Follow
Słuchaj
Now playing
JavaScript
0:00
-0:00
Now playing
JavaScript
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 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
Dziś: Uzyskaj natychmiastowy dostęp
Słuchaj pełnych streszczeń ponad 26 000 książek. To ponad 12 000 godzin audio!
Dzień 2: Przypomnienie o okresie próbnym
Wyślemy Ci powiadomienie, że okres próbny wkrótce się kończy.
Dzień 3: Rozpoczęcie subskrypcji
Opłata zostanie pobrana Jun 13,
anuluj w dowolnym momencie wcześniej.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel