Chapter 9 PHP 9.1

¡Supera tus tareas y exámenes ahora con Quizwiz!

Server-side

(or back-end) refers to those technologies that run on the web server like PHP, Python, Node.js, etc. and databases. Ex: Amazon uses server-side technologies to store information on millions of products and a client-side search interface that interacts with the web server so customers can find and purchase products.

Client-side

(or front-end) refers to those technologies that run in the web browser like HTML, CSS, and JavaScript.

Testing framework

Automated tests that verify the web application components are working properly, independently and together. Developers should write tests to insure the business logic is implemented correctly and write tests that automate interaction with the web application in the web browser.

ASP.NET

Collection of web development technologies first released in 2002 by Microsoft that uses the C# or VB.NET programming languages. ASP.NET is a powerful platform generally used on Windows servers.

Security testing

Ensuring the integrity and privacy of the user's data and interactions with the web application. Security testing involves looking for ways that unauthorized users may access the user's data. Security breaches can have drastic consequences for users and organizations.

The business logic of an SPA should generally be encoded in the front-end. (T/F)

False A well-designed SPA implements as little business logic in the front-end as possible. The web API should implement the business logic.

CSS front-end frameworks are required to build responsive websites that work well on mobile devices. (t/f)

False CSS front-end frameworks simplify the creation of responsive websites, but some developers write their own CSS code

Some small companies and organizations have the expertise to run their own web server, but many lack the technical information needed to do so or just prefer not to. (T/F)

False Free hosting generally provides limited services.

Haml code can be rendered directly in a web browser. (t/f)

False Haml must first be converted by an HTML preprocessor into HTML, which is then rendered in a web browser.

Web hosting companies generally charge more for hosting on Linux servers than for hosting on Windows servers. (T/F)

False Linux servers generally use open source software that does not cost money, but Microsoft servers generally run commercial software with the exception of ASP.NET, which is open source.

UI libraries always use JavaScript to govern the behavior of the UI widgets. (t/f)

False Some widgets require JavaScript, but many use special HTML tags to govern the widget behavior.

Relational databases will likely not be used for many web applications in the future. (t/f)

False The popularity of relational databases and relative ease of using SQL ensures that relational databases will not go away soon.

TypeScript code is executed by the web browser. (t/f)

False TypeScript is compiled into JavaScript by the developer, and the compiled JavaScript is executed by the web browser. JavaScript is the only native language that all major browsers are capable of executing.

Column database

For storing and processing large amounts of data using pointers that link to columns distributed over a cluster. Ex: HBase

Document database

For storing documents in JSON format with many levels of nesting. Ex: MongoDB

Graph database

For storing graph structures with nodes and edges. Ex: Neo4j

Object database

For storing objects created in object-oriented programming languages. Ex: Caché

Key-value database

For storing values that are associated with unique keys. Ex: Redis

Python

General-purpose scripting language created by Guido van Rossum in the 1990s that uses frameworks like Django, web2py, and Flask to create web applications. Python is Google's language of choice. Python uses an easy-to-learn syntax without { curly braces }.

Security

Hackers may attempt to access a website's data or upload malware to a hosted website that attacks the website, other hosted websites, or the website's users. Malware is malicious software designed to cripple a computer system or perform unwanted actions. Some hosting companies offer extra security measures like encrypting web traffic or providing dedicated servers in heavily-guarded data centers.

Server & Hosting Environment

Issues regarding network throughput, cloud storage, virtualization, hardware constraints, multithreading, and data redundancy. Developers should understand how the server components interact and how the components can be scaled-up to support large volumes of traffic.

Developer experience

JavaScript developers may choose Node.js instead of learning a new language like C#. Developers who are new to web development might already know Java or Python and prefer those languages.

JavaScript frameworks often simplify the use of web APIs in the browser. (t/f)

JavaScript frameworks like AngularJS often provide built-in functionality for working with web APIs.

UI libraries

Libraries that create UI widgets like sliders, dialog boxes, and drop-downs or simplify DOM manipulation. Ex: jQuery UI, Bootstrap, YUI, Ext JS.

Reliability

Many web hosting companies guarantee a certain level of uptime, and the level can be increased by paying more. Some companies backup data daily, and others provide little to no backups.

Application Programming Interface (API)

Programmable actions that may be performed on the underlying data. Often used by the front-end to interact with the back-end. Developers should understand how to create clear and concise programming interfaces.

Business logic

Programming logic on the front or back-end that determines how data can be created, displayed, stored, and changed. Developers need solid programming skills and the ability to use frameworks and libraries to simplify common tasks

Data modeling

Representing, storing, and retrieving application data in relational and non-relational databases. Developers should know the tradeoffs of choosing one type of database over another.

Node.js

Runtime environment that uses modules written in JavaScript. Originally created in 2009 by Ryan Dahl. Node.js is a relative new-comer, but many notable companies like Walmart and LinkedIn spout Node's ability to scale-up efficiently.

PHP

Scripting language created in 1994 by Rasmus Lerdorf. Currently the most popular server-side language in use. Facebook was originally created with PHP, and PHP remains one of the easiest server-side languages to learn.

Library support

Some languages may have pre-built libraries that support some web applications better than others.

Tool support

Some tools are ideal for working with certain programming languages. Ex: PhpStorm is ideal for PHP development, and Visual Studio is ideal for ASP.NET.

Price

Some web hosting companies offer limited services for free and subsidise lost income with advertising. Prices go up depending on reliability, services provided, security, amount of traffic, etc. The most expensive plans usually involve dedicated hosting where the customer is given full control over the web server.

Server platform

Some web servers support certain languages and not others. Ex: IIS supports ASP.NET, and Apache supports PHP.

Interface testing

Testing the interaction between the front-end and back-end and the interactions between the server-side programs and the database. Each component must handle error conditions properly and immediately alert developers to any problems.

Usability testing

Testing the user's ability to properly use the web application for specific purposes. Usability testing includes checking the content for correctness and ensuring the application is accessible to all users.

Compatibility testing

Testing the web application's ability to work on various browsers, operating systems, and platforms. Developers often use third-party libraries that aid in developing code that runs properly on all platforms.

A VPS generally runs slower than a dedicated host. (T/F)

True A VPS is easier to create and configure than a dedicated host, but a VPS is often slower because multiple VPSs are running on the same physical server and must share resources like disk access.

Developers use ASP.NET, Java, PHP, Python, Node.js, and Ruby on Rails to create web APIs. (T/F)

True All server-side programming platforms or languages have libraries and frameworks that allow developers to create web APIs.

CSS preprocessors allow developers to write much less code compared to writing straight CSS. (t/f)

True CSS preprocessors convert special syntax into more verbose CSS rules.

Column databases are generally faster than relational databases for accessing vast amounts of data. (t/f)

True Column databases excel at certain types of queries, such as finding aggregations like totals and averages. However, column databases are slow when inserting a single row.

A dynamic web page might look different for two different users who are accessing the same page. (T/F)

True Dynamic web pages are often personalized to the user who requested the page.

Web hosting companies provide various levels of security. (T/F)

True Most web hosting companies are quick to install software patches for security vulnerabilities, but providing extra layers of security costs money.

Both relational and non-relational databases have been implemented with open source software. (t/f)

True MySQL and PostgreSQL are popular open-source relational databases. MongoDB and Cassandra are popular open-source non-relational databases.

A relational database can be used to store documents, objects, graphs, and key-value pairs. (t/f)

True Relational databases are very flexible and can store a wide range of data. Some developers prefer non-relational databases for documents, objects, graphs, and key-value pairs because the programming required to manipulate such data is often decreased, and in some cases non-relational databases are faster.

SPAs generally result in less data being sent over the network than web applications developed with dynamically generated web pages. (T/F)

True SPAs use web APIs to pass data between the web browser and web server, which are generally more network efficient.

A small company may host the company's own website on the company's own web server. (T/F)

True Some small companies and organizations have the expertise to run their own web server, but many lack the technical information needed to do so or just prefer not to.

Java

Used to create applets on the front-end and servlets, JavaServer Pages, and web APIs on the back-end. Java has been used for web development since the late 1990s. Java is still a popular server-side language, but most developers now use Java primarily for creating web APIs.

Functionality testing

Verifying that each individual application function is working as expected. Functional testing includes verifying all links resolve properly, testing data validation on form inputs, and verifying the database is storing the correct information.

Performance testing

Verifying the web server is able to respond reasonably under various load conditions. Performance testing involves pushing the back-end to capacity and ensuring the system is able to withstand high loads.

User interface (UI)

Visual part of the application that users interacts with. Developers are often aided by graphic designers and usability experts to create effective UIs, but developers need mastery of front-end technologies to implement UI designs.

Ruby on Rails

Web application framework written in Ruby and created by David Heinemeier Hansson in 2004. Twitter was originally created with Rails. Rails emphasizes Convention over Configuration (CoC), meaning developers are encouraged to write code in a manner that follows a specific convention.

Flexibility

Website that become popular may need to quickly scale-up to handle more users. Web hosting companies may offer a virtual private server that can quickly be duplicated on other servers to meet high demand. A virtual private server (VPS) is an autonomous server that is hosted on a physical server with other virtual servers. Amazon Web Services (AWS) allows organizations to host virtual servers in the Amazon cloud that can quickly scale-up hosted websites when necessary.

JavaScript frameworks

a JavaScript environment that dictates the organization of the application's JavaScript to simplify many programming tasks. JavaScript frameworks often dictate how UI widgets receive data or send data to the web server. Ex: AngularJS, Backbone, Ember.

web API

a collection of functions that are invoked using HTTP. Ex: An HTTP GET request to the URL http://linkedin.com/api/contacts may retrieve a list of all contacts from the web server.

Web hosting company

a company that hosts others' websites on the company's servers, usually for a fee. Factors to consider when choosing a web hosting company include: Reliability, Flexibility, Security, Price

front-end developer

a developer that is proficient in client-side technologies.

back-end developer

a developer that is proficient in server-side technologies

full-stack developer

a developer who has expertise in all aspects of a website or web application's development, including client technologies, server technologies, data modeling, and user interfaces. The "stack" in "full-stack" refers to the various layers that compose websites and web applications. Technology stacks have increased in complexity over the years, so even "full-stack" developers typically specialize in a few areas of the technology stack.

CSS front-end framework

a framework that uses CSS or CSS pre-processors to aid in developing responsive websites that work well on every screen size. Ex: Bootstrap, YAML 4, Skeleton, Foundation.

Structured Query Language (SQL)

a language for creating, editing, selecting, and deleting data in a relational database. Popular relational database management systems (RDBMS) include MySQL, PostgreSQL, Oracle, and SQL Server.

CSS preprocessors

a program that converts a CSS-like language into CSS. CSS-like languages simplify the development of CSS stylesheets used in large projects. Ex: Sass, Less, Stylus

HTML preprocessors

a program that converts a markup language into HTML. The markup languages supported by HTML preprocessors are generally easier to use and read than HTML. Ex: Haml, Markdown, Slim, Jade

Compile-to-JavaScript languages

a programming language that is compiled into JavaScript. Compile-to-JavaScript languages provide benefits lacking in JavaScript like type safety, simplified class creation, and module creation. Ex: TypeScript, CoffeeScript, Haxe, Dart.

isomorphic JavaScript application

a web application that can run on the web browser and the web server. Proponents argue that isomorphic apps are easier to write and maintain than traditional web applications. Detractors point out that the client and server environments are very different from each other, so writing isomorphic apps introduces unnecessary complexity. The Meteor framework and Rendr library are popular tools for creating isomorphic apps.

Single Page Application (SPA)

a web application that provides a similar user experience as a desktop application, all in a single web page. Ex: Gmail, Google Docs, and Google Calendar are all SPAs. An SPA initially loads all of the application's resources so subsequent user interaction results in loading small pieces of content dynamically. Much of an SPA's programming logic is written in JavaScript, which loads data via Ajax calls to a web API. Single Page Applications are an example of modern web development.

dynamic web page

a web page that is generated on the web server when requested, typically personalized to the user who requested the page. With advances in web browsers, developers have begun creating static web pages that are dynamically altered by JavaScript. In this new paradigm, server-side technologies are used primarily to respond to Ajax requests and send data to the front-end for rendering.

relational database

stores data in relations (usually called tables)

Non-relational databases (non-SQL or NoSQL)

use different methods to store and retrieve data using a variety of data access languages. Non-relational databases come in several flavors: Document database, Key-value database, Object database, Column database, Graph database


Conjuntos de estudio relacionados

Evolve Endocrine NCLEX-PN 2, endocrine NCLEX, NCLEX Endocrine System

View Set

Spread of civilizations in east Asia: section 5: Japan's feudal age

View Set

Anatomy Ch 8. Appendicular skeleton

View Set

Sports medicine semester 1 final

View Set

exam answers- emilys study guide

View Set