1. Куча / Говнокод #25501

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Гуглил, ничего не нашел.
    Есть ли такая программа (кроме yacc), которой можно подать на вход структуру или класс, а она сгенерит (опционально):
    - парсер конфигов в нужном формате.
    - геттеры\сеттеры приватных полей.
    - методы взаимодействия с БД (запрос\сохранение\удаление\изменение таблиц|записей) а-ля Django Models.
    - ну и прочие удобные плюшки чтобы меньше вбивать код в редактор.
    
    гуглил как "Генераторы исходного кода" ничего толкового не нашел.

    Запостил: OlegUP, 03 Апреля 2019

    Комментарии (24) RSS

    • Генерит исходники на нужном языке имею ввиду.
      Ответить
    • Вот для старта поиска:
      https://en.wikipedia.org/wiki/Category:Parser_generators
      Ответить
      • ты предлагаешь использовать кококококодогереацию с помощью парсера?
        Ответить
        • Я пока ничего кококококонкретного не предложил. У автора в условии несколько совершенно разных задач. Вероятно, их придётся решать разными методами.

          Для первой (парсер конфигов в нужном формате) логично предположить, что подойдёт парсер.
          Ответить
    • Универсальной программы такой конечно же нет.
      Что есть:

      * генераторы WSDL схем по классам для Java и C#. По ним потом можно сделать веб-сервис.
      * геттеры-сеттеры приватных полей можно создавать динамически (для java это Lombok, например) а можно взять языки где это уже встроено (C#, Kotlin)
      * работа с базой слишком специфична, нужно или брать Django или Rails где это уже есть, либо Hibernate/JPA для джава, вот пример
      http://hantsy.blogspot.com/2013/12/jpa-21-schema-generation-properties.html
      Ответить
    • https://github.com/vlm/asn1c вот такая хрень есть, не уверен что в тему
      Ответить
    • > Есть ли такая программа (кроме yacc), которой можно подать на вход структуру или класс, а она сгенерит (опционально):
      > - геттеры\сеттеры приватных полей.

      Это всякие говноиде умеют, типа всякой хуиты от JetBrains. https://www.jetbrains.com/help/idea/generating-code.html#generate-getters-setters
      Ответить
    • Проще, наверное, самому под свои нужды скриптец напитонить, чем найти что-то достаточно универсальное и потом галочки расставлять.

      • Generate for language: [C++▼]
      • Application name: [MyApp1]
      ☑ Generate getters&setters
      ☑ Generate JSON serialization
      ☒ Generate XML serialization
      ☑ Generate YAML serialization
      ☒ Generate SOAP transactions
      ☒ Generate UML diagrams
      ☑ Generate Windows dialog resources
      ☒ Generate Borland Builder forms
      ☒ Generate TurboVision forms
      ☒ Generate Windows registry store/load
      ☑ Generate QSettings store/load
         ☒ Store in .ini file: [_________]
      ☑ Generate SQL queries
      • DB password : [QwErTy123▼]
      ☑ Generate generator code
      ...
      ☑ Use 8.3 file names
      ☒ Throw exceptions on validation error
      ☑ Call log function on validation error: [printf▼]
      ☒ Show error message windows
          ☑ Decorated message windows (TLK-themed)
      ☑ Play sound on successful parsing: [C:\Windows\Media\tada.wav]
      ☒ Automatically download dependencies
      ☑ Install update service
      ☑ Send anonymous usage statistics
      ☑ I agree with Terms and Conditions and Code of Conduct
      √☐ I am not a robot
      Ответить
    • Нихуя не понял, что тебе надо. Опиши исходную задачу
      Ответить
      • http://cdn01.ru/files/users/images/9f/ff/9fff4d4cdda749b0d97337a3eb41315b.png
        Ответить
        • Стертор пропал - появился Осетинский петух. Совпадение?
          Ответить
          • Пропал осетинский петух - появился я. Тоже совпадение?
            Ответить
      • Кодогенератор обобщенный для несколько языков и пишущий за меня типичный код, перечисленный в списке, на основе определения полей класса, а также поданных ему ключей.
        Ответить
        • Судя по всему, тебе нужен Interface Definition Language. Их много разных, и все они заточены под разные задачи. Тебе нужно читать конфиги или писать в базу данных или слать пакеты в сеть? Отвечай, или посоветую Apache Thrift.
          Ответить
          • Мне нужно всё и сразу. Слышал про IDL, в Open Office используется.
            Ответить
      • чтобы ты ему на вход класс -- а на выходе ORM, сеттеры, геттеры, и чтобы было пиздато
        Ответить

    Добавить комментарий