merge of methodist corrections
This commit is contained in:
commit
5bbedb6bdc
|
@ -10,4 +10,5 @@
|
||||||
!/build/*.pdf
|
!/build/*.pdf
|
||||||
!/*/build/*.pdf
|
!/*/build/*.pdf
|
||||||
|
|
||||||
|
/methodist-share
|
||||||
Icon*
|
Icon*
|
BIN
build/j-spec.pdf
BIN
build/j-spec.pdf
Binary file not shown.
41
j-spec.tex
41
j-spec.tex
|
@ -17,12 +17,15 @@
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
\usepackage{hyperref}
|
\usepackage{hyperref}
|
||||||
\usepackage{forest}
|
\usepackage{forest}
|
||||||
|
\usepackage{nomencl,imakeidx}
|
||||||
\usetikzlibrary{mindmap,trees}
|
\usetikzlibrary{mindmap,trees}
|
||||||
\input{fancy-listings-preamble}
|
\input{fancy-listings-preamble}
|
||||||
|
|
||||||
\titlelabel{\thetitle. \quad}
|
\titlelabel{\thetitle. \quad}
|
||||||
\setcounter{tocdepth}{1}
|
\setcounter{tocdepth}{1}
|
||||||
|
\renewcommand{\nomname}{Термины, определения и сокращения}
|
||||||
|
\makeindex
|
||||||
|
\makenomenclature
|
||||||
\babelfont{rm}{PT Astra Serif}
|
\babelfont{rm}{PT Astra Serif}
|
||||||
\babelfont{sf}{PT Astra Serif}
|
\babelfont{sf}{PT Astra Serif}
|
||||||
\babelfont{tt}{PT Mono}
|
\babelfont{tt}{PT Mono}
|
||||||
|
@ -30,7 +33,6 @@
|
||||||
|
|
||||||
\newcounter{slidenum}
|
\newcounter{slidenum}
|
||||||
\setcounter{slidenum}{1} % set to 2 if want to exclude title page of presentation
|
\setcounter{slidenum}{1} % set to 2 if want to exclude title page of presentation
|
||||||
|
|
||||||
\newcommand{\showslide}[1]{
|
\newcommand{\showslide}[1]{
|
||||||
\noindent\makebox[\linewidth]{\rule{.90\paperwidth}{1.4pt}}
|
\noindent\makebox[\linewidth]{\rule{.90\paperwidth}{1.4pt}}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
@ -42,6 +44,7 @@
|
||||||
\newcommand\hRf[1]{\hyperref[#1]{\nameref{#1}}}
|
\newcommand\hRf[1]{\hyperref[#1]{\nameref{#1}}}
|
||||||
\newcommand{\wordcount}{\input{/tmp/wordcount.tex}}
|
\newcommand{\wordcount}{\input{/tmp/wordcount.tex}}
|
||||||
\newcommand{\code}[1]{\small{\texttt{\detokenize{#1}}}\normalsize}
|
\newcommand{\code}[1]{\small{\texttt{\detokenize{#1}}}\normalsize}
|
||||||
|
\newcommand*{\nom}[2]{#1\nomenclature{#1}{#2}}
|
||||||
\renewcommand\labelitemi{\textemdash}
|
\renewcommand\labelitemi{\textemdash}
|
||||||
\newenvironment{frm}
|
\newenvironment{frm}
|
||||||
{ \begin{center} \begin{tabular}{|p{0.9\textwidth}|} \hline\\ }
|
{ \begin{center} \begin{tabular}{|p{0.9\textwidth}|} \hline\\ }
|
||||||
|
@ -82,11 +85,26 @@
|
||||||
\chapter{Java Core}
|
\chapter{Java Core}
|
||||||
|
|
||||||
\section{Платформа: история и окружение}
|
\section{Платформа: история и окружение}
|
||||||
|
\subsection{На этом уроке}
|
||||||
|
Краткая история (причины возникновения); инструментарий, выбор версии; CLI; структура проекта; документирование;
|
||||||
|
|
||||||
В этом разделе происходит первое знакомство со внутреннем устройством языка Java и фреймворком разработки приложений с его использованием. Рассматривается примитивный инструментарий и базовые возможности платформы для разработки приложений на языке Java. Разбирается структура проекта, а также происходит ознакомление с базовым инструментарием для разработки на Java.
|
В этом разделе происходит первое знакомство со внутреннем устройством языка Java и фреймворком разработки приложений с его использованием. Рассматривается примитивный инструментарий и базовые возможности платформы для разработки приложений на языке Java. Разбирается структура проекта, а также происходит ознакомление с базовым инструментарием для разработки на Java.
|
||||||
|
\begin{itemize}
|
||||||
|
\item \nom{UTF-8}{- (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит») — распространённый стандарт кодирования символов, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4), и обеспечивающий полную обратную совместимость с 7-битной кодировкой ASCII. Кодировка UTF-8 сейчас является доминирующей в веб-пространстве. Она также нашла широкое применение в UNIX-подобных операционных системах.}
|
||||||
|
\item \nom{ОС}{- (операционная система) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений.}
|
||||||
|
\item \nom{IDE}{- (от англ. Integrated Development Environment) – это интегрированная, единая среда разработки, которая используется разработчиками для создания различного программного обеспечения. IDE представляет собой комплекс из нескольких инструментов, а именно: текстового редактора, компилятора или интерпретатора, средств автоматизации сборки и отладчика.}
|
||||||
|
\item \nom{JDK}{- (от англ. Java Development Kit) — комплект разработчика приложений на языке Java, включающий в себя компилятор, стандартные библиотеки классов, примеры, документацию, различные утилиты и исполнительную систему. В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.}
|
||||||
|
\item \nom{JRE}{- (от англ. Java Runtime Environment) — минимальная (без компилятора и других средств разработки) реализация виртуальной машины, необходимая для исполнения Java-приложений. Состоит из виртуальной машины Java Virtual Machine и библиотеки Java-классов.}
|
||||||
|
\item \nom{JVM}{- (от англ. Java Virtual Machine) — виртуальная машина Java, основная часть исполняющей системы Java. Виртуальная машина Java исполняет байт-код, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.}
|
||||||
|
\item \nom{SDK}{- (от англ. software development kit, комплект для разработки программного обеспечения) — это набор инструментов для разработки программного обеспечения в одном устанавливаемом пакете. Они облегчают создание приложений, имея компилятор, отладчик и иногда программную среду. В основном они зависят от комбинации аппаратной платформы компьютера и операционной системы.}
|
||||||
|
\item \nom{JIT}{- (англ. Just-in-Time, компиляция «точно в нужное время»), динамическая компиляция — технология увеличения производительности программных систем, использующих байт-код, путём компиляции байт-кода в машинный код или в другой формат непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения по сравнению с интерпретируемым байт-кодом за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. Технология JIT базируется на двух более ранних идеях, касающихся среды выполнения: компиляции байт-кода и динамической компиляции.}
|
||||||
|
\item \nom{CLI}{- (англ. Command line interface, Интерфейс командной строки) — разновидность текстового интерфейса между человеком и компьютером, в котором инструкции компьютеру даются в основном путём ввода с клавиатуры текстовых строк (команд). Также известен под названиями «консоль» и «терминал».}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\subsection*{Конспект лекции}
|
\subsection*{Конспект лекции}
|
||||||
\subsubsection{Краткая история (причины возникновения)}
|
\subsubsection{Краткая история (причины возникновения)}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Язык создавали для разработки встраиваемых систем, сетевых приложений и прикладного ПО;
|
\item Язык создавали для разработки встраиваемых систем, сетевых приложений и прикладного \nom{ПО}{- программное обеспечение};
|
||||||
\item Популярен из-за скорости исполнения и полного абстрагирования от исполнителя кода;
|
\item Популярен из-за скорости исполнения и полного абстрагирования от исполнителя кода;
|
||||||
\item Часто используется для программирования бэк-энда веб-приложений из-за изначальной нацеленности на сетевые приложения.
|
\item Часто используется для программирования бэк-энда веб-приложений из-за изначальной нацеленности на сетевые приложения.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -108,7 +126,7 @@
|
||||||
\subsubsection{Что нужно скачать, откуда (как выбрать вендора, версии)}
|
\subsubsection{Что нужно скачать, откуда (как выбрать вендора, версии)}
|
||||||
Для разработки понадобится среда разработки (IDE) и инструментарий разработчика (JDK). JDK выпускается несколькими поставщиками, большинство из них бесплатны и полнофункциональны, то есть поддерживают весь функционал языка и платформы.
|
Для разработки понадобится среда разработки (IDE) и инструментарий разработчика (JDK). JDK выпускается несколькими поставщиками, большинство из них бесплатны и полнофункциональны, то есть поддерживают весь функционал языка и платформы.
|
||||||
|
|
||||||
В последнее время, с развитием контейнеризации приложений, часто устанавливают инструментарий в Docker-контейнер и ведут разработку прямо в контейнере, это позволяет не захламлять компьютер разработчика разными версиями инструментария и быстро разворачивать свои приложения в CI или на целевом сервере.
|
В последнее время, с развитием контейнеризации приложений, часто устанавливают инструментарий в Docker-контейнер и ведут разработку прямо в контейнере, это позволяет не захламлять компьютер разработчика разными версиями инструментария и быстро разворачивать свои приложения в \nom{CI}{- (англ. Continious Integration) практика разработки программного обеспечения, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем.} или на целевом сервере.
|
||||||
\begin{frm}
|
\begin{frm}
|
||||||
В общем случае, для разработки на любом языке программирования нужны так называемые SDK (Software Development Kit, англ. - инструментарий разработчика приложений или инструментарий для разработки приложений). Частный случай такого SDK - инструментарий разработчика на языке Java - Java Development Kit.
|
В общем случае, для разработки на любом языке программирования нужны так называемые SDK (Software Development Kit, англ. - инструментарий разработчика приложений или инструментарий для разработки приложений). Частный случай такого SDK - инструментарий разработчика на языке Java - Java Development Kit.
|
||||||
\end{frm}
|
\end{frm}
|
||||||
|
@ -369,14 +387,11 @@ Here is your number: 4.
|
||||||
\item \code{{@code "public"}} вставка кода в описание
|
\item \code{{@code "public"}} вставка кода в описание
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection*{Задания к семинару}
|
\subsection*{Домашнее задание}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Создать проект из трёх классов (основной с точкой входа и два класса в другом пакете), которые вместе должны составлять одну программу, позволяющую производить четыре основных математических действия и осуществлять форматированный вывод результатов пользователю.
|
\item Создать проект из трёх классов (основной с точкой входа и два класса в другом пакете), которые вместе должны составлять одну программу, позволяющую производить четыре основных математических действия и осуществлять форматированный вывод результатов пользователю.
|
||||||
\item Скомпилировать проект, а также создать для этого проекта стандартную веб-страницу с документацией ко всем пакетам.
|
\item Скомпилировать проект, а также создать для этого проекта стандартную веб-страницу с документацией ко всем пакетам.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\subsection*{Сценарий лекции}
|
|
||||||
%\subfile{scenarios/jc-1-c}
|
|
||||||
|
|
||||||
|
|
||||||
\section{Управление проектом: сборщики проектов}
|
\section{Управление проектом: сборщики проектов}
|
||||||
Управление проектом: Jar-файлы; Gradle/Maven: зависимости, выгрузка артефакта, публичные репозитории, свойства проекта, приватные репозитории (хостинг); Bazel
|
Управление проектом: Jar-файлы; Gradle/Maven: зависимости, выгрузка артефакта, публичные репозитории, свойства проекта, приватные репозитории (хостинг); Bazel
|
||||||
|
@ -504,16 +519,14 @@ Socket, ServerSocket, Многопоточность, абстрагирован
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\appendix
|
\appendix
|
||||||
|
\sloppy
|
||||||
|
\addcontentsline{toc}{chapter}{Термины, определения и сокращения}
|
||||||
|
\printnomenclature[20mm]
|
||||||
|
|
||||||
\chapter*{Приложения}
|
\chapter*{Приложения}
|
||||||
\addcontentsline{toc}{chapter}{Приложения}
|
\addcontentsline{toc}{chapter}{Приложения}
|
||||||
\renewcommand{\thesection}{\Asbuk{section}}
|
\renewcommand{\thesection}{\Asbuk{section}}
|
||||||
|
|
||||||
\section{Термины, определения и сокращения}
|
|
||||||
\begin{itemize}
|
|
||||||
\item \textbf{UTF-8} (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит») — распространённый стандарт кодирования символов, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4), и обеспечивающий полную обратную совместимость с 7-битной кодировкой ASCII. Кодировка UTF-8 сейчас является доминирующей в веб-пространстве. Она также нашла широкое применение в UNIX-подобных операционных системах.
|
|
||||||
\item Операционная система, сокр. \textbf{ОС} (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений.
|
|
||||||
\item \textbf{IDE} (Integrated Development Environment) – это интегрированная, единая среда разработки, которая используется разработчиками для создания различного программного обеспечения. IDE представляет собой комплекс из нескольких инструментов, а именно: текстового редактора, компилятора или интерпретатора, средств автоматизации сборки и отладчика.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -45,6 +45,12 @@
|
||||||
\end{frame}
|
\end{frame}
|
||||||
\note{...}
|
\note{...}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{О курсе}
|
||||||
|
и об уркое
|
||||||
|
\end{frame}
|
||||||
|
\note{...}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Краткая история}
|
\frametitle{Краткая история}
|
||||||
\includegraphics[width=12cm]{../pics/jc-01-tiobe.png}
|
\includegraphics[width=12cm]{../pics/jc-01-tiobe.png}
|
||||||
|
@ -292,7 +298,8 @@
|
||||||
\note{...}
|
\note{...}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{title}
|
\frametitle{итоги}
|
||||||
|
что изучили и домашка
|
||||||
\end{frame}
|
\end{frame}
|
||||||
\note{...}
|
\note{...}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,20 @@
|
||||||
\showslide{build/jc-1-b.pdf}
|
\showslide{build/jc-1-b.pdf}
|
||||||
Здравствуйте, меня зовут Иван, я разработчик программного обеспечения в Российских космических системах, начальник группы программистов, автор и преподаватель нескольких курсов в направлении программирования на портале GeekBrains. Пара слов обо мне, почему я нахожусь здесь и планирую Вам что-то рассказывать про язык Java? Для этого придётся вынести за скобки мой опыт работы в цифровой схемотехнике и других языках, в том числе создание бортовой аппаратуры, которая прямо сейчас летает у нас над головами или продолжает доставлять другие полезные грузы в космос. С точки зрения языка Java, обо мне можно сказать, что я являюсь разработчиком нескольких отраслевых информационных систем поддержки единой наземной инфраструктуры российского космического агентства. На моём счету также участие в межотраслевых проектах по созданию единых баз данных космического применения.
|
Здравствуйте, меня зовут Иван, я разработчик программного обеспечения в Российских космических системах, начальник группы программистов, автор и преподаватель нескольких курсов в направлении программирования на портале GeekBrains. Пара слов обо мне, почему я нахожусь здесь и планирую Вам что-то рассказывать про язык Java? Для этого придётся вынести за скобки мой опыт работы в цифровой схемотехнике и других языках, в том числе создание бортовой аппаратуры, которая прямо сейчас летает у нас над головами или продолжает доставлять другие полезные грузы в космос. С точки зрения языка Java, обо мне можно сказать, что я являюсь разработчиком нескольких отраслевых информационных систем поддержки единой наземной инфраструктуры российского космического агентства. На моём счету также участие в межотраслевых проектах по созданию единых баз данных космического применения.
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------------------------
|
||||||
|
\showslide{build/jc-1-b.pdf}
|
||||||
|
Данный курс, первый из специализации, направлен на первое знакомство со внутренним устройством языка и фреймворком разработки приложений с его использованием. Курс демонстрирует механизмы работы знакомых студенту концепций на примере языка Java. В рамках курса будут рассмотрено устройство языка Java и сопутствующих технологических решений, платформы для создания и запуска приложений на JVM-языках (Groovy, Kotlin, Scala, и др). Будут рассмотрены некоторые базовые пакеты ввода-вывода, позволяющие манипулировать данными за пределами программы. В результате прохождения курса у вас, слушатели, должно появиться знание принципов работы платформы Java, понимание того, как язык выражает принципы программирования, его объектную природу. Вы научитесь писать базовые терминальные приложения и утилиты, решать задачи (в том числе алгоритмические, не требующие подключения сложных библиотек) с использованием языка Java и с учётом его особенностей.
|
||||||
|
|
||||||
|
На этом уроке мы поговорим о
|
||||||
|
\begin{itemize}
|
||||||
|
\item краткой истории и причинах возникновения язка
|
||||||
|
\item что нужно скачать, откуда и как это всё выбирать
|
||||||
|
\item из чего всё состоит
|
||||||
|
\item изучим простую структуру проекта и способы его запуска
|
||||||
|
\item коротко рассмотрим утилиту джавадок
|
||||||
|
\end{itemize}
|
||||||
|
Рассмотрим примитивный инструментарий и базовые возможности платформы для разработки приложений на языке Java.
|
||||||
|
|
||||||
% -----------------------------------------------------------------------------------
|
% -----------------------------------------------------------------------------------
|
||||||
\showslide{build/jc-1-b.pdf}
|
\showslide{build/jc-1-b.pdf}
|
||||||
Итак язык Java. Согласно википедии, Java — строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems. Разработка ведётся сообществом; язык и основные реализующие его технологии распространяются по лицензии GPL.
|
Итак язык Java. Согласно википедии, Java — строго типизированный объектно-ориентированный язык программирования общего назначения, разработанный компанией Sun Microsystems. Разработка ведётся сообществом; язык и основные реализующие его технологии распространяются по лицензии GPL.
|
||||||
|
@ -151,4 +165,14 @@ javadoc -locale ru_RU -encoding utf-8 -docencoding cp1251 \
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
Поскольку я сейчас не с виндоусом, то такие настройки наоборот, сломают отображение.
|
Поскольку я сейчас не с виндоусом, то такие настройки наоборот, сломают отображение.
|
||||||
|
|
||||||
|
% -----------------------------------------------------------------------------------
|
||||||
|
\showslide{build/jc-1-b.pdf}
|
||||||
|
На этом уроке мы рассмотрели историю и причины создания языка, его окружение и структуру проекта, узнали, что скрывают в себе такие аббревиатуры как JDK JRE JVM SDK JIT CLI. Рассмотрели базовое применение утилит java, javac и javadoc. В качестве домашнего задания попробуйте
|
||||||
|
\begin{itemize}
|
||||||
|
\item Создать проект из трёх классов (основной с точкой входа и два класса в другом пакете), которые вместе должны составлять одну программу, позволяющую производить четыре основных математических действия и осуществлять форматированный вывод результатов пользователю.
|
||||||
|
\item Скомпилировать проект, а также создать для этого проекта стандартную веб-страницу с документацией ко всем пакетам.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
На следующей лекции мы поговорим о том как осуществлять управление более сложными проектами: Jar-файлы; сборщики Gradle/Maven; чтоб такое репозитории и как ими пользоваться.
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
Loading…
Reference in New Issue