Spring Framework часто приводят как пример Cloud Native фреймворка, созданного для работы в облаке, разработки Twelve-Factor приложений, микросервисов, и одного из самых стабильных, но в то же время инновационных продуктов. Но в этой статье я бы хотел остановиться на еще одной сильной стороне Spring: это его поддержка разработки через тестирование (TDD-руемость?). Не смотря на TDD-руемость, я часто замечал, что в проектах на Spring либо игнорируются некоторые best practices для тестирования, либо изобретаются свои велосипеды, либо вообще не пишутся тесты потому что они "медленные" или "ненадежные". И вот именно о том, как писать быстрые и надежные тесты для приложений на Spring Framework и вести разработку через тестирование я и расскажу. Так что если вы используете Spring (или хотите начать), понимаете что такое вообще тесты (или хотите понять), или думаете что contextLoads это и есть необходимый и достаточный уровень интеграционного тестирования — то будет интересно!
Рубрика «java» - 94
Как построить пирамиду в багажнике или Test-Driven Development приложений на Spring Boot
2018-11-27 в 23:10, admin, рубрики: java, spring boot, tdd, ПрограммированиеВ любой непонятной ситуации — пиши скрипты
2018-11-26 в 8:48, admin, рубрики: java, scripting, spring framework, Блог компании Haulmont, Программирование
Скрипты — один из самых распространенных способов сделать приложение более гибким, с возможностью поправить что-то прямо на ходу. Конечно же, у этого подхода есть и недостатки, нужно всегда помнить про баланс между гибкостью и управляемостью. Но в этой статье мы не будем рассуждать “в общем” по поводу плюсов и минусов использования скриптов, мы рассмотрим практические способы реализации этого подхода, а также представим библиотеку, которая предоставляет удобную инфраструктуру для добавления скриптов в приложения, написанные на Spring Framework.
Читать полностью »
Просто об «умном доме»: как сделать «умную» подсветку
2018-11-24 в 14:13, admin, рубрики: java, гайд, Разработка на Raspberry Pi, умный дом, Электроника для начинающихПриходя домой, всегда было неудобно: открываешь дверь, а дальше темно, тогда появилась идея сделать подсветку в коридоре, да непростую, а что бы с телефона можно было включить до прихода домой. Ну сказано — значит надо начинать.
Так как в дальнейшем планируются расширения этой системы (или нет), было решено взять одноплатный компьютер за основу. Легким движением мыши на али был подобран самый дешевый<
spoiler title=«orange pi zero 256mb»>
orange pi zero 256mb.

Читать полностью »
Forever Junior. Почему вне зависимости от квалификации нужно всегда оставаться Junior
2018-11-23 в 16:07, admin, рубрики: java
Юность неукротима и имеет нужду во многих наставниках, учителях, руководителях, надсмотрщиках, воспитателях. Что конь необузданный, что зверь неукротимый, то же самое и юность.
Иоанн Златоуст
Открывая сайт наподобие «хэ-хэ-ру», вбив в поиск вакансий «Java» (подставьте свой любимый язык) вы получите список, просматривая который вам будут попадаться слова «Junior», «Middle», «Regular», «Senior». Эти слова относятся к общепринятой классификации уровней разработчика. На тему к какому уровню отнести себя написано огромное количество статьей, в том числе и на хабре, поэтому я не буду повторяться. Напишу лишь общий вывод: нет точных критериев, по которым можно точно отнести себя тому или иному уровню. У каждой компании они свои.
Зачем такая градация существует в вакансиях — понятно. Зачем нам как разработчикам относить себя к какому-то уровню — не ясно. Где наша выгода? Потешить самолюбие? Повысить ЧСВ? Мы тратим на этот процесс время и силы, особенно в начале пути в мире IT. Я не выбираю такую философию!
Читать полностью »
Kotlin: статика, которой нет
2018-11-23 в 9:19, admin, рубрики: funcorp, funtech, java, kotlin, Блог компании FunCorp, Программирование, разработка мобильных приложений
В этой статье пойдёт речь об использовании статики в Kotlin.
Начнём.
В Kotlin нет статики!
Об этом говорится в официальной документации.
И вроде бы на этом можно было бы и закончить статью. Но позвольте, как же так? Ведь если в Android Studio вставить код на Java в файл на Kotlin, то умный конвертер сделает магию, превратит всё в код на нужном языке и всё заработает! А как же полная совместимость с Java?
В этом месте любой разработчик, узнав про отсутствие статики в Kotlin, полезет в документацию и форумы разбираться с этим вопросом. Давайте разбираться вместе, вдумчиво и кропотливо. Постараюсь, чтобы к концу этой статьи вопросов по этой теме осталось как можно меньше.Читать полностью »
Моя история прохождения интервью в IB IT (Java разработчик, investment bank) в Лондоне с примерами типичных заданий
2018-11-22 в 16:19, admin, рубрики: java, интервью, карьера, Карьера в IT-индустрии, лондон, Программирование, Промышленное программирование, финансы в ITТак получилось, что я хотел стать программистом еще учась в университете в Москве, но стал им уже за пределами России и не сразу — путь был долог и тернист. Я ходил на множество интервью (вначале искал я, потом уже искали меня), вникал в тонкости работы и размышлял на тему — как же стать хорошим программистом.
Один из аспектов, который актуален на протяжении всей карьеры, это поиск работы и прохождение интервью. Я сам проводил очень мало интервью (4-5), но посетил большое их количество (>100). У меня было 3-4 периода по поиску работы за последние ~7 лет, когда я ходил на интервью месяц-два, по 1-2-3 в день иногда.
В этой статья я бы хотел поделиться опытом прохождения интервью, дать какую-то систематизацию, как оно выглядит и бывает, к чему готовиться.
Что бы мне было интересно узнать в комментариях — как это бывает у других, особенно в Москве/России, наверняка есть различия с Европой.
Технологии, используемые в анализаторе кода PVS-Studio для поиска ошибок и потенциальных уязвимостей
2018-11-21 в 8:28, admin, рубрики: C, c/c++, C#, c++, Data-Flow Analysis, java, Method Annotations, pattern-based analysis, pvs-studio, Symbolic Execution, Анализ потока данных, Аннотирование методов, Блог компании PVS-Studio, информационная безопасность, Компиляторы, Программирование, Си, Символьное выполнение, Сопоставление с шаблоном, статический анализ, статический анализ кода
Краткое описание технологий, используемых в инструменте PVS-Studio, которые позволяют эффективно обнаруживать большое количество паттернов ошибок и потенциальных уязвимостей. Статья описывает реализацию анализатора для С и C++ кода, однако приведённая информация справедлива и для модулей, отвечающих за анализ C# и Java кода.
Читать полностью »
Знакомство с Spring Data MongoDB
2018-11-20 в 11:51, admin, рубрики: java, mongodb, spring, Блог компании Отус, ПрограммированиеВсем доброго дня!
Стартовали новенький поток «Разработчик на Spring Framework», «внезапно», этот курс оказался очень востребованным среди, как и новых студентов, так и тех кто уже отучился у нас на «обычной» джаве и энтерпрайзе. Так что, если интересно, то заходите к нам на открытые уроки, ну и, разумеется, делимся интересными материалами по теме.
Поехали!
В современном мире очень важно создать и запустить приложение как можно скорее. Также приложение должно быть простым в разработке и легко поддерживаться.
Spring — как раз такой фреймворк, который обеспечивает простоту интеграции со множеством других различных фреймворков, что упрощает разработку приложения с использованием Spring. Одной из таких интеграций является интеграция Spring с MongoDB.

1. ВступлениеЧитать полностью »
Модель разработки на примере Stack-based CPU
2018-11-19 в 19:03, admin, рубрики: fpga, java, own language, Verilog, ПрограммированиеВозникал ли у вас когда-нибудь вопрос "как работает процессор?". Да-да, именно тот, который находится в вашем в ПК/ноутбуке/смартфоне. В этой статье я хочу привести пример самостоятельно придуманного процессора с дизайном на языке Verilog. Verilog — это не совсем тот язык программирования, на который он похож. Это — Hardware Description Language. Написанный код не выполняется чем-либо (если вы не запускаете его в симуляторе, конечно), а превращается в дизайн физической схемы, либо в вид, воспринимаемый FPGA (Field Programmable Gate Array).

