Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <h2>Submodules and Repo Management</h2> <p>You can group them with submodules - recursively, if need be. The <a href="http://git-scm.com/book/en/Git-Tools-Submodules" rel="noreferrer">ProGit book</a> explains this very well. You can manage a very large number of repos very easily with <a href="https://github.com/sitaramc/gitolite#readme" rel="noreferrer">gitolite</a> - right down to what repo a user has access to and what branches within that repo.</p> <h2>Branch per Feature</h2> <p>As for a good alternative for the standard SVN branching strategy, google "Branch per Feature" and you should see <a href="http://dymitruk.com/blog/2012/02/05/branch-per-feature/" rel="noreferrer">my article</a> on this exact subject. The strategy we came up with was in part due to dealing with a high number of repositories.</p> <p>Because you are using Oracle, I should point out the obvious for everybody's sake: <strong>Don't integrate by database.</strong> If you are, just stop reading right here. I pray for your soul.</p> <hr> <h2>Architectural Glue</h2> <p>As per SOA, I would designate one repository that would hold your contracts or versioned messages - versioned meaning you support multiple versions of the same massage (usually 3: current, deprecated and specific exception - all previous should raise unhandled exceptions) so you can roll out new versions of scaled out services and support old and new clients during a 0-down-time deploy when dealing with client-server and publish-subscribe relationships. This repository is a submodule of all repositories that have an end-point for integration.</p> <h2>Hooks</h2> <p>Add a <a href="http://git-scm.com/book/en/Customizing-Git-Git-Hooks" rel="noreferrer">hook</a> to this repository to allow forward only changes that embody <a href="http://en.wikipedia.org/wiki/Open/closed_principle" rel="noreferrer">OCP (Open Close Principle)</a> on an architectural level. You would simply not allow any updates to published classes. Once it's published, you have to support it. Gitolite makes it very easy to administer hooks remotely. It itself uses them to add it's functionality transparently.</p> <h2>Contract Migration</h2> <p>To add, message version migration - among other things - is made easier with Event Sourcing state. This is a subset of CQRS (Command Query Responsibility Segregation). <a href="http://msdn.microsoft.com/en-us/library/jj554200.aspx" rel="noreferrer">Even Microsoft is doing it</a> and I was lucky to be involved with that. Related are Context Maps and Anti-Corruption Layers from <a href="http://domaindrivendesign.org/" rel="noreferrer">DDD (Domain Driven Design)</a> when it comes to managing messages that exist outside of a service vs. ones used within one. Further guidelines for this can be found under Ubiquitous Language (also from DDD) and Domain Specific Language (see Martin Fowler's article <a href="http://martinfowler.com/bliki/DomainSpecificLanguage.html" rel="noreferrer">here</a>).</p> <h2>Implementation</h2> <p>Consider <a href="http://www.zeromq.org/" rel="noreferrer">0MQ (ZeroMQ)</a> for delivery to avoid a potentially large tech footprint of other "Message Bus" ideas. This does put responsibility of persistent queueing on your shoulders - driving out a more robust strategy overall. See previous paragraph for clues how that's accomplished. Consider <a href="http://www.servicestack.net/" rel="noreferrer">Service Stack</a> if faced with WCF in Windows environments. The less magic/auto-generated code there is in technology, the fewer issues you will have with difficult conflict resolution scenarios, deployments, testing and more.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload