Come organizzare grandi progetti poliglotta?

1

Uno dei miei progetti è iniziato come PHP, ma recentemente alcune delle nuove funzionalità sono state scritte in JavaScript sulla piattaforma Node.js.

In che modo grandi progetti poliglotta che utilizzano più lingue per scrivere i componenti del server organizzano il loro codice?

Una delle necessità sorge quando si fa ad avere modelli e servizi scritti in più lingue. Questo ci porta a:

/models
  /php
  /js
  /ruby
/lib
  /php
  /js
  /ruby

In alternativa, potremmo inserire implementazioni scritte in lingue diverse nella stessa cartella e differenziarle solo dall'estensione del file.

/models
  user.php
  user.js
  role.rb
/lib
  auth.php
  service.js
  anotherService.rb

Quali sono alcuni schemi comuni per affrontare questo?

    
posta Denis Pshenov 15.03.2015 - 08:32
fonte

1 risposta

2

Potrebbe essere il momento giusto per presentare i pacchetti. Sembra che il progetto sia diventato abbastanza complesso da separare funzionalità diverse in pacchetti indipendenti. Quindi la struttura potrebbe apparire come questa:

/package-1  # (Ruby)
  /models
    file.rb
  /lib
    some-file.rb
/package-2  # (Node)
  /models
    ...
  /lib
    ...
/package-3  # (Node)
  /models
    ...
  /lib
    ...

Avere una struttura come questa apre la possibilità di aggiornare il codice da ogni pacchetto in modo indipendente, con API pulite tra di loro, quindi forse anche alcune versioni indipendenti di ciascuna. Prima che tu te ne accorga, eseguirai un'architettura Microservices in piena regola: -)

Ovviamente ogni situazione è diversa, ma questo schema è molto comune per i servizi di grandi dimensioni.

    
risposta data 15.03.2015 - 08:47
fonte