Как стать автором
Обновить
5
0
Алексей @daron666

Пользователь

Отправить сообщение

Кейт Матсудейра: Масштабируемая веб-архитектура и распределенные системы

Время на прочтение32 мин
Количество просмотров84K
Шесть месяцев назад ребром встал вопрос о тексте для моего дипломного перевода. Результатом помощи коллективного разума стало решение переводить главу Scalable Web Architecture and Distributed Systems за авторством Kate Matsudaira. Нужно отметить, что это мой первый перевод такого объема и сложности. Текст, был мною относительно успешно переведен, хотя по качеству перевода я поставил бы себе 6-7 из 10. Дабы мои усилия не пропали втуне, публикую результат своих трудов.

По просьбам читателей Хабра, теперь полная версия в виде топика.

The Architecture of Open Source Applications (Volume 2)

Масштабируемая веб-архитектура и распределенные системы


Кейт Матсудейра

Перевод: jedi-to-be.
Коррекция: Anastasiaf15, sunshine_lass, Amaliya, fireball, Goudron.


Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии5

Классические паттерны проектирования на Scala

Время на прочтение14 мин
Количество просмотров37K
Об авторе:
Pavel Fatin работает над Scala plugin'ом для IntelliJ IDEA в JetBrains.

Введение



В этой статье будут представлены примеры того, как реализуются классические паттерны проектирования на Scala.

Содержание статьи составляет основу моего выступления на JavaDay конференции (слайды презентации).

Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии29

40 ключевых концепций информационных технологий доступно и понятно

Время на прочтение16 мин
Количество просмотров159K
Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

Важные замечания:
  • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
  • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
  • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
Читать дальше →
Всего голосов 104: ↑96 и ↓8+88
Комментарии37

FP на Scala: Что такое функтор?

Время на прочтение15 мин
Количество просмотров32K
Специалист, приступающий к изучению функционального программирования, сталкивается как с неоднозначностью и запутанностью терминологии, так и с постоянными ссылками на «серьезную математику».

В этой статье, не используя теорию категорий с одной стороны и эзотерические языковые механизмы Scala с другой стороны, рассмотрены два важнейших понятия
  • ко-вариантный функтор
  • контра-вариантный функтор
которые являются стартовой точкой для понимания всего множества категориальных конструкций, куда можно включить
  • Exponential (Invariant) Functor, BiFunctor, ProFunctor
  • Applicative Functor, Arrow, Monad / Co-Monad
  • Monad Transformers, Kleisli, Natural Transformations

Объяснено происхождение категориальной терминологии, указана роль языковых механизмов в реализации категориальных абстракций и рассмотрено несколько ковариантных (Option, Try, Future, List, Parser) и контравариантных (Ordering, Equiv) функторов из стандартной библиотеки Scala.

Первая статья в «категориальной серии»:
  1. FP на Scala: что такое функтор?
  2. FP на Scala: Invariant Functor

Если Вы желаете сильнее погрузиться в мир Scala, математики и функционального программирования — попробуйте онлайн-курс «Scala for Java Developers» (видео + тесты, всего за 25% цены!).


Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии7

node.js для Java-разработчиков: первые шаги

Время на прочтение9 мин
Количество просмотров93K


У опытного программиста, сталкивающегося с новой технологией для решения конкретной прикладной задачи, сразу возникает множество практических вопросов. Как правильно установить платформу? Где и что будет лежать после установки? Как создать каркас проекта, как он будет структурирован? Как разбивать код на модули? Как добавить библиотеку в проект? Где вообще взять готовую библиотеку, которая делает то, что нужно? Как и в чём отлаживать код? Как написать модульный тест?

Ответы на эти вопросы можно при желании легко найти в сети, но придётся перечитать дюжину статей, и на каждый вопрос ответов будет, скорее всего, несколько. Некоторое время назад мне понадобилось написать небольшой туториал по node.js, который бы позволил быстро запустить разработку и познакомить новых программистов в проекте с этой технологией. Рассчитан он на опытных Java-разработчиков, которые и язык JavaScript хорошо знают, но node.js как платформа для бэкэнда для них в новинку.

Думаю, что данная статья будет полезна не только разработчикам из мира Java, но и всем, кто начинает работу с платформой node.js.


Читать дальше →
Всего голосов 39: ↑26 и ↓13+13
Комментарии107

Игровой сервер на Scala + Akka: Разбор примера

Время на прочтение7 мин
Количество просмотров27K


В прошлый раз я описал в общих чертах использование Akka для игрового сервера.
Сейчас разберем простой, но тем не менее рабочий пример сервера.
Подробности
Всего голосов 31: ↑25 и ↓6+19
Комментарии53

Настройка TeamCity для новичков

Время на прочтение9 мин
Количество просмотров159K
Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии12

Лекции Технопарка. 2 семестр. Java

Время на прочтение4 мин
Количество просмотров73K


В эфире очередной выпуск материалов рубрики «Лекции Технопарка». На этот раз вы можете изучить лекции курса, посвящённого углублённому программированию на Java. Цель курса — получение студентами практических навыков создания клиент-серверного приложения на примере разработки сервера простой многопользовательской online-игры в малых группах (4-6 человек).
Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии6

Hello, SaaS | Удаленная работа 2

Время на прочтение6 мин
Количество просмотров13K
Первый пост на тему Remot в Dental Cloud вызвал достаточно интереса и логично написать продолжение. На этот раз я просто собрал интереснейшее мнение CEO SaaS и Cloud сервисов — Terrasoft , SkyparkCDN, МойСклад, Облакотека, Сopiny. Выводов ни каких из мнений не делаю, но вот приятно удивлен, что все такую работу практикуют. Спасибо коллегам за комментарии и количество лайфхаков по remote зашкаливает!

image
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии2

50+ лучших дополнений к Bootstrap

Время на прочтение5 мин
Количество просмотров202K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Всего голосов 123: ↑111 и ↓12+99
Комментарии25

93 видео-лекции по Scala

Время на прочтение4 мин
Количество просмотров38K
В ходе подготовки спецкурса «Scala for Java Developers» под платформу онлайн-обучения UDEMY, я анализирую другие «лекционные» видео. В библиотеке накопилось какое-то количество ссылок на дельных учебные материалы по Scala (видео на английском).

Для большинства видео указано количество просмотров. Надо сделать несколько замечаний:
1. Количество просмотров не является главным критерием качества и полезности видео, но этот может служить каким-то указателем на ценность.
2. Здесь не все популярное видео, что я встречал, а лишь то, что ценно по моему личному мнению.
3. Если кто-то знает еще хорошее видео — пишите, добавлю в списки.


Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

Реактивный мессенджер, или CQRS и ES вместе с Akka и Scala

Время на прочтение21 мин
Количество просмотров23K
В последнее время мы часто слышим о реактивном программировании и видим различные баззворды: message-driven архитектура, event-sourcing, CQRS. К сожалению, на Хабре об этом пишут довольно мало, поэтому я решил исправить ситуацию и поделиться своими знаниями со всеми желающими.

В этой статье мы узнаем об основных особенностях реактивных приложений, рассмотрим, как паттерны CQRS и EventSourcing помогут нам в их создании, а чтобы не было скучно, мы с вами шаг за шагом сделаем свой мессенджер с вебсокетом и акторами, соответствующий всем канонам реактивного программирования. Для реализации всего этого добра, мы будем использовать замечательный язык Scala вместе с не менее превосходной библиотекой Akkа, реализующей модель акторов. Еще, мы будем использовать Play Framework для написания веб-составляющей нашего приложения. Итак, приступим.

Статья предназначена для тех, кто уже знаком со Scala и слышал о модели акторов. Все остальные тоже приглашаются к прочтению, принципы реактивного программирования можно применять вне зависимости от языка и фреймворка.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии33

Лекции Технопарка. 1 семестр. Алгоритмы и структуры данных

Время на прочтение2 мин
Количество просмотров148K
Очередной пост в рамках нашего цикла лекций Технопарка. В этот раз мы предлагаем вашему вниманию курс, посвящённый алгоритмам и структурам данных. Автор курса — Степан Мацкевич, сотрудник компании ABBYY.

Лекция 1. Основы


Начало первой лекции посвящено обсуждению основных понятий, на которых строится вся дальнейшая программа курса: что такое алгоритм и структура данных. Описаны базовые виды алгоритмов, их характеристики и методы анализа. Далее рассматриваются примеры создания алгоритмов для вычисления чисел Фибоначчи, проверки числа на простоту, быстрого возведения числа в целую степень. В конце лекции рассказывается об особенностях использования алгоритмов для работы с массивами: создание однопроходных алгоритмов, поиск минимального элемента, бинарный поиск.


Читать дальше →
Всего голосов 52: ↑48 и ↓4+44
Комментарии14

Лекции Технопарка. 2 семестр. Базы данных

Время на прочтение4 мин
Количество просмотров86K


Очередной пост в рамках нашей постоянной рубрики «Лекции Технопарка». В этот раз предлагаем вашему вниманию лекции, посвящённые базам данных. Цель курса — получение студентами знаний в области проектирования реляционных баз данных, эффективной работы с базами данных, оптимизации запросов и схем данных, изучение особенностей использования баз данных в проектах с высокой нагрузкой и/или использующих большие массивы данных, noSQL и его применение для решения прикладных задач в WWW.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии0

Приятная сборка frontend проекта

Время на прочтение12 мин
Количество просмотров441K
В этой статье мы подробно разберем процесс сборки фронтенд проекта, который прижился в моей повседневной работе и очень облегчил рутину.

Статья не претендует на истину в последней инстанции, так как сегодня существует большое количество различных сборщиков и подходов к сборке, и каждый выбирает по вкусу. Я лишь поделюсь своими мыслями по этой теме и покажу свой workflow.

UPD (13 марта 2015): Заменил несколько плагинов на более актуальные + решил проблему с импортом CSS файлов внутрь SCSS

Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии119

Разработка микросервисов с использованием Scala, Spray, MongoDB, Docker и Ansible

Время на прочтение7 мин
Количество просмотров31K
Цель данной статьи — показать возможный подход для построения микросервисов с использованием Scala, RESTful JSON, Spray и Akka. В качестве базы данных мы будем использовать MongoDB. В результате нашей работы мы упакуем наш проект в Docker-контейнер, а Vagrant и Ansible позволит нам управлять конфигурацией приложения.

В этой статье вы не найдете подробностей о языке Scala и других технологиях, которые будут использоваться в проекте. В ней вы не найдете руководства, которое ответит на все ваши вопросы. Цель статьи — показать технику, которую можно использовать при разработке микросервисов. На самом деле, большая часть этой статьи не завязана на конкретной технологии. Docker имеет более широкую сферу использования, нежели только микросервисы. Ansible позволяют быстро развернуть любое требуемое окружение, а Vagrant — отличный инструмент для создания виртуальных машин.
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии8

Категории, большие и малые

Время на прочтение8 мин
Количество просмотров35K
Это четвертая статья в цикле «Теория категорий для программистов».

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

Без объектов


Самая простая категория — без объектов и, как следствие, без морфизмов.
Читать дальше
Всего голосов 36: ↑33 и ↓3+30
Комментарии29

Типы и функции

Время на прочтение13 мин
Количество просмотров57K
Это третья статья в цикле «Теория категорий для программистов».

Категория типов и функций играет важную роль в программировании, так что давайте поговорим о том, что такое типы, и зачем они нам нужны.

Кому нужны типы?


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

image


Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии102

Категория: суть композиции

Время на прочтение7 мин
Количество просмотров61K
Это вторая статья в цикле «Теория категорий для программистов».

Категория — очень простая концепция.

Категория состоит из объектов и стрелок, которые направлены между ними. Поэтому, категории так легко представить графически. Объект можно нарисовать в виде круга или точки, а стрелки — просто стрелки между ними. (Просто для разнообразия, я буду время от времени рисовать объекты, как поросят а стрелки, как фейерверки.) Но суть категории — композиция. Или, если вам больше нравится, суть композиции — категория. Стрелки компонуются так, что если у вас есть стрелка от объекта А к объекту B, и еще одна стрелка из объекта B в C, то должна быть стрелка, — их композиция, — от А до С.

image
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии128

Теория категорий для программистов: предисловие

Время на прочтение5 мин
Количество просмотров108K
Вот уже некоторое время я обдумываю идею написать книгу о теории категорий для программистов. Не компьютерных теоретиков, программистов — скорее инженеров, чем ученых. Я знаю, что это звучит безумно, и я сам достаточно напуган. Я знаю, что есть огромная разница между наукой и техникой, потому, что я работал по обе стороны баррикад. Но у меня всегда был очень сильный порыв объяснить вещи. Я восхищаюсь Ричардрм Фейнманом, который был мастером простых объяснений. Я знаю, я не Фейнман, но я буду стараться изо всех сил. Я начинаю с публикации этого предисловия, которое должно мотивировать читателя изучить теорию категорий, и надеюсь на начало дискуссии и обратную связь.

Я постараюсь в нескольких параграфах убедить вас, что эта книга написана для вас, и развеять все ваши сомнения в необходимости изучения этой, одной из самых абстрактных областей математики, в свое драгоценное свободное время.
Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии25
1

Информация

В рейтинге
Не участвует
Откуда
Ульяновск, Ульяновская обл., Россия
Дата рождения
Зарегистрирован
Активность