This document summarizes the evolution of different schools of software testing approaches over time. It describes the Analytic School which focused on testing as a branch of mathematics. The Standard School emphasized managing predictable and repeatable testing to measure development progress. The Quality School viewed testing as protecting users from bad software. The Agile School focused on iterative development of small features and automated testing. The Context-Driven School believes the context is most important and that testing provides information rather than pass/fail results. Overall, the best approach depends on the context and all want quality but nobody wants to pay for testing.
This document discusses management and communication functions, providing rules for managers and discussing communication within teams, with managers, and problem solving. It covers management functions and rules, communication channels both within teams and with managers, and addressing questions.
The document discusses the growing field of e-commerce and why developing for e-commerce is important. It notes that the e-commerce market has grown significantly in recent years and is expected to reach $3 trillion in sales by 2017. Developing for e-commerce platforms like Magento offers developers challenges to solve across the entire online shopping experience, from browsing to checkout. The Magento platform in particular has over 150,000 businesses using it and has seen a large increase in the number of certified developers.
The document discusses Java serialization and the Externalizable interface. It provides examples of how to serialize and deserialize objects to allow their state to be written to a stream and restored later. The key points covered include:
- Using the Serializable interface to allow object serialization
- Implementing Externalizable for more control and better performance than Serializable
- Techniques for serializing singletons, enums, and collections for Externalizable
- Performance comparisons showing Externalizable can provide significant speed improvements over Serializable
This document summarizes the evolution of different schools of testing and quality assurance from the analytic school to present-day context-driven school. It traces how the field grew from a mathematics-focused analytic school to incorporate standards, quality protection for customers, agile development, and an emphasis on context. The document also briefly outlines typical roles and workflows for quality engineers, noting they provide critical feedback and knowledge of features while protecting users from bad software.
This document provides an overview of Magento, an open-source e-commerce platform. It discusses Magento's popularity and growth, key benefits like flexibility and out-of-the-box functionality, and the large community of over 800,000 users. The development process with Magento is outlined, including creating themes, configuring the platform, custom development, and integrations. Case studies are also mentioned. The document emphasizes that Magento is valuable for developers due to high demand, accessibility, and available training/certification options.
1) Nginx is a popular and productive open source HTTP and reverse proxy server that can serve as a front end server.
2) As a front end server, nginx processes requests for static resources, proxies requests to dynamic applications in the back end, and can perform tasks like compression, caching, uploading/downloading, and image processing.
3) The document provides examples of basic nginx configuration for serving static files, proxying requests to backends, setting up virtual hosts, compressing responses, and generating thumbnails.
Understanding bytecode and what bytecode is likely to be generated by a Java compiler helps the Java programmer in the same way that knowledge of assembler helps the C or C++ programmer. Java bytecode is the form of instructions that Java virtual machine executes. This knowledge is crucial when debugging and doing performance and memory usage tuning. The presenter will share his knowledge on what bytecode means for your platform and how to create compiler while using some awesome tools.
This document discusses user-focused design and its benefits. It describes user-focused design as an iterative process that analyzes user needs to meet their expectations. Benefits include identifying business and user needs upfront and avoiding dissatisfied customers. The process involves research, defining targets and goals, understanding use cases, and testing. Tips provided are to present clear navigation, aid in product discovery, ensure accessibility across devices, and continually test and optimize. Challenges and questions are also discussed.
The document discusses considerations for global ecommerce architecture. It outlines different approaches including a single global solution, separate solutions for each geography, and a hybrid reference application approach. The key points are:
- A single global solution can have lower costs but a poorer user experience and inability to fully accommodate local needs.
- Separate solutions are more customized but have high costs and little code reuse.
- A hybrid reference application provides shared code and customizations, allowing for 80%+ shared functionality with some local differences. This balances customization with code reuse.
- The best approach depends on company size, resources, ambitions, and management structure. A reference application may be most flexible for large global rollouts.
This document discusses principles for template engine design. It covers separating logic from views using patterns like MVC, MVP and MVVM. It also discusses features template engines should provide like data bindings, formatting data, logic implementation through loops and conditionals, caching capabilities, and code reuse through includes and partials. The key points to consider for template engine design are the platform, architecture, data binding, functionality, available development resources, and resulting code style.
This document discusses user behavior when interacting with important website elements such as links and forms. It provides examples of how users can interact with links, including clicking them, opening in new tabs, saving links, and not recognizing something as a link. Examples are also given for how users interact with forms, such as entering names in their native language, entering invalid symbols, or leaving fields empty. Best practices are suggested for designing links and forms to guide positive user behavior.
This document provides an introduction to clean coding principles including identifying bad code through code smells, writing tests, and refactoring code. It outlines good practices for writing transparent, reasonable, and usable code and emphasizes writing tests as a safety belt and leaving the codebase in better condition. The document presents object-oriented design patterns, principles, knowledge of languages and libraries, code smells, testing, and code reviews/refactoring as tools for writing clean code. It links to an example of refactoring code in a step-by-step manner and emphasizes writing tests as the starting point and keeping them as the grammar for the system.
The document discusses the growing field of e-commerce and why developing for e-commerce is important. It notes that the e-commerce market has grown significantly in recent years and is expected to reach $3 trillion in sales by 2017. Developing for e-commerce platforms like Magento offers developers challenges to solve across the entire online shopping experience, from browsing to checkout. The Magento platform in particular has over 150,000 businesses using it and has seen a large increase in the number of certified developers.
The document discusses Java serialization and the Externalizable interface. It provides examples of how to serialize and deserialize objects to allow their state to be written to a stream and restored later. The key points covered include:
- Using the Serializable interface to allow object serialization
- Implementing Externalizable for more control and better performance than Serializable
- Techniques for serializing singletons, enums, and collections for Externalizable
- Performance comparisons showing Externalizable can provide significant speed improvements over Serializable
This document summarizes the evolution of different schools of testing and quality assurance from the analytic school to present-day context-driven school. It traces how the field grew from a mathematics-focused analytic school to incorporate standards, quality protection for customers, agile development, and an emphasis on context. The document also briefly outlines typical roles and workflows for quality engineers, noting they provide critical feedback and knowledge of features while protecting users from bad software.
This document provides an overview of Magento, an open-source e-commerce platform. It discusses Magento's popularity and growth, key benefits like flexibility and out-of-the-box functionality, and the large community of over 800,000 users. The development process with Magento is outlined, including creating themes, configuring the platform, custom development, and integrations. Case studies are also mentioned. The document emphasizes that Magento is valuable for developers due to high demand, accessibility, and available training/certification options.
1) Nginx is a popular and productive open source HTTP and reverse proxy server that can serve as a front end server.
2) As a front end server, nginx processes requests for static resources, proxies requests to dynamic applications in the back end, and can perform tasks like compression, caching, uploading/downloading, and image processing.
3) The document provides examples of basic nginx configuration for serving static files, proxying requests to backends, setting up virtual hosts, compressing responses, and generating thumbnails.
Understanding bytecode and what bytecode is likely to be generated by a Java compiler helps the Java programmer in the same way that knowledge of assembler helps the C or C++ programmer. Java bytecode is the form of instructions that Java virtual machine executes. This knowledge is crucial when debugging and doing performance and memory usage tuning. The presenter will share his knowledge on what bytecode means for your platform and how to create compiler while using some awesome tools.
This document discusses user-focused design and its benefits. It describes user-focused design as an iterative process that analyzes user needs to meet their expectations. Benefits include identifying business and user needs upfront and avoiding dissatisfied customers. The process involves research, defining targets and goals, understanding use cases, and testing. Tips provided are to present clear navigation, aid in product discovery, ensure accessibility across devices, and continually test and optimize. Challenges and questions are also discussed.
The document discusses considerations for global ecommerce architecture. It outlines different approaches including a single global solution, separate solutions for each geography, and a hybrid reference application approach. The key points are:
- A single global solution can have lower costs but a poorer user experience and inability to fully accommodate local needs.
- Separate solutions are more customized but have high costs and little code reuse.
- A hybrid reference application provides shared code and customizations, allowing for 80%+ shared functionality with some local differences. This balances customization with code reuse.
- The best approach depends on company size, resources, ambitions, and management structure. A reference application may be most flexible for large global rollouts.
This document discusses principles for template engine design. It covers separating logic from views using patterns like MVC, MVP and MVVM. It also discusses features template engines should provide like data bindings, formatting data, logic implementation through loops and conditionals, caching capabilities, and code reuse through includes and partials. The key points to consider for template engine design are the platform, architecture, data binding, functionality, available development resources, and resulting code style.
This document discusses user behavior when interacting with important website elements such as links and forms. It provides examples of how users can interact with links, including clicking them, opening in new tabs, saving links, and not recognizing something as a link. Examples are also given for how users interact with forms, such as entering names in their native language, entering invalid symbols, or leaving fields empty. Best practices are suggested for designing links and forms to guide positive user behavior.
This document provides an introduction to clean coding principles including identifying bad code through code smells, writing tests, and refactoring code. It outlines good practices for writing transparent, reasonable, and usable code and emphasizes writing tests as a safety belt and leaving the codebase in better condition. The document presents object-oriented design patterns, principles, knowledge of languages and libraries, code smells, testing, and code reviews/refactoring as tools for writing clean code. It links to an example of refactoring code in a step-by-step manner and emphasizes writing tests as the starting point and keeping them as the grammar for the system.
The document discusses the growing field of e-commerce and why developing for e-commerce is important. It notes that the e-commerce market has grown significantly in recent years and is expected to reach $3 trillion in sales by 2017. Developing for e-commerce platforms like Magento offers developers challenges to solve across the entire online shopping experience, from browsing to checkout. The Magento platform in particular has over 150,000 businesses using it and has seen a large increase in the number of certified developers.
This document discusses Magento code audits conducted by Magento Expert Consultant Group. It provides examples of issues detected during past audits and how code audits can analyze over 50 projects containing over 66 million lines of code. Code audits identify over 45,000 issues through static analysis and manual review. The document outlines the audit process and how it evaluates code for issues related to performance, security, maintainability and more. It also describes how the group is working to automate auditing through tools that parse code as a software graph to more efficiently identify problems.
Jerry Lewis, VP of an IBM practice, discusses website performance and scalability for eCommerce. He shares horror stories of performance issues causing major revenue losses and customer complaints. Website performance is important because slow sites hurt sales and customer experience. Common causes of bad performance include inefficient code, database issues, and third party integration problems. To achieve good performance, websites must be designed with performance in mind from the start, with strategies like caching, efficient database usage, and infrastructure tuning.
The document discusses considerations for global ecommerce architecture. It outlines different approaches including a single global site, separate sites per geography, and a hybrid "reference application" approach. Key factors to consider include languages, currencies, pricing, taxes, payments, shipping, and integrating with local partners. A reference application provides flexibility to customize components for each locale while maintaining code reuse. The best approach depends on a company's size, resources, goals, and management structure.
The document discusses different approaches to web development with and without prototyping. It outlines standard and profound processes, noting that prototyping allows for research, technical documentation, and changes before design and development. Reasons to prototype include creating interactive versions quickly, showing functionality, downloading designs, and communicating with teams and customers.
Java annotations allow metadata to be added to Java code elements like classes, methods, and fields. This metadata can be read by tools and libraries to affect how the code is processed. Common built-in annotations include @Deprecated, @Override, and @SuppressWarnings. Annotations can also be applied to other annotations to specify how they function, such as their retention policy or valid targets. As an example, the document describes how to build a simple annotation-based test framework using the @Test annotation to mark test methods.