Pull to refresh
9
0
Ежовый Глаз @EGlaz

Программист

Send message

Что такое Spring Framework? От внедрения зависимостей до Web MVC

Reading time 41 min
Views 471K


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


  • Чтобы понять, что такое Spring Framework
  • Как работают ее основные фичи: такие как внедрение зависимостей или Web MVC
  • Это также исчерпывающий FAQ (Перечень часто задаваемых вопросов)

Примечание: Статья ~ 9000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже. И даже на компьютере ешь читай этого слона по одному кусочку за раз :-)


Содержание


  • Введение
  • Основы внедрения зависимостей
  • Контейнер Spring IOC / Dependency Injection
  • Spring AOP (Аспектно-ориентированное программирование) и прокси
  • Управление ресурсами Spring
  • Spring Web MVC
  • Дополнительные модули Spring Framework
  • Spring Framework: часто задаваемые вопросы
  • Заключение
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 14

Сколько зарабатывают IT-шники в Великобритании и сколько при этом тратят

Reading time 5 min
Views 59K


Аве, Кодер!

Не так давно у нас на канале выходило видео (https://youtu.be/OC4nDT7J31Q), где я разбирал усредненные годовые зарплаты программистов в Великобритании, а также некоторые основные траты, сравнивая Лондон и (относительная глубинка) — Ноттингем.

Думаю, и многие читатели хабра найдут эту информацию полезной, хотя бы, просто для ознакомления и расширения кругозора.
Читать дальше →
Total votes 46: ↑38 and ↓8 +30
Comments 561

FindBugs помогает узнать Java лучше

Reading time 7 min
Views 50K
Статические анализаторы кода любят за то, что они помогают найти ошибки, сделанные по невнимательности. Но гораздо интереснее то, что они помогают исправить ошибки, сделанные по незнанию. Даже если в официальной документации к языку всё написано, не факт, что все программисты это внимательно прочитали. И программистов можно понять: всю документацию читать замучаешься.

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

В этом посте я расскажу о некоторых тонкостях Java, о которых я узнал в результате использования статического анализатора FindBugs. Возможно, какие-то вещи окажутся неожиданными и для вас. Важно, что все примеры не умозрительны, а основаны на реальном коде.

Тернарный оператор ?:


Казалось бы, нет ничего проще тернарного оператора, но у него есть свои подводные камни. Я считал, что нет принципиальной разницы между конструкциями
Type var = condition ? valTrue : valFalse;
и
Type var;
if(condition)
  var = valTrue;
else
  var = valFalse;

Читать дальше →
Total votes 69: ↑67 and ↓2 +65
Comments 33

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Reading time 6 min
Views 548K

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →
Total votes 52: ↑46 and ↓6 +40
Comments 99

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

Reading time 39 min
Views 1.6M



Содержание



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


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


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


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



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

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

Знай сложности алгоритмов

Reading time 2 min
Views 986K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16 +280
Comments 99

Разработать и опубликовать игру под Android за неделю

Reading time 4 min
Views 24K

Задумал я как-то написать игру. Причем, по-быстрому. Желательно за неделю при условии работы на полставки. Финальным этапом должна была стать публикация на Google Play (что, конечно, недостаточно, но об этом позже). Таким образом, это будет статья о разработке в стиле "вжух-вжух и в продакшен", или, как сказали друзья "устроил себе Ludum Dare". Технических деталей будет, впрочем, немного.


После небольшого брейнсторма родилась идея "складывания ленты". Лента бесконечной длины, её можно сгибать под прямым углом (количество сгибов ограничено), и её "лицевая" и "изнаночная" стороны разного цвета. Так же есть контрольные точки "лицевого" и "изнаночного" цветов. Игрок выигрывает когда лента пройдёт соответствующими сторонами по всем контрольным точкам. Быстрый поиск не дал ничего похожего.


screenshot

Читать дальше →
Total votes 52: ↑45 and ↓7 +38
Comments 16

Приглашаем на Android Devs Meetup 20 октября

Reading time 1 min
Views 3K


В следующий четверг мы приглашаем Android-разработчиков на пятый Android Devs Meetup, который состоится в московском офисе Mail.Ru Group. Эксперты и разработчики мобильных приложений расскажут о технологиях мобильной разработки, обсудят особенности использования новых инструментов и подходов, поделятся личным опытом. На встрече вас ждет три доклада, подробности читайте под катом.
Читать дальше →
Total votes 35: ↑34 and ↓1 +33
Comments 2

Лучшие вакансии на «Моём круге» за неделю, 3-9 октября

Reading time 2 min
Views 7.5K
Каждую неделю на «Моём круге» публикуются сотни вакансий. Мы бы хотели поделиться с вами некоторыми из них. Необязательно это вакансии с самыми высокими зарплатами, но в них есть что-то интересное — необычный проект, cutting edge технологии, комфортные условия работы. Наша цель — показать какой разной может быть работа в IT. В этом выпуске: солнце Калифорнии, чувство неприязни костылей, использование коллективного разума для предсказаний, кольцо с тревожной кнопкой и онлайн-тренажер.

image

Critical Issue реализует модель Team Extension as a Service (TEaaS) — помогает крупным компаниям на американском рынке быстро и эффективно расширить команду разработки высококвалифицированными специалистами. Сейчас компания ищет Senior C/C++ Developer для участия в «масштабном международном проекте, цель которого обеспечить безопасный доступ к информации, для любого человека на планете». Успешному кандидату предстоит командировка в Сан-Франциско, после чего он может выбирать — работать удаленно, в Москве или перебраться в Калифорнию. Зима близко — самое время ехать греться под калифорнийским солнышком.

Зарплата: от 2 000 usd., Москва, можно удаленно
Подробнее: https://moikrug.ru/vacancies/1000028349
Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Comments 15

Личный опыт получения Голубой карты в Германии 2015-2016. Часть 1: Поиск работы

Reading time 7 min
Views 32K
Всем привет. В данной статье я хочу поделиться своим опытом получения голубой карты ЕС. Идеи об эмиграции у меня были всегда, я постоянно смотрел информацию о существующий программах и вариантах покинуть просторы нашей страны. Причины моих порывов сугубо личные и никому я их навязывать не хочу.

Так получилось, что в школе я изучал немецкий, и всегда считал что он мне абсолютно не пригодится в жизни. Потому учил я его без энтузиазма.
Читать дальше →
Total votes 48: ↑43 and ↓5 +38
Comments 79

Swift и время компиляции

Reading time 4 min
Views 25K
Пост основан на статье medium.com/@RobertGummesson/regarding-swift-build-time-optimizations-fc92cdd91e31 + небольшие изменения/дополнения, то есть текст идет от моего лица, не третьего.

Всем знакома ситуация после изменения файла(ов) или просто переоткрытия проекта:






Нужно сказать, что какой-то особой проблемы с компиляцией я не замечал когда писал на Objective-C, но всё изменилось с приходом в массы swift. Я частично отвечал за CI сервер по сборке iOS проектов. Так вот, проекты на swift собирались невыносимо медленно. Еще разработчики любят тащить поды (cocoapods зависимости) на каждый чих в свои swift проекты, иногда, в безумном количестве. Так вот, компиляция всей этой смеси могла продолжаться несколько минут, хотя сам проект состоял буквально из пары десятков классов. Ну ладно, как бы ясно, язык новый, на этапе компиляции происходит намного больше проверок, чем в том же ObjC, глупо ожидать, что она будет работать быстрее (да, swift это строго типизированный язык и всё должно быть максимально явно объявлено (как в Java, например), в отличии от ObjC, где не всё так строго). Разработчики swift с каждым релизом обещают в x раз ускорения скорости компиляции. Ну вроде, действительно, сборка 2.0 и уже потом 2.2 стала работать быстрее, вот вот на носу уже 3.0 версия (конец года).

Компилятор компилятором, но оказывается, что время сборки проекта можно катастрофически увеличить буквально несколькими строчками кода. Часть примеров взято из вышеупомянутой статьи, часть самописные (не поверил автору и хотелось самому проверить). Время замерял через

time swiftc -Onone file.swift

Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 56

Удачи в цифровую эпоху! Или включите параноика и проверьте защиту своих данных

Reading time 8 min
Views 86K
Долго полемизировать не буду, просто приведу 2 жизненных примера от близких людей, которые столкнулись с проблемами аутентификации в обычном современном мире и чуточку своих выводов.


Читать дальше →
Total votes 38: ↑27 and ↓11 +16
Comments 72

Устройство игрового движка для NES на примере игр «Capcom»

Reading time 11 min
Views 33K
В моей третьей статье про NES-игры я покажу техники, используемые для создания игровых движков, а именно реализацию скроллинга экрана, переключение банков памяти, организацию списка объектов, устройство системы анимаций персонажей, функции обновления игровых объектов (и обработку столкновений), устройство главной карты. Чтобы не быть голословным в описаниях, я буду приводить дизассемблированный код из конкретных игр (любимый всем «Darkwing Duck», с отсылками к «Chip & Dale» и «Duck Tales»), без него в этой статье не обойтись. В качестве примера рассматривается движок от «Capcom», на модификациях которого работает как минимум пара десятков игр.

Некоторые из рассматриваемых тем не связаны между собой, поэтому статья будет разбита на несколько разделов. Также, из-за обширности, материала хватило бы на небольшую книгу, поэтому иногда я буду давать ссылки на статьи для желающих разобраться в деталях, а описывать только общие вещи, касающие архитектуры движков.
Читать дальше →
Total votes 74: ↑74 and ↓0 +74
Comments 6

Как мы делали сингл на Ubuntu Studio 14.04

Reading time 4 min
Views 26K


От создателей Как мы создавали сингл на Ubuntu Studio 13.10. Второй сингл мы делали тоже на Ubuntu Studio 13.10, так не хотели новых приключений. И созрели к ним только к осени. Каемся, но KXStudio так и не попробовали. По
объективным причинам.
лень
Так что ждём статей про этот дистрибутив от других хаброюзеров.
Читать дальше →
Total votes 38: ↑28 and ↓10 +18
Comments 51

[Москва, 19.02.2015] Дмитрий Ленев — Менеджеры блокировок в MySQL

Reading time 1 min
Views 6.9K
Всем привет!

У нас большая удача! Нам удалось договориться с Дмитрием Леневым, уникальным специалистом, разработчиком MySQL Server с 11-летним стажем, о выступлении на CodeFreeze. Москвичи, обязательно приходите!

Итак, в четверг, 19 февраля, в 20:00 в московском офисе Mail.Ru состоится встреча CodeFreeze с Дмитрием Леневым, разработчиком MySQL Server в компании Oracle. Доклад будет посвящен обзору менеджеров блокировок данных в MySQL (включая блокировки метаданных, таблиц и блокировок InnoDB). Будут обсуждаться предназначение каждого из видов и архитектура этих менеджеров.



Подробнее о предстоящей лекции ...
Total votes 20: ↑18 and ↓2 +16
Comments 4

Создание iOS приложения. От идеи до результата

Reading time 5 min
Views 152K
Все началось с того, что я огляделся по сторонам и, не увидев автомобиля своей мечты, решил сконструировать его сам
Фердинанд Порше

Привет, Хабр. Хочу рассказать, как создал свое первое iOS приложение и что из этого получилось.

image
Читать дальше →
Total votes 45: ↑34 and ↓11 +23
Comments 23

Основы CG-рисунка на примерах: рисуем осциллограф, применяем 3D

Reading time 3 min
Views 152K


Всем привет! Меня зовут Иван Смирнов, я работаю концепт-художником в Allods Team, игровой студии Mail.Ru Group, на проекте Skyforge. Помимо этого я преподаю на факультете концепт-арта в Scream School и веду онлайн-курсы. Не так давно я проводил лекцию по основам CG-рисунка: в частности, речь шла о том, как нарисовать простой предмет, например, осциллограф. Материалами этой лекции я спешу поделиться с вами. Осторожно, траффик!
Читать дальше →
Total votes 124: ↑117 and ↓7 +110
Comments 46

Заставляем ProgressBar крутиться пока идет http-запрос

Reading time 2 min
Views 48K
Все началось с того, что мне вдруг очень захотелось сделать что-нибудь под андроид. И все это несмотря на то, что java — не мой родной язык.
В процессе создания своего приложения я столкнулся с несколькими трудностями, о решении которых и хочу поведать. Думаю, они будут полезны, таким же как я, новичкам, и буду благодарен за советы и более красивые примеры от гуру.
Но главное подтверждение работоспособности примеров — это то что приложение работает, можете проверить.
Читать дальше →
Total votes 52: ↑43 and ↓9 +34
Comments 22

Опыт работы SAP-консультантом в Австрии или где ИТ-шнику жить хорошо

Reading time 5 min
Views 90K
Благодаря открывшейся в июле 2011 года программы иммиграции для высококвалифицированных специалистов в Австрию, я смогла попытать свой шанс и изменить жизнь к лучшему.

Жизнь SAP — консультанта в России


Что привык видеть ежедневно обычный российский SAP консультант? Переработки, нервы начальника или клиента, постоянно недовольные пользователи. Консультанту приходится поздно приходить домой, если не жить в отеле какого-нить далекого северного города. Один питерский SAP консультант как-то заметил: «Нормально — это когда просыпаешься ночью в поезде и уже не помнишь, куда ты едешь — в Питер или в Москву». Да, за все это хорошо платят, как считают не SAP-консультанты. Но не больше, чем профессиональному разработчику, с той лишь разницей, что в SAP можно прийти из бизнеса, или, например, поработав секретаршей где-то в офисе, где в «соседней двери» внедряли SAP. Хотя есть в России и хорошие компании, где здоровый коллектив, хорошо и уютно, кормят, и домой после 18 отпускают. Но их мало, и чаще они зарубежные.
Читать дальше →
Total votes 58: ↑53 and ↓5 +48
Comments 60

ASUS Network iControl — удалить нельзя помиловать

Reading time 1 min
Views 59K
Я потратил на решение этой проблемы 2 месяца. В вялом режиме гуглил, спрашивал в IRC… наверное, я безнадёжный ламер. Но я хотел бы сохранить время другим людям, поэтому пишу сюда.
Читать дальше →
Total votes 78: ↑64 and ↓14 +50
Comments 15

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity