• Как правильно писать unit тесты?

    @matperez
    По хорошему, в юнит тестах нужно использовать заглушки вместо других частей системы, которые вы не хотите сейчас тестировать. Эти заглушки нужно подсовывать в тестируемую модель либо через контейнер DI на этапе конфигурации тестового окружения, либо через явный метод в модели.

    Пример:
    В LoginForm можно выделить явную зависимость от чего-то вроде UserFinder, который может найти пользователя по email или login. Вместо него можно подсунуть некий объект возвращающий вполне конкретную модель пользователя.
    Тестировать модель пользователя в этом тесте нам тоже не хочется, поэтому UserFinder должен вернуть не реальную модель User, а опять же некую заглушку, возвращающую наперед заданные данные.

    Проще всего для создания заглушек использовать моки из phpunit. Через эту штуку так же можно мокать отдельный метод всего класса. К примеру можно сделать, что бы метод findUser в модели LoginForm сразу отдавал "правильного" пользователя и тем самым убрать из рассмотрения UserFinder.

    В общем, какой код - такие и тесты. Если код позволяет легко подставить зависимости, можно его тестировать в юнит стиле, иначе получаются недоинтерационные тесты. Соответственно, если будете писать тесты до самого кода, само собой будет получаться более тестируемый код.
    Ответ написан
    6 комментариев
  • Как правильно сделать шаблон в mvc php?

    evgeniy2194
    @evgeniy2194
    PHP, js developer
    Используйте шаблонизатор smarty или twig например
    Ответ написан
    1 комментарий
  • Какую бесплатную cms/фреймворк использовать для интернет-магазина?

    kompi
    @kompi
    nullstack devoops
    Любой мейнстримовый фреймворк. Если уже есть опыт в каком-нибудь, то предпочтительно, его и спользовать.
    Ответ написан
    7 комментариев
  • Как нанять сотрудника IT Компании, чтобы он не ушел быстро?

    @djay
    Поставим вопрос иначе:

    Будет ли сотрудник, который доволен ЗП, коллективом, отношением к себе увольнятся? Ясен пень, что нет. Человек самосохраняется убегая от того где плохо/невыгодно. Значит всё не так как вы себе представляете.

    С другой стороны, они же не увольняются не сказав ни слова начальству? Наверняка есть тому причина. Эта ситуция немного напоминает о течке кадров, по поводу умения разбиратся в чужом коде.
    Ответ написан
    Комментировать
  • Что сейчас в тренде в мире PHP CMS и фреймворков с точки зрения правильной архитектуры и реализации?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Yii или SYMFONY. Но сделать e-commerce проще на готовой cms.
    Ответ написан
    Комментировать
  • Какие преимущества фриланс имеет над работой в офисе?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Описываю по себе:
    1) Возможность создать свой собственный режим сна. Для меня вставать в 8-9 утра это настоящая боль. Уже год+ засыпаю между 3-4 часами ночи и просыпаюсь между 11-12. То есть абсолютно всегда сплю свою норму в 8 часов, для того чтобы чувствовать себя нормально и не пить никаких кофе.
    2) Отсутствие временных/моральных/физических затрат на дорогу до работы. Конкретно мне жаловаться не приходилось, ибо первое место работы было в 10 минутах ходьбы от дома, но вот люди в больших городах от этого явно страдают.
    3) Возможность жить и работать так, как это удобно ТЕБЕ. Вот сижу я днем, дописал только-что какой-то кусок проекта и смотрю в окно, а там солнышко светит и птички поют. Ну я беру и иду бегать на стадионе. И это все происходит в 2 часа дня. А что в офисе? Ходить проветривать мозги на улицу на официальных перерывах? А если заработался и пропустил перерыв, то что? Во многих компаниях придется сидеть дальше тупить.
    4) Возможность работать тогда, когда это наиболее удобно и эффективно для тебя. Один из самых важных пунктов. В офисе пришел и сидишь 8-часовой рабочий день. И ты же не можешь подойти к начальнику и сказать, что у тебя сейчас мозги не работают, и тебе бы хотелось свалить домой вообще. Ну может 1-2 раза отпустят, а что делать если тебя в каждый второй день после обеда парализует на пару часов? Будешь в итоге сидеть и накручивать спагетти-код на вилку. А потом его рефакторить, матерясь. Мне вот например ночью нравится работать, но где вы видели офисы, в которых вам позволят одну половину дня работать там, а другую ночью дома?
    5) Отсутствие привязанности к каким-то предпочтениям фирмы. Вот попали вы в веб-студию, делающую сайты на битриксе. И представим чисто теоретически что вам там платят нормальные деньги. А дальше что? Ну полгода вы попилите магазинчики. А потом еще полгода. И еще. Ну конечно не везде так уныло, но своих "особенностей" хватает во всех компаниях.
    6) Отсутствие видимого потолка по заработку. В стандартной компании вас посадят на оклад, +небольшие премиальные если вся команда в сроки будет сдавать проект например и нарисуют вам роадмап, по которому вы будете строить планы на жизнь. Аля "через полгода сдам 7 проектов и меня повысят, увеличив зп на 15%". А потом в один прекрасный вечер после работы вы сядите изучать что-то интересное дома. И будете изучать недели-месяцы. И вот приходите вы однажды на работу, с кучей новых знаний, а у вас в голове стойкое ощущение того, что сейчас вы достойны не то что этой прибавки в +15%, а вы на все 30% тяните. Но вам никто этого не даст. Просто потому-что обычные офисы живут по другим правилам.
    Ответ написан
    11 комментариев
  • Какие преимущества фриланс имеет над работой в офисе?

    Jump
    @Jump
    Системный администратор со стажем.
    Потому что в офис надо ходить. Там есть начальник который говорит что делать. Перечить ему нельзя, его надо слушаться.
    Если тебе хочется на рыбалку ты обязан спросить у начальника и надеяться что он разрешит отлучиться тебе на три дня. А может и не разрешит. В любом случае часто отпрашиваться нельзя.

    А фриланс - хочешь плотно работаешь, получаешь прилично, не хочешь - балду пинаешь, получаешь чисто с абонентки, на хлеб с маслом хватит.
    На рыбалку захотел - у самого себя разрешение спросил, гарантированно получил и уехал.
    Если вдруг кризис и у твоего клиента проблемы - ну отвалился один клиент, ну несколько. Неприятно, но не критично.
    А если твой единственный работодатель вдруг решил в кризис деятельность свернуть или сокращение объявить - это уже под забор и без работы.

    В общем лень мне в офис ходить, я спать с утра люблю.
    Ответ написан
    5 комментариев
  • Как обновлять цены и наличие товаров на сайте от разных поставщиков (excel)?

    viktorvsk
    @viktorvsk
    Целесообразнее будет делать индивидуально под себя, так как такие решения слишком многогранны и специфичны
    Ответ написан
    3 комментария
  • Как пишут ботов для игр (или для программ с интерфейсом)?

    riky
    @riky
    Laravel
    Инфы море на одном только хабре habrahabr.ru/search/?q=%5B%D0%B1%D0%BE%D1%82%5D&ta...

    от себя добавлю что основные методы это
    1) простейший понятный способ - поиск нужного элемента на экране и кликание по экрану, или клик по указанным координатам. я в основном использую этот способ, так как вмешательство в игру минимальное - ее не надо ломать, для онлайн игр - меньше шансов получить бан. Подходит для простых игр, в основном те что 2D пошаговые.
    Гуглить отправку событий мыши и клавиатуры на выбранном вами ЯП (java robots например).
    Минусы - игра должна быть постоянно открыта на экране и иметь фокус (можно решить - запустив игру с ботом в виртуалке).

    2) для онлайн игр - изучение протокола обмена данными с сервером. нужно изучать куда отправляются/откуда получаются данные и в каком формате. пишем программу которая эмулирует клиент игры. очень хороший способ - для очень интерактивных игр - максимальная скорость. Способ довольно сложный надо реверсить протокол (гуглить wireshark) и возможно само приложение (гуглить дизассемблирование / декомпиляция). Если игра браузерная - то все может быть проще - запросы и ответы можно смотреть в консоли браузера. Очень перспективный способ - визуальный клиент не обязателен - можно делать армию ботов и размещать на серверах - скорее всего они будут потреблять немного памяти и процессора и возможности впечатляющие.

    3) для десткопных игр - патчинг памяти запущенной игры. варианты от простых типа - поменять очки/деньги в игре (artmoney) это в основном для не онлайн игр, и до очень сложных - подменить адрес вызова системной функции - например функции отрисовки directx - то есть меняем адрес вызова на свою функци (недавно была серия статей на эту тему, к сожалению не нашел побыстрому). Либо как разновидность - декомпиляция игры - изменение логики - компиляция (гуглить все что связано с крекерством, создание кейгенов). Для этого варинта требуется довольно высокая квалификация, понимание того как работает игра. Также игры могут иметь защиту от этого.

    Кстати понимание того как работают игры/программы - одно из главных в этом деле. Поэтому в первую очередь следует заняться тем чтобы понять как работает конкретная игра, а потом уже думать на каком этапе можно вмешаться в ее логику чтобы достичь нужного эффекта. Изучайте также средства тестирования игр/приложений - с помощью их также можно малой кровью добится хороших результатов.
    Ответ написан
    5 комментариев
  • Как изучать трейдинг новичку?

    @asd111
    Трйдинг это все равно что предсказывать последовательность случайных чисел.
    Лучше настоящая оптово-розничная торговля.
    Ответ написан
    Комментировать
  • Информационные системы и технологии заочно. Стоит ли?

    @deliro
    Первая истина - почти в любом вузе ничему не научат даже очно.
    Вторая истина - диплом требуют только госструктуры и идиоты (исходя из первой)

    P.S. Касается IT. Не претендует на истинность в других сферах.
    Ответ написан
    3 комментария
  • Как переквалифицироваться из эникейщика в программиста?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    23 года? И столько тлена в словах? Ну ловите мою кулстори, у меня тлена в 23 было куда больше...
    Чуть менее двух лет назад, летом 2013, мне было 23, и я имел НОЛЬ опыта работы (если не считать 2 месяца стажерства в магазине комп техники по практике от универа). Кое-как устроился seo-шником в местную веб-студию, даже не зная что это за работа, во время отправления резюме (гуглил после уже). Конечно, как только приступил к работе, сразу понял что seo это не мое, но это помогло мне через 3 месяца на том же месте стать веб-джуниором. И вот я стал джуном, имея за плечами 4 курса на codecademy и одну, плохо прочитанную, книгу. С космической зп в 12к рублей! Через 5 месяцев я уже приступил к работе по удаленке с другими людьми, где платили 30к, и при этом можно было работать по 15-25 часов в неделю. Это позволило мне читать все интернеты на тему фронтенда, а потом, самое важное, пилить демки на кодпене, засиживаясь до ночи. В марте уволился, отдохнул, и в апреле начал очень лениво заполнять профили на зарубежных фриланс биржах. А потом на меня внезапно свалилось подобие сарафана из-за моих демок, и люди просто стали писать мне с предложением что-нибудь запилить, хотя профили я так и не запилил на биржах. Сейчас пилю 2 проекта, с рейтом в 30$/h, для клиентов пустяковая цифра, а для моего Архангельска это вообще какой-то криминал :)
    Ну а вам, с вашим имеющимся бэкграундом, вообще не знаю чего бояться. Проблемы могут быть, только если окажется что программирование это "не ваше". Если же вы любите это дело, то просто садитесь, и начинайте пахать. В первую очередь на свое саморазвитие, поначалу я бы даже посоветовал искать что-то с удобным графиком/местом работы, ибо "неудобная" офисная жизнь убивает весь энтузиазм как правило. А без энтузиазма на старте никуда не уехать.
    Ответ написан
    16 комментариев
  • Почему не работают дефолтные параметры в роутинге symfony2?

    @shoomyst
    dumb
    Ужас, ужас, ужас :)
    Вы уж определитесь, где задавать маршрут - в аннотациях или в конфигах)
    Ответ написан
    1 комментарий
  • Кто нибудь пробовал работать во фрилансе после работы?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Я работал параллельно. +40-60 часов в месяц на фриланс, помимо основной работы.
    Это тяжело и со временем я отказался от этого.
    Ответ написан
    6 комментариев
  • Возможно ли в Doctrine создать сущность без уникальных полей?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Можно конечно добавить полям ID и DATE, анотацию @Id

    а зачем вам тут составной первичный ключь? ID достаточно.

    Вообще по определению у сущности должен быть ID, иначе это уже не сущность.
    Ответ написан
    1 комментарий
  • Наш поиск на сайте организован с помощью Сфинкса. Какие есть альтернативы?

    viktorvsk
    @viktorvsk
    Сначала поставьте на места термины.
    Обычно под VPS и представляют виртуальный хостинг (полностью выделенная виртуальная машина на общих с соседями ресурсах: kvm, openvz ...)
    VDS - физический сервер, когда вам резервируют полностью компьютер (в софтверном плане почти ничем не отличается от VPS)
    Shared hosting - хостинг с соседями, без полноценной виртуальной машины, с возможность использовать только тот софт, который установит хостер.

    Если вы переходите на последний, то там, действительно, ни сфинкс, ни solr работать не будут.
    В таком случае, нужно, действительно, искать тот поисковый движок, где в зависимостях только пхп (то есть, то, что есть на вашем шаред хостинге). И, возможно, смотреть, все ли пхп расширения доступны и у вашего хостера. Как-то так
    Ответ написан
    1 комментарий
  • Что выбрать для интернет магазина битрикс или wordpress?

    @maxyc_webber
    Web-программист
    Вы забивали когда нибудь газетой гвоздь?
    вордпресс это блоги. битрикс это магазины
    Ответ написан
  • Перспективы Delphi?

    sim3x
    @sim3x
    Никаких
    Все умерло еще пару лет назад

    Паскаль будет еще долго использоваться в научных разработках, потому что там люди пишут на чем умеют (и им пофиг)
    Ответ написан
    5 комментариев
  • Как увеличить скорость интернет-магазина на битрикс?

    Staltec
    @Staltec
    Node.js разработчик
    Прекратить пользоваться этим раскрученным маркетологами г-ном.
    Ответ написан
    Комментировать