Refactoring JavaScript. Turning Bad Code Into Good Code

- Autor:
- Evan Burchard
- Promocja Przejdź


- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 442
- Dostępne formaty:
-
ePubMobi
Opis książki: Refactoring JavaScript. Turning Bad Code Into Good Code
How often do you hear people say things like this? "Our JavaScript is a mess, but we’re thinking about using [framework of the month]."
Like it or not, JavaScript is not going away. No matter what framework or ”compiles-to-js” language or library you use, bugs and performance concerns will always be an issue if the underlying quality of your JavaScript is poor. Rewrites, including porting to the framework of the month, are terribly expensive and unpredictable. The bugs won’t magically go away, and can happily reproduce themselves in a new context. To complicate things further, features will get dropped, at least temporarily.
The other popular method of fixing your JS is playing “JavaScript Jenga,” where each developer slowly and carefully takes their best guess at how the out-of-control system can be altered to allow for new features, hoping that this doesn’t bring the whole stack of blocks down. This book provides clear guidance on how best to avoid these pathological approaches to writing JavaScript:
- Recognize you have a problem with your JavaScript quality.
- Forgive the code you have now, and the developers who made it.
- Learn repeatable, memorable, and time-saving refactoring techniques.
- Apply these techniques as you work, fixing things along the way.
- Internalize these techniques, and avoid writing as much problematic code to begin with.
Bad code doesn’t have to stay that way. And making it better doesn’t have to be intimidating or unreasonably expensive.
Wybrane bestsellery
-
Dzięki tej książce to zadanie będzie zdecydowanie łatwiejsze. Należy ona do cieszącej się dużą popularnością serii „Receptury”. W środku znajdziesz szereg artykułów zaczynających się od postawienia pytania, jak wykonać pewne zadanie. Następnym krokiem jest omówienie odpowiedzi. W trak...(0,00 zł najniższa cena z 30 dni)
29.40 zł
49.00 zł(-40%) -
To kolejne wydanie wyczerpującego, kompleksowego przewodnika po języku JavaScript oraz jego najważniejszych klienckich i serwerowych interfejsach API. Książka jest przeznaczona dla programistów, którzy chcą nauczyć się JavaScriptu lub udoskonalić swoje umiejętności tworzenia kodu. Ujęto w niej we...
JavaScript. Przewodnik. Poznaj język mistrzów programowania. Wydanie VII JavaScript. Przewodnik. Poznaj język mistrzów programowania. Wydanie VII
(0,00 zł najniższa cena z 30 dni)77.35 zł
119.00 zł(-35%) -
To kolejne wydanie lubianego samouczka, dzięki któremu w ramach 24 godzinnych lekcji przyswoisz solidne podstawy programowania. Zrozumiesz, jak działają programy, i nauczysz się reguł stosowanych przez profesjonalistów przy ich projektowaniu. Dowiesz się, jak wygląda świat programistów i na czym ...
Programowanie dla początkujących w 24 godziny. Wydanie IV Programowanie dla początkujących w 24 godziny. Wydanie IV
(0,00 zł najniższa cena z 30 dni)41.40 zł
69.00 zł(-40%) -
To książka przeznaczona dla osób, które posługują się językiem JavaScript i chcą wykorzystać jego możliwości do zbudowania kompletnej aplikacji internetowej. Prezentuje język TypeScript i opisuje jego najlepsze cechy, pokazuje także, w jaki sposób za pomocą takich frameworków jak React, Redux, No...
React, TypeScript i Node. Tworzenie aplikacji internetowych typu fullstack React, TypeScript i Node. Tworzenie aplikacji internetowych typu fullstack
(0,00 zł najniższa cena z 30 dni)70.85 zł
109.00 zł(-35%) -
Jeżeli chcesz poznać potencjał tego duetu i zacząć tworzyć atrakcyjne aplikacje internetowe, nie możesz obejść się bez tej książki. Pomoże Ci ona szybko stworzyć pierwszy skrypt. W trakcie lektury poznasz niuanse składni JavaScriptu, sposoby obsługi zdarzeń oraz obiektowy model strony. Dzięki dal...
JavaScript i jQuery. Interaktywne strony WWW dla każdego. Podręcznik Front-End Developera JavaScript i jQuery. Interaktywne strony WWW dla każdego. Podręcznik Front-End Developera
(0,00 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
To książka przeznaczona dla średnio zaawansowanych użytkowników biblioteki React, którzy chcą tworzyć elastyczniejsze i łatwiejsze w utrzymaniu aplikacje. Wyjaśniono tu sposób działania wewnętrznych mechanizmów biblioteki React. Zaprezentowano, jak należy budować komponenty możliwe do wielokrotne...
React 17. Wzorce projektowe i najlepsze praktyki. Projektowanie i rozwijanie nowoczesnych aplikacji internetowych. Wydanie III React 17. Wzorce projektowe i najlepsze praktyki. Projektowanie i rozwijanie nowoczesnych aplikacji internetowych. Wydanie III
(0,00 zł najniższa cena z 30 dni)51.35 zł
79.00 zł(-35%) -
To drugie wydanie cenionego podręcznika dla początkujących programistów. Zawarty w nim materiał - podany jasno i przystępnie - pozwoli Ci w pełni poznać możliwości języka TypeScript 4. Naukę rozpoczniesz od zdobycia solidnych podstaw, a po przeanalizowaniu przejrzystych przykładów poznasz korzyśc...
TypeScript 4. Od początkującego do profesjonalisty. Wydanie II TypeScript 4. Od początkującego do profesjonalisty. Wydanie II
(0,00 zł najniższa cena z 30 dni)70.85 zł
109.00 zł(-35%) -
To kolejne, rozbudowane i uaktualnione wydanie świetnego podręcznika projektowania i programowania stron internetowych, zawierające wiedzę niezbędną do rozpoczęcia samodzielnej pracy. Opisano tu zasady tworzenia witryn WWW oraz przedstawiono język HTML i techniki CSS. Sporo miejsca poświęcono mul...
Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5, CSS3 i grafice. Wydanie V Projektowanie stron internetowych. Przewodnik dla początkujących webmasterów po HTML5, CSS3 i grafice. Wydanie V
(0,00 zł najniższa cena z 30 dni)83.85 zł
129.00 zł(-35%) -
W poprzednim tomie Nanonauci, którzy założyli własne Dojo Nano, wymyślili i napisali stronę internetową. Teraz przyszedł czas na grę. Będzie to prosta gra działająca w przeglądarce internetowej. Do kodowania posłuży Ci świetny język JavaScript, którym posługują się najlepsi programiści! W książce...(0,00 zł najniższa cena z 30 dni)
7.90 zł
24.90 zł(-68%) -
Uwaga, uwaga! Proszę państwa, kierujemy się w stronę JavaScriptu! Skoro zdecydowaliście się ruszyć z nami na tę pouczającą wycieczkę, to z pewnością dysponujecie znajomością języka HTML! Jeśli go jeszcze nie znacie, radzimy szybko to zmienić. HTML bowiem stanowi bazę, bez której trudno stworzyć s...
Frontend developer. Kurs video. JavaScript. Poziom podstawowy Frontend developer. Kurs video. JavaScript. Poziom podstawowy
(0,00 zł najniższa cena z 30 dni)32.45 zł
59.00 zł(-45%)
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły książki
- ISBN Ebooka:
- 978-14-919-6487-3, 9781491964873
- Data wydania ebooka:
-
2017-03-13
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 5.2MB
- Rozmiar pliku Mobi:
- 11.5MB
- Kategorie:
Technologie webowe » JavaScript - Programowanie
Spis treści książki
- Foreword
- Preface
- Why This Book Exists
- Who This Book Is For
- How To Use This Book
- Some Words in This Book
- App, Application, Program
- Inclusivity Through Words and Diagrams
- Users
- Third-Party Libraries and Communities
- API, Interface, Implementation, Client Code
- Inputs (Nonlocal and Free Variables)
- Conventions Used in This Book
- Using Code Examples
- OReilly Safari
- How to Contact Us
- Acknowledgments
- 1. What Is Refactoring?
- How Can You Guarantee Behavior Doesnt Change?
- Why Dont We Care About Details of Implementation?
- Why Dont We Care About Unspecified and Untested Behavior?
- Why Dont We Care About Performance?
- How Can You Guarantee Behavior Doesnt Change?
- What Is the Point of Refactoring if Behavior Doesnt Change?
- Balancing Quality and Getting Things Done
- What Is Quality and How Does It Relate to Refactoring?
- Refactoring as Exploration
- What Is and Isnt Refactoring
- Wrapping Up
- 2. Which JavaScript Are You Using?
- Versions and Specifications
- Platforms and Implementations
- Precompiled Languages
- Frameworks
- Libraries
- What JavaScript Do You Need?
- What JavaScript Are We Using?
- Wrapping Up
- 3. Testing
- The Many Whys of Testing
- The Many Ways of Testing
- Manual Testing
- Documented Manual Testing
- Approval Tests
- End-to-End Tests
- Unit Tests
- Nonfunctional Testing
- Other Test Types of Interest
- Tools and Processes
- Processes for Quality
- Coding standards and style guides
- Developer happiness meeting
- Pair programming
- Code review
- Test-driven development
- Processes for Quality
- Tools for Quality
- Version control
- Test frameworks
- Assertion/expectation syntax libraries
- Domain-specific libraries
- Factories and fixtures
- Mocking/stubbing libraries
- Build/task/packaging tools
- Loaders and watchers
- Test run parallelizers
- Continuous integration (CI) services
- Coverage reporters
- Style checkers, aka linters
- Debuggers/loggers
- Staging/QA servers
- Wrapping Up
- 4. Testing in Action
- New Code from Scratch
- New Code from Scratch with TDD
- Untested Code and Characterization Tests
- Debugging and Regression Tests
- Wrapping Up
- 5. Basic Refactoring Goals
- Function Bulk
- Inputs
- Outputs
- Side Effects
- Context Part 1: The Implicit Input
- this in Strict Mode
- Context Part 2: Privacy
- Is There Privacy in JavaScript?
- Wrapping Up
- 6. Refactoring Simple Structures
- The Code
- Our Strategy for Confidence
- Renaming Things
- Useless Code
- Dead Code
- Speculative Code and Comments
- Whitespace
- Do-Nothing Code
- Debugging/Logging Statements
- Variables
- Magic Numbers
- Long Lines: Part 1 (Variables)
- Inlining Function Calls
- Introducing a Variable
- Variable Hoisting
- Strings
- Concatenating, Magic, and Template Strings
- Regex Basics for Handling Strings
- Long Lines: Part 2 (Strings)
- Solution 1
- Solution 2
- Solution 3
- Solution 4
- Working with Arrays: Loops, forEach, map
- Long Lines: Part 3 (Arrays)
- Which Loop to Choose?
- Better Than Loops
- Wrapping Up
- 7. Refactoring Functions and Objects
- The Code (Improved)
- Array and Object Alternatives
- Array Alternative: Sets
- Array Alternative: Objects
- Object Alternative: Maps
- Array Alternative: Bit Fields
- Testing What We Have
- Our Setup Test
- Characterization Tests for classify
- Testing the welcomeMessage
- Testing for labelProbabilities
- Extracting Functions
- Getting Away from Procedural Code
- Extracting and Naming Anonymous Functions
- Function Calls and Function Literals
- Streamlining the API with One Global Object
- Extracting the classifier Object
- Inlining the setup Function
- Extracting the songList Object
- Handling the Remaining Global Variables
- Making Data Independent from the Program
- Scoping Declarations: var, let, and const
- Bringing classify into the classifier
- Untangling Coupled Values
- Objects with Duplicate Information
- Bringing the Other Functions and Variables into classifier
- Shorthand Syntax: Arrow, Object Function, and Object
- Getting New Objects with Constructor Functions
- Constructor Functions Versus Factory Functions
- A class for Our Classifier
- Choosing Our API
- Time for a Little Privacy?
- Adapting the Classifier to a New Problem Domain
- Wrapping Up
- 8. Refactoring Within a Hierarchy
- About CRUD Apps and Frameworks
- Lets Build a Hierarchy
- Lets Wreck Our Hierarchy
- Constructor Functions
- Object Literals
- Factory Functions
- Evaluating Your Options for Hierarchies
- Inheritance and Architecture
- Why Do Some People Hate Classes?
- What About Multiple Inheritance?
- Which Interfaces Do You Want?
- Has-A Relationships
- Inheritance Antipatterns
- Hyperextension
- Goat and Cabbage Raised by a Wolf
- Wrapping Up
- 9. Refactoring to OOP Patterns
- Template Method
- A Functional Variant
- Template Method
- Strategy
- State
- null Object
- Wrapper (Decorator and Adapter)
- Facade
- Wrapping Up
- 10. Asynchronous Refactoring
- Why Async?
- Fixing the Pyramid of Doom
- Extracting Functions into a Containing Object
- Testing Our Asynchronous Program
- Additional Testing Considerations
- Callbacks and Testing
- Basic CPS and IoC
- Callback Style Testing
- Promises
- The Basic Promise Interface
- Creating and Using Promises
- Testing Promises
- Wrapping Up
- 11. Functional Refactoring
- The Restrictions and Benefits of Functional Programming
- Restrictions
- Benefits
- The Future (Maybe) of Functional Programming
- The Restrictions and Benefits of Functional Programming
- The Basics
- Avoiding Destructive Actions, Mutation, and Reassignment
- Avoiding reassignment in conditional tests
- Avoiding reassignment in loops
- Avoiding reassignment in conditional bodies
- Avoiding destructive functions
- Avoiding destruction in general
- Avoiding Destructive Actions, Mutation, and Reassignment
- Dont return null
- Referential Transparency and Avoiding State
- Handling Randomness
- Keeping the Impure at Bay
- Advanced Basics
- Currying and Partial Application (with Ramda)
- Function Composition
- Types: The Bare Minimum
- The case for types
- Less intuitive aspects of types
- Burritos
- Introducing Sanctuary
- The null Object Pattern, Revisited!
- Functional Refactoring with Maybe
- Functional Refactoring with Either
- Learning and Using Burritos
- Moving from OOP to FP
- Return of the Naive Bayes Classifier
- Rewrites
- Wrapping Up
- 12. Conclusion
- A. Further Reading and Resources
- Origins of Refactoring
- Baseline JavaScript(s)
- Keeping Up with JavaScript
- JavaScript Reference
- Object-Oriented Programs/Patterns (Including Anticlass Stances)
- Async
- Functional
- Tools
- Non-JS-Specific but Relevant Sources
- Me
- Index
O'Reilly Media - inne książki
-
FinOps brings financial accountability to the variable spend model of cloud. Used by the majority of global enterprises, this management practice has grown from a fringe activity to the de facto discipline managing cloud spend. In this book, authors J.R. Storment and Mike Fuller outline the proce...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Edge AI is transforming the way computers interact with the real world, allowing IoT devices to make decisions using the 99% of sensor data that was previously discarded due to cost, bandwidth, or power limitations. With techniques like embedded machine learning, developers can capture human intu...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Why is it difficult for so many companies to get digital identity right? If you're still wrestling with even simple identity problems like modern website authentication, this practical book has the answers you need. Author Phil Windley provides conceptual frameworks to help you make sense of all ...(0,00 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Python was recently ranked as today's most popular programming language on the TIOBE index, thanks to its broad applicability to design and prototyping to testing, deployment, and maintenance. With this updated fourth edition, you'll learn how to get the most out of Python, whether you're a profe...(0,00 zł najniższa cena z 30 dni)
296.65 zł
349.00 zł(-15%) -
With the accelerating speed of business and the increasing dependence on technology, companies today are significantly changing the way they build in-house business solutions. Many now use low-code and no code technologies to help them deal with specific issues, but that's just the beginning. Wit...
Building Solutions with the Microsoft Power Platform Building Solutions with the Microsoft Power Platform
(0,00 zł najniższa cena z 30 dni)262.65 zł
309.00 zł(-15%) -
Companies are scrambling to integrate AI into their systems and operations. But to build truly successful solutions, you need a firm grasp of the underlying mathematics. This accessible guide walks you through the math necessary to thrive in the AI field such as focusing on real-world application...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
DevOps engineers, developers, and security engineers have ever-changing roles to play in today's cloud native world. In order to build secure and resilient applications, you have to be equipped with security knowledge. Enter security as code.In this book, authors BK Sarthak Das and Virginia Chu d...(0,00 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
With the increasing use of AI in high-stakes domains such as medicine, law, and defense, organizations spend a lot of time and money to make ML models trustworthy. Many books on the subject offer deep dives into theories and concepts. This guide provides a practical starting point to help develop...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Why are so many companies adopting GitOps for their DevOps and cloud native strategy? This reliable framework is quickly becoming the standard method for deploying apps to Kubernetes. With this practical, developer-oriented book, DevOps engineers, developers, IT architects, and SREs will learn th...(0,00 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Learn the essentials of working with Flutter and Dart to build full stack applications that meet the needs of a cloud-driven world. Together, the Flutter open source UI software development kit and the Dart programming language for client development provide a unified solution to building applica...(0,00 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: Refactoring JavaScript. Turning Bad Code Into Good Code Evan Burchard (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.