后端開發除了編碼還要做什么
Whether you are learning to code, looking for a new job, or just want to improve your skills as a developer, you need to master the essential tools of team collaboration. These are as important as knowing how to code.
無論您是學習編碼,尋找新工作,還是想提高開發人員的技能,您都需要掌握團隊協作的基本工具。 這些和知道如何編碼一樣重要。
It is teamwork that makes or breaks software projects.
團隊合作決定了軟件項目的成敗。
Your code will work eventually. If you want it to work “on time” and be of good quality, you and your team need to be organized.
您的代碼最終將起作用。 如果您希望它“按時”工作并具有良好的質量,則您和您的團隊需要組織起來。
- Everyone needs to know what they have to do and when 每個人都需要知道他們必須做什么以及何時做
- People’s work should not overlap or clash 人們的工作不應重疊或沖突
- Common rules need to be followed through by everyone 每個人都必須遵循共同的規則
You can achieve this using the right processes and tools. You want your team to focus on coding 90% of the time (the remaining 10% are for coffee breaks and Windows Updates).
您可以使用正確的流程和工具來實現這一目標。 您希望您的團隊將精力集中在90%的時間上(其余的10%用于休息時間和Windows Update)。
Here are three essential things you need to master.
這是您需要掌握的三項基本知識。
Git和Pull請求 (Git and Pull Requests)
Configuration management is the foundation of team collaboration in software. Many tools exist for it, but luckily one has become the absolute and ultimate reference: Git.
配置管理是軟件中團隊協作的基礎。 有許多工具可以使用它,但是幸運的是,有一種工具已成為絕對和最終的參考: Git 。
Documentation on the key aspects is well described in the Git Book.
在Git書中很好地描述了關鍵方面的文檔。
There are plenty of turnkey services to get started: GitHub is probably the most popular, but also BitBucket or GitLab.
有很多交鑰匙服務可以開始使用: GitHub可能是最受歡迎的,但是BitBucket或GitLab也是如此。
A great graphical tool to work with is SourceTree. I recommend you master the command line before reaching for UI tools, though.
SourceTree是一個很好的圖形工具。 不過,我建議您先掌握命令行,然后再使用UI工具。
Below are the questions you should know how to answer:
以下是您應該知道如何回答的問題:
- How do I merge or rebase my branch, and what is the difference? 如何合并或重新設置分支基礎,有什么區別?
- How do I resolve conflicts? For example, mine versus theirs versus manual merge 我該如何解決沖突? 例如,我的與他們的與手動合并
What is a feature branch?
什么是功能分支 ?
What is a pull request?
什么是拉取請求 ?
What are the different collaboration workflows in Git?
Git中有哪些不同的協作工作流程 ?
That’s it, and this is pretty straightforward. After reading the theory and with some practice, you will become a Git master in a jiffy.
就是這樣,這很簡單。 閱讀理論知識并進行一些實踐后,您將很快成為Git大師。
敏捷板 (The Agile board)
The first thing a team needs to do when starting a project or a larger task is to split the job. Over the last 10 years, the “Agile” methodology replaced the traditional waterfall planning. The Agile manifesto is here.
團隊在開始項目或完成較大任務時需要做的第一件事就是拆分工作。 在過去的十年中,“敏捷”方法取代了傳統的瀑布規劃。 敏捷宣言在這里 。
Practically speaking it says “let’s not plan too much ahead, because inputs and assumptions we have today about the project will change”. This is almost always true, and nowadays there is hardly any team under the sun that is not (sometimes self-proclaimed) “Agile”.
實際上,它說“我們不要為未來做太多計劃,因為我們今天對項目的投入和假設將會改變”。 這幾乎總是正確的,如今在陽光下幾乎沒有一支團隊沒有(有時自稱為)“敏捷”。
Here are the practical things you need to know:
這是您需要了解的實用知識:
The most popular Agile way of working is Scrum. Divide your project into “sprints” of two weeks and put “tasks” in the content of the sprint. All the rest is for the future and is called the “backlog”. This is useful to track progress, adjust planning going forward, and improve team velocity over time.
最受歡迎的敏捷工作方式是Scrum 。 將您的項目分為兩個星期的“沖刺”,并將“任務”放入沖刺的內容中。 其余的一切都是為了將??來,被稱為“ 積壓 ”。 這對于跟蹤進度,調整未來計劃以及隨時間推移提高團隊速度很有用。
Another Agile approach is Kanban. The idea is to limit the number of tasks that are “in progress”. This way, you are sure to close one item fully before moving to the next. There are no sprints or time frames like in Scrum. You just go through tasks one after the other until you’re done.
另一種敏捷方法是看板 。 這個想法是為了限制“進行中”的任務數量。 這樣,您一定要先完全關閉一個項目,然后再移到下一個項目。 沒有像Scrum中那樣的沖刺或時間表。 您只是一個接一個地完成任務,直到完成。
In Agile, a software project will be split into tens or hundreds of tasks. You need a tool to manage them. The reference tool is JIRA.
在敏捷中,一個軟件項目將被分成數十個或數百個任務。 您需要一個工具來管理它們。 參考工具是JIRA 。
Other tools exist of course, but you will probably have to work with JIRA at some point. So if you are new to these all the tools, just go for JIRA. There is a free 7 day trial. It is more than enough to get an overview of how things work. Again, this is fairly straightforward, and very well-documented.
其他工具存在 ,當然,但你可能會在某個時候與JIRA工作。 因此,如果您不熟悉這些所有工具,請使用JIRA。 有7天的免費試用期 。 概要了解工作原理是綽綽有余的。 再次,這是相當簡單的,并且有據可查。
測試和持續集成 (Testing and Continuous Integration)
Git and agile tools allow teams to go fast. With speed inevitably come errors and bugs. Consider a team of five developers working on rather independent pieces of code. Each of them will make a pull request to the repository. Two problems can arise:
Git和敏捷工具使團隊可以快速前進。 隨著速度的發展,不可避免地會出現錯誤和錯誤。 考慮由五個開發人員組成的團隊,他們從事相當獨立的代碼。 他們每個人都會向存儲庫發出請求請求。 可能會出現兩個問題:
- Once the code of the “first developer” gets to the Git repository, the code of the others is no longer valid or working because some things have changed. This is not a mistake from “the first developer”, it is just life and it will happen. 一旦“第一個開發人員”的代碼進入Git存儲庫,其他代碼便不再有效或無法正常工作,因為某些事情已經改變。 這不是來自“第一個開發人員”的錯誤,它只是生命,并且會發生。
- Once all the developers pushed their code to the Git repository, chances that everything work as expected out of the box are rather low. Again, this is not a reflection of poor teamwork. It will just happen. 一旦所有開發人員將他們的代碼推送到Git存儲庫,開箱即用的一切工作的可能性就很小。 同樣,這并不表示團隊合作不佳。 它只會發生。
Therefore, you need to test your software. Even after each developer has pushed their code? It would be great, but a waste of time.
因此,您需要測試您的軟件。 即使每個開發人員都推送了代碼之后? 很好,但是浪費時間。
When other developers push their code, we’ll need to repeat this task. Should you test once everyone has pushed their code? Also great, but you’ll find bugs late in the process, which can delay the whole project. So how can you solve this?
當其他開發人員推送其代碼時,我們將需要重復此任務。 一旦所有人都推送了代碼,您是否應該進行測試? 也很棒,但是您會在過程的后期發現錯誤,這可能會延遲整個項目。 那么如何解決呢?
Automated tests and Continuous Integration are there to the rescue.
自動化測試和持續集成可助您一臂之力。
Automated testing is a topic one could write many books about. Each language and framework has its own set of tools. Listing them all would not make sense here. Just keep in mind that testing is time consuming and not always planned for.
自動化測試是一個主題,人們可能會寫很多書。 每種語言和框架都有自己的一套工具。 在這里列出它們都沒有意義。 請記住,測試是耗時的,并非總是計劃的。
Regardless, you should know how to write unit tests for your code and be proactive about writing them. If you don’t have time to actually do it, you should at least be aware that it’s wrong.
無論如何,您都應該知道如何為您的代碼編寫單元測試,并積極主動地編寫它們。 如果您沒有時間實際執行此操作,則至少應意識到這是錯誤的。
Continuous Integration is a process in which every push to your repository triggers a build and runs your tests automatically. A red flag is raised as soon as a faulty commit goes in. Pull requests should also be tested automatically before merging to avoid bugs that impact the whole team.
持續集成是一個過程,在此過程中,每次推送到存儲庫都會觸發構建并自動運行測試。 一旦有錯誤的提交進入,就會發出一個紅旗。在合并之前還應該自動測試Pull請求,以避免影響整個團隊的錯誤。
Continuous Delivery is the extension of Continuous Integration. If the tests pass properly, the tested version is pushed to the production environment automatically.
持續交付是持續集成的擴展。 如果測試正確通過,則測試版本將自動推送到生產環境。
As an example: at Quora, they track the time between a push to the repository and deployment of that code to production servers. The last benchmark I read about was 15 minutes … for around 100 developers. This is the most powerful setup a team could hope for.
例如,在Quora上 ,他們跟蹤從推送到存儲庫到將代碼部署到生產服務器之間的時間。 我讀到的最后一個基準測試是15分鐘,大約是100個開發人員。 這是團隊所希望的最強大的設置。
Popular continuous integration servers are Jenkins, Travis, CircleCI, and a few more. You do not need to know how to set the server up and everything, but you should know such tools exist, and a red alert should trigger in your head if your team do not use any.
流行的持續集成服務器是Jenkins , Travis , CircleCI等。 您不需要知道如何設置服務器以及所有內容,但是您應該知道此類工具的存在,如果您的團隊不使用任何工具,就會在您的頭腦中觸發紅色警報。
結論 (Conclusion)
The core of a developer’s job is coding. Once you move from solo/hobbyist to member of a performing team, proper use of the key collaboration tools is as important as writing clean code. Hopefully this article gave you an overview of what these tools are and how to dig further to be the best at what you do!
開發人員工作的核心是編碼。 從獨奏/愛好者轉到表演團隊成員后,正確使用關鍵協作工具與編寫清晰的代碼一樣重要。 希望本文概述了這些工具是什么,以及如何進一步挖掘以使其在您的工作中發揮最大作用!
Thanks for reading! If you find the article useful please hit the clap button below. It would mean a lot to me and it helps other people see the story!
謝謝閱讀! 如果您發現該文章有用,請點擊下面的拍手按鈕。 這對我來說意義重大,而且可以幫助其他人看到這個故事!
翻譯自: https://www.freecodecamp.org/news/3-essential-skills-every-developer-should-master-besides-coding-80e40e084241/
后端開發除了編碼還要做什么