Lavoro su un piccolo team (2 primari con uno o due altri contributori occasionali) su un progetto / prodotto che si estende su un numero di piattaforme separate. Realizziamo il firmware incorporato nei chip C on Arm0. Scriviamo python e un po 'di script di shell per piccoli computer Linux di dimensioni simili a quelli di Raspberry Pi. Scriviamo app iOS in Swift. Scriviamo app per Android in Kotlin. Spariamo per una certa quantità di parità tra le app Android e iOS.
Raro è il giorno in cui lavoro da solo in una base di codice. Mi trovo diviso tra due estremi:
1) In ogni lingua / piattaforma / ambiente, aderisci a tutte le convenzioni di codifica, le migliori pratiche e gli idiomi di quella particolare comunità.
2) Rendi le tue convenzioni / idiomi che tendono ad essere un "melting pot" convergente tra loro.
Un esempio ancora minore di qualcosa di simile è parentesi sulle espressioni condizionali. C e Kotlin li richiedono. Swift no. Ma di recente, mi trovo a inserirli nel codice Swift, perché è più semplice essere coerenti.
Allo stesso tempo, non sto aggiungendo semi-due punti in tutto Python / Kotlin / Swift solo perché C li richiede.
Queste decisioni su dove ibridare, dove non farlo, mi sembrano arbitrarie. Fondamentalmente è una questione di stile personale. Sono curioso di sapere se altri sono stati in grado di costruire un approccio più basato sul principio per farlo. Oppure gli altri scendono lungo questa strada, quindi rifiutano l'intero sforzo e diventano completamente idiomatici in ciascuna area (questo non mi sembra realistico, perché ci sono "schemi" in ogni sistema che sono più idiomatici in uno rispetto all'altro) .