Pull to refresh
19
0
Мельничук Иван Владимирович @1nt3g3r

Программист мобильных игр

Send message

Да, отдельное приложение мониторит раз в минуту доступность сервисов, и если какой-то упал — перезапускается. В статье упомянул.

Перешел два месяца назад полностью на Linux Mint (хотя покупал ноутбук с установленной Win 10). Но тормоза и постоянные перезагрузки из-за обновлений задолбали.


Два дня назад поставил на ноутбук жене тоже linux — ноут начал нормально работать.


Вспоминаю время windows xp, когда все работало быстро на слабом железе и не перезагружалось по каждому чиху. Кажется, Microsoft начала заниматься чем-то не тем.

Да, у меня обратный свитч. Хотя он неполный. По факту получилось так:


разработчик->менеджер->разработчик.


Я здесь вижу плюс, что за время менеджерства я прокачал софт-скиллы хорошо. Вот мне это важно, поэтому мне подошел этот путь.

А какие цифры вы хотите? За полгода работы мы набрали примерно 50 студентов в городе с населением 350 000 жителей. По финансам скажу только, что операционно вышли в плюс, но еще минус по P&L.


Проблем было множество, парочка:


  • студенты, которые записались, поняли что IT не их — возвращали деньги;
  • приходили проверки с пожарной службы, покупали огнетушители;
  • пропал раз свет на презентации, последние пять минут провели в темноте. Ну и вообще похожие проблемы в офис-центре где мы находимся;

В Телеграм-канале преимущественно пишу свой опыт о своем переходе и текущей работе. Есть и мои субъективные мысли по поводу IT в общем.

Я не оцениваю себя как сеньора. В моем понимании сеньор — это опытный (5+ лет) разработчик, у которого есть также хотя бы год управления командой. У меня специфический опыт, я много программировал, но никем не управлял.


Поэтому я оцениваю себя как мидл разработчика, который частично исполняет сеньорские обязанности. За зарплату — если сравнивать с предыдущим местом работы, она выросла в 2.5 раза. Я был на госслужбе, не забывайте :)

Спасибо! Если продолжим развивать проект — попробуем gitlab

А, ну бывает и такое:) Действительно глянул логотип — похожий.

Да, вы правы, операция отнимала и отнимает мало времени. Обновление проекта занимает меньше пяти минут.


За все время разработки проект обновлялся на VPS не больше пяти раз. Остальное время тестировалось локально все.

Информацию о добавках сейчас берем из сайта http://dobavkam.net. Это первый сайт, который попался нам на глаза.


Вы правы за количество. На этом сайте далеко не все добавки, только трехзначные. По нормальному нужно парсить Википедию, там больше данных. Ну мы взяли первый попавшийся сайт, потому что было важно написать парсер на примере любого сайта.


За эмблему не совсем понял :) Вы про эмблему сайта или про favicon? Если favicon, то это стандартная иконка Spring.

Я ни разу не пользовался gitlab, только читал про эту штуку, хочу попробовать. Согласен, что это лучше, чем набор bash скриптов.


Может и попробуем gitlab чуть позже.

Только средства Spring Boot.


Если кратко, примерно так:


1) Генерируется SSL сертификат, преобразуется в понятный Спрингу формат. Делал по этому туториалу — https://dzone.com/articles/spring-boot-secured-by-lets-encrypt
2) Меняется server.port: 8443 на server.port: 443. Это дефолтный для HTTPS порт
3) Теперь ваше приложение будет доступно по HTTPS, но недоступно по HTTP. Чтобы это исправить, добавляете редирект с HTTP на HTTPS:


@Configuration
@Profile("prod")
public class RedirectHttpComponent {
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(redirectConnector());
        return tomcat;
    }

    private Connector redirectConnector() {
        Connector connector = new Connector(
                TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
        connector.setScheme("http");
        connector.setPort(80);
        connector.setSecure(false);
        connector.setRedirectPort(443);
        return connector;
    }
}

Аннотация Profile("prod") указывает, что эта конфигурация применится лишь при запуске приложения в продакшн режиме.

Ну счетчики добавил я сам. А по факту вы в любом случае, особенно в случае коммерции, будете с ними сталкиваться. Вот спросят у вас простой вопрос — "Сколько людей за месяц зашло на наш сайт? А на вот эту страничку?". Так что или будете свои писать, либо готовые возьмете, с аналитикой уже готовой.

Не совсем понимаю, о чем вы.


Если о счетчиках посещаемости — да, добавлен счетчик Яндекс.Метрики и счетчик Google Analytics. Добавлены, потому что интересно посмотреть, сколько людей пользуются сайтом, по каким ключевым словам приходят.

Пожалуйста!


Возраст — от 18 (студенты в ВУЗе) до 45 примерно. Медианно где-то 25-30.


Как определил — субъективно. Студент более собранный становится, задает больше вопросов. Остальные студенты внимательней смотрят, подсказывают товарищу. Ну как бы не препод что-то там пишет, а ваш коллега. Ну и такой эффект включается, что тебя могут вызвать самого что-то написать, волей-неволей больше вдумываешься.


Гуглдок вот — https://docs.google.com/document/d/1Of9u0tJ6hrSde2LiJ9nyWBMbTXJIuzuKZizA204RBdA/edit


Задачей тимлида была выдача заданий, приемка пулл реквестов. А при приеме пулл реквеста он проверял, что проект запускается и работает. Ну и каждый, кто делал фичу, проверял, что она работает. Так и писал в чат — "сделал пулл реквест. Запустил, работает". Конечно это не назвать полноценным тестированием, но более-менее работало.


За расшевеливание:
1) Ежедневные отчеты. Кажется фигней, но отлично мотивирует. Эту штуку я подглядел, когда сам проходил онлайн-курсы (не по программированию).
2) Ежедневное общение в чате. Отвечал на все комменты, задавал вопросы. То есть, было ощущение, что проект живет, развивается, пишется.
3) Когда видел, что от кого-то долго нет отчетов и сообщений, писал ему лично, спрашивал, все ли нормально, есть ли таски. Помогало — были моменты, что человек что-то сделал, но стеснялся залить на гитхаб, даже так :)
4) Как только появилась первая версия проекта, почти без ничего — залил на VPS, и показал, что оно шевелится. Появилось ощущение не "пишем пет-проект в стол", а "делаем сервис для людей"

В libGDX тоже есть система Actions, пишутся очень похоже. Например, для перемещения обьекта на 50 пикселей влево за 1 секунду:


actor.addAction(moveBy(50, 0, 1f));


Прочитал статью — практически все Action-ы есть в libGDX. Судя по тому, что поддержка Action в libGDX появилась где-то три года назад, разработчик libGDX вдохновлялся Cocos-2d в этом плане :)

Когда мы начинали писать эту игр, еще была возможность использования Unity. Другой парень собрал демку на Unity быстро, но поскольку она даже не запустилась на моем телефоне (на то время у меня был Samsung Galaxy Gio), то решили делать на проверенной технологии.

По поводу графики — это субьективно. Многим нравится текущая графика, на гугл плей наоборот отмечают, что дизайн приятный.

Да, ошибки в дизайне возможны. В свое оправдание скажу лишь, что дизайном занимался художник. А вообще поддерживаю alrdev — если напишете статью, где "на пальцах" обьясните основные ошибки в дизайне — будет очень круто, с удовольствием почитаю.

Монетизация — реклама + покупки (отключение рекламы, покупка платных уровней). За выхлоп — еще ничего не скажем, потому что игра лишь несколько дней в Google Play.

Вы правы, и я упомянул про этот момент в статье. Для действительно правдивого движения нужно было бы использовать (или писать свой) 3D физ. движок + использовать 3D модель. Увы, на тот момент у меня не было необходимых знаний.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity