Ответы пользователя по тегу Программирование
  • Чем делать в этой ситуации?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Я бы пошел верстальщиком на завод автозапчастей. Не нужно ставить себе сразу высокую планку, это всегда ведет к тому что вы завышаете ожидания к себе самому, и постоянно чувствуете неудовлетворение. Я думаю верстальщиком-эникейщиком можно будет сводить концы с концами, зато там вы будете возможно ценным кадром.
    Доучитесь, будет 2 года опыта работы, найдете себе работу по уровню. Вот и всё.

    А вот неоплачиваемая переработка - это конечно проблема не шуточная. И тут я совершенно не представляю, что можно этому противопоставить.
    Ответ написан
    Комментировать
  • Поможет ли создание блога, в изучении первого Языка программирования Java?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Скажу на собственном опыте: пытаясь "совместить приятное с полезным" сильно удлаяешься от основной задачи. И в конечном итоге не сделано ни то ни то. Это горькая правда из той самой поговорки про двух зайцев. Хотите изучить яву, изучайте, не надо тратить время на блоги. Для закрепления материала будет лучше обьяснить пройденый материал другу.
    Если вы чувствуете что вас больше тянет в сторону блогов, то может вам и не нужна ява а нужно посмотреть в сторону веб-разработки.
    Ответ написан
  • Как реализовать автоматически запускаемую программу сразу после окончания загрузки Windows 10?

    lxsmkv
    @lxsmkv
    Test automation engineer
    может встроеный планировщик задач Taskschd.msc подойдет?
    Ответ написан
    Комментировать
  • Как правильно с точки зрения ООП?

    lxsmkv
    @lxsmkv
    Test automation engineer
    То что вы сделали похоже на шаблон Factory (передаем параметры обьекта на вход, получаем обьект на выходе). https://ru.wikipedia.org/w/index.php?title=Factory
    Все что по шаблонам - все фен-шуй. Другой вопрос выгодно ли применять тот или иной шаблон для конкретной задачи.
    Ответ написан
  • Как наилучшим способом протестировать программу?

    lxsmkv
    @lxsmkv
    Test automation engineer
    если система имеет интерфейсы и новый функционал строится используя имеющиеся интерфейсы, то "сломать" систему невозможно. Интерфейсы на то и интерфейсы.
    https://habrahabr.ru/post/30444/
    Ваша задача - гарантировать неизменность интерфейсов. Для этого нужно код покрыть юнит-тестами, которые бы указывали разработчикам если рефакторинг нарушает существующий интерфейс. Еще есть конечно опасения, что не имея представления об имеющихся функциях будут строить велосипед рядом. Но тут нужно предоставить документацию.
    Ответ написан
    Комментировать
  • Пути создания виртуального тренажера?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Принцип реализации такой же как при разработке двухмерных игр. Счетчик времени, графика, анимация, реакции на нажатия клавиш и мыши. Так что считайте, что вы будете писать игру, и исходя из этого ищите как это делается на языке программирования.
    И да, питон не самый удобный выбор, если надо по-быстрому запилить игру, хоть и не самый безнадежный. Я бы, пожалуй, тоже предпочел js/html, кроме названых причин, еще и потому, что возможность пользоваться обучающей программой просто имея доступ в интернет, ничего не устанавливая - сильный плюс.
    Ну и конечно удобно, что js/html игру можно разобрать по косточкам, просто заглянув в исходный код вебстраницы, если захочется решение перенять. И материала, как делать игры на js/html очень много, это сегодня модно и не делает этого только ленивый.
    Вот посмотрите https://www.youtube.com/watch?v=iGCMkmnm89M (серия туториалов), я уверен, вы быстро освоитесь. JavaScript никак не сложнее питона.
    И еще есть сервисы типа jsbin.com и jsfiddle.net чтобы попробовать наброски кода.
    Ответ написан
  • Какие существуют ресурсы со сложными задачками на программирование?

    lxsmkv
    @lxsmkv
    Test automation engineer
    codefights.com
    codewars.com
    Ответ написан
    Комментировать
  • Как правильно генерировать псевдослучайные числа?

    lxsmkv
    @lxsmkv
    Test automation engineer
    возьмите последовательность чисел от 0 до n, возьмите за шаг любое простое число p > n/2, и вынимайте из последовательности каждое число за номером p по кругу.
    Но и тут последовательности. А вам я так понял нужно чтобы оно "создавалось" а не выбиралось.
    Хоря, что плохого в выбирании, ведь карты из неотосортированной колоды тоже выбирают, и ничего, такой выбор считается случайным. A так на основании системного времени. Или белого шума радиочастоты. Или из сервиса на random.org. Если ваш алгоритм будет проходить тест diehard - отпишитесь, всем будет интересно ;)
    Ответ написан
    Комментировать
  • Как работает Spine(пакет для анимации)?

    lxsmkv
    @lxsmkv
    Test automation engineer
    там в видео рассказывается что, в отличии от покадровой анимации, там используют скелетную анимацию. т.е. детали фигуры одеваются на скелет, и уже скелет анимируется. а псевдо-3д эффект достигается за счет т.н.
    mesh animation - упрощенно: на рисунке помещают сетку и определят как будет выглядеть рисунок в зависимоти от деформации сетки. А сетка может быть прикреплена к частям скелета. На видео с 1:29 бедро, пистолет и волосы девушки анимированы с помощю сетки, чтобы придать этим элементам дополнительной пластики.
    Ответ написан
    Комментировать
  • Что такое Model Driven Design? И отличается ли от Domain Driven Design?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Domain Driven Design -> Проблемно-ориентированное проектирование
    Вот книжка: Domain Driven Design: Tackling Complexity in the Heart of Software (Eric Evans)
    Смысл такой что нужно сосредоточиться на предметной области, а не на употребляемой технологии.

    Model Driven Design: вроде такое словосочетание не употребляется, а имеется ввиду Model Driven Architecture (Архитектура, управляемая моделью)
    вот гайд консорциума, который эту шнягу продвигает: www.omg.org/mda/mda_files/Cephas_MDA_Fast_Guide.pdf
    смысл такой, что спецификация устройства системы не привязана к реализации на конкретной технологии.

    Получается что эти две парадигмы могут использоваться вместе.
    Ответ написан
    Комментировать
  • Почему не public переменная, а функции get/set?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Допустим есть класс барометр, у него переменная давление, которая постоянно записывается с датчика давления. Все подсистемы которые будут обращаться к вашему классу, смогут взять и перезаписать значение переменной. Переменная-то глобальная. В самолете например, а? Я в такой самолет не сяду под дулом пистолета :)
    В системах с повышеными требованиями к безопасности, да и не только, необходимо контролировать доступ к переменным. Вот вы и пишете public обертку для чтения private переменной. Функция записи в таком случае будет тоже private. Никто не должен иметь доступа к записи переменной, кроме самого класса.
    Ответ написан
    Комментировать
  • Как начать работать школьнику и не попасть в бесперспективную конторку?

    lxsmkv
    @lxsmkv
    Test automation engineer
    с широкими и неглубокими знаниями самое то, работать тестировщиком(-автоматизатором) или DevOps'ом. Дженкинс еще рекомендую освоить.
    Ответ написан
    1 комментарий
  • Как развивать свои навыки ,когда нет рабочих проектов?

    lxsmkv
    @lxsmkv
    Test automation engineer
    попробуйте автоматизацию тестирования на selenium. там тоже надо в страницах ковыряться и еще одна квалификация не помешает.
    Ответ написан
    Комментировать
  • Как найти число в большом массиве?

    lxsmkv
    @lxsmkv
    Test automation engineer
    надо его разрезать и распараллелить поиск ;)
    Ответ написан
  • Как разрешить спортивный семейный IT спор?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Для игры первым делом надо написатъ диздок. Попробуйте на HTML5/JS игру написать. Там хоть все более менее очевидно, не надо никаких инструментов сборки изучать и прочего околопрограммистского "счастья". Можно просто сосредоточится на алгоритме.
    Ну и всякие штуки типа https://www.codingame.com тоже хороший тест на умение логически мыслить. Можно сразу понять стоит ли двигаться дальше.
    Ответ написан
    2 комментария
  • Почему не работает pyqt4?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Попробовал на винде и у меня получилось окно без декораций.
    А вот так:
    import sys
    from PyQt4.QtGui import *
    app = QApplication(sys.argv)
    window = QWidget()
    window.resize(320,240)
    window.setWindowTitle("PyQT Tuts!")
    window.show()
    sys.exit(app.exec_())

    заработало. Думаю проблема в setGeometry
    Ответ написан
    Комментировать
  • Как правильно реализовать метод интерфейса, если есть еще и абстрактный класс?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В этом случае вам не нужно указывать этот метод в абстрактном классе. Он будет возмущаться пока кто-то его не реализует
    Использование абстрактного класса дает вам возможность задать поведение по умолчанию. Даже если вы в абстрактном классе не определите тело методов интерфейса, а переложите все на конкретные классы, то использование абстрактного класса будет иметь смысл если в нем будет определен хоть один метод с общим для всех потомков поведением.
    Был у меня как то пример такой:
    Два типа работников ленивый и усердный наследуются от абстрактного работника. Абстрактный Работник был наблюдателем (интерфейс) и реагировал на счетчик времени в симуляции. В абстрактном классе определен метод рассчета количества сделаной работы. Причем параметры для расчета задекларированы в абстрактном классе. А в конкретный работник в конструкторе указывает значения этих параметров
    Вот кусок из main
    Clock cl = new Clock();
    HardWorker hw = new HardWorker();
    cl.addObserver(hw);
    		for(int i=daystart;i<=dayend;i++){
    			cl.tick();
    		}

    Вот абстрактный работник
    import java.util.Observable;
    import java.util.Observer;
    import java.util.Random;
    
    public abstract class AbstractWorker implements Observer {
    	protected double workunitsDone;
    	protected int lunchUnitsDone;
    	protected int lunchDuration;
    	protected int lunchTotal;
    	protected double productivity;
    	boolean lunch=false;
    	Random r = new Random();
    	double  lunchProb;
    	int lunchTaken=0;
    	
    	void setProgress() {
    		if (lunch && lunchTaken<lunchDuration){
    			lunchTaken=lunchTaken+1;
    			lunchTotal=lunchTotal+1;
    		}
    		else{
    			lunch=false;
    			lunchTaken=0;
    			if (r.nextInt(101)<lunchProb){ 
             lunch = true;
    			}else{ 
             workunitsDone=workunitsDone+productivity;
    			}
    		}
    	}
    	double getWorkunitsDone(){ return workunitsDone;
    	}
    	int getLunchUnitsDone(){return lunchTotal;
    	}
    }

    А вот усердный работник
    import java.util.Observable;
    import java.util.Random;
    
    public class HardWorker extends AbstractWorker {
    	public HardWorker() {
    		super();
    		this.lunchDuration = 6;
    		this.lunchProb = 6;
    		this.productivity=1.1;
    	}
    	@Override
    	public void update(Observable o, Object arg) {
    		setProgress();
    	}
    }
    Ответ написан
  • Как соединить два онлайн пользователя в игре?

    lxsmkv
    @lxsmkv
    Test automation engineer
    stackoverflow.com/questions/27491016/best-way-to-p...

    гуглите "matchmaking algorithm"
    Ответ написан
    Комментировать
  • Как сделать твердую текстуру в JavaFX?

    lxsmkv
    @lxsmkv
    Test automation engineer
    если координата х левого края платформы меньше чем координаты левого края площадки, то координаты левого края плаформы равны координатам левого края площадки. Таким образом достигнув левого края платфома остановится. Чтобы шарик отлетал от платформы, нужно знать координаты верхней плоскости платформы и, сравнивать координаты края шарика с координатами края платформы, чтобы определить касание. После касания шарик просто меняет направление движения. Если он двигался х=x+1, y=y+1, т.е. вправо вверх (ну если начало координат снизу слева). то после касания о правую стену, он будет лететь х=x-1, y=y+1. Проведите аналогичные расчеты для всех стен и платформы. Это хорошая задачка для тренировки алгоритмического мышления. Попытайтесь решить ее самостоятельно.
    Ответ написан
    Комментировать
  • Сколько стоит IT-услуга на фрилансе? Как узнавать вилки цена\(качество=профессионализм)?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Со стороны исполнителя:
    Нужно просить столько сколько как вам кажется стоит ваш труд. Я например прекрасно представляю себе что "сделай вебстраничку, ну че те" обернется (лично для меня) такими лишениями на которые я не соглашусь за те деньги которые мне предложат. Поэтому я фрилансером и не работаю. И называя сумму и срок ты связываешь себя жесткими обязательствами. И иногда потом заказчик может встать в позу и ты еще и дурак оказываешься, ведь он совсем не то хотел. Вплоть до суда который ты еще и проиграть можешь. Такие риски мне нафиг не нужны. Вот и как тут оценить проект. Один ссыкун как я, а другой смелый и увереный в себе готовывый пахать за любые деньги. На базаре, чтобы узнать "болевой порог" используют такой инструмент как торг. И еще мне кажется что чем опытнее специалист тем точнее он составит смету, учтет больше нюансов. И сумма такой точной сметы может на порядок отличаться от сметы составленной школьником-вебдизайнером.
    Со стороны заказчика:
    Нужно обьяснить обьем работ, составить план, только тогда можно будет получить представление о том труде который предстоит выполнить. Нужно так же понимать что вынуждая человека принять низкую ставку, можно неосознанно склонить его халтурно отнестись к работе. Можно взять и после первого макета дать неожиданную премию и тем самым мотивировать человека и создать о себе хорошее впечатление. Тут большей частью все от межчеловеческих отношений между сторонами зависит. Чем лучше они, тем больше усердия будет приложено. Качество оно субьективно. То что заказчику может показаться качественной профессиональной работой может оказаться проходной халтурой, на взгляд настоящего специалиста. Так и то что для заказчика неприемлемо может показаться исполнителю вполне нормальным решением. О каких тут можно говорить ножницах, это лоттерея как с покупкой подержанного автомобиля.
    Ответ написан
    Комментировать