The document discusses several tools for JavaScript development including: 1. ECMAScript 6 for new JavaScript features, Visual Studio Code for editing, and Node.js & npm for modules. 2. Build tools like webpack, Babel, and UglifyJS to bundle, transpile, and minimize code. 3. Testing with Jasmine and debugging with Chrome Developer Tools and source maps. 4. Documentation generation with YUIDoc. A demo project is provided at https://github.com/simonkim/jstools-demo to show how to use these tools together in a workflow.
Test any (yes, any) website using NightwatchJS - selenium based JavaScript test runner. We will cover - prerequisites - configuration - writing tests - reading reports - continuous integration and services
React Native allows developers to build native mobile apps using JavaScript and React. While it provides benefits like using React for both web and mobile, allowing for code reuse, there are also challenges to using it in production. It is easy for web developers to use initially but documentation is poor and updates can cause breaking changes. Performance has not been an issue yet but native apps are generally faster. While the community is active, third party packages can introduce bugs and the build can sometimes break, especially on Android. Overall, React Native can be used for production apps if challenges around updates and crashes are addressed.
1) Web app performance can be improved through code splitting techniques that divide JavaScript bundles into smaller chunks to reduce loading time. 2) Compiler optimizations like tree shaking, constant folding, and dead code elimination can help reduce code size and evaluation time by removing unused code. 3) Code splitting libraries like Webpack allow splitting code at the module or route level to preload important chunks and lazily load others on demand to improve performance.
1. The document discusses 10 things the author likes about JavaFX, which is a Java UI toolkit. 2. It provides examples of JavaFX capabilities like data binding, FXML, CSS, effects, animations, multi-touch support, charts, and integration with web views. 3. The author encourages using JavaFX instead of older toolkits like Swing, argues it is efficient and modern, and offers to provide more information to those interested in migrating from Swing to JavaFX.
This document summarizes the JavaFX ecosystem, including popular layout managers, widgets, controls, UI libraries, testing frameworks, application frameworks, IDE plugins, and other utilities. MigLayout, Medusa, RichTextFX, ControlsFX, JFoenix, BootstrapFX, FontawesomeFX, Ikonli, TestFX, Afterburner.fx, MvvmFX, Griffon, e(fx)clipse, AnchorFX, ReactFX, and GroovyFX are some of the key libraries and tools mentioned for building JavaFX applications. The document provides an overview of the options available to developers for building desktop and mobile user interfaces with JavaFX.
This document discusses metaprogramming in Ruby, including object models, method dispatching, evaluation using class_eval, instance_eval, and eval, hooks for intercepting events, and building domain-specific languages. It provides examples of extending classes and objects at runtime through techniques like singleton classes, evaluation contexts, and method missing to add new behaviors dynamically. It also covers fluent interfaces and chaining methods to build internal domain-specific languages.
Presented at SCREENS 2013 in Toronto with Nick Van Weerdenburg Save 10% off ANY FITC event with discount code 'slideshare' See our upcoming events at www.fitc.ca AngularJS is a hot, hot, hot topic. Building web and mobile apps in AngularJS is an ease but there is a learning curve. In this session, you’ll learn the ins and outs of AngularJS and leave the session knowing how to build killer AngularJS apps.
The document discusses the messy and buggy state of the DOM across browsers and strategies for writing cross-browser JavaScript code. It notes that nearly every DOM method has bugs or inconsistencies in some browsers. It then covers strategies like feature detection, graceful fallback for missing features, simulating features via workarounds, monitoring for regressions, and having a robust test suite to prevent regressions in one's own code. The overall message is that the DOM is messy and one needs to "know your enemies" by thoroughly testing code in all target browsers.
Jest is a complete testing platform for your JavaScript applications, released by Facebook as an open source software.
This document provides an overview of the JavaFX community and ecosystem, including key people, blogs, books, tutorials, projects, frameworks, libraries, and more. It encourages joining the JavaFX community and contributing to open source projects to help grow skills. The presentation highlights over 30 frameworks and 45 libraries that have been developed for JavaFX.
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code? We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process! We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
Writing code is cool, but see it generating automatically is even cooler! This talk will be a case study about possibilities of Annotation Preprocessing in Java development. Let's look into popular libraries and frameworks that are using Annotation Preprocessing (like Lombok, Dagger 2, Retrofit, MapStruct), talk about it pros and cons compared with Reflection / Runtime Code Generation and discuss how you can create your own library that will generate boilerplate code at compile time.
This document discusses migrating from Swing to JavaFX. It presents 3 migration scenarios: 1) embedding JavaFX in Swing, 2) rewriting Swing apps without FXML, and 3) rewriting with FXML. Key similarities and differences between Swing and JavaFX concepts like buttons, layouts, and tables are outlined. FXML is described as a way to declaratively describe JavaFX scene graphs using XML. The document also briefly mentions tools like Scene Builder and concludes without covering advanced JavaFX topics like CSS, animation, and effects.
Jasmine is a JavaScript testing framework that can be used with JavaScript and CoffeeScript. It provides tools like suites, specs, matchers, spies and mocks to test asynchronous functions. Guard is a tool that can be used to automatically run Jasmine tests when files change. Jasmine-headless-webkit runs Jasmine tests in a headless browser environment. Jasmine-jquery adds jQuery specific matchers, fixtures, and event spies to Jasmine. Jasmine-ajax helps test ajax requests by defining responses and expectations.
This document provides examples of how to write unit tests for different types of code using Karma and Mocha/Chai, including: 1. Testing filters, API calls, and actions by mocking dependencies and asserting on expected outputs or dispatched mutations. 2. Testing Vue components by mounting them and asserting on rendered output, emitted events, and component property values. 3. Testing Vuex actions by asserting they dispatch the correct mutations and handle store state as expected. The examples demonstrate common testing patterns like mocking HTTP requests, injecting stubs, simulating events, and asserting on outputs to validate code behavior across different layers of an application.
Codeception is a modern PHP testing framework inspired by behavior-driven development. It allows writing acceptance, functional, and unit tests. The document provides instructions on installing Codeception via Composer, generating tests, and writing a basic test to check that a site's front page contains the word "Home". It recommends Codeception for testing every project and emphasizes the importance of testing.
This document discusses JavaScript test-driven development using Jasmine 2.0 and Karma. It introduces test-driven development principles and benefits, then covers the Karma test runner, PhantomJS browser, and features of the Jasmine testing framework including describe blocks, expectations, matchers, spies, and custom matchers. It also provides an example of mapping earthquakes and testing color-coded circles using magnitude and discusses code coverage and sustaining test-driven practices.
This document discusses best practices for debugging JavaScript including using breakpoints, watches, the console, call stacks, and unit testing. It recommends avoiding global variables, using scope to protect variables, and cleaning up code. Custom debugging tools, JSHint/JSLint, and resources for remote testing and learning more are also mentioned.
The document discusses debugging tools in web browsers. It provides an agenda that covers problems that need debugging like JavaScript errors, resource loading, alignment/CSS issues, and supporting multiple platforms. It then discusses the built-in developer tools in browsers like Chrome, Safari, Firefox, Internet Explorer, and Opera and demonstrates some of their features. It also mentions tools for testing cross-browser compatibility like BrowserShots and Spoon. Finally, it lists some useful Firefox add-ons and Chrome extensions.
Topic: Debugging JavaScript through Developer Tools in Google Chrome, FireBug in FireFox, and on Safari - Speakers: Thomas Bindzus, Founder, Vinagility Thanh Loc Vo, CTO, Epsilon Mobile
This document discusses common types and locations of errors in JavaScript, tools for debugging and introspecting JavaScript code, and methods for remotely debugging Node.js and front-end JavaScript applications. It covers loading errors, runtime errors, logic errors, and frequent error locations in JavaScript. Debugging tools discussed include node-inspector, Visual Studio Code, Vantage, and Vorlon.js. Remote debugging of Node.js processes and front-end code is also covered.
This document discusses various tools and techniques for faster web development. It covers debugging techniques for the DOM, JavaScript, network requests, and performance. It also discusses mobile web debugging tools like Remote Inspector for Chrome and iOS. The document provides tips for tooling and workflows, including using Splits to open files, using iTerm 2, and using GitX for commit history. It concludes with parting thoughts on problems having easy workarounds.
This document discusses techniques for finding and debugging memory leaks in JavaScript using Chrome DevTools. It begins with an overview of what constitutes a memory leak and why they are important to address. It then covers how memory is represented as a graph in JavaScript and how the garbage collector works. The document outlines several common sources of memory leaks, such as timers, closures, and DOM elements. It recommends best practices to avoid leaks and introduces tools in Chrome DevTools for profiling memory usage, taking heap snapshots, and using the new "Record Heap Allocations" feature to identify memory that is not being reclaimed between operations.