IT Development Trend
IT The changing trend of the Times
First generation: Representative Model: Mainframe, Representative company: IBM Corporation
Second generation: Representative Model: PC, representative Company: Apple and Microsoft Corporation
Third generation: Representative technology: The Internet, on behalf of the company: Google and Baidu Company
Band FOUR: Representative technology: Mobile Internet.
Changing trends for Internet users
From 2007 to 2010, the average annual growth rate was 20~30%, and the growth rate was rising.
In 2010, there were nearly 460 million netizens in China.
July 28, 2011, China has a total of 785 million netizens, of which mobile phone users reach 378 million
NET game revenue increased from 6.5 billion to 32.7 billion
3G Basic Knowledge
What is 3G?
Third generation mobile communication technology (3rd-generation, 3G), refers to the support of high-speed data transmission of cellular mobile communication technology.
Four criteria for 3G presence:
CDMA2000: It is widely used in North America, and Telecom uses the 3G standard.
WCDMA: The world's broadest, iphone first adopted the 3G standard, Unicom uses the 3G standard.
TD-SCDMA: China supports proprietary rights, but few countries use the 3G standard for mobile use.
WIMAX:4G,
What is 2G?
The second generation of mobile communication technical specifications for short.
Two criteria exist for 2G:
GSM, CDMA
The difference between 2G and 3G:
Mainly in the bandwidth
Smart Phone Operating system
Representative Models:
1. Symbian
2. Blackberryos (RIM)
3, MeeGo
Nokia and Intel are fighting for the iphone and Android products. But then two companies stopped developing.
4. IOS
A mobile operating system that is entirely under Apple's control
5. Android
The world's first embedded open-source mobile operating system
6. Windows Phone (Windows Mobile)
7. Web OS
HP is going to sell it.
8, Bada
Samsung's mobile phone system
smart phone brand
Figure-1
The difference between Featurephone and smartphone:
Featurephone: Built-in applications
Smartphone Mobile: Rear application
(noun explanation)
Oop
Object-oriented programming (object Oriented Programming,oop, OO programming) is a computer programming architecture. One of the basic tenets of OOP is that a computer program is composed of a single unit or object that can act as a subroutine. OOP achieves the three main goals of software engineering: reusability, flexibility, and extensibility. To achieve the overall operation, each object can receive information, process data, and send information to other objects. OOP mainly has the following concepts and components:
components -data and functions in a running computer program formed in a unit, the component in the OOP computer program is a modular and structured basis.
Abstraction -The program has the ability to ignore certain aspects of the information being processed, namely the ability to focus on the main aspects of the information.
Encapsulation -also known as information encapsulation: Ensure that components do not change the internal state of other components in an unpredictable way, and that only those components that provide an internal state change method can access their internal state. Each type of component provides an interface that is associated with other components and specifies the method by which other components are called.
Polymorphism-component references and class sets involve many other components of different types, and the result of referencing a component depends on the type of actual invocation.
Inheritance -Allows child class components to be created on the basis of existing components, which unifies and enhances polymorphism and encapsulation. Typically, a class is used to group components, and it is possible to define a new class as an extension of an existing class, so that the class can be organized into a tree or mesh structure, which embodies the versatility of the action.
Component-based programming has become particularly popular in scripting languages due to the reasons for abstraction, encapsulation, reusability, and ease of use.
Mvc
MVC is a design pattern that makes it mandatory to separate the input, processing, and output of an application. Using an MVC application is divided into three core parts: Model (M), view (V), Controller (C), each of which handles its own tasks.
View : A view is an interface that the user sees and interacts with. For older Web applications, views are an interface of HTML elements, and in modern Web applications, HTML still plays an important role in the view, but new technologies are emerging, including Adobe Flash and Elephant xhtml,xml/xsl, Some identity languages and Web services, such as WML. How to handle an application's interface becomes increasingly challenging. One big benefit of MVC is that it can handle many different views of your application. There is really no real processing happening in the view, whether the data is stored online or an employee list, as a view, it is simply a way to output data and allow the user to manipulate it.
Model : models represent enterprise data and business rules. Of the three parts of MVC, the model has the most processing tasks. For example, it may use artifact objects such as EJBS and ColdFusion to process the database. The data returned by the model is neutral, meaning that the model is independent of the data format, so that a model can provide data for multiple views. Because the code applied to the model can be reused by multiple views only once, it reduces the repetition of the code.
Controller : The controller accepts the user's input and invokes the model and view to complete the user's needs. So when you click a hyperlink in a Web page and send an HTML form, the controller itself does not output anything and do any processing. It simply receives the request and decides which model component is called to process the request, and then determines which view to use to display the data returned by the model processing.
Now we summarize the process of MVC, first the controller receives the user's request and decides which model should be called to process it, then the model uses the business logic to process the user's request and return the data, and finally the controller formats the data returned by the model with the corresponding view and renders it to the user through the presentation layer.
Orm
Object-Relational mapping (Object/relation Mapping, or ORM) is a result of the development of object-oriented software development methods. The object-oriented development method is the mainstream development method in the enterprise application development environment, and the relational database is the mainstream data storage system which is stored permanently in the enterprise-level application environment. object and relational data are two representations of business entities, and business entities behave as objects in memory and behave as relational data in the database. There are associations and inheritance relationships between objects in memory, and in a database, relational data cannot directly express many-to-many associations and inheritance relationships. Therefore, object-relational mapping (ORM) system usually exists in the form of middleware, which mainly realizes the mapping of program object to relational database data.
Object-oriented is developed from the basic Principles of software engineering (such as coupling, aggregation, encapsulation), and the relational database is developed from the mathematical theory, and the two sets of theories have significant differences. In order to solve this mismatch, object-relational mapping technology emerged.
Aop
AOP (aspect-oriented programming, aspect-oriented programming) can be said to complement and improve OOP (object-oriented programming, object-oriented programming). OOP introduces concepts such as encapsulation, inheritance, and polymorphism to create an object hierarchy that simulates a collection of public behavior. When we need to introduce public behavior to scattered objects, oop seems powerless. In other words, OOP allows you to define relationships from top to bottom, but it is not appropriate to define left-to-right relationships. such as logging capabilities. Log code is often spread horizontally across all object hierarchies, and has nothing to do with the core functionality of the objects it spreads to. This is true for other types of code, such as security, exception handling, and transparent persistence. This irrelevant code scattered around is called crosscutting (cross-cutting) code, and in OOP design, it leads to a lot of duplication of code, rather than the reuse of individual modules. AOP, on the contrary, uses a technique called "crosscutting" that splits the encapsulated object interior and encapsulates public behavior that affects multiple classes into a reusable module, called "Aspect", which is the facet. The so-called "aspect", in a nutshell, is to encapsulate the logic or responsibility that is not related to the business, but for the common invocation of the business module, to reduce the duplication of code in the system, to reduce the coupling between modules, and to facilitate future operability and maintainability. AOP represents a horizontal relationship, if the "object" is a hollow cylinder, which encapsulates the properties and behavior of the object, then the aspect-oriented programming approach is like a razor that cuts through the hollow cylinders to get inside the message. The cut-off aspect is the so-called "facet". Then it hands the cut-off slices with a clever capture of the heavens, leaving no traces.
Using "crosscutting" techniques, AOP divides software systems into two parts: core concerns and crosscutting concerns. The main process of business process is the core concern, and the part that has little relation is the crosscutting concern. One feature of crosscutting concerns is that they often occur in many of the core concerns and are essentially similar everywhere. such as permission authentication, logging, transaction processing. The role of AOP is to separate the various concerns in the system, separating the core concerns from the crosscutting concerns. As Avanade's senior program architect Adam Magee says, the core idea of AOP is "separating the business logic in the application from the generic services that support it." ”
Curd
Curd is a database technology abbreviation, the general project development of various parameters of the basic functions are curd. It represents the creation (create), update, read (read), and remove (delete) operations. Curd defines the basic atomic operations that are used to process data. The high level of curd to a technical challenge is due to the completion of an activity that involves a rollup of curd operations in multiple database systems, and its performance may vary greatly depending on the data relationship.
Curd does not necessarily use the Create, update, read, and delete words in specific applications, but the functionality they perform is consistent. For example, thinkphp is a curd operation that uses the Add, save, select, and Delete methods to represent the model.
Single entry
A single entry usually refers to a project or application that has a uniform (but not necessarily unique) entry file, which means that all the functionality of the project is done through the portal file, and often the entry file is executed in the first step.
The benefit of a single entry is the overall comparison specification of the project, since the same entry often has the same rules between its different operations. Another aspect is that the advantage of single entry is that control is more flexible, because interception is convenient, similar to some rights control, user login aspects of the judgment and operation can be unified processing.
Or some people will worry about all the sites through a portal file access, whether it will cause too much pressure, in fact, this is a worrying idea.
Mobile Internet development trends
Statistical data
Android smartphones have reached 52% market share in the fourth quarter of 2011.
2011 smartphone shipments will exceed 450 million
2010 Mobile development Talent Demand 200,000, the future talent demand gap will reach millions
51job: Android Engineers with 1 years of development experience earn about 8000 yuan a month
August 15, 2011, Google buys Motorola.
July 15, 2011, Google revealed that the daily activation volume of 550,000 units, the total number of installed systems to 130 million units, Android Market applications downloaded up to 6 billion times.
2011, more than 400 Android devices are available in the market
Android latest share of each edition
Figure-2
Trends in IT and 3G