• Почему Object можно присвоить примитивное значение?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    В процессе выполнения конструкции Object val = 12345 происходит автоупаковка примитивного значения типа int в объект типа Integer и присвоение его ссылки переменной val. Последнее возможно потому, что Integer наследует Object.
    Ответ написан
    Комментировать
  • Как деплоются приложения Java EE?

    @bobzer
    Java EE Developer
    нужно обновить частично, только один модуль
    Соответственно, этот модуль должен быть самостоятельным артефактом Maven. Обычно, артефакт для EAR описывает формирование приложения из других модулей и конфигурационных файлов. Следует разбить приложение на артефакты (обычно jar/war), которые входят в состав EAR.

    Вообще, при сборке для промышленной среды надежнее собирать всё приложение (EAR в вашем случае) целиком. А при сборке для окружения разработчика вообще удобнее использовать не сборщик Maven, а среду разработки. Idea, например, прекрасно понимает формат конфигураций Maven и на их основе может создавать свои артефакты (и настоятельно порекомендует это сделать при обнаружении pom.xml). Если собирать артефакты с помощью Idea, то даже при сборке EAR целиком фактически будут обновляться только изменённые файлы, что ускоряет процесс сборки на порядки, в сравнении с Maven. Это достигается за счёт того, что у Idea есть свой контроль версий и она знает что именно следует пересобрать, а что можно оставить как есть. Наибольший выигрыш получается для exploded артефактов (которые не архивируются, а выкладываются в виде структуры папок с файлами), т.к. в таком случае не приходится перепаковывать модули целиком при изменении небольшого количества файлов в них.

    Для каждого артефакта Maven Idea создаст две версии своих артефактов - упакованную и не упакованную (exploded). В случае, если ваше приложение состоит из нескольких модулей, может потребоваться ручное вмешательство в сгенерированные артефакты, т.к. exploded-артефакт верхнего уровня в конфигурации по-умолчанию содержит подчинённые артефакты в упакованном виде. Потребуется удалить вариант в упакованном виде и на его место вставить exploded-вариант. Минус состоит в том, что при изменении артефакта Maven, Idea предложит перегенерировать и свои артефакты, все ручные настройки при этом пропадут. Но настройки топологии проекта меняются нечасто, поэтому лишней минутой работы по ручной реконфигурации обычно можно пренебречь...

    Если Вы только начали экспериментировать с Java EE, то создание EAR может быть неоправданным усложнением, т.к. во многих случаях веб-артефакт более низкого уровня - WAR - прекрасно справляется со всеми задачами Enterprise-приложения. При этом получается более простая структура, соответственно и с настройкой сборки проблем меньше.
    Ответ написан
    4 комментария
  • Есть ли среди вас те, у кого есть постоянный стабильный доход не от разработки, а от своего продукта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Вложитесь в недвижимость и сдавайте ее в аренду.
    Ответ написан
    31 комментарий
  • Нужны советы по SEO, правильно ли я оптимизировал сайт?

    @sarathorn
    php программист, веб-дизайнер, коллекционер
    Оторвать бы вам руки за изменение скорости скролла. Это просто ужас какой-то. На остальное даже смотреть не хочется из-за этого.
    Ответ написан
    23 комментария
  • Как поднять себе зарплату?

    @evgeniy_lm
    Говорят, что хороший специалист не тот кто знает как сделать, а тот кто знает почему он делать не должен.
    "Доля участия" увеличилась не сама по себе. Сначала возник некий объем работы как следствие возник вопрос кто этот объем возьмет на себя. Ты не стал задать логичные вопросы типа "А почему я? Мне, что больше делать нечего?", "А как увеличение объема работы скажется на увеличении объема зарплаты?", а взял под козырек и побежал батрачить. Халявная рабсила это голубая мечта любого руководства.
    Теперь у тебя только один вариант решения проблемы - смена работы. Причем зарплата на новой работе не обязательно должна быть выше. Главное чтобы на новом месте ты не совершал старых ошибок и помнил что увеличение объема работы всегда влечет увеличение размера зарплаты. Не увеличивается зарплата - не увеличивается объем работы
    Ответ написан
    Комментировать
  • У кого в СПб можно обучится верстке с нуля?

    Вот у этого парня. Главное задавать ему правильные вопросы
    За неделю стать фронтендщиком не получится, хоть ты миллион долларов сделай свое вознаграждение
    Ответ написан
    Комментировать
  • Как выражение в строке посчитать?

    kentuck1213
    @kentuck1213
    a = '1+2-3*4/5'
    eval(a)
    Ответ написан
    Комментировать
  • В какой книге по java больше практических задач и примеров?

    malworm
    @malworm
    Мне пришлась по душе книга Яков Фаин Программирование на Java за 24 часа вместе с материалами к ней здесь и тут
    Также можно посмотреть видеокурс по книге от автора, тут материалы к нему
    Ответ написан
    Комментировать
  • В чем моя причина провала тестового задания Яндекса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну давайте я покритикую:

    возьмем файлик

    1) вы не разобрались как объявлять методы у прототипов с новой нотацией `class`:

    class Travelsort {
        constructor() {}
        sortTickets(tickets) {}
    }


    2) вы не умеете пользоваться исключениями.
    if (!Array.isArray(cards)) {
        throw new ValueError('Wrong input');
    }


    3) использование let там где должен использоваться const

    4) в принципе использование переменных там где их быть не должно

    5) вы зачем-то реализовали свою функцию сортировки, я не увидел в требованиях отсутствия возможности использовать старый добрый Array.prototype.sort

    6) Общие замечания по кодинг стайлу. snake_case там где должен быть camelCase, пишите с большой буквы то что должно быть с маленькой и т.д.

    7) нарушения принципа единой ответственности. У вас объеткт умеет и сортировать и писать куда-то. Это категорически плохо.

    8) Если исправить 7-ой пункт то наш класс превращается просто в функцию.

    Далее... берем следующий файлик

    1) если вы пишите комментарии к таким маленьким кускам кода - стало быть у вас хромает именование вещей. Все должн быть понятно просто из названий методов/функций/переменных. При работе в команде над серьезными проектами это немаловажно, ибо код чаще читают чем пишут и экономить нужно именно это время.

    2) вы зачем-то тут в прототип объекта строки впихиваете функции для парсинга CSS. Таким образом мы нарушаем принцип единой ответственности. Да и в целом расширять без надобности прототипы объектов как-то не ок.

    Чуть дальше проскролил - вы пытаетесь расширить прототип строк для того что бы добиться API jquery? ух, батенька.

    3) очень много дублирования.

    4) очень плохо с protected variations.

    Справедливости ради, ваш код входит в категорию ">50% JS кода", так что не расстраивайтесь. Просто для работы в яндексе нужен чуть более высокий уровень и понимание вещей.
    Ответ написан
    17 комментариев
  • ООП головного мозга?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    Когда вы пишете лабораторку или собственный маленький проектик, то можете делать как вам угодно.
    А теперь представьте себе ситуацию когда в команде программистов вы написали класс с публичными переменными, а потом подошел руководитель проекта и сказал что на каждое присваивание переменной надо делать запись в лог-файл. Теперь все программисты, которые пользовались вашим классом, вместо работы переписывают код с переменных на сеттеры.

    Советую почитать "Совершенный код", чтобы не задавать подобные вопросы.
    Ответ написан
    2 комментария
  • Как противодействовать воровству контента?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Надёжно - никак, кроме юридического давления.
    Все ваши наивные ухищрения не спасут от простейшего Ctrl + U и автоматического парсинга.
    Ответ написан
    5 комментариев
  • Как называется эта мода на чистый HTML без наворотов (читал про это недавно)?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Это называется "Дела давно минувших дней, преданье старины глубокой"
    Люди которые это исповедуют называются староверы. Их можно узнать по длинным неухоженным бородам и прыжкам через костер. Они юзают DENVER, кричат о вреде bootstrap-a и думают что startup - это меню в макдоналдс. Остерегайтесь таких.
    Ответ написан
    5 комментариев
  • Какие вы знаете сервисы для создания презентаций?

    @MoonMaster
    Программист и этим все сказано
    Обычно использую prezi.com. Очень нравится дизайн и функционал. Имеет свой личный кабинет куда сохраняется презенташка. Можно по пути на работу или с работы изменять презентацию. Также прекрасная анимация и что удобно, можно транслировать на проектор через интернет или сказать презентацию на компьютер. Сохраняется в виде zip-архива. Необходимо только распаковать и запустить exe файл.
    Ответ написан
    Комментировать
  • Как правильно определить Entity если часть данных хранится в таблице свойств?

    @sirs
    Как один из вариантов - можно сделать с аннотацией @OneToMany. Создать отдельное entity на таблицу PEOPLE_ATTRIBUTE, например

    @Entity
    @Table(name = "PEOPLE_ATTRIBUTE")
    public class PeopleAttribute {
    private int peopleCode;
    private int attributeCode;
    private String attributeValue;
    ...
    }
    
    @Entity
    @Table(name = "PEOPLE")
    public class People {
    
    ...
    private Set<PeopleAttribute> attributes;
    
    @OneToMany(mappedBy = "attribute")
    public Set<PeopleAttribute> getAttributes() {
    		return this.attributes;
    	}
    ...
    }


    P.S. Небольшой совет из опыта: 1) всегда используйте Long для id сущностей, даже если вам кажется что short/int вам хватает, накладные расходы не такие уже и большие, не стоит экономить на спичках. 2) Если у вас @Id private int codePeople; является ID, то и называйте его peopleId, peopleID или просто id. Когда сущностей набирается много - начинается путаница и проблемы, особенно если в команде людей много и все пишут по разному.
    Ответ написан
    1 комментарий
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    JohnZoidberg
    @JohnZoidberg
    1. Kenney.nl

    Этот находящийся в Нидерландах сайт предлагает разработчикам замечательную графику. Присутствуют материалы, признанные Общественным достоянием. А это значит, что вы можете использовать их где угодно, не беспокоясь об авторских правах. Так же есть поиск графики по категориям, что значительно ускоряет процесс.
    Кроме того, на сайте представлены подборки бесплатной музыки.

    2. OpenGameArt.org

    Наверное, один из лучших сайтов в своём классе. OpenGameArt.org огромный сайт, предлагающий все виды графики, необходимые для разработки игр. Так же на сайте имеется бесплатная музыка (звуки). Основными плюсами данного ресурса являются наличие оживленного и весьма полезного форума, а так же постоянное обновление материалов за счет пополнения самими пользователями и рейтинговой системы оценивания. Так что вы всегда сможете быстро выбрать самое лучше и свежее.

    3. Untamed.wild-refuge.net

    Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
    При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

    4. Crateboy.itch.io

    Отличительная особенность данной коллекции - 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор - упомянуть о нём в своей игре (credits).
    Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.

    5. Bagfullofwrong.co.uk

    Коллекция материалов, созданных и использованных в различных проектах дизайнером Робом Фероном для Вашего личного пользования.

    6. Gameart2d.com

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

    7. Wigdetworx.com

    Пусть это и не самая большая коллекция спрайтов из длиннопоста, но определенно каждый найдет себе здесь что-нибудь по душе. Для того чтобы скачать себе множество ландшафтов и персонажей достаточно лишь одного клика.

    8. Glitchthegame.com

    Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

    9. Dumbanex.com

    Идеально для сайдскроллеров и платформеров
    Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

    10. Reinerstilesets.de

    Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

    11. Sharecg.com

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

    12. Roenica.com

    Отличный сайт с графикой для инди проектов и казуалок.
    Всё разбито на категории по типу игры и упаковано в ZIP архивы. Есть и 2D и 3D графика, но так же как и в предыдущем случае стоит внимательно смотреть на лицензию, под которой распространяется контент.

    13. Blogoscoped.com

    Сам сайт - форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License

    14. Lostgarden.com

    Сайт немного отличается от рассмотренных выше. Это блог игрового дизайнера, в котором время от времени появляется бесплатная графика для разработчиков игр. Так же интерес представляет и сам блог, в котором дизайнеру можно найти уйму важной и интересной информации.

    15. Subtlepatterns.com

    Безумное количество фонов и текстур для Ваших игр и приложений. Всё как и прежде бесплатно - только не забудьте поблагодарить автора.

    16. Openclipart.org

    Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.
    Ответ написан
    12 комментариев
  • Как записать консольный вывод в файл?

    EugeneP2
    @EugeneP2
    Java Dev
    Самый простой вариант, это в консоле, когда запускаете свою программу

    java Game>file.txt
    или
    java -jar Game.jar>file.txt

    Второй вариант, тоже простой, переопределить System.out

    static {
    		try {
    			System.setOut(new PrintStream(new File("file.txt")));
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) throws FileNotFoundException {
    
    		System.out.println("Hello World!"); // будет записано в файл
    	}
    Ответ написан
    Комментировать
  • Что будет за публикацию уязвимости/бага в публику?

    Olej
    @Olej
    инженер, программист, преподаватель
    - Поиск создателя приложения что бы его наказать / возбуждение уголовного дела

    Какое уголовное дело? ... Купят наёмного убивца, и он перережет горло... ;-)
    Ответ написан
    Комментировать