Словарь облачных (и вообще программерских) базвордов
Опубликовано 2013-04-01 в 13:15
Список известных и популярных айтишных базвордов. Я постарался коротко и каждом рассказать и дать ссылку на более детальное объяснение. В списке бренды, технологии, методологии, фреймворки и концепции.
Список регулярно обновляется и дополняется.
- ACID
- Сокращение от Atomicity, Consistency, Isolation, Durability, набор свойств, гарантирующих надёжность выполнения транзакций в базе данных.
- Aerospike / https://www.aerospike.com/
- Опенсорсная распределённая NoSQL база данных, оптимизированная на хранение данных в flash-памяти (ssd-накопителях).
- AJAX
- Сокращение от английского Asynchronous JavaScript and XML, набор технологий, позволяющий выполнять запросы из веб-браузера на сервер без перезагрузки страницы.
- AngularJS / https://angularjs.org/
- Опенсорсный JavaScript-фреймворк, заточенный на разработку single-page приложений. Основной его особенностью считается так называмый Two-way data binding, это когда к DOM-модели привязан JavaScript-объект и все изменения этого объекта тут же отражаются на DOM и наоборот. Основным «конкурентом» считается React.
- Ansible / https://www.ansible.com, википедия
- Программная инфраструктура для управления облаком: деплоймент, конфигурация и всё такое.
- AWS
- Сокращение от английского Amazon Web Services, набор веб-сервисов от компании Amazon, которые можно арендовать за деньги, включает в себя сервисы хранения данные и сервисы виртуализации.
- API
- Сокращение от английского Application Programming Interface, в общем смысле — протокол (интерфейс) взаимодействия с некоторым сервисом или приложением, в последнее время API по большей части ассоциируется с разнообразными JavaScript-интерфейсами для работы с крупными облачными сервисами (например, Twitter API или API вконтакте).
- Azure / https://azure.microsoft.com/
- Облачная платформа от Microsoft, по сути то же самое, что и AWS, только от микрософта.
- Big Data
- Можно перевести на русский как Большие данные, сравнительно недавно появивишийся термин, которым принято обозначать такие объёмы данных, которые традиционными средствами обрабатывать либо сложно, либо затратно. Под обработкой обычно подразумевается анализ, поиск, сбор статистики. Примеры больших данных: миллиарды фоточек у фейсбука, записи о финансовых транзакциях у крупного продавца, научные данные (геном, социология, астрономия, физика итп).
- Blockchain / https://en.wikipedia.org/wiki/Blockchain_(database)
- Блокчейн — распределённая база данных, состоящая из блоков (block), связанных в цепь (chain), каждый блок зависит от предыдущего с использованием разной криптографии таким образом, что невозможно изменить блок так, чтобы все последующие не изменились. Работающим примером блокчейна является bitcoin.
- Bootstrap (by twitter)
- Популярный набор инструментов для создания веб-приложений, разработанный twitter, и выложенный в опенсорс на гитхабе. Официально называется Twitter Bootstrap и работает с CSS/JavaScript/HTML.
- BYOD
- популярная в последнее время концепция, расшифровывается как Bring your own device и по сути означает разрешение (и даже рекомендацию) сотрудникам использовать свои собственные устройства (чаще всего мобильные) для работы на компанию и для доступа к приватным данным компании. Устройства — это ноутбуки, смартфоны и планшеты.
- Caching
- Кеширование. Концепция старая, но сейчас переживает чуть ли не второе рождение. Суть простая: вместо «дорогой» операции обращения к базе данных, запоминаем полученные данные в «быстром» хранилище (например, в памяти) и дальше их уже забираем оттуда при необходимости. В теории звучит круто, но в реальности много граблей, главные из которых: инвалидация закешированных данных (т.е. выбор момента, когда данные нужно перечитать из базы) и анализ быстродействия (операции с кешем могут оказаться медленнее операций с базой).
- Cloud computing
- Дословно переводится как Облачные вычисления или облака и не имеет чёткого определения. Часто «вычислений» там совсем нет, а есть только хранение данных. В самом общем смысле облако — это использование чужих вычислительных мощностей вместо собственных или полностью подконтрольных.
- Comet
- Активно раскручиваемая концепция в веб-программировании, по сути означает отправку данных браузеру от веб-сервера без специального запроса от браузера. Самый простой способ реализации — не закрывать соединение до сервера, а сервер при необходимости в него будет присылать данные.
- CouchDB / http://couchdb.apache.org/
- Документо-ориентированная СУБД.
- CQRS / https://martinfowler.com/bliki/CQRS.html
- Акроним для Command Query Responsibility Segregation, архитектурный паттерн, предписывающий разделять команды от запросов. Команда — это изменение состояния, запрос — чтение состояния.
- CRUD / https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
- Сокращение от create, read, update, and delete, это базовый набор функций, необходимых для работы с хранилищем данных.
- Dark Data
- Новая (и пока не общепринятая) концепция для обозначения данных, которые накапливаются, но никак не используются. На всякий случай, вдруг потом пригодятся.
- Digital Ocean
- Популярный хостер с очень гибкой системой тарификации и управления ресурсами виртуальных машин.
- Django
- Популярный фреймворк для разработки веб-приложений на языке Python.
- Docker / https://www.docker.io/
- Платформа для деплоймента приложений в «контейнерах» LXC, каждый контейнер — это изолированное chroot-like окружение, работающее в линуксе.
- Dropbox
- Один из первых «народных» облачных сервисов — прозрачная синхронизация файлов с их копией на удалённом сервисе.
- DRY / https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
- Don't Repeat Yourself, «Не повторяйся». Принцип разработки ПО, призывающий максимально отказаться от многократного использования одинакового кода (упрощённая формулировка). Нарушения этого принципа обычно обозначается как WET — write everything twice, we enjoy typing, waste everyone's time.
- DSL
- Domain-specific Language, язык, созданный для использования в определённой предметной области. Например, DSL может использоваться для описания бизнес-логики в информационной системе.
- EaaS
- Логичное развитии концепции SaaS, обычно расшифровывается как Everything-as-a-Service, Всё в качестве сервиса, и означает комплексное облачное решение, «решающее все проблемы клиента» (на самом деле нет). Классический пример — Google, предлагающий е-мейл, календарь и облачное хранилище файлов (а также дофига всего остального).
- Elasticity
- Эластичность, способность системы эффективно справляться с внезапными пиковыми нагрузками. Не путать со Scalability.
- Elasticsearch / https://www.elastic.co/products/elasticsearch
- Движок для полнотекстового поиска, опенсорс, часто используется с Kibana.
- Enterprise (-grade)
- Используется для обозначения приложений, сервисов или технологий, непонятных простому смертному, но призванных вгонять его в священный трепет. Неявно подразумевается, что это нечто великолепно и прекрасно спроектированное и напрограммированное. Но в реальности редко так получается. Как правило, Enterprise сопровождается корпоративной бюрократией, двадцатью уровнями начальников, коллективной безответственностью и джавой.
- Erlang
- Язык программирования, сокращение от Ericsson language. Изначально писался телекомами для своих телекомовских нужд, но в 2010-е годы неожиданно пригодился в интернетах для написания надёжных веб-приложений. Больше деталей на официальном сайте.
- ExtJS
- JavaScript фреймворк, созданный для «эмуляции» десктопного интерфейса на стороне браузера. Мощный и тормозной.
- Extreme Programming (XP) / https://en.wikipedia.org/wiki/Extreme_programming
- Методология разработки ПО
- Framework
- Набор инструментов и библиотек, расширяющих возможности языка или программной платформы. От библиотеки отличается тем, что предлагает не просто набор функций, а собственную идеологию и архитектуру построения приложения.
- Gamification
- Использование игровых концепций в неигровых областях. В конечном итоге выливается в дрессировку пользователя игровыми методами. Типичный пример — достижения (achievments) на всяких сайтах.
- Geo-location
- Использование информации о местоположении пользователя для работы приложения. Например, показать ближайшие рестораны или выдать гео-контекстную рекламу.
- Git
- Система контроля версий, изначально написана для хранения исходников ядра линукса, но вырвалась на свободу, да так там и осталась.
- Github
- Пионер «социального кодинга», основанная на Git система хранения исходных кодов, отягощённая социальными фишками (можно писать код с другими людьми). Также содержит инструменты для трекинга ошибок и ведения документации.
- GO
- Разработанный Google язык программирования общего назначения, набирает популярность, заточен на параллелизм. Быстр, прост и компилируем.
- Grunt / http://gruntjs.com/
- The JavaScript Task Runner, программная инфраструктура (т.е. набор инструментов) для автоматизации разнообразных операций с JavaScript-кодом: компилирование, минификация, юнит-тестирование итп.
- Hadoop / http://hadoop.apache.org/
- Опенсорсный набор инструментов для выполнения распределённых программ на очень больших кластерах, заточен на работу с большими объёмами данных. Активно используется фейсбуком.
- Haskell
- Язык программирования, функциональный, предназначенный для написания диссертаций и монад.
- Heroku / http://www.heroku.com/
- Одна из первых облачных Platform-as-a-Service-систем, изначально работала только с Ruby, а затем разрослась и на другие языки. Платная.
- High availability
- Прямой перевод high availablity — высокая доступность или высокая готовность, маркетинговый термин, означающий высокий уровень доступности сервисов системы. Точной интерпретации, списка критериев и других необходимых вещей для точного определения не существует. На русский можно приблизительно перевести как «отказоустойчивость».
- HTML5
- Новый стандарт языка разметки веб-страниц, позиционируется как замена HTML4 и XHTML.
- IaaS
- IaaS — ещё одно порождение aaS-базвордов, обычно означает сокращение от Infrastructure as a service. Поставщик услуги предоставляет облачную инфраструктуру*, обычно это сервера (физические или виртуальные, как в обычном хостинге), а также дополнительные сравнительно низкоуровневые сервисы (базы данных, балансировщики нагрузки и т.д.)
- Ignite / https://ignite.apache.org/
- Apache Ignite — опенсорсная распределённая высокопроизводительная база данных, платформа для кеширования и обработки очень больших объёмов данных.
- JavaScript
- Скриптовой язык, изначально использовался на веб-страницах, теперь и на серверах (в виде nodeJS).
- jQuery
- Библиотека для JavaScript, добавляющая новый уровень абстракции над обычными javascript-объектами и значительно упрощающая работу с ними. Известна благодаря простоте использования, отличной документированности и расширяемости (через плагины).
- JSON
- Сокращение от JavaScript Object Notation, стандарт описания данных, заточенный одновременно для человеко- и машино-читаемости. По сути порождён литералами объектов и массивов из JavaScript.
- JSONP
- Сокращение от “JSON with padding”, один из способов передачи данных в веб-программу, который позволяет избежать ограничений обычного AJAX через XMLHttpRequest. Если коротко, то в программу подключается внешний скрипт через тег
<script>
, и этот внешний скрипт содержит вызовы функции из области видимости приложения. Подробнее — в википедии. - Kafka / https://kafka.apache.org
- опесорсный распределённый брокер сообщений (stream processing) на java и scala. Изначально был разработан LinkedIn и в 2011 году выведен в опенсорс.
- Kibana / https://www.elastic.co/products/kibana
- Плагин для Elasticsearch для визуализации данных, опенсорс.
- Kubernetes / http://kubernetes.io/
- Опенсорсная система для автоматического разворачивания и управления приложениями на базе контейнерной виртуализации.
- Latency
- Латентность, инженерный термин, означающий задержку реакции на действие, однако это общее определение, которое варьируется в зависимости от предметной области, в которой он применяется. В целом можно считать, что это время реакции на действие, чем латентность меньше, тем лучше.
- LESS / http://lesscss.org/
- Скриптовый язык для генерации CSS. См. также SASS.
- Load balancing
- Балансировка нагрузки, набор действий/сервисов/программ/итп для разбиения одной большой нагрузки (например, трафика на веб-сервер) на много маленьких. Как правило, одну большую нагрузку не обработать, а много маленьких — вполне. Инструмент для балансировки обычно называют балансировщиком (balancer).
- MapReduce
- Модель вычислений, при которой данные разбиваются на потоки, которые параллельно обрабатываются, а затем опять сливаются вместе. Название произошло от функций map и reduce, широко известных в мире функционального программирования.
- Marshalling
- Маршалинг, передача объекта или метода для выполнения в другое окружение. Нечто похожее на сериализацию, только сериализация обычно подразумевает снятия дампа памяти с объекта, в то время как маршалинг может обойтись лишь передачей нескольких существенных параметров объекта, например.
- Mashup
- Как правило веб-сайт, использующий для работы данные из нескольких чужих источников. Обычный пример: взять карты с google maps, взять данные с другого сервера и визуализировать их на карте.
- memcache
- Произошло от Названия популярной системы кеширования данных в оперативной памяти memcached, по сути генерализованное обозначение key-value хранилища в памяти, также используется как часть название, например, memcachedb
- Mercurial
- СИстема распределённого контроля версий, написанная на питоне, считается вечным конкурентом Git.
- Message
- Прямой перевод — сообщение, один из классических способов межпроцессного взаимодействия: один объект отправляет сообщение, другие — ждут и при поступлении обрабатывают. Обычно подразумевается, что всё происходит асинхронно.
- Microservices
- Программно-системная архитектура для построения сложных приложений, система разбивается на независимые блоки, общающиеся между собой через обобщённый API, не зависящий ни от какого конкретного языка. По сути является обобщением модульного подхода на построение информационных систем. Подробнее можно прочитать в википедии.
- Minification
- Минификация, преобразование кода на интерпретируемом языке программирования с целью уменьшить его размер: сокращение имён переменных, удаление комментариев, удаление переводов строк, сливание нескольких файлов в один и так далее. Чаще всего применяется для JavaScript. Примеры: YUI Compressor, Closure Compiler.
- Multitenancy
- На русский иногда переводят как мультиарендность, означает подход, при котором один физический экземпляр приложения занимается обслуживает сразу нескольких нанимателей. Пример — gmail (и другие сервисы Google), разные люди заходят под разными аккаунтами и работают только со своими данными.
- MVP / Minimum viable product
- Можно перевести как «минимально жизнеспособный продукт», то есть продукт с наименьшим количеством фич, которые позволяют его уже начать использовать и продавать.
- Nginx
- Популярный легковесный опенсорсный http-сервер, написан российским программистом Игорем Сысоевым.
- NoSQL
- Модель СУБД, оперирующая гораздо менее связанными данными, чем реляционная, что видно из названия. У NoSQL есть некоторая область применения, однако на волне всеобщей истерии NoSQL-сервера стали пихать везде, не затрудняя себя анализом предметной области.
- oAuth
- Открытый стандарт авторизации, позволяет авторизоваться на некотором ресурсе, используя аккаунт пользователя на другом. Реализаций такой модели авторизации много, например, OpenID, однако oAuth самая популярная (во многом благодаря Facebook, который её предоставляет для своиз пользователей). Реализации oAuth от разных поставщиков обычно несовместимы.
- On-premises software
- Термин возник как противопоставление software-as-a-Service, по сути это «классический» софт, устанавливаемый на машине пользователя.
- OpenStack / http://www.openstack.org/
- Открытая программная платформа, позволяющая развернуть «облако» на своих серверах. Состоит из набора компонентов для разных задач: хранение данных, вычисления, балансировка и так далее.
- OpenShift / https://www.openshift.com/
- Редхатовский PaaS-сервис, основа на базе опенсорсного проекта OpenShift Origin
- PaaS
- Сокращение от Platform-as-a-Service, ещё один базворд из *aaS-семейства. Под платформой здесь подразумевается набор инструментов и библиотек для создания своих приложений на мощностях PaaS-провайдера, нечто среднее между IaaS и SaaS.
- Pentesting / penetration testing
- По-русски можно иногда встретить в виде «тест на проникновение», является испытанием системы на целенаправленные атаки или взлом и обычно ассоциируется с безопасностью и уязвимостями.
- PHP
- Популярный, нет, ОЧЕНЬ ПОПУЛЯРНЫЙ язык веб-программирования, начинался как набор скриптов для создания домашней странички, а закончился… пока не закончился ещё.
- Private cloud
- Дословно — частное облако, облачная платформа, развёрнутая на собственном оборудовании. Позволяет использовать преимущества *aaS и не отдавать свои данные на сторону.
- Proxy
- Любая программа (или даже её часть), пропускающая через себя данные, возможно с дополнительной обработкой. Прокси позволяют разбить сложную систему на компоненты, связанные только через прокси, как следствие — легче тестировать (если правильно сделано).
- pull
- В сетевых коммуникациях означает схему работы, при которой сеанс связи начинается клиентом. Клиент спрашивает, сервер отвечает и так далее.
- Public cloud
- Публичное облако, облачный сервиc, доступный каждому пользователю интернета (бесплатно либо за деньги)
- push
- Схема сетевой коммуникации, обратная к pull: сеанс начинается сервером, а не клиентом.
- React / http://reactjs.com/
- Опенсорсная JavaScript-библиотека для рендеринга HTML, считается основным конкурентом Angular, хотя предлагает совсем другой подход к решению задачи.
- Redis / http://redis.io/
- Опенсорсная NoSQL key-value база данных, одна из самых популярных.
- Rackspace
- Хостинговая компания, известная тем, что совместно с NASA запустила опенсорсный проект OpenStack.
- Replication
- Репликация, распространение данных между узлами информационной системы, подразумевает надёжность, стабильность и всё такое. Типичный пример — репликация базы данных в кластере.
- REST
- Сокращение от Representational state transfer, архитектурный приём для организации клиент-серверного взаимодействия, возникший как обобщение и расширение концепций протокола HTTP.
- RESTful
- Веб-сервис, основанный на принципах REST и работающий поверх HTTP.
- Riak
- NoSQL key-value база данных, написанная на erlang.
- Ruby on rails
- Популярнейший фреймворк для языка ruby, используется для веб-приложений. Знаменит тем, что внёс в широкие массы несколько популярных ныне концепций (например, ActiveRecord).
- Rust / https://www.rust-lang.org/
- Высокопроизводительный компилируемый язык, ориентированный на системное программирование. Часто рассматривается как альтернатива C++.
- SaaS
- Сокращение от Sofware-as-a-Service, программа установлена и обслуживается в датацентре, а продаётся доступ к ней через браузер, например. Клиент при этом полностью избавлен от прямой работы с приложением, от его обслуживания, обновления и т.д.
- SASS / http://sass-lang.com/, https://en.wikipedia.org/wiki/Sass_(stylesheet_language)
- Формально расшифровывается как Syntactically Awesome Style Sheets, скриптовый язык для генерирования CSS. См. также LESS.
- Scalability
- Дословно расширяемость, означает свойство информационной системы эффективно расти при возрастании нагрузки. Не путать с Elasticity.
- SDET
- Сокращение/акроним от Software Development Engineer in Test — это разработчик, который занимается обслуживанием автоматизированных систем тестирования. По сути — разработчик-тестировщик, сочетающий роли тестировщика, но методами разработчика ПО.
- Serverless computing / https://en.wikipedia.org/wiki/Serverless_computing
- Модель облачной архитектуры, в которой технические детали работы сервера (включая конфигурацию и выделение ресурсов) полностью скрыты от клиента. По сути это означает, что провайдер предоставляет не сервер/сервис, а конкретную функцию с API, полностью скрывая детали её реализации.
- Service
- Одно из базовых понятий в современных информационных системах, обычно это относительно независимая подсистема (или даже совсем независимая), решающая конкретный круг задач. Подразумевается обычно, что сервисы между собой взаимодействуют по определённому протоколу (Function-as-a-Service), оплата производится по количеству фактически потреблённых ресурсов.
- Sharding
- Способ хранения данных в СУБД, при котором связные единицы хранения (например, для реляционных БД — строки) разделяются по нескольким разным серверам, называемым шардами. Данные в каждом шарде обычно объединены по некоторому признаку.
- SLA
- Сокращение от Service-level Agreement (Соглашение об уровне услуг) — специальный договор между поставщиком услуги и клиентом, в котором оговариваются условия функционирования услуги и ответственность поставщика за нарушения этих условий. Как правило в SLA прописываются вещи вроде гарантированного времени восстановления после сбоя, оперативная замена деталей сервера при поломке, обслуживание сервера в случае сбоя и так далее. SLA обычно стоит клиенту денег и немалых.
- SMART или S.M.A.R.T. / https://en.wikipedia.org/wiki/SMART_criteria
- Акроним по первым буквам Specific, Measurable, Assignable, Realistic and Time-Related, подход к постановке целей. Есть также варианты: SMARTER, SMARTIE и так далее, они все перечислены по ссылке в вики.
- Smart contract / https://en.wikipedia.org/wiki/Smart_contract
- Умный контракт (умный договор) — это специальный компьютерный протокол, который обеспечивает выполнение договора, находясь при этом как бы в стороне от всех участвующих сторон. При этом выполнение происходит в полностью автоматическом режиме: как только нужный набор условий для выполнения «срабатывает» наступает следующая фаза. Принято считать, что умные контракты будут работать на базе блокчейнов.
- Smoke testing
- Быстрое тестирование для поиска явных дефектов, обычно является первым этапом в тестированни и часто не описывается какими-либо формальными документами, а лишь определяет пригодность продукта для тестирования вообще: хоть как-то работает, значит, можно дальше детально проверять. Термин происходит из примерно такой аналогии: если дымит при использовании, значит, явно сломано.
- SOA
- Сокращение от Service-oriented architecture.
- SOAP
- Сокращение от Simple Object Access Protocol, один из стандартных протоколов для передачи данных между веб-сервисами.
- SOLID / https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
-
Акроним, составленный из первых букв пяти принципов разработки ПО (применимо в основном для объектно-ориентированной разработки):
- Spark / https://spark.apache.org/
- Apache Spark — опенсорсная распределённая кластерная вычислительная платформа. Аналог Hadoop. Написан на языке Scala.
- Splunk / http://www.splunk.com/
- Американская корпорация и одноимённый продукт по анализу больших данных в реальном времени: графики, отчёты и прочая аналитика.
- TensorFlow / https://www.tensorflow.org/
- Опенсорсный движок для machine learning (то есть высокопроизводительных вычислений). Разрабатывается и поддерживается гуглом.
- TypeScript
- Разработанный Microsoft язык программирования, расширяющий возможности JavaScript: статическая типизация, подключаемые модули, результатом компиляции является JS-код.
- Vagrant / http://www.vagrantup.com/
- Опенсорсное серверное приложение для управления сетевыми окружениями, по сути надстройка над Virtualbox или VMWare, например, позволяющая удобно и эффективно создавать, удалять, редактировать, обновлять итп виртуальными машинами/контейнерами.
- Valgrind / http://valgrind.org/
- Набор инструментов для отладки и профилирования линукс-программ. Умеет находить утечки памяти.
- Varnish / https://www.varnish-cache.org/
- «Ускоритель HTTP», обратный кеширующий прокси, устанавливается между интернетом и собственно сервером, и занимается очень эффективным кешированием запросов.
- Virtualization
- Виртуализация, создание на одной физической машине несколько виртуальных.
- Web service
- Сервис в интернете.
- Wiki
- Популярная концепция создания документов на веб-сайтах, подразумевающая коллективное творчество и обилие гиперссылок. Часто в вики-системах используется специальная текстовая разметка для оформления текста.
- WSDL / https://www.w3.org/TR/wsdl, https://www.w3.org/TR/wsdl20/
- Сокращение от Web Services Description Language — язык на базе XML для описания интерфейсов сетевых сервисов. Ранее (до версии 1.1) расшифровывался как Web Services Definition Language.
- XML-RPC
- Ещё один популярный протокол для передачи данных между веб-сервисами.
- YAGNI
- Сокращение от You aren't gonna need it, см. https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
- Zabbix / http://www.zabbix.com/
- Популярная опенсорсная система энтерпрайзного уровня для мониторинга сетевых сервисов, серверов и железок.