Обновить
6
0
Хазрат Гаджикеримов@hazratgs

Frontend Developer

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

Разбор паттерна «Модуль» в JavaScript

Время на прочтение5 мин
Охват и читатели39K
Во многих языках программирования существуют механизмы, позволяющие скрывать, например, методы и свойства классов. В JavaScript нет встроенных средств, позволяющих, без дополнительных усилий, достигать таких эффектов. Однако подобные вещи можно имитировать с использованием других возможностей языка.

image

Материал, перевод которого мы сегодня публикуем, посвящён разбору паттерна проектирования «Модуль», который позволяет скрывать приватную информацию в замыканиях, давая доступ лишь к тому, что решил сделать общедоступным разработчик. Эта статья предназначена, в основном, для начинающих программистов — для тех, кто, вроде бы, знаком с такими вещами, как замыкания и IIFE, но пока не особенно уверенно ими пользуется.
Читать дальше →

Собеседование по TypeScript: 20 вопросов и ответов

Время на прочтение12 мин
Охват и читатели159K
Язык TypeScript основан на том же синтаксисе и семантике, которые хорошо знакомы миллионам JavaScript-разработчиков. TypeScript даёт возможность работать с самыми свежими и ещё только появляющимися возможностями JS, включая те, которые имеются в ECMAScript 2015, и те, которые пока существуют лишь в виде предложений. Среди таких возможностей, например, асинхронные функции и декораторы. Всё это направлено на то, чтобы помочь разработчику в создании надёжных и современных приложений.

TypeScript-программа компилируется в обычный JavaScript-код, который может выполняться в любом браузере или в среде Node.js. Этот код будет понятен любому JS-движку, который поддерживает стандарт ECMAScript 3 или более новый.



Материал, перевод которого мы сегодня публикуем, содержит разбор двадцати вопросов, которые вполне могут задать тому, кто собирается пройти собеседование, претендуя на позицию TypeScript-программиста.
Читать дальше →

Git happens! 6 типичных ошибок Git и как их исправить

Время на прочтение5 мин
Охват и читатели252K


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

Все мы делаем ошибки, особенно при работе с такими сложными системами, как Git. Но помните: Git happens!
Читать дальше →

[в закладки] 23 рекомендации по защите Node.js-приложений

Время на прочтение15 мин
Охват и читатели25K
В наши дни веб-сервисы постоянно подвергаются самым разным атакам. Поэтому безопасность — это то, о чём стоит помнить на всех этапах жизненного цикла проектов. Авторы материала, перевод которого мы сегодня публикуем, поддерживают репозиторий на GitHub, содержащий около 80 рекомендаций по обеспечению безопасности приложений, работающих на платформе Node.js. В этом материале, базой для которого послужило множество публикаций, посвящённых безопасности, собрано более двух десятков рекомендаций, касающихся Node.js, и некоторые советы общего характера. При этом данный материал покрывает топ-10 уязвимостей из списка проекта OWASP.


Читать дальше →

Реактивность в JavaScript: простой и понятный пример

Время на прочтение12 мин
Охват и читатели61K
Во многих фронтенд-фреймворках, написанных на JavaScript (например, в Angular, React и Vue) имеются собственные системы реактивности. Понимание особенностей работы этих систем пригодится любому разработчику, поможет ему более эффективно использовать современные JS-фреймворки.



В материале, перевод которого мы сегодня публикуем, продемонстрирован пошаговый пример разработки системы реактивности на чистом JavaScript. Эта система реализует те же механизмы, которые применяются в Vue.
Читать дальше →

Разбираемся с Render Props на примере

Время на прочтение3 мин
Охват и читатели28K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Learn Render Props by Example».

image

Честно говоря, раньше я не представлял ситуаций, в которых можно применить React render props, пока не увидел практический пример
Читать дальше →

Методики и инструменты для разработки стилей веб-страниц

Время на прочтение13 мин
Охват и читатели25K
Не будем ходить вокруг да около, скажем прямо: процесс написания хорошего CSS-кода может быть очень и очень тяжёлым. Многие разработчики не хотят связываться со стилями. Они готовы заниматься всем, чем угодно, но только не CSS.



Автор материала, перевод которого мы предлагаем сегодня вашему вниманию, говорит, что он и сам не любил ту часть веб-разработки, которая имеет отношение к CSS. Но от этого никуда не деться. В наши дни огромное внимание уделяется дизайну, и тому, что называют «пользовательским опытом», а без CSS тут никак не обойтись. Цель этого материала — помочь всем желающим улучшить свои навыки в разработке и применении стилей веб-страниц.
Читать дальше →

Начинаем работу с EOS Mainnet за 10 минут

Время на прочтение4 мин
Охват и читатели13K


Запуск сети EOS стал самым ожидаемым событием этого лета для сообщества разработчиков криптовалют. Теперь, когда сеть запущена (пусть и с изъянами), нам всем не терпится приступить к разработке приложений на EOS.

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

Вот о чем я расскажу в этой статье:

  • Как проще всего подключиться к EOS Mainnet
  • Как использовать кошельки и счета
  • Как выделяются ресурсы
  • Что еще стоит почитать
Читать дальше →

Prerender

Время на прочтение1 мин
Охват и читатели24K


Open Source решение для полноценной поисковой индексации ваших JavaScript приложений (Backbone, Angular, Ember, ChaplinJS, Marionette). Работает это следующим образом:

  1. Мидлвар на Ruby on Rails или Node.js проверяет user agent при каждом запросе к приложению
  2. Если обнаружен краулер поисковой машины то отправляется GET запрос к Prerender
  3. Prerender вызывает ваше приложение для той страницы, которую запрашивает краулер
  4. Страница рендерится с помощью PhantomJS
  5. Полученный HTML посылается обратно
  6. Мидлвар возвращает HTML краулеру

Читать дальше →

Погружение в разработку на Ethereum. Часть 5: Oraclize

Время на прочтение13 мин
Охват и читатели7.9K
Доступ к объемным файлам и различные внешние динамические данные часто являются очень важной частью децентрализованного приложения. При этом в самом по себе Ethereum механизма обращения наружу не предусмотрено — смарт контракты могут читать и писать только в рамках самого блокчейна. В этой статье рассмотрим Oraclize, который как раз дает возможность взаимодействия с внешним миром путем запросов к практически любым интернет-ресурсам. Смежной темой является IPFS, вкратце упомянем и о ней.


Читать дальше →

GitLab Flow

Время на прочтение15 мин
Охват и читатели127K

Это перевод достаточно важной статьи про GitLab Flow, альтернативе Git flow и GitHub flow. Статья была написана в 2014, так что скриншоты успели устареть. Тем не менее сама статья более чем актуальна:




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


  • Не описан точным образом весь рабочий процесс,
  • Вносится ненужная сложность,
  • Нет связи с трекером задач (issue tracker).

Мы хотим представить вам GitLab flow — чётко определённый набор практик, решающий эти проблемы. Он объединяет в одну систему:



Читать дальше →

Введение в GitLab CI

Время на прочтение6 мин
Охват и читатели277K

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




Представим на секунду, что вы не знаете ничего о концепции непрерывной интеграции (Continuous Integration — CI) и для чего она нужна. Или вы всё это забыли. В любом случае, начнем с основ.


Представьте, что вы работаете над проектом, в котором вся кодовая база состоит из двух текстовых файлов. Более того, очень важно, чтобы при конкатенации этих файлов в результате всегда получалась фраза "Hello world." Если это условие не выполняется, вся команда лишается месячной зарплаты. Да, все настолько серьезно.


Hello wolrd


Читать дальше →

GitLab CI: Учимся деплоить

Время на прочтение9 мин
Охват и читатели138K

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


Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


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



Читать дальше →

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

Время на прочтение39 мин
Охват и читатели1.9M



Содержание



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


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


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


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



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

Читать дальше →

История одной задачи: Кратчайший мемоизатор на JavaScript

Время на прочтение8 мин
Охват и читатели12K

image


Дело было вечером, накануне ежегодной конференции HolyJS в Санкт-Петербурге. Наша компания уже не первый год является спонсором: соответственно, имеет и свой стенд с интересностями для пытливого ума неравнодушных разработчиков. Когда основное блюдо было готово и все задания были отревьювены и законфирмены, я решил подкинуть на ночь глядя еще интеллектуальной пищи коллегам:


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

Язык — разумеется, JavaScript. Сама задача — классика, но ограничение в 50 символов обернулось настоящим челенджем.


В перерывах первого дня конференции мы обсуждали варианты достижения цели, постепенно сокращая ответ. Весь ажиотаж увенчался идеей поделиться задачей со всеми участниками конференции, и на второй день мы визуализировали задачу (см. приложение) и стали раздавать бланки желающим. В итоге получили около 40 решений и в очередной раз убедились в незаурядности сообщества js-разработчиков, но рекорд Дмитрия Катаева (SEMrush) в 53 символа остался. Давайте разбираться!

Читать дальше →

React v16.4.0: События указателей

Время на прочтение3 мин
Охват и читатели11K

Последний минорный релиз добавляет поддержку часто запрашиваемой фичи — событий указателей (pointer events)!


Также, он включает исправления для метода getDerivedStateFromProps. Полный список изменений доступен ниже.

Читать дальше →

Понимание жизненного цикла React-компонента

Время на прочтение9 мин
Охват и читатели190K
React предоставляет разработчикам множество методов и «хуков», которые вызываются во время жизненного цикла компонента, они позволяют нам обновлять UI и состояние приложения. Когда необходимо использовать каждый из них, что необходимо делать и в каких методах, а от чего лучше отказаться, является ключевым моментом к пониманию как работать с React.
Читать дальше →

Ubuntu 18.04 LTS: что нового?

Время на прочтение3 мин
Охват и читатели134K
image

Вчера, 26 апреля 2018 года, состоялся релиз очередной версии Ubuntu — 18.04 Bionic Beaver. Её кодовое название можно перевести на русский как “очень сильный бобёр” (да, у слова bionic есть и такое значение). Основатель Canonical Марк Шаттлворт объясняет выбор названия так:
Мы таким образом приветствуем созидателей — тех, кто создаёт приложения и пакеты, кто создаёт Ubuntu, кто создаёт что-то на базе Ubuntu. Отдавая должное их неустанному труду, мы выбрали в качестве маскота зверя, известного своим энергичным настроем, трудолюбивой натурой и инженерной смекалкой.

Ubuntu 18.04 относится к LTS (Long Term Support)-версиям. Они выходят каждые два года (предыдущей LTS-версией была 16.04) и поддерживаются в течение пяти лет с момента релиза.

Сегодня, в день официального релиза, самое время поговорить о реализованных в новой версии Ubuntu нововведениях. А наши пользователи уже сегодня могут попробовать всё на практике: образ Ubuntu 18.04 уже доступен для использования во всех наших сервисах: в Виртуальном приватном облаке, VDS Selectel и в выделенных серверах.
Читать дальше →

Сравнение Draft, Gitkube, Helm, Ksonnet, Metaparticle и Skaffold

Время на прочтение11 мин
Охват и читатели6.8K
image

В последнее время Kubernetes пользуется большой популярностью, и разработчики ищут дополнительные способы и методы для развёртывания приложений в кластере этой системы. Даже командная строка kubectl стала восприниматься как инструмент низкого уровня, при этом пользователи продолжают искать ещё более простые способы взаимодействия с кластером. Draft, Gitkube, Helm, Ksonnet, Metaparticle и Skaffold — вот лишь некоторые инструменты, помогающие разработчикам создавать и разворачивать приложения в Kubernetes.

Draft, Gitkube и Skaffold упрощают разработку приложений, позволяя разработчикам как можно быстрее запускать их в кластере Kubernetes. Helm и Ksonnet помогают в процессе развёртывания, т.к. могут определять готовность приложения к отправке, а также управлять выпуском новых версий, обработки различных кластеров и т. д. Metaparticle — необычный инструмент, который позволяет вам в рамках собственного кода работать с любыми форматами (YAML, dockerfile).

Итак, что же использовать в конкретной ситуации?

Давайте посмотрим.
Читать дальше →

Как создать нейросеть всего из 30 строк JavaScript-кода

Время на прочтение4 мин
Охват и читатели27K


Перевод How to create a Neural Network in JavaScript in only 30 lines of code.

В этой статье мы рассмотрим, как можно создать и обучить нейросеть с помощью библиотеки Synaptic.js, позволяющей проводить глубокое обучение в связке Node.js с браузером. Давайте создадим простейшую нейросеть, решающую XOR-уравнение. Также можете изучить специально написанный интерактивный туториал.
Читать дальше →

Информация

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