📜 ⬆️ ⬇️

Sand development

I like to read articles on Habré from experienced people with experience in team development, their advice, instructions. For the time being, I myself simply lead a student life, and any activity as usual is individual and short-lived. Well, of course, it happened to write custom designs, but this is more of a hobby and a passion than something more.


Zachin


It happened recently at the university to develop a software complex of client-server interaction on JAVA. The final task of the special course, if I may say so.
In the design involved 10 people. That in itself makes adjustments to the organization of any activity. He took the most direct part in this by accepting responsibilities as a leader.
Of course, it all started with the idea : what would such a thing be written in the end, to pleasantly surprise the teacher and for one, deserve the exam automatically. As a result of the primary brainstorming, the project concept was put:
Let's make a network application using client-server architecture: the server contains a database with students, photos, information and quotes. The client requests information from the server and displays it to the user.
Later, more bold thoughts arose:

Job


What followed next? Design, object-oriented modeling. Here we presented the task as building a mechanism for the interaction of objects, describing their properties and interfaces.
The easiest, but the most important part : to determine the base classes, the data, in the desired form: the student class, the list of students. Later a server student was selected as a successor to the usual one, but with an additional field of the path to the photo on the server, an interface was developed for the list (in JAVA OOP terminology) for extensibility (whether to load the list from a file, either from a database or in any other way). Classes for working with images, data.
Initially decided that the same client will exist in the console and GUI variants, and the GUI is nothing more than a frontend. The server is built to work with the selector and channels, i.e. all network operations without blocking. Mutually agreed servers, this is exactly what was called in our course. To generate a response, we again selected the interface, which was then implemented in a separate class.
Here they also distributed responsibilities in implementation, dismantled the work of the protocol, formed all the requirements for it.
Further technical means of implementation: Eclipse development environment for JAVA, SVN- server of our department to synchronize development.
Well, after the design of these parts, the development began.
First of all, I laid out an approximate framework of the project explaining the role of each class, scattered everything in packages. I posted a description of the protocol with examples, laid out the distribution of tasks, notes on working with SVN.
It was immediately discussed even earlier that it is impossible to commit uncompiled code in SVN, leave commit comments empty, climb into other classes without the need, unless it was allowed to do stubs of missing methods with TODO or FIXME. This helped to avoid conflicts in SVN to the last.
I do not want to say that someone does not have the necessary knowledge, rather experience, therefore the task model and implementation was simplified, it was not necessary to know the same design patterns , etc., so that the allotted time was not spent on reconfiguring to a new, unusual fret

A spoon of tar.


What mistakes were made (in my opinion):

The fruits of labor.


Yes, so I finished the gloomy part, and now to the positive:
The project went on time, although the last night was essentially sleepless for two people.
The teacher was delighted, as we are.
Of course, as it always happens, the functionality was cut down at the end, but not so much that someone else’s work was removed from the release.

Afterword.


I do not consider the source code to be correct, so I don’t attach it, but the program itself and the address of the publicly accessible server: always welcome.
I realize that one team project with a more or less successful end does not give the right to lift up one's nose and cherish hopes for wild success.


Without claims for objectivity and with the knowledge of little experience, expectations of practical advice for the sake of.
')

Source: https://habr.com/ru/post/60937/


All Articles