For the first time, the company tried to separate the front end from the back end of the project. As a result, the project manager (technology) made a variety of rancor. What should I do?

  node.js, question

For example, I am the small front-end of UEC, the newly established department of the company. The previous development of the company was developed by django of python. The project manager is accustomed to the form that the front-end only writes templates and the back-end uses them as sets. However, at the end of last year, my boss(uec director) proposed to his superiors to start the separation of front and rear ends, so he recruited many front ends and prepared to separate the company’s products one by one.

However, the project manager felt unreliable and asked me all kinds of questions to ensure this safety and that safety. . . . (The most important thing is. . Interface), because I am a side dish. . . The separation of the front and back ends is also a little known, just know that the front end adjusts the back end data through the interface. . . So I said that the front end cannot guarantee the safety of the data interface, and the back end is needed to guarantee the safety of the interface (I don’t know if I’m right, but the front end really can’t guarantee the safety of this. . . ), at that time may answer more urgent. . The project manager got angry. . He said, “This is fiddle. I don’t care. We have done a good job here. The problem lies with you. There is a problem with the significance of your UEC department.” Looking at him, I dare not refute anything. At that time, the product was released to me (he used to be a technician), and he said to the project manager: “Interface security is really a back-end job. I have done it before ………” [omitted here].

Since then, the project manager has been displeased with me for all kinds of data that should have been processed at the back end, and directly let his people carelessly dump them on me and let me process [thousands of data] at the front end. . Search at the front end. . I don’t know if the sorting is much. Then I blame myself for the slow work. If the project of not separating the front and back ends had been finished earlier, what injustice would I have? , originally this project was postponed when I came. At that time, this project did not have a back end. I finished the front end part in advance and waited for them to transfer the back end. I waited for half a month (during which I went to other projects to help other front ends). The back end came, the data was adjusted, and the product changed its demand in week years ago. . . The design had to be designed quickly. I had to wait until the design was finished to continue to change the page and add functions, so I didn’t finish it years ago. I didn’t finish it until this Friday. . . . Is it my fault? ? ? How come the postponed pot was dumped on me like this? ?

The front and back ends are separated. The back end only cares about the data and the M layer, so the back end is doing it fast and the VC layer is doing it at the front end. Instead, he thinks his back end is doing it fast and our front end is dragging the project back. . . What shall I do? . . . I think the dog beeped. . . I have already reflected the situation to my boss (boss is the promoter of the separation of front and back ends, but he was born in design? Maybe I don’t have that much say in front of technology), I still feel a little scared in my heart. I am on probation. . I’m really afraid of being brushed. . , what should I do, so confused. .

I agree more@ Doll TemperFrom the point of view of. However, I don’t say how to be a human being here. I’m going to talk about it from the perspective of technology and management.

First of all, I have said a word to everyone I have ever mentioned:Never trust the front end. Not to say that you don’t trust front end engineer, but to say that you don’t trust the data submitted by the front end, in other words,Security is definitely a back-end issue..

Separation between front and back is an inevitable trend, considering a question, would you like to render pages back or front? Assuming that the back-end rendering takes 0.1 seconds on average and the front-end rendering takes 2 seconds on average, the difference is 20 times. However, if there are 100 users, the back end needs to take 10 seconds to process, and if it is blocked, the average number of users has to wait 5 seconds. For front-end rendering, each user only needs to wait 2 seconds. Therefore, in terms of performance, I personally recommend moving the page processing forward. At present, various static trends are also proving this point.

Secondly, from the design point of view, front-back separation can realize the decoupling of presentation and data (logic), which is also an SOA idea. The back-end can focus on processing logic and data, leaving the presentation entirely to the front-end. Before and after the end only need to agree on a good data interface (usually JSON or XML in a certain format), the rest of the things are done separately, without affecting each other; It is not only easy to develop the front and back ends, but also easy to test. The front end can be used as a pile and the back end can be used as direct verification data. If the customer is not satisfied with the interface, the back-end can take a vacation. The front-end can solve the problem by changing the style sheet according to the new design. If you are not satisfied with the user experience, the front-end script has a little more to do … but most of them have framework implementation. In other words,The separation of the front and back greatly reduces the workload of the back end, but front end engineer must be able to afford it..

The next thing is the division of labor. In any matter, as long as there are many people (or one person and many roles are the same), there must be a division of labor. Division of labor, to put it bluntly, is the responsibility, responsibility is not clear, wrangling is sooner or later. Before and after the separation, from where points, to what extent, these all need to make a good agreement in advance, the responsibility is clearly divided. Take data for example, should thousands of pieces of data be processed at the front end or at the back end? According to one piece of data 1K, thousands of pieces are only a few meters long. In fact, front-end processing and back-end processing can be done. The back-end processing is definitely much faster and has the advantage of caching, which will not cause much blocking. The front-end processing is not a big problem except that the data is loaded slowly and the memory consumption is larger (no one will render thousands of pieces of data at the same time). Then this depends on the agreement, and the agreement is not casual. The architect is required to speak, or else what the architect will do. The architect thinks that in this place, the user experience of front-end processing is not good, so it is distributed to back-end processing, the front-end transmits parameters, and the back-end filters out the data, so it is back-end processing. The architect thinks that there is no pressure on the front-end processing and the back-end is the bottleneck, so the front-end processing …If the points are made clear, there will be no wrangling..

If the front-end pressure is too high and the back-end is too easy, that is what the project manager is responsible for. This is obviously an unreasonable arrangement of human resources. According to the 50% workload before and after, one front-end to three back-ends (for example) is a very inappropriate arrangement. Moreover, after the separation, it is obvious that the workload at the front end will be much larger than that at the back end. Therefore, how to arrange human resources in different project periods is the job of the project manager. What the project manager should do is to coordinate resources, control risks, grasp progress and spend as little money as possible-I have always been not in favor of technicians as project managers, and the way of thinking for technology and project management is different.

In general, separation is not a crime. Architects, project managers, and project team members each perform their respective duties and try their best to act in the spirit of contract. Things will be much easier to do. If you don’t think you can communicate with the project manager now, find your boss to communicate, or if you still can’t communicate, find a higher-level boss … if you can’t communicate all the time, then there is no possibility of cooperation and it’s hard to keep it. it’s better to develop in another place (if you just think about survival, then endure it).