V
V
Vitaly Stolyarov2016-01-19 18:08:30
Software design
Vitaly Stolyarov, 2016-01-19 18:08:30

What do you need to know before starting a big project?

After a year of working on a project that is a Web application with a front-end on three.js (WebGL) and a back-end on PHP + MySQL, it became clear that this was not quite the right way, so I found it analogues. I had to abandon both three.js, with which performance left much to be desired, and pure interpreted PHP, with which everything is clear, dynamic typing and variables through $ oh, how tired). In addition, regular hosting would not be enough, since NoSQL databases are needed, and there you can already see, and it is better to take VPS with J2EE
Actually, lately I have been actively studying materials on this topic so as not to do new stupid things, since the first pancake has already "turned out". The book "Perfect Code" (I have not read it to the end) helped a lot in that it gave a general understanding of where to start the project (not from "writing code", as it was done, well, almost ..)
1. Development of requirements
to determine , why the application is needed
what it should do (the moment when fantasy runs far ahead, fortunately slowly but surely I explore the areas of 3D graphics and mathematics to implement tasks)
, etc.
2. Design
think over what parts the application should be divided into, what they should do and how it should all interact (I studied UML a lot, I am morally ready to start designing, but I have almost no practical skills in drawing up diagrams :) )
3. Design
stage, on in which all thoughtful functionality is gradually embodied in code, compiled, tested, etc. repeatedly
Speaking about tools, I can say that in addition to the most necessary ones (from IDE to debuggers), we need a version control system (git), a documentation generator, a GUI prototyping tool.
But what else is worth mentioning and correcting in the above? Please share based on your own experience.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
V
vilix, 2016-01-19
@vilix

If a development team joins the project, and if the project is large, I think sooner or later you will need helpers, then you will need your own code-style-guide, or borrowed, for example, from Google.
As for design, UML is not always necessary here, you can design in different ways, it depends on the methodology, if you are not afraid that the project will undergo many changes during development, then write the spec (SRS) in the form of IEEE 830 or RUP. In the course of writing the specification, you will need different UML diagrams.
If you like more flexible development, you can borrow the so-called user stories, the essence of which is not detailed technical documentation of each function, but the fact that the project functionality is divided into features that are described in human language, you can see examples from scrum.
In general, it all comes down to the choice of software development methodology, there are a lot of them now, I’ll say on my own that it’s not necessary to get hung up on one, they can be synthesized by adjusting for yourself.
I understood one general rule for myself: at the beginning, simplify a larger project as much as possible, discarding everything superfluous, trying in the very first prototype to realize the main business goal of the project, and then build up everything else.
This rule helps to think less and philosophize about the project and just do it, otherwise many projects are completed at the design stage, when you enter into a stupor from the abundance of implementation options and possible problems and scenarios. just do it)

G
globuser, 2016-01-19
@globuzer

It is very convenient and very effective to use some kind of bug tracker-command-manager-mechanism.... ala Jira, Redmine, etc...
Well, remember about the deadlines and budget.

D
Dimonchik, 2016-01-19
@dimonchik2013

study ruhighload.com
1. here yes,
megamozg.ru/post/4242
www.artlebedev.ru/kovodstvo/sections/167
otherwise you will code for the sake of code
2. here.. how to say... if you think in pattern - well, great . And if not - see the recommended site, enough and so on a napkin.
3. yeah, everything is needed here and CI + tests on top

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question