Annoying problems with Android projects | by Volodymyr Nevmerzhytskyi | May, 2024
In the Distributed Systems Design Fundamentals course by Particular Software, which costs a few kilobucks, the company’s founder tells people with over 15 years of experience in development that it’s very important to name commits properly. No, this is not a joke. This issue is not often brought up in general, but it is very critical in development. Why bother writing something thoughtful when you can just push a commit with the text “fixes”? Let’s take a closer look at this.
First of all, branch naming. Programmers often work with a large number of code revisions simultaneously, and it’s important to precisely understand which version of the code you are currently looking at. Searching for the correct branch, then choosing one from several with similar names, or even, if you have a large organization, searching for the required type can be frustrating and time-consuming. If the team has an agreement on a certain type of structure, it simplifies everything. In this case, naming conventions like cicd/sonar-cube-check-implementation, bugfix/superuser-right-are-not-properly-assigned, or feature/property-detail-screen facilitate logical understanding of what is in each branch.
It’s also worth discussing the powerful integration of issue tracking systems with version control systems, whether it’s GitHub, JIRA, or any other tool. If you name your branch cicd/123-sonar-cube-check-implementation, where 123 is the issue or ticket number, the system will automatically link them, helping you/your colleagues see which changes were made within the scope of that issue and the current status of the branch. It doesn’t always prevent confusion, like one time when an EM told the client that everything was merged because he saw in the ticket that the branch was merged (but he didn’t see that it was merged into the wrong place because the project had a shoot-your-leg-driven git strategy), but it does help to quickly understand the situation.
Regarding commit messages — it’s the same story. Quite often, only one or two words are written there, while 50 files are changed. Now imagine that you have 10 commits in your branch, and you need to find the answer to a question, but all 10 commits say “fixes” 🙂
From a purely practical point of view and through empirical testing on teammates, the following type of integration has been found to work quite well:
Branch name: BranchType/TicketID-Brief-Ticket-Purpose
Commit Message: #TicketID: TicketID-Brief-Ticket-Purpose
- change #1
- change #2
- …
- change #n
What works well in this case:
- Branch visibility: The branch representing task X is not lost; manager can always see whether the work is ongoing or completed, even if the developer forgot to update the task status.
- Task history: In task X, you can find all the files that were changed to complete it even after six months. If the business comes and says, “Remember this task? We need to redo everything there,” you won’t have to spend time searching for the logic that was changed. Even if different people work on this task later, they have access to the history, making it easier to track the development of this feature.
- Well-described commits: Each commit is well-described and linked to the task. There might be a scenario where the task was completed with one commit, but later the developer realized something needed to be changed or added, and this is also part of task X. Then, we have two commits related to task X in the history.
- Easier navigation among commits: Imagine you have a large feature with 10 commits, and you need to find something important or check where the functionality broke down. This is especially relevant for large features or over a long period when you want to find something, and it’s much easier to orient yourself in structured messages than in one-word messages.
Certainly, this approach may not work for you and your team, but its presence in any variation significantly simplifies the team’s work.
Related Posts
Leave a Reply Cancel reply
Categories
- ! Без рубрики (1)
- ++PU (1)
- 1 (1)
- 1w (1)
- 1win Brazil (1)
- 1win India (1)
- 1WIN Official In Russia (1)
- 1win Turkiye (1)
- 1xbet egypt (1)
- 2ankarafayansustasi.net_may (1)
- ankarafayansustasi.netsiteai apr (1)
- Artificial intelligence (1)
- Arts & Entertainment, Photography (1)
- belugasitesi_mAY (1)
- BH_TOPsitesi apr (1)
- BHsitesy_may (2)
- Blog (3)
- Bookkeeping (14)
- Bootcamp de programação (2)
- Bootcamp de programación (2)
- BT_TOPsitesi apr (1)
- casino (5)
- casinom-hub (1)
- casinom-hub.comsitesi apr (3)
- colombian mail order brides (1)
- Cryptocurrency exchange (2)
- Dinamobet_next (1)
- Disease & Illness, Colon Cancer (1)
- Dumanbet (1)
- Dumanbet_next (1)
- Finance, Insurance (1)
- FinTech (5)
- Forex Trading (11)
- Galabet (1)
- Health & Fitness, Fitness Equipment (1)
- Hitbet (1)
- Home & Family, Crafts (1)
- Home & Family, Gardening (1)
- Internet Business, Audio-Video Streaming (1)
- Internet Business, Ecommerce (1)
- Internet Business, Email Marketing (1)
- Internet Business, Internet Marketing (1)
- IT Вакансії (1)
- IT Образование (5)
- IT Освіта (1)
- latin women dating (1)
- mail order bride (1)
- Mars bahis (2)
- Matadorbet (1)
- minimiri.comsitesi apr (3)
- Mobile App Development (771)
- Mostbet Russia (1)
- New Post (1)
- News (1)
- PB_TOPsitesi apr (1)
- PBsitesi_may (1)
- Pusulabet (1)
- redmirepool.bizsitesi apr (2)
- redmirepoolsitesi_may (1)
- Reference & Education, College (1)
- Reference & Education, Sociology (1)
- Rokusitesi apr (1)
- Sober living (6)
- Society, Divorce (1)
- Software development (7)
- Superbetin (1)
- Tempobet_next (1)
- thelongeststride.comsitesi apr (1)
- tipobet-turkiyesitesi apr (1)
- Ultrabet (1)
- Uncategorized (1)
- Игра (2)
- казино (1)
- Криптовалюты (1)
- Новости Криптовалют (1)
- Финтех (7)
- Форекс Брокеры (9)
- Форекс обучение (2)