Новый пост из цикла «Полезный софт», про Evernote и Workflowy уже рассказано, настал черед Git’a 😉
Для начала, что такое Git.
Git (гит) — распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. Программа является свободной и выпущена под лицензией GNU GPL версии 2. ©Wiki
На данный момент без Гита не обходится практически ни одна командная разработка, большинство программистов-одиночек также имеют свои репозитории на гите и все чаще при приеме на работу HR’ы спрашивают помимо всего прочего и ссылку на ваш репозиторий. Окей хорошо, но кто-то думаю уже завис на фразе «система управления версиями», что это? И снова почитаем вики:
Система управления версиями — программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое. Такие системы наиболее широко используются при разработке программного обеспечения для хранения исходных кодов разрабатываемой программы. Однако они могут с успехом применяться и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся электронных документов.
По факту, гитом могут пользоваться практически все от программистов до поваров, в наше время у всех есть какая-либо информация изменяющаяся с течением времени.
Как удобнее всего пользоваться?
Лично я использую SmartGit (в гугле найти не сложно) и считаю его лучшим git-клиентом для начинающих юзеров. Плюсы:
- Кроссплатформенный
- Бесплатный для некоммерческого использования
- Имеет графический интерфейс
- Внешне очень похож на различные файловые-менеджеры (тотже ТоталКомандер)
Конечно, просто сразу сесть и начать пользоваться получится далеко не у всех, но в сети уже существует огромное количество уроков по ГИТу благодаря которым освоить его не составит труда. По времени займет это думаю около 2х часов, зато польза огромнейшая.
Просто немного музыки для работы;)
В связи с тем, что мне предстоят поиски второй работы (не фриланс и не какая-нибудь фирма однодневка) решил быстренько восстановить знания по Андройду, методологиям разработки, СУБД и прочим и подобным. Поскольку качество и читабельность моего кода мне самому крайне не нравится — буду исправляться, в связи с этим посты по играм временно приостанавливаются, а начинаются посты по «учебе», ну а в моем случае восстановлению знаний.
Буду писать что читаю, какие уроки выполняю, примеры кода выкладывать и т.д. Придется трудно, т.к. абстрагироваться от всего того что уже знаешь — это ппц. Часть действий я уже на автомате делаю, даже не задумываясь почему так, а иногда это неправильно — придется ломать привычки=(
Итак цель: в кротчайшие сроки (допустим до января 17ого) исправить все свои косяки в написание кода
Средства: все учебники и сайты какие попадутся, стэковерфлоу, друзья кодеры/программеры, различные курсы и уроки онлайн
Что нужно знать мидлу:
- Опыт коммерческой разработки от 3+ лет (ну это есть, хотя подтвердить будет трудновато, ох уж эти неофициальные работы);
- На данный момент нужны знания Android API 14 и выше;
- Знать основные библиотеки (обязательно! про это позже набью отдельный пост, какие зачем и когда);
- Знать ООП и структур данных (на ОТЛ+++);
- Понимание принципов клиент-серверной архитектуры;
- Понимание архитектуры и принципов работы HTTP(s), REST, SOAP;
- Многопоточное программирование;
- Программирование сетевого уровня: Sockets, Java IO/NIO, TCP, SSL(TLS), HTTP;
- Методологии разработки (Agile, Scrum, XP, etc);
- UML (все не понимают зачем в универе то учат, но надо-надо);
- Желательно умение разработать тесты;
- Хорошее знание sqlite;
- Уверенная работа с Android Studio, Gradle, Git, CVS, SVN;
- Разговорный английский (Intermediate и выше).
Вот такие вот примерно требования, отмечу что сейчас многие фирмы просто спрашивают ссылки на ваш гитхаб или гугл аккаунт разработчика. Все требования выше взяты с описания вакансий на различных профильных сайтах.
Значит поехали=) Думаю теперь посты будут чаще;)
Ну все как обычно. Включаем и кодим ^^
Я безнадежно просрочил пост с кодом, но есть уважительная причина — редизай блога, который я планировал уже в течении года. НЕ все еще готово, многие посты придется переписывать, но «процесс идет» как говорится.
А сегодня продолжаем МонстрХантера=)
В связи с небольшими косяками у Андройд студии пост задержался, поэтому сегодня будет по-максимуму кода. Продолжаем начатое
Ну что, в прошлой серии уроков мы разобрались с тестовым примером, надеюсь у всех все получилось, потом что в этой серии мы будем использовать все то чему уже научились. Вспомним саму суть игры:
«На игровом поле мы управляем нашим персонажем (пиксельный человечек), который должен есть фрукты перемещающиеся вокруг него и уворачиваться от монстров (также перемещающихся рядом), с каждым новым фруктом человечек становится больше соответственно уворачиваться от монстров труднее. Цель — съесть все фрукты на поле.»
Проапгрейдим идею: После поедания всех фруктов и тем самым набравшись сил — необходимо убить монстров, это у будет «WIN!».
Как обычно — включаем и кодим=)))
Вот значит мы и подошли к завершению нашей тренировочной игры с кругами, через две недели начинаем превращать ее в «игру с пиксельным человечеком, монстрами и прочим»=)
А пока что заканчиваем:
Было несколько сообщений на тему, что не получается сделать границы для кругов и они все равно вылетают за экран. Показываю как это делается:
public void moveOnStep() {
x += dx;
y += dy;
checkBounds();
}
private void checkBounds() {
if (x>GameManager.getWidht() || x<0) {
dx = -dx;
}
if (y>GameManager.getHeight()||y<0){
dy=-dy;
}