• Создание блога на Symfony 2.8 lts [ Часть 4]
    0
    Не знаю, к счастью или к сожалению, но фреймворки лишь маскируют это отличие. Как только автор вышел за пределы фреймворка и начал писать на php, так сразу вылезла substr, которая не дружит с юникодом. Да и truncate для твига есть в экстеншинах, не знаю включён ли он по дефолту в симфони. И я бы счёл это за ошибку в спешке, если бы не пример с php-шаблоном, где автор проигнорировал экранирование выводимых данных, что является смертным грехом и едва ли не главной фичей твига в сравнении с нативными шаблонами.
  • Настройка Laravel relationships — подсчет комментариев (вольный перевод)
    +2
    В новой версии добавят готовый метод. Убегаю, пруф позже сброшу.
  • Правильный оффер при устройстве программиста в офис
    –1
    linedin, удивился не увидев его вообще в списке источников. К сожалению, это убожество стало стандартом де факто для работы в айти.
  • Правильный оффер при устройстве программиста в офис
    0
    Да, российские эйчары удивляют своей дремучестью. Программистов ищут на hh, а вилку зарплаты берегут как гос тайну.

    Просто оставлю пример.

    Dear Slava,

    I found your contacts at our database and thought you may be the person my clients are looking for :) Now I'm searching for Senior JavaScript developers. Would you be interested in job opportunities at the moment?

    Project descriptions:
    1. Enterprise solutions for business process automation (Germany product company, Kyiv)
    2. Complex employee management portal (American start-up company, Kyiv)
    3. JIRA and other products development (Polish outsourcing company, Gdansk)

    Responsibilities:
    • Design and implement web applications, specializing in the user interface of the product, but often work at the back-end also
    • Code, develop, test, debug, and design features and portions of software
    • Perform code reviews for best practices
    • Refactor code as necessary
    • Take responsibility for code that you’ve written

    Main requirements:
    • 3-4+ years coding in Javascript or/and PHP
    • Familiarity with AngularJS or similar frameworks
    • Experience with HTML5, CSS, Bootstrap, LESS, SASS
    • JS OOP and Pаtterns
    • Some experience with version control (GIT, TFS)
    • Кnowledge of cross-browser web development
    • Deep understanding of web projects architecture
    • English — upper-intermediate+

    Companies offers:
    • Highly Competitive compensation (depending’s on Cаndidate level, up to 4000 USD NET);
    • Long-term employment;
    • Attractive benefits package (paid sick leave, vacations (25 working days));
    • Web-based courses on HTML5, CSS, JavaScript, MVC, C++, Linux, Git & more for those who are ready to constantly improve their professional level;
    • Free English classes;
    • Gym membership reimbursement;
    • Thousands of interesting customers including NASA, Sony, and the United Nations;
    • Fully equipped kitchen
    I'll try to answer on all your questions in case of your interest. Thank you for feedback in advance :)


    Best regards,
    Miroslava Nazarenko
  • От любви до ненависти — один шаг, или как я разлюбил магию в ActiveRecord
    +1
    А с чего вы взяли что ваша проблема в мутаторах? У вас проблема явно в другом месте.
    Покажите код OrderFilter
  • Фильтрация данных в Symfony
    0
    В этом и беда, что в одном месте. Например, переносы строк для вывода в теге «p» проходят через «nl2br», а вот при выводе в форме нужно использовать «htmlspecialchars», но никак не «nl2br».

    Подобную логику нельзя сунуть в модели, можно делать отдельный сервис в стиле декоратора вроде view presenter или data transformer
  • Введение в PHP 7: Что добавлено, что убрано
    +2
    http://php.net/manual/ru/migration70.deprecated.php
    http://php.net/manual/ru/errorfunc.constants.php E_DEPRECATED
    Дасточно просто включить правильный уровен ошибок и все устаревающие методы вы уберёте задолго до выхода следущей стабильной версии. Ну а вещи вроде $$foo['bar']['baz'] — это гавнокод, которого не должно быть в нормальных проектах.
  • Горький опыт создания игровой компании
    +3
    Нужно было начинать список с главной проблемы
    № 0 — маркетинг.
    Первая игрушка очень симпатичная, дети играют в похожие с графикой даже похуже, и сроки нормальные на разработку, но не смогли нагнать покупателей. В итоге пошли неправильные выводы и смены концепций, да и бюджет видимо неслабо вырос.
  • Компания Adobe выпустила экстренный патч для исправления критических уязвимостей Flash Player
    +2
    Флэшик, выздоравливай. Как ютубик перешёл на хтмлчик пятый, так житься нет, то проблемы с разворачиванием в полный экран, то аудио сжирает 100 процентов проца.
  • Можно ли заниматься разработкой на iPad?
    +2
    Последнее время даже на 15' ноутбуке разрабатывать не могу, скорость разработки падает в два-три раза в сравнении с обычным рабочим местом (замерял). Код на скриншотах как бы намекает на причину такой острой нужды.
  • Автоматизация workflow небольшой команды разработки (Часть 1)
    0
    А почему ревью не делаете прямо на битбакете в пулл реквесте?
    И про сумму расскажите, а то стек хороший, но денег просит при том, что есть аналоги схожей функциональности, тот же гитлаб имеет и вики, и битбакет заменит, и трекер, и код ревью проводить можно.
  • Про роль техлида
    +1
    Мы последних пять лет даже без «старшого» обходимся. Все кодеры равны, сложные решения принимаются сообща. От этого много профита в сравнении с выделением тимлидов, техлидов, архитекторов…
  • CSS-модули
    –1
    Чтобы не дублировать http://habrahabr.ru/post/270075/?reply_to=8641825#comment_8641835
  • БЭМ — методология развешивания костылей
    +1
    По поводу первого кейса я писал
    >>Нельзя делать глобальных классов.
    БЭМ же тоже от такого не спасает, определит что-то стили для «div» и полчишь глобальные проблемы. Точно так же не спасет от каскадности, если есть правило для block, оно проникнет и в вложенные block__element.
    Проблему вложенности решается через более стогие правила css вроде
    .block > element {}
    плюс можно использовать того же less и заинклудить в .block. element правила .other-block, тогда за счёт более весомых селекторов будут применяться нужные, плюс в качестве бонуса получим возможность стилизовать вложенные блоки.

    Используешь ты БЭМ или нет, каскадность CSS у тебя остаётся и проблемы с ней те же.
  • БЭМ — методология развешивания костылей
    0
    Бум. Что-то мы друг друга не понимаем. Я как раз и говорю, что достаточно использовать вложенность стилей и они будут разнесены по нейспейсам, не пересекаясь. Нельзя делать глобальных классов. А вот
    ".block .element {}" и ".other-block .element {}" хотя и имеют совпадающий класс element, но они разные и стили не пересекаются. В тоже время, если их оформление совпадает, то можно использовать миксины, например
    .block {
         .element { color: red; }
    }
    .other-block {
        .element {
             color: blue;
             // если хотим миксин - .block .element;    
         }
    }
    

    а в коде
        <div class="block">
            <div class="element">Красный цвет</div>
        </div>
        <div class="other-block">
            <div class="element">Синий цвет</div>
        </div>
    

    а в случае BEM было бы что-то вроде block__element--color-red и block__element--color-blue, и в случае если нам подадобится поменять цвет, нужно править и стили и шаблоны.
  • Ещё раз про семь основных методологий разработки
    +6
    Просто удивительно, как мнеджеры любят изобретать велосипеды, читать модные книжки по управлению проектами, ходить на треннинги, получать сертификаты, обязательно певать в сторону водопадной модели, но при этом умудряются так и не прочитать десять страничек о ройсовских водопадах.
  • CSS-модули
    0
    С чего это будет матчится button?
    если одна кнопка
    .my-mega-widget .button {}
    а вторая совсем в другом неймспейсе
    .my-another-mega-widget .button {}
    <style>
    .mega-widget .button { color: red;}
    .my-another-mega-widget .button { border: solid 1px red;}
    </style>
    <div class="mega-widget"><button class="button">mega-widget</button></div>
    <div class="my-another-mega-widget"><button class="button">my-another-mega-widget</button></div>
    


    При этом используя less можно сделать миксин, чтобы не было дублирования или добавить возможность наследования и расширения.
  • БЭМ — методология развешивания костылей
    +2
    .block .element ничем не уступает block__element, а как вложенность растёт так и БЭМ преврашается в ужос. Чтобы прописывать это в шаблоны нужен ещё один предпроцессор или плагин как вы приводили для ангуляра. Чтобы эти классы запомнить и раставить нужны жирные мануалы. Плюс зачем-то выпячиваю наружу вроде детали оформления btn__color--grey. Никто не мешает без БЭМ договориться о правилах именования. Нормальный верстальщик затем практически любое оформление сделает не лазя в шаблоны, а только используя css+less.

    БЭМ же не единственная методология, вроде мода с появлением препроцессоров на них прошла, а здесь яндекс выкатил свою погремушку с тяжёлым наслением от любви к xslt шаблонам. И школота потянулась на громкое имя, лепят свой БЭМ, а в реальности ляпают инлайн стили когда английские слова заканчиваются.
  • БЭМ — методология развешивания костылей
    +1
    Отличные примеры, хочешь показать что такое плохой БЭМ, покажи их.

    первый вовсе надстройка над bootstrap с его глобальными b-btn b-btn_green b-btn_block, ну и масса прочей лапши
    второй получше, но це ужос footer-nav-list__foo dropdown__menu__item
    два последних проекта вовсе напичканы инлайн стилями.
  • БЭМ — методология развешивания костылей
    0
    Да, пожалуй я погорячился, без предпроцессоров css совсем плох на больших задачах. Но Бэм так же задачу не решает, он тащит за собой аналогичый инструментарий.
  • БЭМ — методология развешивания костылей
    +1
    Добавляются новые эффекты и новые типы селектов, идея остаётся той же как и обратная совместимость. Именно гибкость селектов направлена на богатый UI, а БЭМ от него отказывается в сторону точных классов на конкретный элемент, это его очередной минус. Яндекс всё же не контора про красивые и динамичные UI.
  • БЭМ — методология развешивания костылей
    +2
    Почему современные? CSS сто лет назад придумали умные люди и сделали его с большим запасом прочности. Создание модулей-компонентов уже заложено в CSS, а БЭМ это тоже но со своими костылями и ограничениями, этакий антивирус бабушкина.
    И меня удивляет их агрессивное навязывание этой технологии, которая очень неудобная, требует своего инструментария и противоречит тому, чему ещё недавно учил яндекс — семантической разметке.
  • БЭМ — методология развешивания костылей
    +6
    У меня от БЭМ сильное чувство, что ребята как-то недопоняли CSS, не осилели LESS и в итоге налепили велосипедов. Но вот удивляет, что тепреь набравшись опыта и знаний они вместо того чтобы забросить велосипед, они активно его продвигают сравнивая с говновёрсткой с глобальными классами и оправдывая некой скоростью, которая даже во времена ie 5.5 уже была неактуальна.
  • Puli: Управление ресурсами в php приложениях
    +1
    Так он проблем не решает, а только добавляет, по функционалу это обычный finder, который ищет файлы по пулу путей. А проблемы ресурсов он никак не решает, только создаст лишнюю прослойку.
  • Puli: Управление ресурсами в php приложениях
    +3
    Это антипаттерн — павлик морозов. Управление ресурсами — задача самих пакетов, они должны публиковать ресурсы через api фреймворка, а не сторонний пакет который лазит в чужие внутренности.
  • 19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек
    0
    Если та же, так в чём проблема? Делайте её независимой от родительского блока, БЭМ же использует тот же CSS, только без фичи каскадности.
    А по поводу модификаторов — отличная шутка, отказаться от ангуляра в пользу решения яндекса из-за загонов верстальщика.
  • 19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек
    0
    В том то и дело, что это абсолютно другая кнопка в другом блоке, которая покуда что выглядит так же. Потому ты просто пользуешься миксином или импортом, в дальнейшем миксин можно будет либо параметризовать, либо переписать, если вид кнопок разойдётся. При этом все изменения на уровне стилей в less не затрагивая класы в шаблоне.

    Вот у нас проект с богатым клиентом на angular, логика отображения прописана во вьёхе и дерективах, она замешена на разметке и класах, а тут плюх кнопку решили сделать синей и меняют класс btn-color-red на btn-color-blue -color-text--green-600, валится директива, валятся тесты, верстальщик лезет в шаблоны и дай бог там ничего больше не заденет. И это я не теоретизирую, разве что немного гиперболизирую, но сталкивался на практике, активная реклама БЭМа яндексом делает своё чёрное дело.
  • 19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек
    0
    Так не надо использовать глобальные стили, есть блок-контейнер, внутри него стили, которые не лезут за пределы контейнера. Ну а с less-ом всё становится вообще прекрасно. Ну а скорость селекторов — это даже не смешно с современными мощностями даже в дешёвых смартфонах.
  • 19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек
    0
    Вот, вордпресовский шаблок как раз демонстрирует во что превращается разметка, когда не используешь возможности css, а придумываешь 100500 класов. Помимо кучи лишних классов, они ещё и глобально прописаны. Тоже полный БЭМ, можно было обойтись просто заметой стилей для стандартной разметки и без модернайзеров. Но и на том авторам спасибо, читать удобно.
  • Новый PHP, часть 2: Scalar types
    +1
    Так я об этом и пишу, скаляры надо обрабатывать либо заворачивать в объекты вроде Money или Int, потому и разделяю их.

    Про неймспейсы — хрен редьки не слаще. new sfRequest было гораздо удобнее use Symfony\Component\HttpFoundation; new Request;
    Есть исторически сложившиеся моменты из-за которых нет нормальной возможности их реализовать удобно, чтобы использовать use Acme\*, нет приватных классов из-за чего скоуп загажен служебными классами и неймспейсами.

    Я вот решил написать статейку как мы в кучерявые времена делали свое неправильное DDD. Начал переписывать примеры с php4 на php5 и ловлю себя на мысли, что с интерфейсами и неймспейсами кода стало ещё больше писаться.
  • 19 принципов разработки по БЭМ, или что должен знать каждый разработчик библиотек
    +2
    Пока яндекс не стал вкладываться в продвижение бэма это считалось плохими практиками, хорошим стилем было использование каскадных стилей и семантической разметки с классами не завязаными на расположении или цвете элемента. Я всегда знаю, что список будь то меню или пагинатор имеет одинакову разметку, отличаясь лишь контейнером и мне не искать какой класс прописывать, один и тот же шаблон можно использовать в разных проектах, а верстальщик всё изменит с помошью стилей, не меняя самой разметки.

    А вот это ад, который могут себе позволить только большие бюрократезированные компании из вашего списка
    <header class="demo-header mdl-layout__header mdl-color--white mdl-color--grey-100 mdl-color-text--grey-600">
    вместо
    <header class="demo">
    
  • Новый PHP, часть 2: Scalar types
    0
    >>А почему такое разделение на скаляры и объекты?
    Потому что в вэбе почти всё строки, от того утиная типизация в php так удобна и экономит столько времени, сил и средств. А все эти новые костыли работают очень криво, от неймспейсов я до сих пор офигеваю открыв исходник и увидев шапку из use.
  • Новый PHP, часть 2: Scalar types
    0
    Клиент то точно не должен иметь возможности указывать как мне обрабатывать параметры метода, это нарушает принцип чёрного ящика и ведёт к непредсказуемым результатам. Потому всегда нужно приводить данные к нужному виду, а не доверять пользователям.

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

    А если где-то критично важен тип, то не надо принимать скаляры, проси их завернуть в обёртки для примитивных типов, создав Acme\Int, Acme\String, тайпхинтя по ним и работая с умными объектами.
  • Новый PHP, часть 2: Scalar types
    –1
    Типизация здесь не решает, в той же sql-инъекции строка остаётся string несмотря на наличие кавычек. Лучше в коде явно привести параметр к int, чем каждый раз падать из-за неправильно переданного параметра. Последнее время на проектах некоторые части ипишек на .net или java, сил нет бороться с их 500-ми и трейсами, даже есть правило, если апишка не на php, умножаем время разработки в три раза.
  • Эволюция сетевых способов диалогового общения. Часть II
    0
    В этом и дело, что мы с вами — это не весь мир. При выборе месенджера приходится ориентироваться на круг общения, а по итогу ты себе заводишь 100500 софтин, потому что со времён icq нет ни одного нормального месенджера для чатов.
    Одни завязаны на мобилку. Вторые на номер телефона не позволяя заводить несколько аккаунтов. Третьи на свою социальную сеть. Остальные просто глючные или недостаточно популярны. И повсеместно проблемы с неудобными контакт листами, историей, синхронизацией между девайсами.
  • Эволюция сетевых способов диалогового общения. Часть II
    +3
    Почему вы считате вайбер таким популярным? QQ, WhatsApp гораздо популярнее https://devby.s3.amazonaws.com/ckeditor_assets/pictures/14632/content_messangers.jpg
    И почему считаете, что потеря аккаунта — это допустимо. Потерять настройки, историю, групповые чаты — это эпик фейл.
  • Эволюция сетевых способов диалогового общения. Часть II
    0
    Вайбер вообще не альтернатива, очень кривая поделка, выезжает только на фишке с простой регистрацией для блондинок. В то же время для нормального использования жесткая привязка к номеру это минус. Да и качество ужасно, уже дважды терял аккаунт после обновления под win phone. Страшно сказать, но аська в 100500 раз лучше и функциональнее, хотя проблемы с безопасностью в начале 2000-х набили оскомину. Сейчас вроде лучше, даже видеозвонки появились, но из-за русскости она уже не воскреснет. Для чатов прекрасное решение, которое уже более десятка лет служит, просто работает, но мэйловцы разогнали всех пользователей.

    У скайпа же нет альтернатив. Видеоконференции вне конкуренции и громная распостранённость. hangouts и качеством хуже, и кросплатформенностью, и гугл с кармой убийцы, gtalk до сих пор памятен.
  • Реализация многоязычности на Laravel 5 силами фреймворка
    0
    Возможно, вы удивитесь, но в столь же древнем фреймворке seagull уже было Middleware, называлось filter chain. Сейчас многие фишки того времени прошли ребрендинг и набирают популрность: composer — pear, pear libs — symfony components, middleware — seagull filter chain, zephir — pecl
  • «Убийца Bootstrap» — Material Design Lite. Версия 1.0.0
    0
    Ну это не я предлагаю, на сайте самого ангуляра есть пример .make-row() getbootstrap.com/css/#example-usage
    Хотя я им не пользуюсь, не нравится что он вставлет margin.

    Смысл в том, что ты используешь бетстрап как фреймворк, а вёрстка нормальная, семантическая, а не засраная бустраповскими терминами.
  • Skype повернулся лицом к людям?
    +4
    Это же хорошо, что линукс игнорируют, уже пару лет на линуксе без проблем. А под виндой все эти переписывания интерфейсов, реклама и даже парсеры ссылок глючные. Ну и новоcть о веб версии как раз движение в сторону мультиплатформенности. Текстовы клиент у них уже был очень давно встроенный в онлайн документы вроде onenote, сейчас плагин для аудио-видео звонков допилят. С приходом майкрософт началось движение в лучшую сторону, но пока с кучей кучей и граблей.