• Куда развиваться и как профессионально расти как php программист в маленькой фирме?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Взгляните на рынок -- куча крутых нагруженных сервисов делается в мире.

    Чтобы ответить себе же, ответьте мне (я расту, мне интересно):
    - пишете ли вы тесты? TDD? DDD?
    - делаете ли сервисный слой?
    - следуете ли GRASP и SOLID?
    - есть ли опенсорсное что-либо? (например делали что-то для того же Symfony?)
    - оптимизировали ли вы огромные нагрузки?
    - упирались ли в пределы php и выносили ли отдельные элементы системы на др языки?
    - обучали ли вы ребят (с нуля, хорошему коду и практикам)?
    - занимались ли международными проектами?
    - запили ли что-нибудь свое, что стало популярным?
    - участвовали ли в конференциях?

    Если везде да -- скажите, что это за маленькая фирма, в которой так можно вырасти?

    Короче -- сделай список, в чем слабоват, что бы ты хотел -- и лупи силой железобетона по этим точкам!
    Ответ написан
    1 комментарий
  • Как сделать, чтобы при наведении на один блок, сработал другой?

    Необходимо, чтобы блок 1 был после блока 2. Тогда можно будет использовать селектор "~". Либо, если блок 1 будет непосредственно после блока 2, можно будет использовать селектор "+".

    Других вариантов средствами css нет.

    P.S. На практике я бы просто вложил блок 1 в блок 2 и сделал так: .slider-window:hover .btn { background-color: red; }. Никакого геморроя в данном случае не вижу, тем более, что, как правило, кнопка слайдера является дочерней нодой слайда, или, как минимум, обертки для коллекции слайдов. Если у вас это не так - повод исправить. Структура, как правило, выглядит так:

    <div class="slider-window">
        <ul class="slide-list">
            /* слайды  */
        </ul>
        <a href="#" class="btn">Кнопка</a>
    </div>
    Ответ написан
    1 комментарий
  • Semantic UI или Bootstrap 3 + Font Awesome?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Библиотека Semantic UI - реально хорошая и очень удобная, и лучше учить её, чем bootstrap!
    А то, что она там тормозит - можно выкинуть лишнее и/или ПОМОЧЬ! поправить им: код же - OpenSource.
    В общем, я "ЗА" изучение Semantic UI двумя руками!
    Ответ написан
    2 комментария
  • Как работать с фреймворками?

    kentuck1213
    @kentuck1213
    У Yii документация ад для новичков. У Laravel просто прелесть все.
    Ответ написан
    5 комментариев
  • Биржа upwork как источник заказов для IT компании?

    @polifill
    Не с той стороны заходите.

    Самая большая проблема - ВЗЯТЬ нормальный заказ на бирже UpWork.
    Ну а вам как бизнесмену - брать такие заказы РЕГУЛЯРНО, чтобы обеспечивать свой штат постоянной загрузкой по работе.

    Все остальные озвучанные вами проблемы - полнейшая ерунда и вообще не являются проблемой на фоне той проблемы, что действительно вам будет трудно решить для того чтобы начать свою деятельность на Upwork - РЕГУЛЯРНО БРАТЬ ХОРОШИЕ ЗАКАЗЫ.

    Неплохие специалисты на Upwork годами работают - и предел их мечтаний "взять заказ на 500 долларов", а вы сходу на постоянные заказы по $3000 рот раззеваете....

    Не хотите, чтобы ваши конечные исполнители видели ваши заказы и заказчиков - работайте с исполнителями мимо Upwork, а через Upwork только с заказчиками работайте, - в чем проблема-то????

    От того, что ваши работники узнают, что вы берете заказы через Upwork - ничего принципиально не изменится.

    1. Одиночному специалиста не так просто брать крупные заказы.
    2. Чтобы раскрутиться на Upwork - нужно время, и довольно долго новичок получает не особо интересные и не особо денежные предложения.
    3. Если вы обеспечиваете сотрудников постоянным потоком работ - они не будут искать доп. заработок на сайтах типа Upwork.
    4. Не всем нужен этот гемморой с прямым заказчиком. Подавляющее большинство людей в мире работает в каких-либо фирмах и получает работу через начальника, а то и через большую цепочку начальников... Многим людям так намного комфортнее.

    Проблема у вас будет только в одном случае - если вы будете откусывать ЗДОРОВЕННЫЙ процент, при этом никакой СВОЙ ВКЛАД НЕ ДОБАВЛЯЯ.

    Но в наше время, когда о Upwork знают почти все - никак вы эту проблему не устраните.

    Только внося свой дополнительный вклад (например, прекрасным знанием английского языка, постоянным вниканием в глубину проектов и тем, что будете крайне внимательно относится к своей репутации на Upwork и будете работать над репутацией долгие месяцы) вы будете застрахованы, что работать через вас будет выгоднее, чем напрямую.
    Ответ написан
    8 комментариев
  • Какими способами/приемами вы пользовались чтобы получить свой первый заказ на фриланс бирже?

    @codecity
    Попробуйте сами найти исполнителя. Поймете как все выглядит с другой стороны и убедитесь что найти хорошего исполнителя практически не реально.
    Ответ написан
    Комментировать
  • Почему заказчики на UpWork требуют использовать Bootstrap?

    customtema
    @customtema
    arint.ru
    Перегружать или расширять CSS-фреймворк непродуктивно. Хотя сам постоянно этим грешу.

    Продуктивно - использовать шаблонизатор, и не заниматься постоянной переверсткой статики.
    Ответ написан
    Комментировать
  • Как сократить следующий код?

    @g_s_e
    $(document).on('click', '.searching .call-menu', function(){
         $('.search-form, .mobile-menu').toggle();
    });
    Ответ написан
    Комментировать
  • Как сократить следующий код?

    Bowen
    @Bowen
    Японский бог
    $('.searching, .call-menu').on('click', function(){
    	$('.search-form, .mobile-menu').toggle();
    });
    Ответ написан
    Комментировать
  • Стоит ли создавать интернет-магазин для портфолио на чистом PHP?

    Stalker_RED
    @Stalker_RED
    С точки зрения фриланса, лучше взять готовый известный продукт, типа opencart. Может быть пару модулей к нему написать. Во фрилансе большинство заказчиков хочет "быстро, дешево и с хорошей поддержкой". Завтра вы уйдете в другой проект, и кто будет разбираться в вашем коде?

    А при устройстве на работу - работа бывает разная. Большинство хотят чтобы вы знали хотя-бы один крупный фреймворк - типа zend, symfony, yii, lavarel. Знаете один - сможете в приемлемое время разобраться и с другим. А конкретную CMS хотят в основном те, у кого уже есть ряд продуктов на этой CMS.
    Ответ написан
    Комментировать
  • Как быстро верстать (нужен совет как быть дальше)?

    Препроцессоры на полную мощь (попробуйте jade для html), gulp, библиотека снипетов, опыт, опыт и ещё раз опыт.

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

    Ну и самое главное:
    846381d51bb74da8b80e2558501ceb5e.png

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

    pozZzitiv
    @pozZzitiv
    Дизайнер и перфекционист
    Странный вопрос) У дизайнера нет портфолио? Нарисуй!
    Некому нарисовать за деньги? Некому нарисовать бесплатно? Сделайте для вымышленной организации. Портфолио само не появится, а брать чужое это плохо)
    • Автомойка с записью онлайн.
    • Целевая страница по продаже пылесосов.
    • Сайт фирмы, занимающейся пластиковыми окнами.
    • Корпоративный сайт ИТ-компании.

    Приступайте в свободное время ;) Потом, при необходимости, сможете эти наработки использовать в реальных проектах. Если не хочется набивать руку таким образом, то берите сайт и улучшайте его структуру/дизайн. Можете брать плохие сайты и переделывать, потом владельцам напишите коммерческое предложение.

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

    @AVKor
    Зарегистрироваться и начать. Иначе так и будет эта волынка длиться: а вдруг... а если... а как...

    По ходу дела многие вопросы сами снимаются, а если что-то остаётся неясным, можно тут конкретный вопрос задать.
    Ответ написан
    Комментировать
  • Как объяснить девушке что такое "некрасивый" код?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Если некрасивый код не видять говнокодеры программисты, то почему вы считаете, что его сможет увидеть девочка, которая вообще не программист?
    Красивый код - это понимание нюансов программирования. Вполне возможно, что вы найдете парочку примернов достаточно наглядных, чтобы продемонстрировать разницу, потратив полчаса на пояснение. Но научить видеть - не выйдет.
    Ответ написан
    1 комментарий
  • Какие задачи вы дали были бы начинающему angular разработчику?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да и какие задачи вы делали когда только начинали?


    Мне дали помниться в зубы ангуляр (1.0 еще), 2 недели на изучение оного и проект который надо сделать... и пришлось делать... было весело)

    В целом помимо "подтянуть перед этим JS", сейчас я бы еще рекомендовал babel.js, без него уже не представляю как можно писать поддерживаемый JS код (можно конечно но его банально больше). Так же вам нужна удобная система сборки - рекомендую webpack, так как с ним проще стартовать и он форсит вас использовать модули. Рекомендую вот этот скелет проекта. Ну и приятный побочный эффект, у вас ваши сервисы не будут напрямую знать что они используются в контексте ангуляра.

    Что до ангуляра - для начала я бы рекомендовал таки почитать документацию, angular styleguide и т.д. Хотя бы недельку. Так же рекомендую с ним использовать TDD (именно юнит тесты с моками всех зависимостей, если тесты писать тяжко - надо придумать как сделать так что бы было попроще, например мокать не http а сервис и т.д.), при обучении особенно хорошо. Очень упрощает поиск слабых мест вашей архитектуры приложения а так же позволяет проще его менять.

    Если вы примите для себя пару простых правил, аля "стараться реже использовать все со знаком доллара напрямую", типа $scope в контроллеры не пихать, вообще поменьше зависимостей от ангуляра для ваших сервисов, стараться не юзать link у директив (ну или делать там только то для чего он нужен - для связывания директивы и DOM, мониторинг атрибутов и вызов контроллера директивы и т.д.), то жить станет чуть проще. Тогда ангуляр сам по себе станет чуточку проще. Ну и да, вообще не использовать независимые контроллеры (ни ng-controller ни контроллеры для маршрутов ngRoute ни для uiRouter, вообще посмотрите в сторону angular/router)

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

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

    А потом реализовать какую-нибудь апу. А лучше вместе, пописали директивки, попробовали их заюзать. Неудобно - пилим дальше.
    Ответ написан
    Комментировать
  • Что бы вы посоветовали будущему фрилансеру?

    @shumvlesu
    По заголовку вопроса: Я бы посоветовал Вам выспаться :) Потом это уже сделать не удастся.
    По существу: идите в студию веб дизайна, денег не заработаете , зато научитесь всему тому что Вам потребуется, главное не завязнуть там. Потом начинайте воять свое.
    Ответ написан
    Комментировать
  • Что такое "отказ от двустороннего датабиндинга"?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    есть датабиндинг, observable отношение между одним компонентом и другим. Например:

    var model = {
        title: 'Some Title'
    };
    
    function view(container) {
        var el = container.querySelector('[data-bind="title"]');
        // следим за изменениями
        Object.observe(model, (changes) => {
            if ('title' === changes.name) {
                // обновляем при изменении связанное значение у другого компонента
                el.innerHtml = model.title;
            }
        }, ['update'])
    }


    В этом случае если каким-то чудом наш элемент вдруг поменяет содержимое (ну а вдруг?) то значение внутри модели не поменяется, оно не зависит от другого компонента.

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

    Сами по себе биндинги это круто, и это то что делает современные фреймворки такими крутыми - позволяют реагировать на изменение данных и обновлять к примеру view приложения, без необходимости писать огромные куски кода отслеживающие изменения - все за нас делает фреймворк.

    Проблема с двусторонним дата биндингом очень простая - систему построенную с активным применением двустороннего биндинга крайне тежело отлаживать. Приведу простой пример. Предположим что у нас есть компонент A и компонент B. У компонента A есть свойство foo которое содержит какую-то строку, компонент B содержит свойство bar и у нас установлено двустороннее связывание между этими двумя свойствами.

    Фреймворк гарантирует нам то, что если одно из этих полей поменяется, он поменяет другое, так что A.foo всегда будет равно B.bar. Вот только это создает такую проблему, теперь оба компонента должны учитывать что значение foo и bar могут поменяться в любой момент, и не понятно кто инициировал изменения. Спокойно можно войти в состояние когда A меняет состояние, B синхронизируется и реагирует и снова меняет состояние, тогда реагирует A, и может быть появляется какие-то другие связанные компоненты. То есть мы можем быстро и просто схватить рекурсию. Если у вас на этой основе построена бизнес логика - то вам будет крайне сложно потом поддерживать эту систему, дебажить ее ад.

    Грубо говоря помимо того что дебажить эту систему становится тяжело, у нас появляется неявная зависимость между A и B, им нужно знать что они могут поменять друг дружку. А все неявное это не очень хорошо.

    Что можно сделать, можно разложить двустороннюю связь на составляющие. Односторонний биндинг из A в B и навесить ивенты если один из компонентов что-то меняет. В этом случае вы всегда можете поставить бряку и точно будете знать кто что поменял. Поддерживать такую систему куда проще.
    Ответ написан
    7 комментариев
  • Как совместить Laravel и Angular?

    dedalik
    @dedalik
    Веб разработчик
    Чтобы избавиться от фигурных скобок, нужно прописать в rotes.php следующее:
    // Using different syntax for Blade to avoid conflicts with AngularJS.
    // You are well-advised to go without any Blade at all.
    Blade::setContentTags('<%', '%>'); // For variables and all things Blade.
    Blade::setEscapedContentTags('<%%', '%%>'); // For escaped data.


    Если хотите начать на Laravel 5 и Angular 1.13, вот хорошо сделанный пример https://github.com/Zemke/starter-laravel-angular, сам проверял код работает, есть авторизация и Todo пример
    Ответ написан
    2 комментария
  • Как совместить Laravel и Angular?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    ответ - не пихать ангуляровские темплейты в blade, если вам надо каким-то образом передавать данные - то самый простой способ делать это так:

    angular.module('app.prefetchedData', []).constant('prefetchedData', {
        // some serialized data from laravel
    });


    все остальное - вынести в отдельные файлики или бандлить штуками типа webpack.

    Еще относительно правильный способ - экранирование (в blade же есть raw или что-то подобное как в twig?)

    Ну и третий вариант, сродни кастылю и вам должно быть слегка стыдно за его использование - в $compileProvider есть возможность установить как именно обозначается биндинг значений в angular.
    Ответ написан
    Комментировать