Pull to refresh
17
0
Антон Кандыбо @dublicator

User

Send message

Чистый код для TypeScript — Часть 3

Reading time 9 min
Views 9.3K

Заключительная часть статей, посвященных тому, как можно использовать принципы чистого кода в TypeScript(ps. Все эти принципы относятся не только к языку TypeScript).


Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 7

Создание CI/CD-цепочки и автоматизация работы с Docker

Reading time 15 min
Views 49K
Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести имя и пароль и выгрузить файлы на сервер. Другие были времена, всё тогда было проще, чем сейчас.



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

Для моего персонального проекта у меня была особая конфигурация. И я знала, что мне нужна возможность разворачивать сайт в продакшне, выполняя всего одно действие: запись кода в ветку master на GitHub. Я, кроме того, знала, что мне, для обеспечения работы моего маленького веб-приложения, не хочется заниматься управлением огромным кластером Kubernetes, или пользоваться технологией Docker Swarm, или поддерживать парк серверов с подами, агентами и всякими другими сложностями. Для того чтобы достичь цели по максимальному упрощению работы, мне понадобилось познакомиться с CI/CD.

Если у вас имеется маленький проект (в нашем случае речь идёт о Node.js-проекте) и вам хотелось бы узнать о том, как автоматизировать развёртывание этого проекта, сделав при этом так, чтобы то, что хранится в репозитории, в точности соответствовало бы тому, что работает в продакшне, то, полагаю, вас может заинтересовать эта статья.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 4

Разрабатываем Telegram-бота для отслеживания фильмов на NodeJS и TypeScript

Reading time 9 min
Views 71K


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

Я достаточно часто сталкивался с такой проблемой и решил ее созданием Eve — Telegram-бота, который помогает мне не забывать про релизы моих любимых фильмов. Что это, как оно работает и как разрабатывалось вы можете почитать под катом!
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Comments 18

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time 39 min
Views 1.6M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Total votes 125: ↑124 and ↓1 +123
Comments 43

Игровая индустрия: полезные материалы для геймдевелопера от A до Z

Reading time 10 min
Views 160K
В последнее время мы часто сталкиваемся с вопросами о том, как попасть в игровую индустрию, какие полезные материалы на эту тему можно почитать и посмотреть, с чего начать изучение геймдева. Когда начальные знания появляются, то возникают уже более конкретные вопросы, например «где найти единомышленников для создания игры», «как продвигать свой проект с минимальным бюджетом», «на каких издателей стоит выходить, как это делать и стоит ли вообще», «как улучшить ретеншн в нашей игре» и так далее.

Друг наших образовательных программ Михаил Пименов,  CEO компании Wonder Games и Team Lead инди-проекта "Guard of Wonderland" сам не раз задававший себе эти вопросы, создал для себя выборку всевозможных материалов по индустрии геймдева. От полезных ресурсов, до сообществ, подкастов, книг и фильмов, которые призваны помочь понять, с чего начинается и чем заканчивается разработка игрового проекта. Объединив наши силы, мы с Мишей сделали эту статью с подборкой полезных материалов по игровой индустрии. Вы найдете подборку под катом.


Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 26

Линейная алгебра для разработчиков игр

Reading time 19 min
Views 760K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18 +278
Comments 61

У нас проблемы с промисами

Reading time 16 min
Views 234K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

— Многие из нас используют промисы без действительного их понимания.

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи
Total votes 139: ↑136 and ↓3 +133
Comments 121

Опыт разработки сервис-ориентированной системы

Reading time 4 min
Views 9.9K
Некоторое время назад мы вместе с небольшой командой программистов начали разработку достаточно интересного с технической точки зрения аналитического проекта. Основной его целью была обработка данных, получаемых с различных веб-страниц. Нужно было обрабатывать эти данные, приводя в удобный вид и после этого анализировать собранную статистику.

До тех пор, пока у нас не было большого количества всевозможных данных, мы не имели каких-то нестандартных проблем и все решения были достаточно прямолинейными. Но проект разрастался, и размер собираемой информации, хотя сначала и не очень быстро, но все же увеличивался. Росла и кодовая база. И через некоторое время мы осознали весьма печальный факт — из-за всяких костылей и быстро-фиксов мы нарушили почти все возможные принципы проектирования. И если сначала организация кода была не столь важна, то со временем стало понятно, что без хорошего рефакторинга далеко мы не уедем.
Читать дальше →
Total votes 18: ↑13 and ↓5 +8
Comments 0

Ищем альтернативы Google Reader

Reading time 5 min
Views 184K
Как недавно стало известно, с 1 июля закрывается Google Reader. Незамедлительно я начал искать альтернативы.
В данном посте я рассматриваю только онлайн-ридеры. Плагины типа Feedly не рассматриваю.
Читать дальше →
Total votes 72: ↑57 and ↓15 +42
Comments 132

Google Reader закрывают

Reading time 1 min
Views 234K


Google в официальном блоге, а также на самом сайте Google Reader объявил о закрытии сервиса.

Среди причин было названо желание сфокусироваться на основных продуктах и улучшить их.
Дата закрытия сервиса: 1го июля 2013.

Очень грустная новость, особенно для сообщества хабра, которые больше обычных пользователей понимают в чем плюсы RSS-подписок.

P.S. Среди онлайн альтернатив сервиса могу назвать Яндекс.Ленту и NetVibes.
Предложите свою альтернативу в комментариях.

UPD: Вы можете подписать петицию Keep Google Reader Running
Total votes 243: ↑222 and ↓21 +201
Comments 475

ПО для взаимодействия ПК и смартфона

Reading time 7 min
Views 435K
С момента покупки смарта на Android меня заинтересовало его функциональное наполнение. На практике оказалось, что Android способен выполнять практически любую задачу, решаемую на обычном ПK, только медленнее и не всегда удобнее. Зато дополняет ПК он прекрасно, и механизмов использования возможностей смарта на ПК и возможностей ПК на смарте — уйма.

Статья ориентирована в основном на формирующихся и будущих пользователей Android-смартфонов; надеюсь, что продвинутые пользователи также найдут в ней что-то новое и/или внесут свою лепту. Под катом по пунктам, в вопрос-ответном стиле.
Читать дальше →
Total votes 136: ↑127 and ↓9 +118
Comments 60

Ускоряем процесс разработки с помощью Vagrant

Reading time 10 min
Views 67K
image Как часто вам приходится разрабатывать и запускать приложение локально и упорно искать проблемы, потому что на продакшене приложение ведёт себя не совсем так, как вы этого хотели? А как часто вам присылают тикеты для решения проблемы в приложении, хотя на самом деле проблема именно в несовместимости версий разных приложений? А как долго вам приходится ждать виртуалку, когда для запуска новой версии приложения недостаточно ресурсов локальной машины? Для нас эти вопросы были довольно больными, и мы сломали тысячи копий в спорах, стараясь решить их. Практика показывает, что одним из вариантов для решения этих проблем может стать Vagrant.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 10

Переписываем проект с Zend Framework на Rails

Reading time 9 min
Views 7.8K
Около пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
Читать дальше →
Total votes 154: ↑143 and ↓11 +132
Comments 197

Настройка хостинга heroku.com + custom domain name *для новичков

Reading time 2 min
Views 28K
Итак, подобного материала я нигде не видел, так что считаю необходимым опубликовать данную информацию. image
  • Регистрируемся на Heroku.com письмо с линком приходит быстро, мне пришло уже через 30 секунд.
  • Далее необходимо установить git, я работал в ОС windows (как устанавливать в linux я думаю знают те, кто его используют), вот версия для win, если использовать портативную версию, то необходимо в интерфейсе командной строки, перейти в директорию (куда распаковали) git, и запустить либо оболочку git-bash.bat (лично мне удобнее с ней работать), либо использовать команды только лишь cmd, git-cmd.bat.
  • Далее, необходимо установить gem heroku командой (sudo) gem install heroku у него есть зависимости с другими гемами, вообще они сами установятся автоматически, ну а если нет, то вот ссылки для них: rest-client, launchy, json.
Читать дальше →
Total votes 51: ↑35 and ↓16 +19
Comments 23

PhantomJS + JSCoverage + QUnit или консольные JS юнит-тесты с подсчетом покрытия

Reading time 4 min
Views 6K
Поговорим о случае, когда нужно автоматизировать запуск тестов и сбор статистики покрытия, к примеру, для гипотетической клиентской JS библиотеки. Задача не совсем тривиальна, поскольку для нормальной работы библиотеки требуется полноценный браузер — библиотека является визуальной оберткой над стандартными компонентами формы. Библиотека должна быть написана так, чтобы все взаимодействие с ее объектами можно было производить с помощью методов, которые они предоставляют, а не только через непосредственные манипуляции с DOM (т.е. любое действие юзера может быть запущено не только событием, допустим, клика по чему-то, но и руками через метод). Но тем не менее, надо этот DOM иметь, чтобы результаты работы методов помимо изменения внутреннего состояния объектов также отображались и в DOM. В целом напоминает приложения на Sencha (ExtJS).

Для достижения поставленных целей нужен некий контролируемый браузер, фреймворк для запуска тестов и утилита, которая позволит посчитать покрытие кода тестами, а также некоторый код, который соединит все компоненты.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 12

JavaScript debugger для IE

Reading time 1 min
Views 8K
Core Services выпустили дебаггер Companion.JS, который поддерживает, кроме расширенных сообщений об ошибке (call stack и реальное имя файла где произошла ошибка), «Firebug»-подобную Console API.
В сочетании с основным продуктом (DebugBar) получается неплохая замена Firebug-у, особенно если учесть «безрыбье» в этом вопросе…
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 8

JavaScript. Создание объектов

Reading time 2 min
Views 107K
JavaScript предоставляет разработчикам возможность создавать объекты и работать с ними. Для этого существуют следующие приёмы:
  • Оператор new
  • Литеральная нотация
  • Конструкторы объектов
  • Ассоциативные массивы

Читать дальше →
Total votes 56: ↑42 and ↓14 +28
Comments 81

Information

Rating
Does not participate
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Date of birth
Registered
Activity