Бесплатный курс по Kotlin и Android
Курс длится 10 часов. Конечно, выучить всё за такое короткое время невозможно, но вот познакомиться с основами — можно. На курсе вы изучите:
— основы Kotlin,
— жизненный цикл Android-приложений,
— эффективное использование Android Studio и Android SDK,
—Material design, анимации и многое другое.
Скачать курс можно по ссылке:
https://www.coursesbag.com/android-app-development-in-10-hours-bootcamp-android-13/
#android
@javatg
Курс длится 10 часов. Конечно, выучить всё за такое короткое время невозможно, но вот познакомиться с основами — можно. На курсе вы изучите:
— основы Kotlin,
— жизненный цикл Android-приложений,
— эффективное использование Android Studio и Android SDK,
—Material design, анимации и многое другое.
Скачать курс можно по ссылке:
https://www.coursesbag.com/android-app-development-in-10-hours-bootcamp-android-13/
#android
@javatg
Даны три строки кода:
String s = null;
s = "Hellow";
s = null;
Создали переменную s типа String, которая ни на что не ссылается (хранит пустую ссылку null).
Создаем объект-строку Hellow, переменная s хранит ссылку на объект.
Удаляем из переменной s ссылку на объект.
Вопрос: что происходит со строкой Hellow после удаления ссылки на неё? Остаётся ли она в памяти или удаляется вместе со ссылкой?
В данном сценарии строковый литерал "Hellow" определён в момент компиляции и соответственно будет размещён в пуле строк (string pool).
В старых версиях (Java 6 и раньше) пул строк являлся частью постоянной области памяти PermGen, которая не относилась к основной куче (Heap) и имела постоянный размер, который нельзя было увеличить.
Сборка мусора запускается только при условии, что существующая память исчерпана. Как правило, вероятность такого сценария для постоянной области памяти пренебрежимо мала -- нужно было бы или загружать множество классов или постоянно добавлять в пул новые строки при помощи String::intern. В худшем случае можно было бы добиться и OutOfMemoryError.
Начиная с Java 7 и выше пул строк размещается в куче (heap), для которой сборка мусора вызывается чаще (по сравнению с PermGen), при этом неиспользуемые строки удаляются из пула, освобождая память.
При необходимости размер кучи может увеличиваться, в том числе и превышая объём доступной физической памяти.
#junior #java
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Java Jobs
Java программист Senior/Lead
Формат: классный офис в Москве/гибрид/удаленно;
Доход: 300-400К руб.;
Форма оформления: по ТК/ИП.
О нас: Мы занимаемся разработкой data-платформы, в рамках которой развиваются различные data-продукты:
• рекомендательные системы;
• сервисы аналитики и визуализации данных;
• ML-модели;
• иные решения для решения бизнес-задач.
Наша команда это 25 инженеров с сильнейшими компетенциями в ML, аналитике и работе с данными, и сейчас мы ищем классных ребят для дальнейшего роста.
У нас нет долгих согласований и бюрократии. Мы стремимся к быстрому внедрению в production, с последующей работой над улучшениями.
Что нужно будет делать:
• Разработка высоконагруженных приложений в рамках Платформы данных;
• Участие в проектировании сервисов и компонентов Платофрмы данных;
• Обеспечение высокого качества кода и улучшение внутренних процессов инженерии ПО;
• Участие в оценке и декомпозиции задач вместе с Front-End, DevOps, Data и ML инженерами.
Будет классно, если у тебя:
• Опыт построения высоконагруженных бэкенд сервисов (на Java, от 3х лет) в крупных продуктовых компаниях;
• Опыт работы с реляционными базами данных (желательно, PostgreSQL);
• Понимание архитектурных стилей API для клиент-серверного и межсерверного взаимодействия (GraphQL, REST, gRPC)
• Хорошее знание Spring / Spring Boot (Core, Data, JPA и т.д.);
• Понимание базовых алгоритмов и структур данных;
• Знание гибких методологий разработки программного обеспечения.
Ты покоришь наши сердца и разум, если у тебя:
• Опыт контейнеризации Java-приложений (Docker, Kubernetes);
• Опыт работы с публичными облаками, особенно, с Яндекс.Облаком;
• Опыт работы с NoSQL базами данных;
• Понимание особенностей работы с аналитическими базами данных, например, с ClickHouse;
• Опыт интеграции моделей машинного обучения в Java-сервисы;
• Опыт работы с распределенными очередями и брокерами, например, Kafka или RabbitMQ.
Мы предлагаем:
• Работу в аккредитованной IT компании с сильнейшей командой в разных масштабных проектах;
• Гибридный график работы 5/2, с 10:00 - 19:00;
• ДМС со стоматологией;
• В современном офисе в стиле Лофт с капсулой медитации, спортзалом, большой современной библиотекой и кабинетом для записи подкастов и треков;
• Комфортную кухню с холодильником, кофемашиной, тостером, микроволновкой и Magic Bullet;
• Холодильник с напитками (соки, энергетики, вода и т.д.) и едой (сыры, колбасы, сырки и м.ч.);
• Каждую пятницу совместные обеды с разными кухнями мира за счет компании.
За подробностями пиши: tg @naikava
@Java_workit - вакансии для java разработчиков
Формат: классный офис в Москве/гибрид/удаленно;
Доход: 300-400К руб.;
Форма оформления: по ТК/ИП.
О нас: Мы занимаемся разработкой data-платформы, в рамках которой развиваются различные data-продукты:
• рекомендательные системы;
• сервисы аналитики и визуализации данных;
• ML-модели;
• иные решения для решения бизнес-задач.
Наша команда это 25 инженеров с сильнейшими компетенциями в ML, аналитике и работе с данными, и сейчас мы ищем классных ребят для дальнейшего роста.
У нас нет долгих согласований и бюрократии. Мы стремимся к быстрому внедрению в production, с последующей работой над улучшениями.
Что нужно будет делать:
• Разработка высоконагруженных приложений в рамках Платформы данных;
• Участие в проектировании сервисов и компонентов Платофрмы данных;
• Обеспечение высокого качества кода и улучшение внутренних процессов инженерии ПО;
• Участие в оценке и декомпозиции задач вместе с Front-End, DevOps, Data и ML инженерами.
Будет классно, если у тебя:
• Опыт построения высоконагруженных бэкенд сервисов (на Java, от 3х лет) в крупных продуктовых компаниях;
• Опыт работы с реляционными базами данных (желательно, PostgreSQL);
• Понимание архитектурных стилей API для клиент-серверного и межсерверного взаимодействия (GraphQL, REST, gRPC)
• Хорошее знание Spring / Spring Boot (Core, Data, JPA и т.д.);
• Понимание базовых алгоритмов и структур данных;
• Знание гибких методологий разработки программного обеспечения.
Ты покоришь наши сердца и разум, если у тебя:
• Опыт контейнеризации Java-приложений (Docker, Kubernetes);
• Опыт работы с публичными облаками, особенно, с Яндекс.Облаком;
• Опыт работы с NoSQL базами данных;
• Понимание особенностей работы с аналитическими базами данных, например, с ClickHouse;
• Опыт интеграции моделей машинного обучения в Java-сервисы;
• Опыт работы с распределенными очередями и брокерами, например, Kafka или RabbitMQ.
Мы предлагаем:
• Работу в аккредитованной IT компании с сильнейшей командой в разных масштабных проектах;
• Гибридный график работы 5/2, с 10:00 - 19:00;
• ДМС со стоматологией;
• В современном офисе в стиле Лофт с капсулой медитации, спортзалом, большой современной библиотекой и кабинетом для записи подкастов и треков;
• Комфортную кухню с холодильником, кофемашиной, тостером, микроволновкой и Magic Bullet;
• Холодильник с напитками (соки, энергетики, вода и т.д.) и едой (сыры, колбасы, сырки и м.ч.);
• Каждую пятницу совместные обеды с разными кухнями мира за счет компании.
За подробностями пиши: tg @naikava
@Java_workit - вакансии для java разработчиков
ArrayList<String> list = new ArrayList<>();
Collections.addAll(list,
"Joseph Smith", "Thomas Doyle", "Ronald Pratt", "Thomas Spencer", "King Lee",
"Gregory Smith", "Leroy Zimmerman", "Lee Smith", "Michael Harrington",
"Lee Daniels","Eugene Williams", "Lee Terry", "Arnold Fowler", "Billy Harrison",
"Lee Bennett", "Lee Evans", "Ronald Diaz", "Leonard King", "Timothy Smith",
"George Lee", "King Mann", "Dean Wright"
);
list.stream()
.filter(s -> s.contains("K") || s.contains("S"))
.filter(s -> !s.startsWith("K")&&!s.startsWith("S"))
.sorted().distinct()
.collect(Collectors.toList());
Метод должен вернуть имена людей, чья фамилия начинается с K или S, в формате имя + первая буква фамилии, например "David Z.". Список должен быть отсортирован по алфавиту и состоять только из уникальных значений
Ответ
Для данных, представленных в формате "{firstName} {lastName}" можно отфильтровать слова при помощи String::matches и регулярного выражения типа
"\\w+ [KS]\\w+".
Соответственно, к отфильтрованным слов достаточно будет применить String::substring:
List<String> list = Arrays.asList(
"Joseph Smith", "Thomas Doyle", "Ronald Pratt", "Thomas Spencer", "King Lee",
"Gregory Smith", "Leroy Zimmerman", "Lee Smith", "Michael Harrington", "Lee Daniels","Eugene Williams",
"Lee Terry", "Arnold Fowler", "Billy Harrison", "Lee Bennett", "Lee Evans", "Ronald Diaz",
"Leonard King", "Timothy Smith", "George Lee", "King Mann", "Dean Wright"
);
List<String> fixed = list.stream()
.filter(s -> s.matches("\\w+ [KS]\\w+"))
.map(s -> s.substring(0, s.indexOf(" ") + 2) + ".")
.sorted()
.distinct()
.collect(Collectors.toList());
System.out.println(fixed);
// -> [Gregory S., Joseph S., Lee S., Leonard K., Thomas S., Timothy S.]
Если имена состоят из трех и больше частей, но фамилией является последняя часть, регулярное выражение
".+ [KS]\\w+"
и поиск фамилии следует исправить (искать последний пробел при помощи String::lastIndexOf):List<String> list = Arrays.asList(
"Joseph Smith", "Thomas Doyle", "Ronald Pratt Kimberly", "Thomas Spencer", "King Lee Roy Stapleton",
"Gregory Smith", "Leroy Zimmerman", "Lee Smith Jacob", "Michael Harrington", "Lee Daniels","Eugene Williams",
"Lee Terry", "Arnold Fowler", "Billy Harrison", "Lee Bennett", "Lee Evans", "Ronald Diaz",
"Leonard King", "Timothy Smith", "George Lee", "King Mann", "Dean Wright"
);
List<String> fixed = list.stream()
.filter(s -> s.matches(".+ [KS]\\w+"))
.map(s -> s.substring(0, s.lastIndexOf(" ") + 2) + ".")
.sorted()
.distinct()
.collect(Collectors.toList());
System.out.println(fixed);
// -> [Gregory S., Joseph S., King Lee Roy S., Leonard K., Ronald Pratt K., Thomas S., Timothy S.]
Ещё один вариант: вместо String.substring применить String::replaceAll
для замены части фамилии на точку -- выглядит более "красиво":
List<String> fixed = list.stream()
.filter(s -> s.matches("(.+ [KS])(.*$)"))
.map(s -> s.replaceAll("(.+ [KS])(.*$)", "$1."))
.sorted()
.distinct()
.collect(Collectors.toList());
👉 Пишите ваше решение в комментариях👇
javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Книга рецептов на Java
Руководство по созданию простой системы управления рецептами на Java. В приложении Recipe Manager хранятся непосредственно данные о рецепте, которые пользователь можно легко изменить. UI очень простой, но для реализации проекта также понадобится подключить базу данных:
https://myprojectideas.com/recipe-management-system-in-java-java-project/
#java
@javatg
Руководство по созданию простой системы управления рецептами на Java. В приложении Recipe Manager хранятся непосредственно данные о рецепте, которые пользователь можно легко изменить. UI очень простой, но для реализации проекта также понадобится подключить базу данных:
https://myprojectideas.com/recipe-management-system-in-java-java-project/
#java
@javatg
🔥 Top it channels
🖥 SQL базы данных
@sqllib - библиотека баз данных
@sqlhub - повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
⭐️ Нейронные сети
@data_analysis_ml - data science
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
🖥 Machine learning
@ai_ml – погружение в нейросети, ai, Chatgpt, midjourney, машинное обучение.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседованию.
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs - чат работы мл
🖥 Python
@pythonl - главный канал самого популярного языка программирования.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
🖥 Javascript / front
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
🖥 Java
@javatg - выучить Java с senior разработчиком по профессиональной методике.
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👣 Golang
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
🖥 Linux
@linux -топ фишки, гайды, уроки по работе с Linux.
@linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
👷♂️ IT работа
@hr_itwork -кураторский список актуальных ит-ваканнсии
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
#️⃣ c# c++
C# - объединяет лучшие идеи современных языков программирования
@csharp_cplus чат
С++ - Универсальность. Возможно, этот главный плюс C++.
📓 Книги
@programming_books_it - большая библиотека. программиста
@datascienceiot -ds книги
@pythonlbooks - python библиотека.
@golang_books - книги Golang
@frontendbooksit - front книги
@progersit - ит-шпаргалки
@linux_read - Linux books
@java_library - Java books
🖥 Github
@github_code - лучшие проекты с github
@bigdatai - инструменты по работе с данными
🖥 Devops
Devops - специалист общего профиля, которому нужны обширные знания в области разработки.
📢 English for coders
@english_forprogrammers - Английский для программистов
💡 ChatGpt bot
@Chatgpturbobot - бесплатный бот ChatGpt
@sqllib - библиотека баз данных
@sqlhub - повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
@data_analysis_ml - data science
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
@ai_ml – погружение в нейросети, ai, Chatgpt, midjourney, машинное обучение.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседованию.
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs - чат работы мл
@pythonl - главный канал самого популярного языка программирования.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
@javatg - выучить Java с senior разработчиком по профессиональной методике.
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@linux -топ фишки, гайды, уроки по работе с Linux.
@linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
👷♂️ IT работа
@hr_itwork -кураторский список актуальных ит-ваканнсии
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
#️⃣ c# c++
C# - объединяет лучшие идеи современных языков программирования
@csharp_cplus чат
С++ - Универсальность. Возможно, этот главный плюс C++.
📓 Книги
@programming_books_it - большая библиотека. программиста
@datascienceiot -ds книги
@pythonlbooks - python библиотека.
@golang_books - книги Golang
@frontendbooksit - front книги
@progersit - ит-шпаргалки
@linux_read - Linux books
@java_library - Java books
@github_code - лучшие проекты с github
@bigdatai - инструменты по работе с данными
Devops - специалист общего профиля, которому нужны обширные знания в области разработки.
@english_forprogrammers - Английский для программистов
@Chatgpturbobot - бесплатный бот ChatGpt
Please open Telegram to view this post
VIEW IN TELEGRAM
Задачи на алгоритмы и их решения
The Algorithms — проект с открытым исходным кодом, созданный группой разработчиков для понимания структур данных и алгоритмов на разных языках. Любой желающий может внести свой вклад в проект или помочь решить задачу других:
1. Java
2. JavaScript
3. Python
4. Go
#алгоритмы
The Algorithms — проект с открытым исходным кодом, созданный группой разработчиков для понимания структур данных и алгоритмов на разных языках. Любой желающий может внести свой вклад в проект или помочь решить задачу других:
1. Java
2. JavaScript
3. Python
4. Go
#алгоритмы
Snyk — платформа для поиска уязвимостей
Инструмент умеет работать со множеством экосистем: JavaScript, Ruby, Python, Scala и Java. При этом, по словам автором проекта, их база уязвимостей достигает каких-то гигантских размеров
При этом посмотреть на неё можно и самим — код проекта открыт и лежит на GitHub
Стоимость: #бесплатно (но есть платные функции)
@javatg
Инструмент умеет работать со множеством экосистем: JavaScript, Ruby, Python, Scala и Java. При этом, по словам автором проекта, их база уязвимостей достигает каких-то гигантских размеров
При этом посмотреть на неё можно и самим — код проекта открыт и лежит на GitHub
Стоимость: #бесплатно (но есть платные функции)
@javatg
Java-фреймворк Helidon или просто ласточка
Helidon — легкий фреймворк для разработки микросервисов. В Helidon есть две основные модели программирования: Helidion SE и Helidon MP.
Helidion SE — набор реактивных API на Netty, который использует реактивные потоки, асинхронное и функциональное программирование, а также Fluent API. Благодаря этому, инициализация и запуск веб-приложений происходит быстрее.
Helidon MP — используется для поддержки SE в рамках стандартов MicroProfile: CDI, JSON-P, MicroProfile JWT Authentication, MicroProfile OpenAPI и т.д.
Документация: https://helidon.io/
#java
Helidon — легкий фреймворк для разработки микросервисов. В Helidon есть две основные модели программирования: Helidion SE и Helidon MP.
Helidion SE — набор реактивных API на Netty, который использует реактивные потоки, асинхронное и функциональное программирование, а также Fluent API. Благодаря этому, инициализация и запуск веб-приложений происходит быстрее.
Helidon MP — используется для поддержки SE в рамках стандартов MicroProfile: CDI, JSON-P, MicroProfile JWT Authentication, MicroProfile OpenAPI и т.д.
Документация: https://helidon.io/
#java
Знакомимся с Kotlin на практике
Хотите быстро приступить к написанию кода на Kotlin? Упражнения Kotlin Koans от JetBrains помогут освоить синтаксис языка и его идиомы. Задания выглядят как непройденные unit-тесты, и вам предстоит их успешно завершить.
Единственное условие — нужно знать какой-либо язык программирования, например Java.
Поупражняться: https://play.kotlinlang.org/koans/overview
#kotlin #курсы
@javatg
Хотите быстро приступить к написанию кода на Kotlin? Упражнения Kotlin Koans от JetBrains помогут освоить синтаксис языка и его идиомы. Задания выглядят как непройденные unit-тесты, и вам предстоит их успешно завершить.
Единственное условие — нужно знать какой-либо язык программирования, например Java.
Поупражняться: https://play.kotlinlang.org/koans/overview
#kotlin #курсы
@javatg
1. Apache Netbeans - может использоваться не только как IDE, но и как отладчик. Работает во всех операционных системах, поддерживающих Java: Windows, Linux, Mac OSX и BSD.
2. Apache Skywalking - инструмент мониторинга производительности приложений для распределенных систем, специально разработанный для микросервисов, облачных и контейнерных (Docker, Kubernetes, Mesos) архитектур, включая Java.
3. AppDynamics - Когда дело доходит до бесплатных инструментов для мониторинга приложений Java, обычно выбирают JConsole и VisualVM. AppDynamics предоставляет третий вариант, который поможет вам в мониторинге производительности веб-приложений.
4. Cobertura - это скорее инструмент разработки, чем мониторинга, но я считаю, что весь код должен быть протестирован перед запуском в производство, а Cobertura — это бесплатный инструмент Java, который вычисляет процент кода, доступного для тестов. Его можно использовать для определения того, какие части вашей программы Java не покрыты тестами. Основан на jcoverage.
5. Flamegraph Datadog - анализирует каждый запрос Java для обнаружения и устранения проблем с производительностью приложений в распределенной системе.
6. Chatgpt бот - бесплатный бот в телеграме, который помогает писать модули тестирования на Java.
📌 Полный список
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Java: awesome-java
JavaScript: awesome-javascript
React: awesome-react
Vue: awesome-vue
Angular: awesome-angular
Node.js: awesome-nodejs
Typescript: awesome-typescript
Go: awesome-go
Ruby: awesome-ruby
PHP: awesome-php
Kotlin: awesome-kotlin
Rust: awesome-rust
Swift: awesome-swift
iOS-разработка: awesome-ios
Android-разработка: awesome-android
C: awesome-c
C++: awesome-cpp
C#: awesome-dotnet
Unreal Engine: awesome-unreal
Unity: awesome-unity3d
Python: awesome-python
Django: awesome-django
Data Science: awesome-datascience
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
echo "# название" >> README.md
- создание файла README.mdgit init
- инициализация репозиторияgit add README.md
- добавления файла README.md в проектgit commit -m "first commit"
- получает проиндексированный снимок состояния и выполняет его коммит в историю проектаgit remote add origin https://github.com/stanruss/название.git
- команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.git push -u origin master
- кзменения отправляются на удаленный серверgit log --oneline
- посмотреть все коммиты.git checkout .
- восстановить все.git checkout "код коммита"
- вернуть до состояния этого коммита.git checkout master
- вернуться в ветку мастер.Восстановить файлы на локальном компьютере:
```git fetch --all
git reset --hard origin/master или git reset --hard origin/<название_ветки>
```
git add text.txt
- Добавить файл в репозиторийgit rm text.txt
- Удалить файлgit status
- Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)git commit -a -m "Commit description"
- Сделать коммитgit push origin
- Замерджить все ветки локального репозитория на удаленный репозиторий git push origin master
- Аналогично предыдущему, но делается пуш только ветки mastergit push origin HEAD
- Запушить текущую ветку, не вводя целиком ее названиеgit pull origin
- Замерджить все ветки с удаленного репозиторияgit pull origin master
- Аналогично предыдущему, но накатывается только ветка mastergit pull origin HEAD
- Накатить текущую ветку, не вводя ее длинное имяgit fetch origin
- Скачать все ветки с origin, но не мерджить их в локальный репозиторийgit fetch origin master
- Аналогично предыдущему, но только для одной заданной веткиgit checkout -b some_branch origin/some_branch
- Начать работать с веткой some_branch (уже существующей)git branch some_branch
- Создать новый бранч (ответвится от текущего)git checkout some_branch
- Переключиться на другую ветку (из тех, с которыми уже работаем)git branch
# звездочкой отмечена текущая ветвь - Получаем список веток, с которыми работаемgit branch -a # | grep something
- Просмотреть все существующие ветвиgit merge some_branch
- Замерджить some_branch в текущую веткуgit branch -d some_branch
- Удалить бранч (после мерджа)git branch -D some_branch
- Просто удалить бранч (тупиковая ветвь)git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
- Изменения, сделанные в заданном коммитеgit push origin :branch-name
- Удалить бранч из репозитория на сервереgit reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
- Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)git push -f
- залить на сервер измененные коммитыgit clean -f
- Удаление untracked files#git #github #doc #cheatsheet
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin: Null-безопасность и 3 подводных камня
Если вы изучаете Kotlin, то наверняка слышали про Null-безопасность. Система типов в Kotlin направлена на искоренение опасности нулевых(null) значений. Но на все ли 100%?
В этой статье автор рассматривает 3 случая, которые могут вызвать ошибку, а компилятор даже не попытается вас защитить:
https://betterprogramming.pub/kotlin-isnt-null-safe-yet-here-are-3-gotchas-23258fada62
#kotlin
@javatg
Если вы изучаете Kotlin, то наверняка слышали про Null-безопасность. Система типов в Kotlin направлена на искоренение опасности нулевых(null) значений. Но на все ли 100%?
В этой статье автор рассматривает 3 случая, которые могут вызвать ошибку, а компилятор даже не попытается вас защитить:
https://betterprogramming.pub/kotlin-isnt-null-safe-yet-here-are-3-gotchas-23258fada62
#kotlin
@javatg
1. Установка Java - https://www.youtube.com/watch?v=YjySSHYaKWA&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=1
2. Типы данных - https://www.youtube.com/watch?v=CXBpGQYSncM&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=2&t=8s
3. Переменные - https://www.youtube.com/watch?v=hE--HpL2ajQ&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=3&t=10s
4. ООП основные понятия - https://www.youtube.com/watch?v=jim4qd3wOs8&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=4&t=5s
5. Основы наследования - https://www.youtube.com/watch?v=8NcjXK1LFQQ&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=5
6. Наследование методово класса - https://www.youtube.com/watch?v=GwuR6Jzy6uU&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=6&t=37s
7. Порядок вызова конструкторов классов - https://www.youtube.com/watch?v=n9XXFKOdoEI&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=7&t=1s
8. Работа с пакетами - https://www.youtube.com/watch?v=aIn0EbyOSXg&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=8&t=4s
9. Создание интерфейсов - https://www.youtube.com/watch?v=RZ82tD1wDa8&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=9
10. Изучаем исключения - https://www.youtube.com/watch?v=FqLBzLRIrdw&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=10
11. Обобщения Generics - https://www.youtube.com/watch?v=SffahGhgyRw&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=12
12. Коллекции - https://www.youtube.com/watch?v=PSI83wyAxO8&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=13
13. Практика 1 учимся делать игры - https://www.youtube.com/watch?v=14zcOCAB4sI&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=13
14. Разработка игры часть 2 - https://www.youtube.com/watch?v=MuDYMCKbzm8&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=14
15. Создание и выполнение потоков - https://www.youtube.com/watch?v=DOY5LzMmSSM&list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h&index=15
https://www.youtube.com/playlist?list=PLysMDSbb9HcwWoCd-KQ-cl-nk6nuqRF1h
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Вложенные классы в Java — важная особенность этого языка. Они помогают сделать код более модульным, позволяя сгруппировать связанные классы вместе.
Однако стоит помнить, что задача вложенных классов Java — дополнять внешний класс, предоставляя дополнительную функциональность, расширяя его возможности или упрощая взаимодействие. То есть внутренний класс своей сутью и предназначением неразрывно связан с внешним, иначе его стоит вынести в отдельную, самостоятельную структуру.
▪ Читать
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Я пишу эту статью, чтобы поделиться общими фрагментами кода автоматизации Selenium.
Надеюсь, что этот источник станет служить вам справочником, на который можно ссылаться, когда вы добавляете несколько новых скриптов в свою существующую среду автоматизации или готовитесь к собеседованию.
▪ Читать
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
В курсе 28 уроков, 9 заданий и даже 2 экзамена. Программа рассчитана на начинающих, кто только начинает знакомиться с програмированием. Из минусов — некоторые части без обновления, однако их можно подтянуть после изучения основ:
https://see.stanford.edu/Course/CS106A
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM