All streams
Search
Write a publication
Pull to refresh
18
0
Алиса Лидделл @Fancryer

Nutt maintainer

Send message

Да, видел. Может быть, я ошибаюсь и это на самом деле круто, но мне не очень нравится идея настолько неявной конкатенации строк, массивов и объектов. Плюс там пробелы и переносы строк гораздо важнее, чем в JSON или Av, что мне тоже не очень нравится. Пример ниже (из документации HOCON) как раз демонстрирует то, что мне не приглянулось.

// this is an array with one element, the string "1 2 3 4"
[ 1 2 3 4 ]
// this is an array of four integers
[ 1
  2
  3
  4 ]

// an array of one element, the array [ 1, 2, 3, 4 ]
[ [ 1, 2 ] [ 3, 4 ] ]
// an array of two arrays
[ [ 1, 2 ]
  [ 3, 4 ] ]

Если честно, о таком не задумывался, вот моё решение. Допустим, что в ОС, где мы используем Av, знак вопроса не может встретиться в имени директории. Тогда можно создать мапу, в которой он будет ключом для массива файлов, а имена директорий будут ключами к объектам, которые они описывают.

Допустим, структура проекта такая (не нейронка, у самого похожий есть):

example_project
├── config
│   └── environments
│       ├── development
│       │   ├── database.txt
│       │   └── settings.txt
│       └── production
│           ├── database.txt
│           └── settings.txt
├── app
│   ├── core
│   │   ├── controllers
│   │   │   └── museum
│   │   │       ├── create.txt
│   │   │       ├── read.txt
│   │   │       ├── update.txt
│   │   │       └── delete.txt
│   │   ├── models
│   │   │   └─── museum
│   │   │       ├── schema.txt
│   │   │       └── validations.txt
│   │   └── services
│   │       └── museum
│   │           ├── create_service.txt
│   │           ├── read_service.txt
│   │           ├── update_service.txt
│   │           └── delete_service.txt
│   └── utils
│       └── logging
│           ├── file_logger.txt
│           └── console_logger.txt
├── assets
│   ├── images
│   │   └── logos
│   │       ├── main_logo.png
│   │       └── footer_logo.png
│   └── styles
│       └── themes
│           ├── light.css
│           └── dark.css
├── tests
│   ├── integration
│   │   └── controllers
│   │       └── museum_integration_test.txt
│   └── unit
│       ├── models
│       │   └── museum_unit_test.txt
│       └── services
│           └── museum_service_test.txt
├── main.txt
└── .gitignore

Тогда я описал бы её следующим образом:

; map on value place means that there's inner directory at right
narrow_project {
  ; any name allowed in Av, but forbidden as path part
  ; could be used there
  ? ["main.txt" ".gitignore"]
  config/environments {
    ; array on value place means that there's file list at right
    development ["database.txt" "settings.txt"]
    production ["database.txt" "settings.txt"]
  }
  app {
    core {
      controllers/museum [
          "create.txt"
          "read.txt"
          "update.txt"
          "delete.txt"
      ]
      models/museum ["schema.txt" "validations.txt"]
      services/museum [
          "create_service.txt"
          "read_service.txt"
          "update_service.txt"
          "delete_service.txt"
      ]
    }
    utils/logging ["file_logger.txt" "console_logger.txt"]
  }
  assets {
    images/logos ["main_logo.png" "footer_logo.png"]
    styles/themes ["light.css" "dark.css"]
  }
  tests {
    integration/controllers ["museum_integration_test.txt"]
    unit {
      models ["museum_unit_test.txt"]
      services ["museum_service_test.txt"]
    }
  }
}

То есть:

  • В директории есть другие директории - использую мапу, где по некоторому ключу - у меня это знак вопроса - лежит массив файлов

  • В ней есть только файлы - использую массив с файлами.

Да, двоеточия и запятые можно опускать по желанию, любой JSON - это валидный Av. Можно даже смешивать и где-то писать их, а где-то - нет. Мне просто не нравится, как выглядит смешанный вариант, вот и не привёл такой пример.

Пока есть только локальная версия, планирую через пару недель выложить на Гитхаб, когда реализация будет чуть менее сырой.

Я бы не стал распыляться, если бы было возможно пройти по этому направлению путь от стажёра к джуну и дальше, но, как вы сами говорите, это невозможно, поэтому пытаюсь пробиться, используя университетский опыт и некоторые свои наработки (чуть подробнее написал в комментарии выше). Универ и знакомые не смогли помочь совершенно ничем, производственная практика началась только сейчас, на третьем курсе, причём там пришлось изучать новый для меня стек TALL, с которым я бы никогда в жизни не захотел работать сам. И работу после практики не предлагают.

Ну, я знаю Unreal Engine на уровне младшего разработчика, плюсы в основном анриловские использовал. На Lua писал различные скрипты, микромоды на S. T. A. L. K. E. R. вроде кастомной погоды, на Java писал бэк-энды для нескольких проектов на Spring Boot (потом перешёл на Kotlin).

Затем я начал изучать ФП (в основном F# и OCaml), начал повторять упражнения из TAPL, реализовывать что-то своё. STLC вот для начала, потом свои языки программирования (не шикарные, но вроде работающие). Сейчас вот подтягиваю теорию, чтобы разработать язык своей мечты, имеющий под собой прочные теоретические основания. В качестве дипломной работы выбрал следующее: DSL для описания транспайлеров из классов, сгенерированных ANTLR (T <: ParseTree), в AST Kotlin. Уже работает, проверял на том же STLC. Мне правда интересно это направление, но как пройти по нему куда-нибудь, не знаю. Пытаюсь вот параллельно устроиться в мобильную разработку (больше полугода изучаю Compose) или бэкенд (пишу на Java второй год), результатов пока нет.

И что же делать, если вакансий для джунов/стажëров в интересующем человека направлении нет или рекрутëры не читают резюме? Вот я хочу заниматься компиляторами/интерпретаторами и вот этой всей темой, читаю нужную литературу (Книга дракона, TAPL), делаю пет-проекты, а их никто не воспринимает всерьёз, потому что просто не работают над этим у нас. Как бы... Молодец, конечно, что потратил несколько лет на самообучение, но нам пофиг, мы тебя даже на собеседование не позовём. Не важно, куда. Будь это фронт, бэк, мобилки или другие направления, которые ты пытался осваивать сам, чтобы стать более универсальным специалистом, как советовали все вокруг. Мы просто продолжим присылать шаблонные ответы и обещать, что свяжемся позже. Не важно, что стек, который ты освоил, полностью нам подходит, мы всё равно тебя не возьмём.

Я не знаю, как люди находят стажировку или работу, уже год вижу только отказы без объяснений.

Что с переводом?..

Rogue, только там Шэй уже состоит в Братстве. Просто из-за глупого решения сценаристов между ним и остальными ассасинами случилось такое серьёзное недопонимание, что он решил сражаться против них. Очень многие сетовали, что тем нужно было просто спокойно поговорить.

Я одно время пользовался EAP, а потом случился промежуток в полтора месяца без них, когда пришлось временно сидеть на VS Code. А потом ещё один. Если есть желание скакать туда-сюда, то вариант с EAP вполне себе хороший.

Ну не знаю, блюпринты были уже в четвёртом Анриле, а в пятом они просто продолжили существовать.

Лучше бы увеличили количество мест для студентов.

Зачем мешать Optional и исключения? Почему нельзя вернуть None и обработать в дальнейшем? Optional же как раз подразумевает наличие или отсутствие значения нужного типа. Ну а если нужно вернуть либо значение, либо исключение, почему нельзя использовать, например, Either из Arrow?

Коментарий к переводу: в китайском языке не произносят "р" за исключением слогов с эризацией. Если написано Renfei то это не Рэньфэй а Жэньфэй. Если написано Ran, то это Жань. Разумеется, никто не говорит "ж" в словах вроде ér или diǎnr, но конкретно в данном случае перевод некорректен.

Довольно обидно, что они до сих пор не починили свою систему воды, которая не работает в мирах с World Partition (а до этого не работала в мирах с World Composition). И они вроде даже не собираются этим заниматься.

Я не понимаю, зачем под каждой картинкой из интернета писать, что она "с просторов интернета".

Не написано, что блюпринты не требуют хардкодить пути к ассетам, они сами пересчитываются при любом изменении соответствующих ассетов или этого блюпринта. Это удобно, поскольку можно просто выбрать, допустим, Cue, а потом перенести этот Cue в другую папку без нужды переписывать путь.

Прошу прощения, но я не вижу здесь отдельный язык программирования, это же в лучшем случае скромный DSL.

Сейчас в России действует «временный порядок», который позволяет беспрепятственно использовать иностранные движки вроде Unity и Unreal Engine. Такой «временный порядок» Минцифры установило до тех пор, пока VK не разработает движок Nau Engine.

А потом запретят или что? Какие вообще до этого были препятствия?

Если честно, перевод ужасен. Блокирующие комментарии? Твëрдый или мягкий символ новой строки? По-моему, даже Гугл переводчик справился бы лучше.

Information

Rating
Does not participate
Location
Саратовская обл., Россия
Date of birth
Registered
Activity

Specialization

Game Developer, Game Designer
From 30,000 ₽
Unreal Engine
Kotlin
Spring Boot
Java
Lua