Monday, May 29, 2023

Translations of domain concerns architecture characteristics

Domain concern Architecture characteristics
Mergers and acuisitions Interoperability, scalability, adaptabilitym, extensibility
Time to market Agility, testability, deployability
User satisfaction Performance, availability, fault tolerance, testability, deployability, agility, security
Competitive advantage Agility, testability, deployability, scalability, availability, fault tolerance
Time and budget Simplicity, feasibility

References

Tuesday, February 21, 2023

How to detect changes by using Git

In various scenarios, you need to know what files were modified by a developer in your feature or main branch. Knowing which files were modified, you can determine which modules were impacted.

For example, you have a test suite that can take hours to run, and now you are running it in your deployment pipeline on each file change. The benefit of such an approach is that you can guarantee the quality of your product and ensure that your code change doesn't break existing functionality. Still, it hurts your productivity and the possibility of delivering new features quickly.

A solution for this problem could be to run only tests associated with a specific module. Git can help here. You can use the git diff command to get changes.

The first command will produce a diff between two commits:

git diff --name-only <commit>..<commit>

The second command will find diff from their common ancestor.

git diff --name-only <commit>...<commit>

New Version


If you want to get files modified in a new version, run this command:

git diff --name-only v1.0.0..HEAD

The result should look like this:

readme.md
src/package1/config.json
src/package2/config.json

Feature branch


If you want to get files modified in a branch feature, run this command:

git diff --name-only master...HEAD

The result should look like this:

src/package3/config.json

References