10 приниципов разработки на Java / Хабр
Сколько раз вы были в ситуации, когда вы хотели добавить новую функцию в свое приложение, но не могли, потому что код был не масштабируемый? Сколько раз вам приходилось переписывать код, чтобы сделать его тестируемым? Сколько раз вам приходилось добавлять больше кода, чтобы сделать его оптимальным для мобильных устройств?
На самом деле, все сводится к принципам дизайна. В этой статье я поделюсь десятью принципами проектирования, которые необходимо знать всем программистам / разработчикам ПО. Эти принципы относятся к тому, как вы разрабатываете дизайн системы, как вы реализуете определенные компоненты и как вы должны писать свой код. Это не то, чем нужно жить. Это просто рекомендации, о которых вы хотите думать, когда разрабатываете или внедряете систему. Другими словами, они сделают вашу жизнь намного проще в будущем, если вы решите следовать им.
Тут есть частичный перевод, потому что порой бывает, что кто то выражает свои мысли, много лучше чем я. И было бы интересно что вы думаете про эти пункты. Есть ли у вас правила, которыми вы пользуетесь при разработке?
1. Разделяй и властвуй
Один из основных принципов в любой ситуации решения проблем, включая проектирование системы, — разделять и властвовать. Это означает разбиение проблемы на более мелкие подзадачи. Идея заключается в том, что эти проблемы трудно решить из-за их сложности. Чтобы упростить задачу, вы можете разделить эти проблемы на более мелкие. Решение этих меньших задач, облегчит решение более крупной проблемы в долгосрочной перспективе.
В разрезе разработки, у вас может быть система, в которой есть подсистемы с разными пакетами, у которых есть классы с разными методами, которые используют некоторые внешние зависимости или некоторые функции. Я только что разбил всю эту систему на подразделы, записав это утверждение. Если бы у указанных подразделов были проблемы, вы бы выяснили, есть ли проблемы с методами, используемыми в классах, затем переходили бы к другим классам и проверяли, были ли они проблемой, затем переходили бы к пакетам, а затем к подсистемам. Думайте об этом как о ситуации с матрешкой.
2. Повышение сплоченности/согласованности
Сплоченность означает объединение вещей, которые имеют смысл, вместе в один пакет. С точки зрения разработки, вы можете согласованно проектировать свои пакеты, модули или классы. Подумайте, например, о математическом пакете в Python. Математический пакет является связным, потому что в нем есть все, что связано с математическими операциями. Вы не найдете в нем ничего не математического.
Сплоченность приводит к организации вашего кода, и это значительно упростит поиск, тем самым упростив систему. Во всем будет больше смысла. Таким образом, вы не будете заходить в пакет словарей в поисках функций, связанных с машинным обучением, или чего-то подобного.
3. Устранять связывание
Проще говоря, связывание происходит, когда пакеты, модули, классы или файлы очень взаимозависимы. Я не уверен насчет вашего проекта, но я знаю, что это не лучшая реализация любой системы. Почему? Если в одном пакете есть какие-то изменения или он сломается, вся система может быть скомпрометирована, потому что некоторые из ее частей зависят от пакета, в котором произошел сбой.
Я знаю, что вначале легче реализовать сильно связанную систему, но будет намного сложнее отлаживать и исправлять, если какой-либо компонент выйдет из строя.
Часто у вас есть системы, которые настолько сильно связаны, что очень трудно определить, где это происходит. У вас может быть пакет, зависящий от другого пакета, который зависит от еще восьми. Вы понимаете, насколько это проблематично? Вы можете оказаться в ситуации, когда вы не знаете, почему один пакет не работает, когда другой, скрытый под четырьмя уровнями связи, может работать неправильно. Надеюсь, вы поняли идею.
Если вы сможете сделать свои компоненты как можно более независимыми, вам будет легче отлаживать их. Это лучший дизайн. Я стараюсь делать свои пакеты практически как отдельный микросервис. То есть всю логику, например, работы с наградами я выношу отдельный модуль. А работу с валютами в другой. И модуль наград может зависеть от модуля валют, потому что награды могут быть из определенной валюты, но в тоже время можно сделать 3й модуль, который объеденит награды и валюты.
4. Увеличьте абстракцию
Что-то более абстрактное — это упрощенная версия чего-то технического. В смысле кодирования нечто более абстрактное является более обобщенным. Позвольте мне привести пример. Это стандартный пример, который разбирается при изучении ООП. Предположим, у вас есть функция, которая принимает в качестве входных данных только треугольник и отображает его на экране. Что бы произошло, если бы на экране отображались разные формы? Вам нужно будет написать функцию для каждой формы, которая у вас есть. Абстракция была бы лучше, если бы у вас была одна функция, которая принимает любую форму и отображает конкретную форму на основе ее свойств. Это был бы более абстрактный дизайн.
В этом примере треугольник — это конкретная реализация формы, а форма — это общая идея. Абстракция уменьшает дублирование кода при одновременном повышении безопасности.
5. Повторное использование
Это довольно просто и интуитивно понятно, но мы хотим быть уверены, что всякий раз, когда мы пишем код, мы думаем о том, как сделать этот код максимально многоразовым. Это идет рука об руку с абстракцией. Вместо того, чтобы писать конкретную функцию, которая хорошо выполняет одну задачу, но работает, возможно, только в одной конкретной реализации, мы можем сделать ее общей — немного более абстрактной. Таким образом, мы допускаем повторное использование в разных контекстах. Это основная идея возможности повторного использования.
Думайте об этом как о небольшой жертве заранее, чтобы сэкономить время позже, вместо того, чтобы возвращаться и понимать этот код, переписывать его или выполнять другую функцию.
6. Возможность расширения
Гибкость проектирования сводится к тому, чтобы предвидеть изменения в вашей системе в будущем. Ваша система может быть простой в настоящее время, но усложняться в будущем. Возможно, вы захотите добавить еще много чего. Вы можете заменить реализацию объекта или элемента на лучшую. Часто люди проектируют системы для использования сегодня. Они не думают о том, что через месяц или, может быть, через год они собираются масштабировать проект.
Для разработчика нет ничего хуже, чем переделывать то, что они уже разработали ранее, но всем нам приходится сталкиваться с нашими ошибками, чтобы учиться. В таком случае исправление базы кода новыми функциями не поможет. Легче разработать полностью новый дизайн, чем пытаться изменить существующий. Я уверен, что вы уже сталкивались с этим раньше.
7. Предвидеть устаревание
Если вы используете внешние зависимости в своем проекте или системе, вам нужно быть очень осторожным с тем, какие зависимости вы используете. Могут ли они в будущем устареть? Есть много разных способов, с помощью которых внешняя зависимость может уйти в небытие. Он может устареть, он может больше не работать для определенной версии вашего языка программирования после обновления, или он может не поддерживаться или поддерживаться, скажем, в Windows, Linux или Mac. Вы уловили суть.
Вам нужно убедиться, что у вас нет проекта, который полагается на сотни внешних зависимостей, потому что, если что-то пойдет не так, вы некоторое время не будете улыбаться. На всякий случай избегайте ранних, не LTS выпусков программного обеспечения, используйте программное обеспечение от уважаемых компаний, сводите использование внешних зависимостей к минимуму и держитесь подальше от плохо документированных или поддерживаемых проектов.
8. “Портируемый” дизайн
При разработке системы вы должны помнить, что она может использоваться на другой платформе или устройстве, отличающемся от того, на что вы в настоящее время нацеливаетесь. Если вы создаете веб-приложение только для Интернета, это будет дорогостоящим и трудоемким, если вы когда-нибудь захотите превратить его в приложение для iOS, приложение для Android, настольное приложение Windows или что-то в этом роде. Это может потребовать создания совершенно новой системы для возможности переноса. Этот пункт особенно актуален разработчикам игр. Поэтому стоит особое внимание обратить на выбор среды разработки. Например в Unity приложения достаточно легко переносятся на Android/iOS/macOS/Windows standalone.
Итак, вам нужно иметь это в виду при проектировании системы.
9. Проектирование тестируемый системы
Вы должны знать, что проектирование с учетом тестирования, становится очень важным при работе с крупномасштабными системами и большими кодовыми базами. Подумайте о компании вроде Google или Microsoft. Как вы думаете, сколько тестов они проводят за день? Еще лучше, сколько тестов, по вашему мнению, они запускают при каждом pull request? Вероятно, где-то в районе 5000+. Почему? Им нужно убедиться, что все, что вы “закоммитили”, ничего не сломает.
Как они могут провести такое количество тестов? Разработчики, которые написали эти массивные кодовые базы, сделали их способными тестировать то, что они пишут. Вывод: если вы пишете много кода в огромной базе кода, убедитесь, что он поддается тестированию.
10. Дизайн понятный новичку
Нет никакого способа облегчить это, но это просто означает защиту вашего кода от идиотов или защиту вашего кода от непрофессионалла. Вы даже можете думать об этом как о проверке кода для новичков. Это лучший способ объяснить это.
Вы должны представить, что любой, кто использует ваш код, фреймворк, классы или что-то еще, является новичком. Вам следует убедиться, что у вас хорошие сообщения об ошибках. Вам нужно удостовериться, что обрабатываются все недопустимые входные данные, которые кто-либо вводит в систему. Сделайте программу прочной. Убедитесь, что в ней есть действительные сообщения об ошибках и возможные уведомления, которые помогут пользователю правильно понять ошибку и устранить ее.
Если вы начнете возиться с синтаксисом на любом языке, вы получите довольно хорошие сообщения об ошибках. Вы будете знать, что делаете неправильно, и если вы посмотрите это в Google или Stack Overflow, вы поймете, что вы сделали не так в своей программе. Единственная причина, по которой вы можете это сделать, заключается в том, что человек, написавший этот код, разработал его в целях защиты. Они знали, что такие люди, как вы и я, будем использовать фреймворк или язык, и они разработали его таким образом, чтобы он помог нам его использовать.
Заключение
Как я сказал в начале, эти принципы — не то, что вам всегда нужно соблюдать. Из этих принципов есть исключения. Основная идея здесь в том, что вам нужно знать об этих принципах. Подумайте о них. Если вы хотите нарушить одно из них, убедитесь, что вы можете обосновать причину и понять, почему этот принцип может не применяться в вашей ситуации.
Я надеюсь, это поможет вам.
К сожалению, страница, которую Вы запрашиваете, не существует
Направления обучения
Все программы
Стратегическое управление и бизнес-администрирование
Маркетинг и продажи
ESG и устойчивое развитие
Предпринимательство, логистика и ВЭД
Управление персоналом и психология бизнеса
Финансы и управление инвестициями
Управление бизнесом в интернете
Цифровая экономика
PR и журналистика
Программы для вузовского сектора
Fashion-индустрия, retail
Правовые основы. Юридическая деятельность
Государственное и муниципальное управление. Закупки
IT. Информационные технологии
Отраслевой менеджмент (в медицине, спорте и др.)
Языковая подготовка
Профессиональная сертификация
Программы профессионального обучения
Нацпроект. Бесплатное обучение
Школьникам и студентам
Остались вопросы?
Вы можете написать нам письмо или позвонить:
Остались вопросы?
Вы можете написать нам письмо или позвонить:
Оставьте заявку на консультацию
Напишите нам
Действующие скидки
-70%
- Работникам и детям работников Университета
-50%
- Студентам, зачисленным в Университет без вступительных испытаний из числа победителей и призеров Олимпиад школьников и Всероссийской олимпиады школьников
-30%
- Студентам, чей средний балл зачисления за один предмет 95 и выше (начиная с 2021 года)
- Студентам, сдавшим ЕГЭ по одному и более предметам на 100 баллов (начиная с 2021 года)
-20%
- Членам семей работников Университета
-10%
- Студентам и аспирантам
- Слушателям ПП (в т. ч. МВА), желающим освоить параллельно иную программу ПК
- Выпускникам Университета — членам Ассоциации Университета и членам их семей (муж, жена, дети)
-5%
- Выпускникам Университета и членам их семей (муж, жена, дети)
- Слушателям, которые привели с собой друга на ту же программу
- Слушателям, пришедшим по рекомендации выпускника, слушателя ПП (в т.ч. МВА) или работника Университета
- Слушателям ПК, желающим освоить параллельно иную программу ПК
Запросить персональную скидку
Нажимая на кнопку, я соглашаюсь на обработку персональных данных
Программы могут быть предоставлены в рассрочку
за подробностями по телефону
+7 (495) 135-45-82или оставьте заявку на рассрочку
Нажимая на кнопку, я соглашаюсь на обработку персональных данных
Оставьте заявку на консультацию
Записаться на курс
Записаться на пробное занятие
Заказать звонок
Для оплаты оставьте свои контактные данные
Согласен с пользовательским соглашением, даю согласие на обработку персональных данных
Согласен с договором оферты и условиями оплаты и возврата
Новое в Центре программирования Java
Сожалеем. Мы не смогли найти совпадение по вашему запросу.
Мы предлагаем вам попробовать следующее, чтобы найти то, что вы ищете:
- Проверьте правильность написания вашего ключевого слова.
- Используйте синонимы для введенного вами ключевого слова, например, попробуйте «приложение» вместо «программное обеспечение».
- Начать новый поиск.
Связаться с отделом продаж
Меню МенюНовое в Центре программирования Java
Центр программирования для новичков в Java помогает разработчикам, плохо знакомым с языком и платформой Java, разбираться в различных технологиях и создавать приложения Java.
Основы Java Начать Подготовка Соединять Молодые разработчики
Язык программирования Java и платформа Java
Java — это язык высокого уровня и программная платформа. Он работает на более чем 50 миллионах персональных компьютеров и миллиардах устройств по всему миру. 9 миллионов разработчиков создали Java-приложения во всех основных отраслях.
Двумя основными компонентами платформы Java являются интерфейс прикладного программирования Java (API), представляющий собой библиотеку командных строк Java, и виртуальная машина Java (JVM), которая интерпретирует код Java в машинный язык.
Одно и то же приложение может работать на нескольких платформах
API и JVM делают программу независимой от базового оборудования0043
Создайте приложение «Hello World» на Java. Следуйте этим пошаговым инструкциям, чтобы быстро создать свое первое приложение с помощью текстового редактора в Windows или интегрированной среды разработки (IDE) NetBeans.
Изучайте программирование на Java с помощью The Java Tutorials, всеобъемлющего источника концепций языка Java. Объектно-ориентированное программирование и программирование на Java объясняются иллюстрациями и примерами кода.
Выберите правильный инструмент. Профессионалы используют IDE NetBeans, полнофункциональную программу разработки Java от Oracle, и JavaFX, клиентскую платформу для создания и развертывания многофункциональных интернет-приложений.
Рекомендуемые книги:
- «Core Java, Volume I — Fundamentals (9th edition) Кей Хорстманн и Гэри Корнелл
- «Core Java, Volume II — Advanced Features (9th edition) Кей Хорстманн и Гэри Корнелл
- «Первая голова на Java» Кэти Сьерра и Берта Бейтса
- «Размышление на языке Java», Брюс Эккель
Раздел книги Oracle Java Magazine
Платформа Java, стандартная версия (Java SE)
Java SE позволяет пользователям разрабатывать и развертывать приложения Java на настольных компьютерах и серверах, а также во встроенных средах. Java SE содержит ядро библиотек языка программирования Java.
Компонентами Java SE являются Java Development Kit (JDK), Java Runtime Environment (JRE) и интерфейс прикладного программирования Java SE (API). JDK содержит JRE, а также компиляторы и отладчики, необходимые для разработки апплетов и приложений. JRE предоставляет библиотеки, виртуальную машину Java (JVM) и компоненты, необходимые для запуска апплетов и приложений Java. (См. рисунок ниже)
Концептуальная схема Java SE
Изучение Java SE
Изучите основные концепции Java, такие как параллелизм, выражения, коллекции, массивы, универсальные шаблоны и многое другое, с помощью учебных пособий по Java. Они охватывают все эти передовые концепции с подробными пояснениями и примерами кода. Глоссарий Java также доступен со списком определений.
Создайте приложение Java в NetBeans с помощью этого пошагового руководства. В нем также объясняется инструмент и методы разработки NetBeans. Узнайте, как создавать реальные бизнес-приложения, на практическом семинаре по Java SE. Он предлагает подробные лабораторные инструкции и упражнения, а также всесторонний обзор Java SE
. Oracle предлагает мероприятия для разработчиков по всему миру. Проверьте календарь предстоящих событий, чтобы посетить мероприятие в вашем регионе. Посетите Виртуальный технологический саммит, живое мероприятие, доступное для разных часовых поясов. Посетите следующий Виртуальный саммит по технологиям
Ряд уроков доступен для подготовки новичков к трем сертификатам Java. Эти уроки с подробными объяснениями и примерами охватывают базовые и продвинутые темы Java, а также последние функции Java 8 и являются хорошим способом проверить свои знания Java.
Рекомендуемая литература:
- OCA: Oracle Certified Associate Java SE 8 Programmer | Учебное пособие: Экзамен 1Z1-808
- OCA/OCP Java SE 7 Programmer I & II Study Guide by Kathy Sierra and Bert Bates
- Полный справочник, 9-е издание, и Java: руководство для начинающих, 6-е издание Герберта Шильдта.
JavaFX, Платформа пользовательского интерфейса Java
JavaFX — это расширенная платформа пользовательского интерфейса Java для корпоративных бизнес-приложений. Разработчики, использующие Java как на стороне сервера, так и на стороне клиента, могут создавать более надежные и надежные приложения.
Пользовательский интерфейс с инструментом конструктора Scene Builder
Используйте JavaFX Scene Builder, инструмент визуального макета для быстрого проектирования пользовательских интерфейсов без написания кода. Пользователи могут перетаскивать компоненты пользовательского интерфейса в рабочую область, изменять их свойства и применять таблицы стилей. В этом руководстве по началу работы новички обучаются тому, как создавать сложные пользовательские интерфейсы (например, списки, табличные представления, панели инструментов) и подключаться к логике приложения
Код пользовательского интерфейса
Для создания приложений JavaFX разработчики должны установить Java Development Kit (JDK) 8, который включает Java Runtime Environment (JRE), для запуска инструментов, примеров и приложений JavaFX. Напишите код приложения «Hello World» с помощью JavaFX и NetBeans 7. 3, следуя этому текстовому руководству. Продолжите анимацию элементов управления пользовательского интерфейса с помощью языка разметки JavaFX (FXML) и его интерфейса прикладного программирования (API). Изучите и выберите элементы управления пользовательского интерфейса и следуйте руководствам по началу работы, чтобы создавать формы, простой пользовательский интерфейс, анимацию и визуальные эффекты. Загрузите и измените образцы приложений JavaFX, представляющие собой примеры бизнес-интерфейса, с которыми пользователи могут экспериментировать.
Изучите советы и рекомендации из приведенного ниже видео от архитектора JavaFX Ричарда Бэра.
Платформа Java, Enterprise Edition (Java EE)
Платформа Java, Enterprise Edition (Java EE) — это отраслевой стандарт для создания веб-приложений и корпоративных приложений. Java EE 7 предлагает новые функции, улучшающие поддержку HTML5, повышающие производительность труда разработчиков и улучшающие способы удовлетворения требований предприятия. Разработчики Java EE 7 будут писать меньше шаблонного кода, получат лучшую поддержку новейших веб-приложений и фреймворков и получат доступ к улучшенной масштабируемости и более богатой и простой функциональности. Предприятия получат выгоду от новых функций, обеспечивающих портативную пакетную обработку и улучшенную масштабируемость.
Платформа Java, Enterprise Edition (Java EE)
Изучите основные концепции платформы Java EE. Некоторые из ключевых концепций включают Java Persistence API для интеграции с базой данных, EJB для безопасности и транзакций, JAX-RS для веб-сервисов Restful, сервлетов и страниц JavaServer. В статье «Терминология технологии Java» есть определения, которые легко просмотреть. Учебники по Java предоставляют полезные первые шаги для разработчиков.
Создание первого приложения Java EE
Создание простых приложений Java EE 7 с помощью IDE NetBeans. Java Server Page (JSP), Servlets и Enterprise Java Beans (EJB) являются ключевыми концепциями для создания этого приложения. Веб-сайт сообщества GlassFish предлагает практические занятия по Java EE.
Образец Java EE 7 с использованием NetBeans представляет собой исчерпывающий набор учебных пособий, видеороликов, статей и примеров кода, позволяющих узнать все о разработке веб-приложений Java. Создавайте динамические страницы с помощью JavaServer Pages (JSP), сервлетов, HTML5, JavaScript и JavaBeans и интегрируйте приложения с базами данных и веб-сервисами.
Рекомендуемая литература:
- Beginning Java EE 7 , Antonio Goncalves, Apress, июнь 2013 г.
- Рецепты Java EE 7: подход к решению проблемы , Джош Джуно, май 2013 г.
- Справочник разработчика по Java EE 7 , Питер А. Пилгрим, сентябрь 2013 г.
- Учебное пособие по Java EE 7: том 1 и 2 , Эрик Джендрок и Рикардо Сервера-Наварро, май 2014 г.
Java Embedded и Java ME
От принтеров и банкоматов до устройств для чтения электронных книг и автомобилей — в современных встроенных системах доминирует технология Java. Это 5 миллиардов SIM-карт и смарт-карт, 3 миллиарда мобильных телефонов, 80 миллионов телевизионных устройств, включая каждый поставленный проигрыватель Blu-ray, и многие другие встроенные решения. Для встроенных систем разработаны три технологии: Java SE Embedded для устройств с 32 МБ памяти; Java ME Embedded для устройств с 8 МБ и Java Embedded Suite для устройств, подключающихся к базе данных. Java ME — это среда для приложений, работающих на мобильных и встроенных системах.
Java SE Встроенные и небольшие устройства
В выпуске журнала Java Magazine об Интернете вещей (IoT) Хенрик Шталь обсуждает IoT для разработчиков Java. Узнайте, как создавать приложения для умного дома с помощью проекта Eclipse SmartHome, гибкой платформы с открытым исходным кодом для создания решений для массового рынка.
Наборы Lego Mindstorms EV3 — отличный способ начать программировать датчики с помощью Java. Видео, руководство и загрузки доступны здесь. Другой способ начать — использовать Raspberry Pi, единую компьютерную плату. В статье евангелиста Java Анжелы Кайседо объясняется, «как стать разработчиком встраиваемых систем за считанные минуты». Серия видеороликов от старшего инженера Винисиуса Сенгера расскажет вам о тонкостях Raspberry Pi и о том, как создать проект.
Java-разработчики подробно рассказали JavaOne о создании приложений с помощью небольших устройств с открытым исходным кодом, таких как Arduino, Nao Robot, Raspberry Pi и других. Вот список докладов, которые вы можете бесплатно посмотреть на технических сессиях JavaOne:
- How to Talk to Your House [CON11218]
- Джеймс Гослинг, роботы, Raspberry Pi и малые устройства [UGF8907]
- Java говорит на языке Интернета вещей [CON11348]
- Волшебное шоу Интернета вещей [CON4636]
- Умные дома для масс [CON3213]
- Объединяя миры информационных технологий и робототехники [CON3922]
- Вымысел или реальность? Управление жестами и новая волна устройств с трехмерными камерами [CON2526]
- Развлечение с роботом NAO и Java [HOL12424]
- Программирование реального мира [CON6378]
- У вас есть Raspberry Pi? Создайте свой собственный подключенный интеллектуальный датчик с помощью Java ME Embedded [HOL3982]
Программирование с помощью Java ME на мобильных устройствах
Начните создавать и запускать первое приложение с учебными ресурсами Java ME. Для разработки приложений Java ME Embedded с помощью Raspberry Pi следуйте серии руководств по Oracle Learning Library. Пройдите бесплатно первые два урока Массового открытого онлайн-курса (МООК) по разработке Java ME на Raspberry Pi. В статье Хосе Круз описывает, как подключать датчики к Raspberry Pi и управлять ими с помощью Java.Агус Курниаван написал книгу под названием «Начало работы с Java ME Embedded 8 и Raspberry Pi».
Обучение и сертификация Java от Oracle University
Платформа Java, стандартная версия (Java SE)
Университет Oracle — ваш единственный источник обучения и сертификации по Java. Курсы доступны для начинающих и предлагают прекрасную возможность получить практический опыт разработки приложений с использованием новейших технологий Java. Обучение также связано с сертификацией Java, поэтому вы можете легко подтвердить свои новые навыки.
Следите за технологиями, общайтесь с профессионалами и коллегами и узнавайте об открытом коде
События
- Конференция JavaOne — это ведущая конференция в отрасли Java, организованная Oracle.
- DeveloperDays — это однодневные практические занятия по продуктам и технологиям Oracle
Информационный бюллетень и онлайн-журнал
- Java Magazine, онлайн-журнал о технологии Java, языке программирования Java и приложениях на основе Java
Блоги
- Блоги Planet JDK: коллекция блогов, в которых представлены новости и мнения сообщества Java SE Development Kit
- The Java Источник: Блог с общими новостями о форумах разработчиков Java Форумы организованы по технологиям.
Сети сообщества
- Процесс сообщества Java (JCP) — это открытая организация, которая запрашивает информацию как у активных участников, так и у нечленов
Проект с открытым исходным кодом
- Open JDK — это реализация платформы Java Standard Edition. Члены сообщества оставляют свои отзывы и вносят свой код в проект с открытым исходным кодом, который находится под Стандартной общественной лицензией (GPL) .
Форумы Oracle
- Форумы Oracle — отличное место, где можно получить помощь по проектам, поделиться своим опытом в области программирования и познакомиться с другими разработчиками
Молодой разработчик — Инструменты программного обеспечения для визуального программирования
Молодые люди изучают языки программирования с самого раннего возраста и старше. Эти инструменты и веб-сайты учат молодых людей программировать с использованием языка программирования Java и языков на основе Java, разработанных для простоты использования.
Молодой разработчик
Новые технологии и сообщества!
Инструменты, которые вы можете использовать для изучения языка программирования Java. Доступно онлайн-обучение Alice и Greenfoot
Другие ресурсы
Узнать больше
Платформа Java Standard Edition 6 Комплект разработчика Readme
Введение
Благодарим вас за загрузку этого выпуска комплекта разработчика Java Platform, Standard Edition (JDK). JDK — это среда разработки для создания приложений, апплетов и компонентов с использованием языка программирования Java.
JDK включает инструменты, полезные для разработки и тестирования программ, написанных на языке программирования Java и работающих на платформе Java.
Системные требования и установка
Системные требования, инструкции по установке и советы по устранению неполадок находятся на веб-сайте Java Software по адресу:
Инструкции по установке JDK 6
Документация JDK
Интерактивная платформа Java, стандартная версия (Java SE ) Документация содержит спецификации API, описания функций, руководства для разработчиков, справочные страницы по инструментам и утилитам JDK, демонстрации и ссылки на соответствующую информацию. Эта документация также доступна в пакете загрузки, который вы можете установить на свой компьютер. Чтобы получить комплект документации, перейдите на страницу загрузки. Документацию по API см. в Спецификации API для платформы Java, Standard Edition. В ней представлены краткие описания API с упором на спецификации, а не на примеры кода.
Примечания к выпуску
Дополнительную информацию об этом выпуске см. в примечаниях к выпуску Java SE 6 на веб-сайте Java Software. Пожалуйста, время от времени проверяйте онлайн-примечания к выпуску для получения последней информации, так как они будут обновляться по мере необходимости.
Совместимость
Список известных проблем совместимости см. в разделе Совместимость с предыдущими версиями на веб-сайте Java Software. Были приложены все усилия для поддержки программ, написанных для предыдущих версий платформы Java. Хотя были необходимы некоторые несовместимые изменения, большая часть программного обеспечения должна быть переведена на текущую версию без перепрограммирования. Любое невыполнение этого требования считается ошибкой, за исключением небольшого числа случаев, когда совместимость была нарушена намеренно, как описано на нашей веб-странице совместимости. Требовались некоторые изменения, нарушающие совместимость, чтобы закрыть потенциальные дыры в безопасности или исправить ошибки реализации или дизайна.
Отчеты об ошибках и отзывы
Веб-сайт базы данных ошибок позволяет вам искать и изучать существующие отчеты об ошибках, отправлять свои собственные отчеты об ошибках и сообщать нам, какие исправления ошибок наиболее важны для вас. Чтобы напрямую сообщить об ошибке или запросить функцию, заполните эту форму:
Примечание . Пожалуйста, не обращайтесь за технической поддержкой через базу данных ошибок или наши команды разработчиков.
Содержимое JDK
Этот раздел содержит общую информацию о файлах и каталогах в JDK. Дополнительные сведения о файлах и каталогах см. в разделе «Структура файлов JDK» документации Java SE для вашей платформы.
Инструменты разработки
(В подкаталоге bin/
) Инструменты и утилиты, которые помогут вам разрабатывать, выполнять, отлаживать и документировать программы, написанные на языке программирования Java. Для получения дополнительной информации см. документацию по инструменту.
Среда выполнения
(В подкаталоге jre/
) Реализация среды выполнения Java (JRE) для использования JDK. JRE включает в себя виртуальную машину Java (JVM), библиотеки классов и другие файлы, поддерживающие выполнение программ, написанных на языке программирования Java.
Дополнительные библиотеки
(В подкаталоге lib/
) Дополнительные библиотеки классов и вспомогательные файлы, необходимые для средств разработки.
Демонстрационные апплеты и приложения
(В подкаталоге demo/
) Примеры программирования для платформы Java с исходным кодом. К ним относятся примеры, использующие Swing и другие классы Java Foundation, а также архитектуру отладчика платформы Java.
Образец кода
(В подкаталоге sample
) Образцы с исходным кодом программирования для определенных Java API.
Файлы заголовков C
(В подкаталоге include/
) Файлы заголовков, поддерживающие программирование в машинном коде с использованием собственного интерфейса Java, интерфейса инструментов JVM и других функций платформы Java.
Исходный код
(в src.zip
) Исходные файлы языка программирования Java для всех классов, составляющих основной API Java (то есть исходные файлы для java.*, javax.* и некоторых org. * пакетов, но не для пакетов com.sun.*). Этот исходный код предоставляется только в информационных целях, чтобы помочь разработчикам изучить и использовать язык программирования Java. Эти файлы не содержат код реализации для конкретной платформы и не могут использоваться для перестроения библиотек классов. Чтобы распаковать эти файлы, используйте любую обычную утилиту zip. Или вы можете использовать утилиту Jar в пакете JDK 9.0301 bin/ каталог: jar xvf src.zip
Среда выполнения Java (JRE)
Среда выполнения Java (JRE) доступна как отдельно загружаемый продукт. См. веб-сайт загрузки.
JRE позволяет запускать приложения, написанные на языке программирования Java. Как и JDK, он содержит виртуальную машину Java (JVM), классы, включающие API-интерфейс платформы Java, и вспомогательные файлы. В отличие от JDK, он не содержит инструментов разработки, таких как компиляторы и отладчики.
Вы можете свободно распространять JRE вместе с вашим приложением в соответствии с условиями лицензии JRE. После того, как вы разработали свое приложение с помощью JDK, вы можете поставлять его с JRE, чтобы у ваших конечных пользователей была платформа Java, на которой можно запускать ваше программное обеспечение.
Перераспределение
ПРИМЕЧАНИЕ. Лицензия на это программное обеспечение не разрешает распространение бета-версий и других предварительных версий.
В соответствии с положениями и условиями Лицензионного соглашения на программное обеспечение и обязательствами, ограничениями и исключениями, изложенными ниже, Вы можете воспроизводить и распространять Программное обеспечение (а также части Программного обеспечения, указанные ниже как Вторично распространяемые), при условии, что:
вы распространяете Программное обеспечение в полной и немодифицированной форме и только в комплекте с вашими апплетами и приложениями («Программы»),
ваши Программы добавляют к Программному обеспечению важные и основные функции,
ваши Программы предназначены только для работы на Java- включенные настольные компьютеры и серверы общего назначения,
вы распространяете Программное обеспечение исключительно с целью запуска ваших Программ,
вы не распространяете дополнительное программное обеспечение, предназначенное для замены какого-либо компонента(ов) Программного обеспечения,
вы не удаляете и не изменяете какие-либо обозначения прав собственности или уведомления, содержащиеся в Программном обеспечении или на нем,
вы распространяете Программное обеспечение только в соответствии с лицензионным соглашением, которое защищает интересы Оракл в соответствии с условиями, содержащимися в настоящем Соглашении, и
вы соглашаетесь защищать и освобождать Oracle и ее лицензиаров от любых убытков, издержек, обязательств, сумм урегулирования и/или расходов (включая гонорары адвокатов), понесенных в связи с любыми претензиями, судебными исками или действиями любой третьей стороны, которые возникают или являются результатом использование или распространение любых и всех Программ и/или Программного обеспечения.
Используемый здесь термин «поставщики» относится к лицензиатам, разработчикам и независимым поставщикам программного обеспечения (ISV), которые лицензируют и распространяют Java Development Kit (JDK) со своими программами.
Поставщики должны соблюдать условия лицензионного соглашения о двоичном коде Java Development Kit.
Обязательные и необязательные файлы
Файлы, составляющие Java Development Kit (JDK), делятся на две категории: обязательные и необязательные. Необязательные файлы могут быть исключены из распространения JDK по усмотрению поставщика.
Следующий раздел содержит список файлов и каталогов, которые могут быть исключены из повторного распространения JDK. Все файлы, не входящие в эти списки необязательных файлов, должны быть включены в распространяемые пакеты JDK.
Необязательные файлы и каталоги
Следующие файлы могут быть дополнительно исключены из распространения. Эти файлы расположены в каталоге jdk1.6.0_<версия>, где <версия> — номер версии обновления. Показаны имена и разделители файлов Solaris и Linux. Исполняемые файлы Windows имеют суффикс «.exe». Соответствующие файлы с _g
в названии тоже можно исключить. Соответствующие справочные страницы должны быть исключены для всех исключенных исполняемых файлов (пути, перечисленные ниже, начинаются с bin/
для операционной системы Solaris и Linux).
jre/lib/charsets.jar
Классы преобразования знаков localedata.jar
— содержит множество ресурсов, необходимых для локалей, отличных от американского английского. ldapsec.jar
— содержит функции безопасности, поддерживаемые поставщиком услуг LDAP. dnsns.jar
— для оболочки InetAddress поставщика JNDI DNS0301 jre/bin/rmiregistry
Java Remote Object Registry
bin/tnameserv
and jre/bin/tnameserv
Java IDL Name Server
bin/keytool
and jre/bin/keytool
Средство управления ключами и сертификатами
bin/kinit
и jre/bin/kinit
Используется для получения и кэширования билетов на выдачу билетов Kerberos. ktab
Диспетчер таблиц ключей Kerberos
bin/policytool
и jre/bin/policytool
Инструмент и управление файлами политики
BIN/ORBD
и JRE/BIN/ORBD
Запрос на объект DAMEN
BIN/SERVERTOOL
и JRE/BIN/SERVERTOOL
JRE/BIN/SERVERTOOL
и . bin/javaws
, jre/bin/javaws
, jre/lib/javaws/
и jre/lib/javaws.jar
Java Web Start
db/
Java DB, дистрибутив Oracle базы данных Apache Derby (только для файловых дистрибутивов JDK).
demo/
Demo Апплеты и приложения
sample/
Sample Code
src.zip
Архив исходных файлов0004 Распространяемые файлы JDK
Ограниченный набор файлов и каталогов из JDK, перечисленных ниже, может быть включен в распространяемые поставщиками среды выполнения Java (JRE). Их нельзя распространять отдельно, и они должны сопровождать дистрибутив JRE с идентичной версией. Все пути относятся к каталогу верхнего уровня JDK. Соответствующие справочные страницы должны быть включены для всех включенных исполняемых файлов (пути, перечисленные ниже, начинаются с 9).0301 bin/
для операционной системы Solaris и Linux). jre/lib/cmm/PYCC.pf
Цветовой профиль. Этот файл требуется только в том случае, если вы хотите преобразовать цветовое пространство PYCC в другое цветовое пространство.
Все файлы шрифтов .ttf
в каталоге jre/lib/fonts/
.
Обратите внимание, что шрифт LucidaSansRegular.ttf уже содержится в JRE, поэтому нет необходимости переносить этот файл из JDK.
jre/lib/audio/soundbank.gm
Этот звуковой банк MIDI присутствует в JDK, но он был удален из JRE, чтобы уменьшить размер загружаемого пакета JRE. Однако файл звукового банка необходим для воспроизведения MIDI, и поэтому файл JDK soundbank. gm
может быть включен в распространяемые JRE по усмотрению поставщика. Несколько версий расширенных звуковых банков MIDI доступны на Java. Эти альтернативные банки звуков могут быть включены в распространяемые версии JRE.
Компилятор байт-кода javac, состоящий из следующих файлов:
bin/javac
[Операционная система Solaris и Linux]
bin/sparcv9/javac
[Операционная система Solaris (SPARC(R) Platform Edition)]
bin/amd64/javac
[Операционная система Solaris (AMD)]
bin/javac.exe
[Microsoft Windows]
lib/tools.jar
[Все платформы]
Средство обработки аннотаций, состоящее из следующих файлов:
lib/tools.jar
[Все платформы]
bin/apt
[Операционная система Solaris и Linux]
bin/sparcv9/apt
[Операционная система Solaris (SPARC(R) Platform Edition)]
bin/amd64/apt
[Операционная система Solaris (AMD)]
bin/apt. exe
[Microsoft Windows]
lib/jconsole.jar
Приложение Jconsole. ПРИМЕЧАНИЕ. Для приложения Jconsole требуется механизм динамического подключения.
Механизм динамического подключения, состоящий из следующих файлов:
lib/tools.jar
[Все платформы]
jre/lib/sparc/libattach.so
[Операционная система Solaris (SPARC(R) Platform Edition) и Linux]
jre/lib/sparcv9/libattach.so
[Операционная система Solaris (SPARC(R) Platform Edition) и Linux]
jre/lib/i386/libattach.so
[Операционная система Solaris (x86) и Linux]
jre/lib/amd64/libattach.so
[Операционная система Solaris (AMD) и Linux]
jre\bin\ attach.dll
[Microsoft Windows]
Реализация архитектуры отладчика платформы Java, состоящая из файлов, показанных в разделе динамического присоединения выше, и следующих файлов:
lib/tools.jar
[Все платформы]
lib/sa-jdi. jar
[Все платформы]
jre/lib/sparc/libsaproc.so
[Операционная система Solaris (SPARC(R) Platform Edition) и Linux]
jre/lib/sparcv9/libsaproc .so
[Операционная система Solaris (SPARC(R) Platform Edition) и Linux]
jre/lib/i386/libsaproc.so
[Операционная система Solaris (x86) и Linux]
jre/lib/amd64/libsaproc. так
[Операционная система Solaris (AMD) и Linux]
jre\bin\server\
На платформах Microsoft Windows JDK включает виртуальную машину Java HotSpot Server и Java HotSpot Client. Однако JRE для платформ Microsoft Windows включает только клиентскую виртуальную машину Java HotSpot. Желающие использовать виртуальную машину Java HotSpot Server с JRE могут скопировать папку JDK jre\bin\server
в папку bin\server 9.0302 в JRE. Поставщики программного обеспечения могут повторно распространять виртуальную машину Java HotSpot Server со своими повторными распространениями JRE.
Расширение криптографии Java неограниченной надежности
Из-за ограничений контроля импорта для некоторых стран файлы политики расширения криптографии Java (JCE), поставляемые с JDK и JRE, позволяют использовать стойкую, но ограниченную криптографию. Эти файлы расположены по адресу
/lib/security/local_policy.jar /lib/security/US_export_policy.jar
, где
— это каталог jre
JDK или каталог верхнего уровня JRE.
Версия этих файлов с неограниченной стойкостью, указывающая на отсутствие ограничений на криптографическую стойкость, доступна на веб-сайте JDK для тех, кто живет в соответствующих странах. Те, кто живет в соответствующих странах, могут загрузить версию с неограниченной надежностью и заменить JAR-файлы с надежной криптографией на файлы с неограниченной надежностью.
Файл сертификатов cacerts
Сертификаты корневого центра сертификации могут быть добавлены или удалены из файла сертификата Java SE, расположенного по адресу
Для получения дополнительной информации см. Сертификаты cacerts Раздел File в документации по keytool.
Механизм переопределения утвержденных стандартов Java
Время от времени необходимо обновлять платформу Java, чтобы включать новые версии стандартов, созданных вне процесса сообщества Java SM (JCP SM http://www.jcp.org/) ( Утвержденные стандарты ) или для обновления версии технологии, включенной в платформу, чтобы она соответствовала более поздней автономной версии этой технологии. ( Автономные технологии ).
Механизм переопределения утвержденных стандартов предоставляет средства, с помощью которых более поздние версии классов и интерфейсов, реализующих одобренные стандарты или автономные технологии, могут быть включены в платформу Java.
Для получения дополнительной информации о механизме переопределения утвержденных стандартов, включая список пакетов платформы, которые он может использовать для переопределения, см.
здесь
Java DB
технология баз данных.