Введение в программирование через поведение (BDD) История: Эта статья впервые появилась в журнале Better Software в марте 2006. Она была переведена на несколько языков. Однажды я столкнулся с проблемой. Обучая разработчиков практикам agile программирования, таким как TDD в различных проектах, я часто встречал непонимание и растерянность. Они хотели знать, где начать, что тестировать, а что не тестировать, как много тестировать за раз, как называть тесты и как понять, почему тесты падают. Чем больше я пользовался TDD, тем больше я понимал, что не столько оттачиваю своё мастерство, достигая новых его вершин, сколько то, что это было движение в слепую.
Я помню, как мне все чаще приходила мысль: «Эх, вот бы мне кто-нибудь сказал это раньше!» , чем мысль: «Отлично, дорога ясна». И этот способ — это программирование через поведение. Выражайте названия тестов (методов) предложениями Моё открытие, моё радостное «Ага!» Public class CustomerLookupTest extends TestCase { testFindsCustomerById() { ... } testFailsForDuplicateCustomers() { ... } ... }
А как же всё-таки работает многопоточность? Часть II: memory ordering. Знание об управлении потоками, которое мы получили в прошлом топике, конечно, велико, но вопросов остаётся всё равно много. Например: «Как работает happens-before?» , «Правда ли, что volatile — это сброс кешей?» , «Зачем вообще было городить какую-то модель памяти? Нормально же всё было, что началось-то такое?» Как и прошлая статья, эта построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там».
Всё возрастающая производительность железа возрастает не просто так. Устройство кешей Запрос к «основной памяти» — операция дорогая, и даже на современных машинах может занимать сотни наносекунд. Как процессор A может знать, что процессор B поменял какое-то значение, если у A оно закешировано? Для того, чтобы различные процессоры имели согласованную картину мира, они должны некоторым образом общаться между собой. Протоколы когерентности кешей Оптимизации для MESI и проблемы, которые они порождают Store Buffers. Новый вид разработчиков — Framework Java Coder? Перевод небольшой заметки Yakov Fain с сайта javalobby.org о том, как обилие фреймворков на любой вкус лишают разработчиков необходимости знать, как всё устроено «под капотом». Думаю, эта проблема не ограничивается только Java, а всё ещё актуальна для любого языка, не смотря на то, что статья достаточно старая. Когда я собеседовал Java-разработчиков, я часто натыкался на людей, которые не понимали как работают и взаимодействуют некоторые компоненты распределённого приложения.
Обычно, это было связано с тем, что они использовали те или иные фреймворки, которые скрывают от разработчиков важные элементы своей реализации. В этом нет ничего плохого до тех пор, пока программист понимает, как работает остальные части приложения. Сегодня один из моих бывших клиентов попросил меня провести интервью на позицию Senior Java EE разработчика. На большинство моих вопросов он отвечал одинаково: «Я вызывал метод самодельного фреймворка». — Как Вы вызывали компонент сессии (EJB) из JSP? UPD. Raspberry Pi и чашечку Java, пожалуйста! Данная статья перевод с английского статьи Vladimir Alarcón и Nathaniel Monson «A Pi and a cup of Java, please!»
Вышедшей в 14 номере журнала MagPi. Эта статья является первой в цикле статей посвящённых описанию практических основ программирования на Java использую Raspberry Pi. Что вам необходимо: Raspberry Pi и ОС Raspbian.150 Мб свободного места на SD карте.Базовые знания программирования.Базовые навыки использования командной строки. Вступление В данной статье я расскажу вам как писать и запускать Java программы на вашем Raspberry Pi.
Java — это объектно-ориентированный язык программирования, транслирующий исходный код программ в байт-код, для запуска их независимо от операционной системы и без необходимости перекомпилляции. В начале я покажу, как установить Java на Raspberry Pi. 1. Чтобы написать, копиллировать и запустить программу вам необходимо две вещи: текстовый редактор и JDK. Установим Geany и OpenJDK 7 открыв окно терминала и набрав: sudo apt-get install -y openjdk-7-jdk geany. Intellij IDEA: Oracle Cloud Integration. Не секрет, что Oracle претендует на звание крупнейшего в мире корпоративного облака. Oracle Public Cloud, пригоден, по утверждениям компании, для переноса в себя всех приложений и бизнес-процессов предприятия.
Недавно пришлось попробовать Oracle Java Cloud Service в работе. Впечатления, в общем — положительные, но был немного расстроен, т.к не имел возможности работать с этим сервисом в своей любимой среде разработки — Intellij IDEA. И вот два дня назад появился плагин Oracle Cloud integration. Установка Первым делом нам необходимо установить плагин: 1)Скачиваем к себе наш плагин: Oracle Cloud integration; 2)Переходим “File”>”Settings”>”Plugins” и нажимаем “Install plugin from disk”, и указываем путь к скачанному jar файлу; 3)Перезагружаем Intellij IDEA. Настройка Cloud Configuration Пример: Настройка Run/Debug Configurations Этот плагин позволяет нам загружать на сервер war и ear артефакты. 1) “Deployment” комбобокс предлагает нам сделать выбор из уже существующих артефактов. Virus-scan Log. CUBA — платформа для быстрой разработки бизнес-приложений на Java / Блог компании Haulmont.
Если вы занимаетесь разработкой софта для предприятий, то возможно уже написали собственную платформу. Которая позволяет вам быстро создавать UI и логику для работы с данными, содержит общую для ваших проектов функциональность: управление правами пользователей, генератор отчетов, BPM и тому подобное, и имеет архитектуру, позволяющую легко сопровождать и масштабировать приложение. Если еще не успели написать, предлагаем познакомиться с нашей разработкой — платформой CUBA. Платформа существует более четырех лет, но до сих пор она использовалась в довольно узком кругу разработчиков нашей компании и партнеров. Мы успели сделать на ней два тиражируемых продукта и больше десятка заказных проектов. И вот настал момент, когда после длительной подготовки, мы решились выпустить ее в виде продукта, доступного всем желающим. Для начала приведу краткий список основных возможностей. Кому это может пригодиться? Условия использования CUBA описаны на нашем сайте.
Документация есть. История Планы на будущее. FindBugs помогает узнать Java лучше. Статические анализаторы кода любят за то, что они помогают найти ошибки, сделанные по невнимательности. Но гораздо интереснее то, что они помогают исправить ошибки, сделанные по незнанию. Даже если в официальной документации к языку всё написано, не факт, что все программисты это внимательно прочитали. И программистов можно понять: всю документацию читать замучаешься. В этом плане статический анализатор похож на опытного товарища, который сидит рядом и смотрит, как вы пишете код. Он не только подсказывает вам: «вот здесь ты ошибся, когда копипастил», но и говорит: «нет, так писать нельзя, вон сам в документацию глянь».
В этом посте я расскажу о некоторых тонкостях Java, о которых я узнал в результате использования статического анализатора FindBugs. Тернарный оператор ? Казалось бы, нет ничего проще тернарного оператора, но у него есть свои подводные камни. Type var = condition ? И Type var; if(condition) var = valTrue; else var = valFalse; Оказалось, что тут есть тонкость. DateFormat. JavaFX WebView (HTML/JS) — используем web практики для разработки desktop приложений / Блог компании CodeOrchestra. Базовым UI фреймворком для нашего приложения был выбрана JavaFX. JavaFX прекрасно показала себя. В этой же статье мы хотели сконцентрироваться на одном компоненте JavaFX — WebView. При разработке нашего приложения — интерфейса COLT — мы использовали набирающий популярность среди девелоперов подход, когда часть компонентов UI реализуется на JavaScript/HTML.
Компонент на базе HTML/JS — это обычный Java класс, обычный JavaFX компонент с лайаутом — HBox или просто Pane, который содержит в себе экземпляр компонента Webview. Как создать экземпляр webkit в JavaFX и подгрузить HTML WebView webView = new WebView(); WebEngine engine = webView.getEngine(); engine.load(this.getClass().getResource("html/webview.html").toExternalForm()) Что мы получили использовав web технологии в нашем приложении. Тонны готовых решений jQuery, D3 покрывает почти все наши задачи. Дешево На Java такое же, что мы реализовали на JS/HTML написать было бы непросто.
Например, этот компонент для добавления путей. Первое. Groovy. Создание приложения Swing Maven с использованием Hibernate - учебный курс по IDE NetBeans. В этом учебном руководстве IDE NetBeans используется для создания приложения Swing Java на основе архетипа Maven. Приложение использует библиотеку Hibernate в качестве слоя сохранения состояния для извлечения POJO (простых объектов Java) из реляционной базы данных. В данном учебном курсе описано, как мастеры в среде IDE могут помочь в создании необходимых полей и добавить зависимости Hibernate в POM. После создания объектов Java и настройки приложения для использования Hibernate создается графический пользовательский интерфейс для поиска и отображения данных.
Поддержка Maven полностью интегрирована в IDE NetBeans, а Maven 3 входит в комплект в IDE. Вы можете создавать приложения с помощью набора архетипов Maven или с помощью архетипов в удаленных репозиториях в мастере создания проектов. Подробные сведения о создании приложения с использованием Ant приведены в разделе Использование библиотеки Hibernate в приложении Java на базе Swing. Содержание Создание базы данных Настройка Maven. Что я не ожидал увидеть в тесте Java Programmer I (1Z0-803) Здесь нету примеров идеального кода, пяти шагов «как получить сертификат с вероятностью 100%, гарантия». Нету даже фотографий котиков :/ В лучших стилях жанра «Смотрите, я получил сертификат!» Случилось это... В Праге, в центре тестирования Gopas, посредником был «Pearson VUE». Стоимость — 245 USD. Довела меня до этого...
Обещанная на работе прибавка к зарплате. Терпение и труд все перетрут Если у вас есть опыт программирования на Java (каких-нибудь 1+ лет), то особая подготовка не нужна, просмотрите темы экзамена и восстановите возможные пробелы. Неожиданности Следующие примеры не делают экзамен сложным, но упоминание о них, вероятно, может быть полезными для людей, которые тоже решили пренебречь подготовкой.Изменение и передача аргумента в одной строчке, по типу doStuff(i++, ++j, (k+=1)); «И где неожиданность?» Char[] array = { 97, 'b' }; надо было вспомнить, что 97 это 'a'. Не забываем, что 1 / 2 = 0, спасибо за внимание :) UPD: все вопросы из здесьссылка очень похожи на реальные. Секреты сборки мусора в Java. Интеграция Java и 1С через .Net framework на примере Apache PDFBox. В сети Интернет мало информации по интеграции Java и 1С. Тем не менее, есть интересные Java-проекты, работу которых хотелось бы оценить внутри 1С. Apache PDFBox – один из таких популярных проектов.
Так сложилось, что файлы pdf являются очень распространенными, а 1С не имеет хороших средств работы с данным форматом. Предложенный здесь способ состоит в том, чтобы через утилиту IKVM.NET перевести JAVA-библиотеку в .Net-сборку, а затем использовать эту сборку внутри 1С средствами интеграции. Apache PDFBox– это библиотека Java для работы с PDF-документами. Позволяет выполнять операции: извлечение текста, печать PDF, слияние и разделение документов, преобразование в изображение, заполнение форм, создание PDF, проверка PDF/A, интеграция с Lucene Search Engine. IKVM.Net – это виртуальная машина Java для Mono и .Net framework. Конвертация Jar в dll-сборку На данном шаге предполагается, что IKVM.Net 7.2.4630.5 установлен на компьютере. JAVA_HOME C:\Progra~1\Java\jre6 Открыть файл Pdf: Разработка JSF приложений при помощи IntelliJ Idea. Часть 2: Разработка простого приложения. Часть 1. В этой части мы рассмотрим создание простого приложения для конвертации из метров в дюймы.
Если тема будет интересна, то в следующей статье мы рассмотрим взаимодействие с базами данных. Создание нового проекта Любая разработка в IntelliJ Idea начинается с создания нового проекта. Сейчас мы создадим проект, содержащий в себе Java-модуль и поддержку создания Web-приложений и поддержку сервера приложений GlassFish. Для создания проекта:1. 4. В диалоговом окне Select Home Directory for JDK выберите директорию, в которую установлен JDK и затем нажмите ОК. Выбранный JDK появится в поле Project SDK Нажмите кнопку Next.5. Версию по умолчанию (2.5) подходит для наших упражнений. Аналогично, на следующем шаге добавляется поддержка сервера приложений GlassFish. Исследование структуры проекта Рассмотрим структуру проекта, созданного IntelliJ IDEA. В структуре проекта присутствуют два корневых узла:JSFDemo. Запуск первого приложения Исследование артефакта приложения Создание input_number.xhtml 2. Думаем на Java, 2-я редакция. - Содержание.