YAML

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

YAML — язык сериализации данных, который восран таким образом, чтобы его могли читать и люди и машины.

Описание[править]

Его синтаксис минималистичен, он использует отступы, двоеточия и дефисы вместо обилия тегов и скобок, и ставит целью он как можно эффективнее хранить структурированные данные. Интересно, что YAML является строгим супермножеством JSON и любой корректный JSON-файл автоматически является валидным YAML-документом.

Первоначально аббревиатура расшифровывалась как Yet Another Markup Language, то есть по сути название придумать не смогли и просто об этом прямо и сказали. Потом как бы авторы изменили смысл на рекурсивный YAML Ain’t Markup Language, говоря, что это вообще не язык разметки.

По сути работа над YAML финализирована и новых изменений в него не вносится.

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

Пример[править]

---  # Начало документа
# Это комментарий. Комментарии начинаются с #

# Словарь верхнего уровня
beekeeper:
  name: Анатолий Пчела
  age: 132
  active: true
  address:
    city: Москва
    street: генерала Попки
    zip: "125000"  # строки в кавычках при необходимости

  works:  # список
    - пчёлы
    - грибы
    - жужжание

  # Многострочный текст
  bio: |
    Мощный пчеловод из Московской области.
    Способен вернуть былое величие и самому раздолбленному улью.
Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++ScalaH и Ё+Программист-бетонщик
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCPИсходный кодSingle-Page ApplicationGiteaForgejoCephIDEДжуниорРепозиторийPostgreSQLSQLiteJQueryБуферWebGLПереполнение буфераХардкодInvoke-WebRequestСкрипт для автоблокировки новых пользователейРазделение диапазоновПроверка диапазоновGeoLite2-Country.mmdbObjective-C
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.jsОптимизацияТестированиеAmbreon866Реверс-инжинирингКроссплатформенностьJSON
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур ПейпертПроблемаK!ockyTypeScriptОтладчикБитЭффективный менеджер (IT)TauriReact NativeWindows APIТипPyTorchTensorFlowПарсерNode.jsFastAPIVue.jsSvelteБэкендElectronBroken Object Level AuthorizationМаппингДжастин ФранкельHex-редакторVisual Basic .NETNext.jsDocker ComposeNode modulesIndexedDBDos2unix
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffiВибе-кодингFlutterАппликативный операторВыбрасывание окон из Windows