X
X
xfg2015-11-14 04:40:37
Yandex
xfg, 2015-11-14 04:40:37

Who knows how they develop in Yandex?

Who knows how the development process in Yandex is organized? The following is interesting, how exactly does a developer raise a project on his local machine in order to start working with the code? Does it lift at all?
Let's say a new developer came to the Yandex.photos project. In theory, he should only pull the code of this project from the repository in order to start working with it. But Yandex.photos may depend on other services, such as Yandex.passport, to at least log in to Yandex.photos. How does a developer solve this? Pulls chtoli the entire Yandex repository with all its services and sets it all up?
Or does he pull only Yandex.photos, write his own code and unit tests for it, push and that's it, continuous integration? Doesn't it look locally at the result of its work in the browser?
What do you think? Or how would you do it? If you have 20 different services, they are somehow connected to each other. How would you raise a local copy of the project? For all 20 services, would they set up a connection to the database and a ton of all sorts of configs so that it all at least works locally?
How? Share your thoughts. The same goes for any other large IT company.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
Dmitry Makarov, 2015-11-14
@DmitryITWorksMakarov

If dependencies are represented by interfaces, then there is no need to pull other projects - stubs are sufficient. In addition, it is not always possible to bring the dependency project into the state necessary for testing your project, while the stub is completely under your control. The interaction of different projects is carried out to us at the stage of integration testing. This is a completely separate job.

P
Puma Thailand, 2015-11-14
@opium

Listen to the latest radiot there Bobuk from Yandex told how they do it.

U
un1t, 2015-11-14
@un1t

If there are some common services that are used by different teams, you can deploy test servers with test data. Other commands can interact with test servers. Pulling the code is unlikely, firstly, it is unlikely that all teams will be given access to all services, and secondly, it can be a difficult task to raise someone else's service on technologies unknown to you and with an unknown architecture.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question