Как стать автором
Обновить
0
0

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

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

MyBatis как более быстрая альтернатива Hibernate

Время на прочтение11 мин
Количество просмотров102K
В Java сообществе Hibernate framework де-факто считается стандартом для удобной работы с базой данных. Разработчику трудно выбрать другой фреймфорк, потому что порой он не знает о существовании альтернатив. В этой статье я проведу курс молодого бойца по работе с MyBatis framework. Полностью охватить весь framework не получится, но информации будет достаточно, что бы увидеть преимущества и слабые стороны данного framework'а и начать работать с MyBatis.
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии39

Неожиданный порядок инициализации наследованных классов в JavaScript

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

Сегодня у меня была небольшая задачка на рефакторинг JS кода, и я натолкнулся на неожиданную особенность языка, о которой на протяжении 7 лет своего опыта программирования на этом ненавистном многими языке не задумывался и не сталкивался.


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


Чтобы не пользоваться традиционными и бессмысленными константами foo/bar, покажу непосредственно на примере, который был у нас в проекте, но всё же без кучи внутренней логики и с фейковыми значениями. Помните, что всё равно примеры получились довольно синтетические

Наступаем на грабли


Итак, у нас есть класс:


class BaseTooltip {
    template = 'baseTemplate'
    constructor(content) {
        this.render(content)
    }
    render(content) {
        console.log('render:', content, this.template)
    }
}

const tooltip = new BaseTooltip('content')
// render: content baseTemplate

Всё логично


А потом нам понадобилось создать другой тип тултипов, в котором изменяется поле template


class SpecialTooltip extends BaseTooltip {
    template = 'otherTemplate'
}

И вот тут меня ждал сюрприз, потому что при создании объекта нового типа происходит следующее


const specialTooltip = new SpecialTooltip('otherContent')
// render: otherContent baseTemplate
//                          ^ СТРАННО

Читать дальше →
Всего голосов 26: ↑18 и ↓8+10
Комментарии120

Сколько стоит CRM-система?

Время на прочтение19 мин
Количество просмотров45K
Если вы хоть раз покупали новый автомобиль, то для вас не будет откровением то, что вещи в конечном итоге обходятся гораздо дороже той суммы, которая была на ценнике и даже кассовом чеке. Но такой опыт почему-то напрочь забывается, когда бизнес решает внедрить CRM-систему или любое другое корпоративное ПО. И начинается череда сюрпризов, разбирательств и споров — почему столько, когда в калькуляторе на сайте было вот столько?! «Вы меня обманываете! Вы накручиваете! У меня нет денег! Да меня финансовый директор убьёт! Да это бюджет Лихтенштейна! Вы что, с ума сошли?!» Нет, не сошли. Наоборот, сели и здраво написали для вас, что к чему.


Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии44

Spring Boot — OAuth2 и JWT

Время на прочтение13 мин
Количество просмотров93K
Салют, друзья! Уже завтра стартуют первые занятия в новом потоке курса «Разработчик на Spring Framework». В связи с этим традиционно делимся полезным материалом по теме.



В этой статье мы изучим использование OAuth2 и JWT совместно со Spring Boot и Spring Security.

Сервер авторизации (Authorization Server)


Сервер авторизации (Authorization Server) является наиболее важным компонентом в архитектуре безопасности Web API. Сервер авторизации действует как единая точка авторизации и позволяет вашим приложениям и HTTP endpoints определять функции вашего приложения.

Сервер ресурсов (Resource Server)


Сервер авторизации предоставляет клиентам токен доступа для доступа к HTTP Endpoints сервера ресурсов (Resource Server). Сервер ресурсов — это коллекция библиотек, которая содержит HTTP Endpoints, статические ресурсы и динамические веб-страницы.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии5

Обмен данными между React-компонентами с использованием библиотеки RxJS

Время на прочтение4 мин
Количество просмотров8K
Перед вами перевод статьи Chidume Nnamdi, опубликованной на blog.bitsrc.io. Перевод публикуется с разрешения автора.



Появление библиотеки RxJS открыло массу новых возможностей в мире JS. Цель RxJS — достигать многого, используя небольшое количество кода. Прочитав эту статью, вы узнаете, как осуществлять обмен данными между компонентами приложения на React, применяя возможности RxJS.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии19

Product Management Digest #7 (Март — Апрель 2019)

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

Все материалы Product Mindset, отчет PM Trands & Benchmarks, квартальный отчет по мобильному рынку, конкурс стартапов от Visa на 11 млн рублей.


Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Сериализация в Java. Не все так просто

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


Сериализация (Serialization) — это процесс, который переводит объект в последовательность байтов, по которой затем его можно полностью восстановить. Зачем это нужно?
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии16

Настройка домашней среды для разработки (docker + gitlab + DNS)

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

Intro


Не смог придумать подходящее название для поста, поэтому кратко опишу, о чем будет идти речь.


У большинства из нас есть какие-нибудь мелкие личные поделки, которые не выходят за рамки наших домов. Кто-то хостит их на рабочем компьютере, кто-то — на Heroku, кто-то — на VPS, а у кого-то есть домашний сервер. На реддите даже есть сообщество r/homelab, в котором люди обсуждают разные железки и софт для т.н. домашней лаборатории.


Я не настолько увлечен этим вопросом, но у меня дома стоит Intel NUC, который проигрывает музыку с NAS с помощью MPD. Помимо MPD на нем крутятся мои мелкие поделки, которые помогают мне с ним работать: ныне мертвый бот для телеграма, HTTP API на синатре и корявенький фронтенд для него.


В посте я без особых подробностей (многих из которых сам не понимаю) опишу процесс установки DNS-сервера для работы с доменными именами для сервисов, схему одновременной работы нескольких сервисов с помощью Docker и установку Gitlab с CI. Ничего нового вы не узнаете, но вдруг кому-нибудь пригодится этот "гайд". К тому же я бы хотел услышать предложения по поводу того, как можно было бы сделать это проще/элегантнее/правильнее.

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

Как настроить деплой web-приложения на Go для Gitlab на VDS

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

Предисловие


Эта статья является результатом недельного поиска весьма разрозненной информации о том, как же настроить деплой web-сервиса на Go. Не на Heroku, не на Docker, не на Digital Ocean, а просто на старомодный VDS с CentOS 7x64. Почему-то в сети нет этой информации, а большинство туториалов начинаются с того, как настроить билд, и заканчиваются запуском тестов.

Сразу предупрежу, что впервые настраивал CI/CD процесс, так что это статья от новичка новичку.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии22

Использование промисов в JavaScript

Время на прочтение17 мин
Количество просмотров39K
Периодически мы публикуем материалы, которые так или иначе касаются использования промисов в JavaScript.


Почему к промисам приковано столько внимания? Полагаем, всё дело в том, что технология эта весьма востребована, и в том, что в ней достаточно сложно разобраться.

Поэтому, если вы хотите лучше понять промисы, мы предлагаем вашему вниманию перевод очередной статьи, посвящённой этой теме. Её автор говорит, что он последние 10 лет занимался разработкой на Java и PHP, но всё это время с интересом поглядывал на JavaScript. Недавно он решил всерьёз заняться JS и первой заинтересовавшей его темой стали промисы.



Мы считаем, что этот материал будет интересен начинающим разработчикам, которые чувствуют, что, хотя и пользуются промисами, пока недостаточно хорошо их понимают. Вполне возможно, что рассказ того, кто смотрит на JavaScript свежим взглядом и стремится объяснить другим то, что понял сам, не считая, что какие-то вещи понятны всем и без объяснений, поможет начинающим в деле освоения механизмов JavaScript.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии12

Как писать на Spring в 2017

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

В одной из классических статей для новичков, мелькавших недавно на Хабре, рассказывалось про создание базового Web приложения на Java. Все начиналось с сервлета, потом создания JSP страницы и, наконец, деплоймента в контейнер. Посмотрев на это свежим взглядом я понял, что для как раз для новичков это, наверняка, выглядит совершенно жутко — на фоне простых и понятных PHP или Node.js, где все просто — написал контроллер, вернул объект, он стал JSON или HTML. Чтобы немного развеять это ощущение, я решил написать "Гайд для новичков в Spring". Цель это статьи — показать, что создание Web приложений на Java, более того — на Spring Framework это не боль и мучительное продирание через web.xml, persistence.xml, beans.xml, и собирание приложения как карточного домика по кусочкам, а вполне себе быстрый и комфортный процесс. Аудитория — начинающие разработчики, разработчики на других языках, ну и те, кто видел Спринг в его не самые лучше времена.

Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии110

Дайджест интересных материалов для мобильного разработчика #245 (12 марта— 18 марта)

Время на прочтение3 мин
Количество просмотров7.8K
Праздники все закончились и вот у нас в дайджесте много интересных материалов – про успех ролла «Калифорния», правильную анимацию, борьбу с Siri внутри Apple, кроссплатформенную разработку, джуниоров и мидлов.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

20 полезных Node.js фреймворков

Время на прочтение8 мин
Количество просмотров82K
За последние годы Node.js значительно повысил свой статус от экспериментальной технологии до основы для серьезных проектов. Node.js дает возможность построить достаточно сложные, высоконагруженные приложения на простом, элегантном и, самое главное, легковесном механизме. Но прежде всего Node.js – это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!

Читать дальше →
Всего голосов 46: ↑40 и ↓6+34
Комментарии20

Руководство по работе с Redux

Время на прочтение80 мин
Количество просмотров283K
Сегодня Redux — это одно из наиболее интересных явлений мира JavaScript. Он выделяется из сотни библиотек и фреймворков тем, что грамотно решает множество разных вопросов путем введения простой и предсказуемой модели состояний, уклоне на функциональное программирование и неизменяемые данные, предоставления компактного API. Что ещё нужно для счастья? Redux — библиотека очень маленькая, и выучить её API не сложно. Но у многих людей происходит своеобразный разрыв шаблона — небольшое количество компонентов и добровольные ограничения чистых функций и неизменяемых данных могут показаться неоправданным принуждением. Каким именно образом работать в таких условиях?

В этом руководстве мы рассмотрим создание с нуля full-stack приложения с использованием Redux и Immutable-js. Применив подход TDD, пройдём все этапы конструирования Node+Redux бэкенда и React+Redux фронтенда приложения. Помимо этого мы будем использовать такие инструменты, как ES6, Babel, Socket.io, Webpack и Mocha. Набор весьма любопытный, и вы мигом его освоите!
Читать дальше →
Всего голосов 65: ↑59 и ↓6+53
Комментарии51

Подборка штук на основе искусственного интеллекта для личного использования (1/3)

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

Искусственный интеллект и четвёртая промышленная революция (wiki) достигли значительного прогресса за последние несколько лет. Большинство из того, что можно использовать уже сейчас, разрабатывается для коммерческих и промышленных целей, как вы увидите в следующих постах. Научно-исследовательские институты и специализированные компании работают над достижением конечной цели создания ИИ (а именно, создание сильного искусственного интеллекта artificial general intelligence), разрабатывая открытые платформы и исследуя появившиеся этические вопросы. Существуют также несколько компаний, разрабатывающих ИИ-продукты для конечных потребителей, их мы и рассмотрим в рамках этого поста.


Создание искусственного интеллекта — это как взбираться на дерево, пытаясь добраться до Луны. Можно сообщать о стабильном прогрессе, вплоть до самой вершины дерева.

image

Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии15

Классические и новые пособия по интернет-маркетингу, которые стоит увидеть

Время на прочтение4 мин
Количество просмотров6.3K
Помимо увлекательных книг по разработке и дизайну на просторах интернета можно также найти занимательные пособия по интернет-маркетингу — всему, что касается монетизации вашего проекта и получения максимальной прибыли от усилий, вложенных его создание.



В этот раз мы решили представить читателю подборку из актуальных книг последних лет по теме интернет-маркетинга в целом и отдельных его аспектах, которые могут оказаться полезными на всех этапах разработки и продвижения веб-сайта или мобильного приложения.
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии1

Ресурсы для стартаперов: план действий в ссылках

Время на прочтение3 мин
Количество просмотров8.9K
Стартапы рождаются каждый день. Некоторые из них становятся настоящей золотой жилой для своих создателей. Но лишь некоторые. Само собой, что запуск и продвижение собственного стартапа – адский, каторжный труд. И начинается он практически сразу после того, как вас угораздило озарило стать старатпером: необходимо трезво оценить перспективность идеи, получить обратную связь от потенциальных пользователей, довести проект до ума. Дальше больше: приходится прикладывать максмум усилий, чтобы о вашем детище узнали журналисты, инвесторы и возможные партнеры. Сегодня мы предлагаем вашему вниманию очередную подборку российских и зарубежных ресурсов, которые могут оказаться полезны тем отважным создателям стартапов, которых не остановливают перечисленные выше трудности.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Робомобиль на базе Arduino Mega 2560 с Bluetooth управлением и автономным движением с объездом препятствий

Время на прочтение2 мин
Количество просмотров19K
Представляю свой проект робомобиля на Arduino. На просторах интернета есть масса подобных статей, наткнувшись на одну из них решил реализовать увиденное со своими изменениями в конструкцию и функционал. Реализованы следующие возможности: управление робомобилем по Bluetooth со смартфона; автономное движение робомобиля с объездом препятствий.


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

Настольный пульт управления на JavaScript/Node.js для робота на Ардуине

Время на прочтение9 мин
Количество просмотров16K
Сегодня делаем настольное приложение с графическим интерфейсом для управления роботом на Ардуине через последовательный порт. На языке JavaScript на платформе Electron с виджетами ReactJS+MaterialUI.

image


Теперь пульт управления для своего станочка с ЧПУ сделать не сложнее, чем написать сайтик.
Всего голосов 18: ↑16 и ↓2+14
Комментарии14

7 методик оптимизации рабочего процесса, о которых вы, возможно, не слышали

Время на прочтение5 мин
Количество просмотров43K
Времени всегда в обрез, а дел всегда невпроворот – это аксиома двадцать первого века. Неудивительно, что человечество находится в непрерывном поиске магического ритуала (или же методики организации рабочего процесса, как их принято называть), который спасет нас всех от цейтнота, дедлайнов, прокрастинации и прочих темпоральных ловушек. Самые действенные из них вам, безусловно, уже известны, однако мы, усилиями своей команды, составили небольшой хит-парад чуть менее распространенных техник, которые нам доводилось успешно применять в работе.


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии13
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность