R
R
Roman2017-02-02 14:37:25
Java
Roman, 2017-02-02 14:37:25

What architecture of the client-server application would you recommend?

I'm just learning programming, but I want to learn right away on my own project. I want to kill two birds with one stone - write a project and get a profession, just in case the project fails.
The project is quite "simple" - it is a client-server application for ordering a taxi.
TK already exists. There is an understanding of the organization of logic, it remains to be implemented in code.)
Since I already started learning java, I wrote part of the client on android, I would like to write the server in java.
Advice is needed almost from scratch. How to set up a server on your computer? In what environment to write? What technologies to use? And most importantly, how to build the architecture correctly?
Suppose I manage to write it and run it. The beginning will be in a small town and the number of customers will not be large. Suppose the application will be tested and the bugs will be fixed. Then, I hope, the program will want to be installed in other cities of the world and the number of customers can quickly increase.
Do I need to think about it right away or not bother with it yet, but work on the logic? If you still think about it right away, then what is the right thing to do?
Will it be necessary to add servers and distribute the load between them? What technology should be used in this option?
Or over time, you can just increase the capacity of the server? Although I don't really like this option. It would not be desirable to depend on one server.
Or is it not right to write in java at all, and while I'm a "teapot" at least for java, at least for another language, to learn and write in another? Then on what?
I would like to find a mentor. How much will such services cost? Or maybe the mentor wants to become a co-author and co-owner of the application? There is no need to chew, I want to reach it myself. But I wanted to quickly get out of dead ends and, most importantly, go in the right direction.
Thanks for any advice, except advice like - "boy, you can't do it!", "Start with the ABC", etc.
Thanks in advance!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
F
Frozen Coder, 2017-02-02
@frozen_coder

The server application is usually written in the form DAO-Services-Controllers. DAO - works with the database, Services - logic and requests to the DAO, Controllers - receive requests, send responses, call services. Communicate with the client via REST. I don’t know what you will do on a mobile phone, I don’t know what’s on mobile phones at all. I like Spring, you can use something else (Play, Java EE). Wednesday to your liking. IDEA is good. Choose the server yourself - WildFly (I'm for it), Glashfish, Tomcat, Jetty, etc. How to set it up - go to Google. In the same place you will esteem about distribution of loading on some servers.
Lombok helps on Java. JUnit or Spoke Framework testing.
From the database you can Postgres, but Mysql will do.
I don’t know about a mentor, I have enough colleagues at work.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question