Общие рекомендации по созданию «стандартных» компонентов на нескольких языках - PullRequest
0 голосов
/ 05 декабря 2018

Короче говоря: я ищу совет о том, как создать «стандартную» библиотеку компонентов / оболочек, функционально идентичных для нескольких языков.Конечная цель состоит в том, чтобы иметь общую библиотеку, которую использует все программное обеспечение, чтобы изменения в нашем бэкэнде можно было легко вносить, не касаясь более 100 частей программного обеспечения

Простым примером будет оболочка для ведения журнала, которая принимает имя журналаи уровень многословия.Он будет иметь формат ведения журнала / отметки времени по умолчанию, расположение каталога и расширение .log.Базовая реализация будет отличаться, но выходные данные должны быть одинаковыми.

Java

public Logger log = new Logger("mylog", 20);
log.info("This is a Java log")

Python

log = Logger("mylog", 20)
log.info("This is a Python log")

C #

public Logger log = new Logger("mylog", 20);
log.info("This is a C# log")

Выводв mylog.log:

2018-12-04 15:00:00 |ИНФО |Это журнал Java

2018-12-04 15:00:01 |ИНФО |Это журнал Python

2018-12-04 15:00:02 |ИНФО |Это журнал C #

Предполагается следующее:

  • Используются следующие языки: Java, C #, Python
  • Используется GitHub
  • Количество библиотечных компонентов начнется с 3, но постепенно увеличится до потенциально 10 +.
  • Первые три компонента / оболочки будут вести логи, соединение SQL, средство чтения / записи файла конфигурации
  • Каждый язык будетвыпущен, например, DLL или JAR.
  • Существует более десятка разработчиков и более 100 скриптов / приложений / графических интерфейсов и т. д.

Вопросы, которые у меня есть и которые я хотел бы посоветоватьо:

  1. Должен ли каждый язык иметь свой собственный репозиторий?(Я могу думать о плюсах / минусах каждого и начал опираться на отдельные репо)
  2. Как работать с разными IDE?например, Java с Eclipse или NetBeans.Стоит ли запускать сборку из cli?
  3. Мысли о версии?т.е. все компоненты изначально выпущены в версии 1.0.Ведение журнала C # получает обновление и теперь является версией 1.1.В идеале и с дисциплиной, Java и Python должны обновляться одновременно и иметь одинаковые версии.
  4. Есть ли подводные камни в этом подходе?
  5. Является ли этот подход распространенным в малых или крупных организациях?
  6. Я с ума схожу от этого?!

Более длинная история: у нас есть машины (буквальные машины в производстве) а также ПК возрастом от 0 до 25 лет.ПЛК, Windows / Linux / Mac, мобильные устройства, приложения с графическим интерфейсом / командной строкой и т. Д. Это то, что не может быть изменено , потому что просто невозможно обновить все.

Из-за этого,в нашей организации мы используем несколько языков, в основном Java, Python и .NET.Кроме того, из-за большого разнообразия машин и ПК у нас есть более 100 сценариев, приложений (простых и очень сложных), веб-интерфейсов и т. Д. Они используются для таких вещей, как автоматический сбор данных, ручной ввод данных или отображение графиков.

Так как многие разработчики создали так много разных программ, мы пытаемся создать набор общих компонентов, которые по сути одинаковы для разных языков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...