This commit is contained in:
parent
ab46572c61
commit
83f1e16f77
26
dev/cryptography/Скачать сертификат сайта.md
Normal file
26
dev/cryptography/Скачать сертификат сайта.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date:
|
||||||
|
- - 2024-01-10
|
||||||
|
zero-link: []
|
||||||
|
parents:
|
||||||
|
---
|
||||||
|
```shell
|
||||||
|
openssl s_client -showcerts -connect www.example.com:443
|
||||||
|
```
|
||||||
|
|
||||||
|
Эта команда выведет сертификат в консоль. Далее нужно скопировать все, что между `-----BEGIN CERTIFICATE-----` и `-----END CERTIFICATE-----` включая эти строки.
|
||||||
|
|
||||||
|
Скопированные данные вставить в текстовый документ и сохранить с расширением `*.cer`.
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Криптография|00 Криптография]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Автор**::
|
||||||
|
**Создана**:: [[2024-01-10]]
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
@ -3,42 +3,45 @@ aliases:
|
|||||||
tags:
|
tags:
|
||||||
- maturity/🌱
|
- maturity/🌱
|
||||||
date: 2024-10-19
|
date: 2024-10-19
|
||||||
zero-link:
|
|
||||||
parents:
|
|
||||||
linked:
|
|
||||||
---
|
---
|
||||||
**Code block (блок кода)**. Это фрагмент программы, заключенный между фигурными скобками `{}`. Он может быть частью метода, цикла, условия или других конструкций. В блоке кода содержатся операторы (statements), которые выполняются в порядке их написания.
|
#### Code block (блок кода)
|
||||||
|
Это фрагмент программы, заключенный между фигурными скобками `{}`. Он может быть частью метода, цикла, условия или других конструкций. В блоке кода содержатся операторы (statements), которые выполняются в порядке их написания.
|
||||||
|
|
||||||
![[../../meta/files/images/Pasted image 20241019092032.png]]
|
![[../../meta/files/images/Pasted image 20241019092032.png]]
|
||||||
|
#### Statement (оператор, предложение, инструкция)
|
||||||
**Statement (оператор, предложение, инструкция)**. Выполняет какое-то действие, но не возвращает значения. Оператор заканчивается точкой с запятой `;`, однако сам символ `;` не является частью выражения (expression).
|
Выполняет какое-то действие, но не возвращает значения. Оператор заканчивается точкой с запятой `;`, однако сам символ `;` не является частью выражения (expression).
|
||||||
|
|
||||||
![[../../meta/files/images/Pasted image 20241019092300.png]]
|
![[../../meta/files/images/Pasted image 20241019092300.png]]
|
||||||
|
#### Expression (выражение)
|
||||||
**Expression (выражение)**
|
Выражение — это часть кода, которая вычисляет **значение**. Оно может включать переменные, константы, операторы и вызовы методов.
|
||||||
Выражение — это часть кода, которая вычисляет значение. Оно может включать переменные, константы, операторы и вызовы методов.
|
|
||||||
|
|
||||||
Выражение может быть использовано как часть оператора или в других контекстах, например, внутри условий.
|
Выражение может быть использовано как часть оператора или в других контекстах, например, внутри условий.
|
||||||
|
#### Значение
|
||||||
|
Это результат вычисления выражения (исключая выражения с типом `void`). Значения могут быть сохранены в переменные, переданы в методы в качестве **аргументов**, а также приняты методами в виде **параметров**. При передаче значения в метод оно копируется - [[Передача значений в метод в Java]].
|
||||||
|
|
||||||
**Имя метода**. Имя метода идентифицирует конкретную функцию или действие, которое выполняет метод.
|
Важно отметить, что само значение **нельзя изменить**, однако переменной, которая хранит это значение, можно присвоить новое значение.
|
||||||
|
#### Имя метода
|
||||||
**Аргументы метода.** В Java метод всегда имеет список аргументов, даже если они отсутствуют. В таком случае используются пустые скобки `()`.
|
Имя метода идентифицирует конкретную функцию или действие, которое выполняет метод.
|
||||||
|
#### Аргументы метода
|
||||||
|
В Java метод всегда имеет список аргументов, даже если они отсутствуют. В таком случае используются пустые скобки `()`.
|
||||||
|
|
||||||
![[../../meta/files/images/Pasted image 20241019093016.png]]
|
![[../../meta/files/images/Pasted image 20241019093016.png]]
|
||||||
|
#### Параметры метода
|
||||||
**Параметры метода.** Параметры метода — это переменные, указанные в скобках при его объявлении. Эти параметры получают значения при вызове метода.
|
Параметры метода — это переменные, указанные в скобках при его объявлении. Эти параметры получают значения при вызове метода.
|
||||||
|
|
||||||
Есть есть для того, кто вызывает метод передаваемые значения называются аргументами, а уже в самом методе аргументы называются параметрами.
|
Есть есть для того, кто вызывает метод передаваемые значения называются аргументами, а уже в самом методе аргументы называются параметрами.
|
||||||
|
#### Сигнатура метода
|
||||||
**Сигнатура метода.** Сигнатура метода включает его имя и список аргументов, но не возвращаемый тип. Это ключевой элемент для различения методов с одинаковыми именами, но разными параметрами.
|
Сигнатура метода включает его имя и список аргументов, но не возвращаемый тип. Это ключевой элемент для различения методов с одинаковыми именами, но разными параметрами.
|
||||||
|
#### Квалификатор
|
||||||
**Квалификатор.** Это часть выражения слева от точки, указывающая на объект или класс, через который вызывается метод или поле. Квалификатор может быть необязательным и иногда отсутствовать.
|
Это часть выражения слева от точки, указывающая на объект или класс, через который вызывается метод или поле. Квалификатор может быть необязательным и иногда отсутствовать.
|
||||||
|
|
||||||
![[../../meta/files/images/Pasted image 20241019092501.png]]
|
![[../../meta/files/images/Pasted image 20241019092501.png]]
|
||||||
|
|
||||||
Например, в выражении `System.out.println()` квалификатором для метода `println` является `out`, а для `out` — `System`.
|
Например, в выражении `System.out.println()` квалификатором для метода `println` является `out`, а для `out` — `System`.
|
||||||
|
#### Переменная
|
||||||
**Declaration (объявление)**. Это процесс создания переменной, метода или другой сущности в программе с указанием её типа и имени. При объявлении переменной указывается её тип (например, `int`, `String`) и имя, но ей может не присваиваться значение сразу.
|
это именованная область памяти, которая используется для хранения данных. Переменная может содержать различные типы данных, такие как числа, строки или объекты. Она позволяет программам запоминать значения и использовать их в дальнейшем.
|
||||||
|
#### Declaration (объявление)
|
||||||
|
Это процесс создания переменной, метода или другой сущности в программе с указанием её типа и имени. При объявлении переменной указывается её тип (например, `int`, `String`) и имя, но ей может не присваиваться значение сразу.
|
||||||
|
|
||||||
Объявление сообщает компилятору, что данная переменная или метод существует и будет использоваться в дальнейшем. Объявление может сопровождаться **инициализацией** — присвоением переменной значения при её создании.
|
Объявление сообщает компилятору, что данная переменная или метод существует и будет использоваться в дальнейшем. Объявление может сопровождаться **инициализацией** — присвоением переменной значения при её создании.
|
||||||
|
|
||||||
@ -53,6 +56,10 @@ void myMethod() {
|
|||||||
// тело метода
|
// тело метода
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
#### Область видимости
|
||||||
|
это часть программы, в которой переменная доступна для использования. Переменные видимы и могут быть использованы только в пределах той области, где они были объявлены.
|
||||||
|
#### Локальная переменная
|
||||||
|
это переменная, объявленная внутри метода или блока кода. Она существует только в пределах этого метода или блока и недоступна за его пределами. После завершения работы метода или блока локальная переменная удаляется из памяти.
|
||||||
|
|
||||||
***
|
***
|
||||||
## Мета информация
|
## Мета информация
|
||||||
|
36
dev/java/Куча.md
Normal file
36
dev/java/Куча.md
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
- куче
|
||||||
|
- кучей
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date: 2024-10-19
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
Куча — это область памяти, используемая для динамического распределения во время выполнения программы. В отличие от стека, ==данные в куче могут существовать дольше, чем отдельные вызовы функций, а объёмы памяти, выделяемой в куче, обычно гораздо больше, чем в стеке.==
|
||||||
|
|
||||||
|
Куча идеально подходит для хранения данных, которые должны существовать дольше времени выполнения функции, или для работы с большими объёмами данных. Однако работа с кучей требует тщательного управления: ==если объекты не удаляются, когда они больше не нужны, это может привести к утечке памяти==, что, в свою очередь, может вызвать исчерпание доступной памяти.
|
||||||
|
|
||||||
|
Куча в Java — это область памяти, где создаются все объекты. Когда вы создаёте объект с помощью оператора `new`, он размещается в куче. Основное отличие стека и кучи в Java от их общего представления связано с автоматическим управлением памятью. В Java не нужно явно освобождать память в куче, так как этим занимается [[gc/Garbage Collector|сборщик мусора]].
|
||||||
|
|
||||||
|
Для наглядности представим стек и кучу. Серые объекты потеряли свою связь со стеком, и их нужно удалить, чтобы освободить память для новых объектов.
|
||||||
|
|
||||||
|
![[../../meta/files/images/Pasted image 20241019192034.png]]
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Объекты могут содержать методы, а методы — локальные переменные. Эти локальные переменные хранятся в стеке потока, даже если сам объект, которому принадлежат методы, находится в куче.
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||||
|
**Родитель**:: [[../../../../knowledge/dev/java/Устройство Java|Устройство Java]]
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-19]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
48
dev/java/Передача значений в метод в Java.md
Normal file
48
dev/java/Передача значений в метод в Java.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date: 2024-10-19
|
||||||
|
---
|
||||||
|
Важно понимать, как происходит передача данных в методы. При передаче [[Примитивный тип|примитивных типов]] в метод, копируется **значение** переменной. Это значит, что ==любые изменения, которые вы делаете с переменной внутри метода, не влияют на оригинальную переменную.==
|
||||||
|
|
||||||
|
Однако, при передаче [[Ссылочный тип|ссылочных типов]] копируется значение ссылки на объект, а не сам объект. Это значит, что ==если изменить содержимое объекта через эту ссылку, изменения отразятся и на оригинальном объекте==.
|
||||||
|
|
||||||
|
Это часто становится причиной ошибок у новичков, поэтому представьте, что [[Примитивный тип|примитивные типы]] — это как копирование листа бумаги: вы даете кому-то копию, и он может писать на ней, но оригинал останется нетронутым. А [[Ссылочный тип|ссылочные типы]] — это как передача адреса на дом: если кто-то приедет по адресу и изменит что-то в доме, оригинальный дом изменится, даже если у каждого будет только этот “адрес”.
|
||||||
|
|
||||||
|
```java
|
||||||
|
public class Example {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int primitive = 5;
|
||||||
|
modifyPrimitive(primitive);
|
||||||
|
System.out.println("После изменения примитива: " + primitive); // Выведет 5
|
||||||
|
|
||||||
|
int[] reference = {1, 2, 3};
|
||||||
|
modifyReference(reference);
|
||||||
|
System.out.println("После изменения ссылочного типа: " + reference[0]); // Выведет 100
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void modifyPrimitive(int number) {
|
||||||
|
number = 10; // Изменение копии примитива, оригинал не затронут
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void modifyReference(int[] array) {
|
||||||
|
array[0] = 100; // Изменение объекта по ссылке, оригинальный массив изменится
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
- В примере с примитивным типом (int), значение переменной primitive не изменяется, потому что в метод передаётся копия значения.
|
||||||
|
- В примере с массивом (ссылочный тип), изменяется оригинальный объект, так как в метод передается ссылка на массив, и мы изменяем содержимое этого объекта через ссылку.
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-19]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
28
dev/java/Примитивный тип.md
Normal file
28
dev/java/Примитивный тип.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
- примитивных типов
|
||||||
|
- примитивные типы
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date: 2024-10-19
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
- Логические: boolean - true, false
|
||||||
|
- Целочисленные: byte, short, int, long - 42, -1
|
||||||
|
- Дробные: float, double - 3.141, NaN
|
||||||
|
- Символьные (UTF-16): CHAR
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-19]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
- [[Ссылочный тип|Ссылочный тип]]
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
32
dev/java/Ссылочный тип.md
Normal file
32
dev/java/Ссылочный тип.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
- ссылочных типов
|
||||||
|
- ссылочные типы
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date: 2024-10-19
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
Ссылочные типы позволяют работать с пользовательскими типами данных, такими как объекты классов. Однако, важно понимать, что ==переменная ссылочного типа не хранит сами данные объекта. Вместо этого переменная хранит **ссылку** на объект==, который находится в области памяти, называемой [[Куча|кучей]] (heap).
|
||||||
|
|
||||||
|
Когда вы объявляете переменную ссылочного типа, например:
|
||||||
|
```java
|
||||||
|
MyClass obj = new MyClass();
|
||||||
|
```
|
||||||
|
|
||||||
|
Переменная `obj` ==не содержит сам объект класса `MyClass`, а лишь хранит адрес этого объекта в памяти==. То есть, в самой переменной хранится ссылка на объект, а не его данные. Все операции с такой переменной выполняются через эту ссылку.
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-19]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
- [[Примитивный тип|Примитивный тип]]
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
34
dev/snippet/Добавление сертификата в JVM.md
Normal file
34
dev/snippet/Добавление сертификата в JVM.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date:
|
||||||
|
- - 2024-01-10
|
||||||
|
---
|
||||||
|
Первым делом необходимо [скачать сертификат сайта](../cryptography/Скачать%20сертификат%20сайта.md).
|
||||||
|
|
||||||
|
Теперь используя `keytool` добавим сертификат в JVM.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
keytool -importcert -file cert_name.cer -keystore keystore_path -storepass "changeit" -noprompt -alias "alias_cert"
|
||||||
|
```
|
||||||
|
|
||||||
|
Где
|
||||||
|
- `cert_name.cer` - имя сертификата
|
||||||
|
- `keystore_path` - путь до хранилища сертификатов в JVM
|
||||||
|
- Пример: `jdk_path/lib/security/cacerts`
|
||||||
|
- `alias_cert` - алиас для сертификата
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Возможно потребуется выход из системы, чтобы применились изменения.
|
||||||
|
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Автор**::
|
||||||
|
**Создана**:: [[2024-01-10]]
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
34
dev/Не используйте var в Java.md
Normal file
34
dev/Не используйте var в Java.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
- content/opinion
|
||||||
|
date: 2024-10-20
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
Использование var, введенное в [[../../../knowledge/dev/java/Java 10|Java 10]], может на первый взгляд показаться удобным инструментом для сокращения объема кода. Однако есть и проблемы:
|
||||||
|
|
||||||
|
Одним из основных недостатков использования `var` является то, что он скрывает тип переменной, что приводит к пониженной [[Читаемый код|читаемости кода]], особенно на этапе ревью. В коде, который разработчик может читать через несколько месяцев или передать другим коллегам, ==отсутствие явного типа затрудняет понимание происходящего==.
|
||||||
|
|
||||||
|
Например, следующий код не даёт никакой информации о том, что такое `result` и что возвращает метод `process()`.
|
||||||
|
|
||||||
|
```java
|
||||||
|
var result = process();
|
||||||
|
```
|
||||||
|
|
||||||
|
Это может привести к путанице, особенно если метод возвращает обобщённый тип или коллекцию. Без явного указания типов разработчикам придётся тратить дополнительное время на выяснение, что происходит.
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../meta/zero/00 Java разработка|00 Java разработка]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-20]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
37
dev/Читаемый код.md
Normal file
37
dev/Читаемый код.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
- читаемость кода
|
||||||
|
- читаемости кода
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
- content/opinion
|
||||||
|
date: 2024-10-20
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
Код — это не только набор инструкций для машины, но и средство общения между разработчиками. Большую часть времени программисты проводят, читая чужой код, поэтому ==каждый фрагмент кода должен быть понятен не только автору, но и другим членам команды==. Удобство чтения и понимания кода коллегами — один из ключевых факторов успешной [[../productivity/Эффективная команда разработки|командной работы]]. Это требует от разработчиков внимательного подхода к написанию кода: важно писать не только для себя, но и для своих коллег.
|
||||||
|
|
||||||
|
Если ваш код понятен только вам и не может быть поддержан другими, это сигнал того, что вы недостаточно эффективный разработчик.
|
||||||
|
|
||||||
|
**Рекомендации**:
|
||||||
|
- **Пишите просто и ясно**. Используйте понятные и распространённые конструкции языка, которые легко читаются и понимаются коллегами.
|
||||||
|
- **Не усложняйте**. Не стремитесь использовать сложные или малоизвестные возможности языка, если они не приносят очевидной пользы. Простота всегда предпочтительнее.
|
||||||
|
- **Комментируйте важные моменты**. Там, где логика может быть неочевидной, добавьте комментарии, которые объясняют цель или обоснование ваших решений.
|
||||||
|
- **Следуйте соглашениям по стилю**. Соблюдайте единые стандарты кодирования, принятые в команде, будь то соглашения о стиле, именовании или форматировании.
|
||||||
|
- **Используйте осмысленные имена**. Переменные, функции и классы должны иметь названия, которые чётко отражают их назначение. Избегайте сокращений, если они могут быть непонятны другим.
|
||||||
|
- **Проводите регулярные ревью кода**. Обратная связь от коллег помогает выявить возможные сложности в понимании кода и улучшить его качество.
|
||||||
|
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../meta/zero/00 Разработка|00 Разработка]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-20]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
BIN
meta/files/images/Pasted image 20241019192034.png
Normal file
BIN
meta/files/images/Pasted image 20241019192034.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 731 KiB |
BIN
meta/files/images/comp/Pasted image 20241019192034.png
Normal file
BIN
meta/files/images/comp/Pasted image 20241019192034.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 252 KiB |
@ -0,0 +1 @@
|
|||||||
|
a4349e620be07c2424843212bb5f573d
|
BIN
meta/files/images/webp/Pasted image 20241019192034.webp
Normal file
BIN
meta/files/images/webp/Pasted image 20241019192034.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 154 KiB |
@ -0,0 +1 @@
|
|||||||
|
a4349e620be07c2424843212bb5f573d
|
@ -8,6 +8,7 @@ title: Java разработка
|
|||||||
В коммуникациях и обучении всегда важно устранить или уменьшить [[../../../../_inbox/Семантический разрыв|семантический разрыв]] между людьми, поэтому рекомендую переодически обращаться к [[../../dev/java/Голосарий Java|голосарию Java]], чтобы использовать одни и те же термины и определения.
|
В коммуникациях и обучении всегда важно устранить или уменьшить [[../../../../_inbox/Семантический разрыв|семантический разрыв]] между людьми, поэтому рекомендую переодически обращаться к [[../../dev/java/Голосарий Java|голосарию Java]], чтобы использовать одни и те же термины и определения.
|
||||||
|
|
||||||
Основные узлы:
|
Основные узлы:
|
||||||
|
|
||||||
- [Устройство Java](Устройство%20Java.md)
|
- [Устройство Java](Устройство%20Java.md)
|
||||||
- [[../../dev/java/Многопоточность в Java|Многопоточность в Java]]
|
- [[../../dev/java/Многопоточность в Java|Многопоточность в Java]]
|
||||||
- Системы сборки
|
- Системы сборки
|
||||||
@ -20,6 +21,13 @@ title: Java разработка
|
|||||||
- [Hibernate](00%20Hibernate.md)
|
- [Hibernate](00%20Hibernate.md)
|
||||||
- [[../../../../knowledge/dev/java/other/Jackson|Jackson]]
|
- [[../../../../knowledge/dev/java/other/Jackson|Jackson]]
|
||||||
- [Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
- [Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
||||||
|
|
||||||
|
Обучение:
|
||||||
|
- [[../../dev/java/Голосарий Java|Голосарий Java]]
|
||||||
|
- Типы
|
||||||
|
- [[../../dev/java/Примитивный тип|Примитивный тип]]
|
||||||
|
- [[../../dev/java/Ссылочный тип|Ссылочный тип]]
|
||||||
|
- [[../../dev/java/Передача значений в метод в Java|Передача значений в метод в Java]]
|
||||||
## Версии Java
|
## Версии Java
|
||||||
- [[Java 1]]
|
- [[Java 1]]
|
||||||
- [Java 7](Java%207.md)
|
- [Java 7](Java%207.md)
|
||||||
@ -50,7 +58,7 @@ title: Java разработка
|
|||||||
- [Не используйте @Data](../../dev/java/Не%20используйте%20@Data.md)
|
- [Не используйте @Data](../../dev/java/Не%20используйте%20@Data.md)
|
||||||
- [Возвращайте пустую коллекцию вместо null](../../dev/java/Возвращайте%20пустую%20коллекцию%20вместо%20null.md)
|
- [Возвращайте пустую коллекцию вместо null](../../dev/java/Возвращайте%20пустую%20коллекцию%20вместо%20null.md)
|
||||||
- [[../../dev/java/Границы применимости Tuple и Pair в разработке|Границы применимости Tuple и Pair в разработке]]
|
- [[../../dev/java/Границы применимости Tuple и Pair в разработке|Границы применимости Tuple и Pair в разработке]]
|
||||||
|
- [[../../dev/Не используйте var в Java|Не используйте var в Java]]
|
||||||
## Дополнительно
|
## Дополнительно
|
||||||
- [Нативные сборки в Java](../../dev/java/Нативные%20сборки%20в%20Java.md)
|
- [Нативные сборки в Java](../../dev/java/Нативные%20сборки%20в%20Java.md)
|
||||||
|
|
||||||
|
@ -6,17 +6,24 @@ zero-link:
|
|||||||
aliases:
|
aliases:
|
||||||
- Скрипты на Java
|
- Скрипты на Java
|
||||||
---
|
---
|
||||||
- [Парсинг URL c помощью регулярки](../../dev/snippet/Парсинг%20URL%20c%20помощью%20регулярки.md)
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Область, this.file.link) or contains(zero-link, this.file.link) -->
|
||||||
- [Сериализация и Десериализация даты в Jackson](../../dev/snippet/Сериализация%20и%20Десериализация%20даты%20в%20Jackson.md)
|
<!-- SerializedQuery: LIST FROM [[]] WHERE contains(Область, this.file.link) or contains(zero-link, this.file.link) -->
|
||||||
- [Создание linux сервиса для Java приложения](../../dev/snippet/Создание%20linux%20сервиса%20для%20Java%20приложения.md)
|
- [[Реализация GZIP в Java]]
|
||||||
- [Игнорирование ошибок сертификата OkHttp3](../../dev/snippet/Игнорирование%20ошибок%20сертификата%20OkHttp3.md)
|
- [[MD5]]
|
||||||
- [Mock конфигурация Oauth2 для SpringBoot](../../dev/snippet/Mock%20конфигурация%20Oauth2%20для%20SpringBoot.md)
|
- [[SHA-256]]
|
||||||
- [Несколько подключений к базе H2](../../dev/snippet/Несколько%20подключений%20к%20базе%20H2.md)
|
- [[Логирование SQL в Hibernate]]
|
||||||
- [Дебаг приложения на этапе компиляции IntelliJ IDEA](../../dev/snippet/Дебаг%20приложения%20на%20этапе%20компиляции%20IntelliJ%20IDEA.md)
|
- [[StartupEvent в Quarkus]]
|
||||||
- [Логирование SQL в Hibernate](../../dev/java/hibernate/Логирование%20SQL%20в%20Hibernate.md)
|
- [[Бинарный поиск на Java]]
|
||||||
- [Бинарный поиск на Java](../../dev/java/Бинарный%20поиск%20на%20Java.md)
|
- [[Mock конфигурация Oauth2 для SpringBoot]]
|
||||||
- [[../../dev/snippet/Проблема с Hibernate Reactive в Telegram SDK для Java|Проблема с Hibernate Reactive в Telegram SDK для Java]]
|
- [[Дебаг приложения на этапе компиляции IntelliJ IDEA]]
|
||||||
- [[../../dev/snippet/Реализация SHA-256 на Java|Реализация SHA-256 на Java]]
|
- [[Игнорирование ошибок сертификата OkHttp3]]
|
||||||
- [[../../../../_inbox/Реализация GZIP в Java|Реализация GZIP в Java]]
|
- [[Несколько подключений к базе H2]]
|
||||||
- [[../../dev/snippet/Реализация Base64 на Java|Реализация Base64 на Java]]
|
- [[Парсинг URL c помощью регулярки]]
|
||||||
- [[../../dev/snippet/Преобразование Json из коллекции в Java объект при помощи Jackson|Преобразование Json из коллекции в Java объект при помощи Jackson]]
|
- [[Преобразование Json из коллекции в Java объект при помощи Jackson]]
|
||||||
|
- [[Проблема с Hibernate Reactive в Telegram SDK для Java]]
|
||||||
|
- [[Реализация Base64 на Java]]
|
||||||
|
- [[Реализация SHA-256 на Java]]
|
||||||
|
- [[Сериализация и Десериализация даты в Jackson]]
|
||||||
|
- [[Создание linux сервиса для Java приложения]]
|
||||||
|
- [[Добавление сертификата в JVM]]
|
||||||
|
<!-- SerializedQuery END -->
|
||||||
|
32
productivity/Эффективная команда разработки.md
Normal file
32
productivity/Эффективная команда разработки.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
- maturity/🌱
|
||||||
|
date: 2024-10-20
|
||||||
|
zero-link:
|
||||||
|
parents:
|
||||||
|
linked:
|
||||||
|
---
|
||||||
|
В программной разработке часто упускается из виду один важный аспект: это командная работа. Написание кода — не просто индивидуальная деятельность, а коллективный процесс, требующий эффективного взаимодействия между всеми членами команды. В больших проектах успех невозможен, если каждый действует исключительно самостоятельно, не оглядываясь на коллег.
|
||||||
|
|
||||||
|
Вот несколько ключевых принципов, которые помогут разработчикам осознать важность командного подхода и находить баланс между личной эффективностью и потребностями команды.
|
||||||
|
## Совместная работа
|
||||||
|
Результат работы — это общая ответственность. В одиночку создать успешный продукт сложно, так как успех зависит от слаженности всех элементов системы. Каждый участник команды должен осознавать, что его работа — это не просто код, а часть общей задачи. ==Успех проекта напрямую зависит от качества взаимодействия, координации и взаимопонимания между участниками.==
|
||||||
|
## Читаемость кода
|
||||||
|
- [[../dev/Читаемый код|Читаемый код]]
|
||||||
|
## Время на взаимодействие — залог успеха
|
||||||
|
Часто можно встретить мнение, что разработчики должны тратить 100% своего времени на написание кода. Однако успех больших проектов зависит от многих аспектов: ревью кода, обсуждения архитектурных решений, согласование подходов и документация. Эти процессы являются неотъемлемой частью командной работы и требуют выделения времени. Умение разработчика эффективно коммуницировать и обсуждать решения с коллегами столь же важно, как и умение писать код.
|
||||||
|
|
||||||
|
***
|
||||||
|
## Мета информация
|
||||||
|
**Область**:: [[../meta/zero/00 Командная продуктивность|00 Командная продуктивность]]
|
||||||
|
**Родитель**::
|
||||||
|
**Источник**::
|
||||||
|
**Создана**:: [[2024-10-20]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
Loading…
Reference in New Issue
Block a user