I would like to know how to develop a web application.
When several people are developing remotely,
How do you develop it?
For example, if you have a production server
Git? When developing using etc.
Is it a form of creating the same environment as the production environment locally and synchronizing with the production server if there is no problem running there?
Or do you edit the file etc. and then bring it to the production environment to check the operation?
I haven't worked in the field yet, so I may be saying something irrelevant.
Thank you for your understanding.
I think that the method will change depending on the site and what you make, so
I would like to ask experienced people to tell us specifically how the development was carried out.
Is it a form of creating the same environment as the production environment locally and synchronizing with the production server if there is no problem running there? Or do you edit the file etc. and then bring it to the production environment to check the operation?
If anything, it is the former. I don't think it is basically possible to check the operation in the production environment (environment used by end users). Since the local environment is often not exactly the same configuration as the production environment, I think that the final operation check will be a test environment (environment shared by developers) equivalent to the production environment.
When it comes to "development of Web applications remotely with a few people", I think that the following are generally used (* Software is related to Java development. Ruby is not familiar. Excuse me).
- IDE (IntelliJ, Eclipse, etc.)
- Version control server (GitHub, Bitbucket, etc.)
- Version control client (git command, SourceTree, etc.)
- Build tools (Maven, Gradle, etc.)
- CI tools (Travis CI, Jenkins, etc.)
- Static analysis tools (SonarQube, FindBugs, etc.)
- Test tools (JUnit, Selenium, etc.)
- Issue management system (JIRA, Redmine, etc.)
The general flow of development using these is as follows.
The source code of the web application is managed by the version control server, and the developer downloads the source code locally with the version control client tool and builds it with the build tool.
After the build is complete, open the directory containing the source code in the IDE and start development. After modifying the source code, use the debug function of the IDE to check if it is working as intended. If there are no problems, build again in the local environment. When you build, the static analysis tools and test tools are run at the same time, and if there are no errors, the final product is completed.
Then push the source code to the version control server. When pushed, the CI linked with the version control server will perform static analysis, testing, and build of the source code again on the server. If this works, request a pull request and ask the reviewer to confirm the fix. Reviews are done using a browser on the screen provided by the version control server.
If there is an indication from the reviewer, reflect the indication and make a pull request again by the same procedure. If the reviewer gives OK, the pull request will be merged.
Web application issues (bugs and enhancement requests) are managed by the issue management system.
Although it is Java, I think this article will be helpful as an example.