I know less about the development of the service side, do not know what the heroes recommend to learn what technology, read what books, or good advice?
And what technologies and frameworks are used in the current mainstream app service, and what frameworks and technologies are used in Python development?
Thank you for your answer first!
Reply content:
General apps need to interact with the server, and app developers, especially individual developers, need to master a server-side programming technology.
Common server-side programming techniques include. NET Java php python, etc.
Since the title mentions Android App, you might as well learn Java server-side programming.
Learn the servlet system first, install the capacity to run the servlet tomcat
Also have to learn about the database, recommended MySQL, Practice simple additions and deletions to change the statement
Learn how to connect to a database in Java JDBC
JSON is recommended for server and app interaction data
PS: Mobile phone typing, first said so much, if there is doubt, please comment message I am not a warrior, the following is a personal humble opinion, welcome criticism correct:
First of all, the server development involves more things:
1. Operating system
The operating system is now in the three-point world: Unix, Linux, Windows. It is recommended to learn Linux, primarily to master the basic server management and configuration commands, to write shell scripts for deployment, and to automate management.
2. Server
Nginx and Apache are common servers. Each of the two servers have their own characteristics, I can not say here which must be better than which. There are also many comparisons and discussions on the performance of these two services on the Internet for reference.
3. Database
Databases are MySQL, Oracle, SQL Server, etc. these are relational databases, and non-relational databases: memcached, MongoDB, Redis and so on. It is recommended to understand the characteristics of various databases, according to their business model, choose the best collocation.
4. Development language
The development language has a lot of Python, PHP, Perl, C + +, Java ... Basically most languages can be developed backstage. Each language has its own characteristics and framework, such as these languages are used by many companies.
As far as I know, the use of Python as a background development of the known, watercress, Quora, and now most of the new internet companies are inclined to use Python as the background of the development language.
Python as a background development is mainly to achieve rapid development, while the choice of development framework is also many, such as: Flask, Django, Tornado, bottle and so on. It is recommended to understand the characteristics of these frameworks.
5. TCP/IP protocol
Understand the basic protocols: HTTP, DNS, SMTP, SNMP ...
6. Data Interchange Format
PROTOBUF, JSON, XML ...
Here, the most space-saving and fastest is PROTOBUF, generally using JSON is good, JSON in space and speed are better than XML. If the special pursuit of saving space and speed on the use of protobuf.
...
The service side of the mainstream app:
There should be no so-called mainstream-I only know that Instagram uses nginx, Django, Gunicorn ...
It's definitely not as simple as the app backstage for so many users like Instagram. What Powers instagram:hundreds of Instances, dozens of Technologies
This article is the structure they published, for reference, there are also some on-line translation and analysis of the article.
Finally, my usage:
Currently using Nginx+uwsgi+flask
Flask is a lightweight framework for Python, which is described above.
Nginx is mainly to deal with static requests, dynamic hand over to Uwsgi.
Uwsgi is a server that makes it easy to deploy Python applications and is faster to handle.
You can find a lot of configuration about Nginx+uwsgi+flask online. If you don't talk about demand and application scenarios, the following answer can only tell you something that is "logically correct but meaningless".
I have a suggestion, since you plan to make an app, and write the backend server, you can first understand OAuth2.0, and then * * * First write detailed restful API interface Document * * *, back end find a rough fast Python framework to implement your interface, Later your users increase, the service pressure increases, and then consider how to make it faster. Doing the Adnroid app doesn't have anything to do with your understanding of server development techniques.
Technology Selection key look at 2 points:
1, from the business needs, to draw the technical framework.
2, you are good at the technology
I think your question is not covered by the above 2 points and cannot answer your question.
PS: Why talk about Python, if you're good at node. js, you can handle it. Consider the NGINX+TORNADO+MONGODB architecture, which ensures responsiveness when setting up a Web page (it fits the size and layout of the screen automatically) so that the web and the phone can take all. You can also consider using HTML5. As a college student doing Android apps, rookie, I'm going to answer the first question. First, whether you want to develop native app or Web app, the server is mainly HTTP response, can be used as a Web server to do, Small server recommended linux+nginx+mariadb+php development, the specific server to do is to process a GET request, or post to pass JSON data. We are using PHP to develop, simple and easy to use. Python does not understand, but is said to be less efficient than PHP. Gentlemen, I am a novice. But I say my opinion, the development of the app is divided into 2 different kinds of apps. One type is the native app, and one type is the type of C/s architecture. As the name implies, the Native app is a software that runs entirely on the operating system and does not involve the development of related class libraries and network protocols, just as Office software runs on the Weindows operating system. The C/S architecture app is different from the native app, as this app is just quite a UI interface with a mobile phone client, just calling some of the operating system to provide the services of the network protocol, as the others are not available!! So the development of the app and our actual C/s above the development is not much difference, mainly to understand that the business and demand is the most critical!!!