• У Вас проблемы с legacy — значит, Вам повезло! Распил монолита на PHP
    0

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

  • Интеграция PHP проекта на GitHub и Scrutinizer
    +1

    Пользуюсь сервисом уже лет 6-7 и тоже оценка обычно держится в районе 9-10)

  • Интеграция PHP проекта на GitHub и Scrutinizer
    +1

    Советую еще посмотреть в сторону статических анализаторов типа PHPStan и Psalm.

  • Самое интересное в PHP 8
    0

    Ясно. Спасибо. Значит продолжаем ждать.

  • Самое интересное в PHP 8
    0

    Ну resource|false это все таки не union тип. Это микс из типа и одного из значений типа. Если говорить о union, то это будет resource|bool, что подразумевает, что true так же является возможным возвращаемым значением. В этом то основная проблема.


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


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

    А есть какие-то ссылки подтверждающие, что это планируют именно в PHP 8? Разговор об этом ведется уже много лет, еще со времен PHP 5.4 кажутся, но подвижек я как-то не заметил.

  • Самое интересное в PHP 8
    0

    Мне вот интересно, а в PHP 8 собираюсь ломать обратную совместимость?


    Былоб интересно например рассмотреть замену возвращаемого типа данных для функций типа fopen(), fsockopen(), mysql_connect() и т. д. в случае ошибки.


    Сейчас:


    /**
     * @return resource|false
     */
    fopen(/* ... */): mixed

    А могло бы быть:


    fopen(/* ... */): ?resource
  • Продуктивное использование PHPStorm
    0

    через alt+insert будут создаваться getters and setters в месте куда поставишь курсор

  • Browser Fingerprint – анонимная идентификация браузеров
    0

    Мы не пользуемся Адвордс

  • Browser Fingerprint – анонимная идентификация браузеров
    0

    Спасибо за разъяснение. Мы пользуемся fingerprint и пока без проблем. Будем мониторить ситуацию.


    Попробуйте минифицировать js и добавить его к другим скриптам таким как modulestat2.min.js и jquery.ck.js.

  • Browser Fingerprint – анонимная идентификация браузеров
    0

    Вы уверены, что Google блокирует именно fingerprint? Вы уверены в том, что этот nicetraffic не подмешивает ничего лишнего в js который вы подключаете на своем сайте?
    Меня например сильно смущает домен вида www.static.nicetraffic.ru и смущает то, что я не могу посмотреть содержимое подключаемых скриптов https://www.static.nicetraffic.ru/fingerprintjs2/fingerprintjs2.js

  • Web PUSH Notifications быстро и просто
    0

    А что, cURL это сложно? Или вы имеете что-то против конкретно PHP?
    Приведенный пример легко портируется на любой популярный язык программирования будь то Python, Java, Node.js или Go. Можно и через bash пуши отправлять (пример).

  • Может, нам слегка успокоиться с JavaScript?
    +1

    Ну как сказать. Это заметное увеличение объема работ которые ещё должен кто-то оплачивать. Это уже давно не актуально для поисковиков. Для шаринга в соцсеточках достаточно отдать og: теги. Вот и получается, что это нужно для крайне малого процента пользователей с NoScript и сомнительных грабероф. Поправьте меня если я ошибаюсь.


    Как уже писали выше, если вы не входите в ЦА, то почему за вас должен платить бизнес? А главное, почему из-за вас должны страдать пользователи из ЦА из-за добавления полифилоф, хуков и прочего? Да и безнес будет компенсировать увеличение расходов за счёт увеличения цен для ЦА.

  • Может, нам слегка успокоиться с JavaScript?
    0

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

  • Может, нам слегка успокоиться с JavaScript?
    0

    Не понимаю всей этой шумихи с <textarea>. Все WYSIWYG редакторы текста или кода, которые мне когда-либо попадались, начинаются с textarea. То есть, в вёрстке добавляется элемент ввода textarea и после загрузки страницы он переколбашывается js-ом в полноценный WYSIWYG. То есть, по у молчанию у всех WYSIWYG редактором есть совместимость с NoScript. Аналогично с кастомизацией select, input[type=file] и т. д.


    Зачем Twitter решил использовать WYSIWYG для сообщений уже другой вопрос.
    Первое, что пришло в голову — для оптимизации создания твитта и уменьшения вероятности внесения правок в него после публикации или полный запрет изменения твитта после публикации.
    Поясню. Оптимизация показа твитта во всех лентах может привести к удорожанию процедуры публикации твитта и внесение правок в твитт приводит фактически к повторению процедуры публикации твитта только ещё сложнее из-за необходимости найти твитт в других лентах. Цена внесения правок в твитт может измеряться во вполне реальных долларах (лет 8 назад разрабатывал аналог стены ВК для одной соцсети и я имею некоторое представление о вопросе). Поэтому, вполне логичным шагом может быть подключение WYSIWYG с целью оптимизации пользовательского интерфейса и уменьшения собственных расходов.


    Медленная загрузка страницы из-за обилия JS это конечно проблема и её надо решать. Во времена IE6 шел разговор о внедрении jQuery в браузеры. С появлением ES6, популяризацией движка Chromium и отказом от старых браузеров необходимость в jQuery резко сократилась. Но появилась новая проблема — фреймворки. Частично проблему решает SPA, и я не думаю, что белый экран у пользователей с NoScript повод отказываться от него.

  • PHP-Дайджест № 174 (10 – 24 февраля 2020)
    +1

    Можно попробовать плагин PHP Generics.

  • PHP-Дайджест № 174 (10 – 24 февраля 2020)
    0

    Дженерики можно описать в аннотациях и валедировать psalm или PHPStan. Это конечно не тоже самое, что натив, но лучше чем ничего.

  • Как организовать скины в Symfony
    0

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


    На мой взгляд, подход с настройкой LESS переменных применим для CMS и готовых движков форумов.


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


    Пример
    1. КиноПоиск
    2. Eva.Ru

    Бывает брендирование раздела по бренду, производителю, марке авто и т. д.



    А бывает брендирование страницы конкретного продукта или группы страниц одного продукта.


    Пример

    Вот для брендирования может подойти подход описанный в статье. Все стили и шаблоны описываются на фронте и упаковываются в скин. И остается только вопрос — как подключать этот скин или как сроутить скин для сущность.

  • Правила работы с динамическими массивами и пользовательскими классами коллекций
    0

    Хм. В моём понимании пользовательский класс коллекции — это класс описывающий набор однородных структур данных и позволяющий осуществить доступ к ним по средствам итерирования экземпляра класса. То есть, это класс в первую очередь реализующий интерфейс Iterator или IteratorAggregate.


    Вы делаете акцент на инкапсуляции операций map/reduce и лишь в самом конце упоминаете итерирование. Каждая ли коллекция у вас является итератором? И если нет, то как вы осуществляете доступ к данным в коллекции?


    Вообще, у нас похоже несколько разный подход к разработке. Я не часто работаю с обычными массивами, чаще с набором объектов. Я не припомню кейсов в которых мне нужно было бы фильтровать данные на клиенте. Обычно данные фильтруются на этапе извлечения их из хранилища. У нас коллекции чаще всего используется для потокового чтения или записи.

  • PHP дженерики уже сегодня (ну, почти)
    +1
    Phan и PHPStan не понимают специфичные аннотации psalm.

    PHPStan с версии 0.12.x понимает psalm аннотации и поддерживает дженерики

  • Ускользающий талант: Россия теряет лучших ИТ-специалистов
    0

    Безусловно. Есть люди которые едут и не в Германию. Есть те кто едет в Грецию например, Индию, Кубу. А есть иностранцы которые из Европы едут в Россию. Но это же тоже не показатель.

  • Ускользающий талант: Россия теряет лучших ИТ-специалистов
    0

    Простите. Вечно путаю Швецию и Швейцарию. Я имел в виду Швецию.

  • Ускользающий талант: Россия теряет лучших ИТ-специалистов
    +1

    Закон яровой и идея суверенного интернета явно указывает на то, что Россия движется по стопам Китая с их фаерволом. Но и США с их бесконечной слежкой и Европа тоже потихоньку движутся в том направлении. Да, не так активно как мы, но тоже.
    Я думаю года через 3 в России введут фаервол и другие крупные страны, посмотрев на опыт Китая, России и США тоже подтянутся. Это произойдет не скоро, но я уверен, что лет через 20-30 закончится открытый интернет.


    По сути, мы то поколение которое застало возникновение интернета, его становление, популяризацию, повсеместность и застанем его угасание, а возможно и смерть.


    Я с ужасом думаю о будущем интернета так как моя работа напрямую с ним связана и если тенденция сохранится, то лет через 10-20 я останусь без работы в не зависимости от страны в которой я живу.

  • Ускользающий талант: Россия теряет лучших ИТ-специалистов
    +1

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


    Да, наверное я сужу по себе, но я не слышал об интересных компаниях в Норвегии или Швейцарии. Зато знаю компании во Франции в которой я хотел бы работать и меня много раз активно зазывали работать в Германии и Англию.


    Да и климат в Германии и Франции лучше чем в Швеции и Норвегии. И много Российских и Украинских разработчиков уехало в Германии, по этому там проще найти земляков с которыми можно пообщаться нормально на Русском языке. Можно долго перечислять преимущества стран центральной Европы.

  • Ускользающий талант: Россия теряет лучших ИТ-специалистов
    0

    Ну вы же и не будете переезжать в Норвегию или Швейцарию. Вы поедете в Германию, Англию, Францию где больше платят

  • Фреймворк для создания микросервисов на PHP
    0

    Добавил несколько. По возможности, опишу остальное.

  • Фреймворк для создания микросервисов на PHP
    0

    раз такое дело, оставлю здесь на почитать про Чистый код
    https://github.com/peter-gribanov/clean-code-php

  • Фреймворк для создания микросервисов на PHP
    +1

    Некоторые рекомендации довольно спорные :(

  • Парадигма разработки через комментирование
    +1

    Так просто заменять 8 на 7 неправильно. Надо понимать, что за этим стоит.
    8-10-7-903-XXX-XX-XX
    8 — выход на междугороднюю связь
    10 — выход на международную связь
    7 — код страны
    903 — код города или оператора
    XXX-XX-XX — телефонный номер абонента


    Для упращения код 810 заменили на +.
    Таким образом, номер с +7 это полный международный номер, а номер начинающийся на 8 это номер в пределах страны. Для Греции например код страны 30 и звонить можно как по номеру 81030… так и по +30… И соответственно, если пользователь ПО в Греции, то 8 должно заменятся на +30, а не на +7.

  • Парадигма разработки через комментирование
    0

    А что, система контроля версий уже не канает как база для хранения комментариев к измеренному коду?

  • Парадигма разработки через комментирование
    0

    Тогда уже BDD

  • Умные столы на работе и дома. Итоги конкурса «Предложи фичу»
    0

    Да. Тут вы правы. Работа за компьютером в темноте утомляет глаз.
    Подсветка монитора типа Ambilight увеличивает яркость яркого пятна и смягчает его края не решает проблему контраста света в помещении и яркости монитора. Лучше включить настольную лампу или свет в помещении. Здесь большую роль играет боковой свет и освещенность клавиатуры.

  • Умные столы на работе и дома. Итоги конкурса «Предложи фичу»
    0

    Ну это если ваш телефон поддерживает беспроводную зарядку. Мой например нет. В этом случае вы сэкономите только на проводе от зарядке для телефона и все. Большей экономии можно добиться взяв моноблок.

  • Умные столы на работе и дома. Итоги конкурса «Предложи фичу»
    +1

    эээ… Совсем нет. Во первых это для телевизоров, а во вторых это направлено на дополнение реальности. Дополнительный эффектов для улучшения восприятия фильма с экрана. Это ни как не относится к работе за компьютером.

  • Умные столы на работе и дома. Итоги конкурса «Предложи фичу»
    +2

    Довольно сомнительные решения.


    • Пилот в столе выглядит удобно, но это значит, что все провода от него будут лежать у вас на столе и мешаться.
    • Пилот на 2-3 розетки это прям впритык и скорей всего не хватит на все что нужно.
    • USB в пилоте выглядит удобно, но как мы знаем, разъем USB при активном использовании очень быстро приходит в негодность и заменить его если он встроен в стол сильно затруднительно. На практике у нас несколько раз сгорали компьютеров из-за поломанных USB на морде системника.
    • USB в торце стола выглядит интересно, но выламываются такие просто на раз. Проверено.
    • Беспроводная зарядка действительно хорошее решение, но она сильно привязывает нас к позиционированию телефона на столе и соответственно позиционированию нас относительно стола. Сесть чуть правей, чуть левей или чуть под углом уже нельзя.
    • Подогрев кружки встроенный в стол также сильно ограничивает наши возможности позиционирования относительно стола.
    • Колонки встроенные в стол очень плохая идея. Качество звука скорей всего чуть лучше чем у динамиков в ноутбуке. В офисе в колонках особо ничего не послушаешь, а дома можно и нормальные колонки поставить. Единственный кейс который я себе представляю это Skype конференции для больших боссов. И бумаги ни какие на стол не положишь, потому, что перекроешь колонки. Колонки открытые, направлены вверх и чуть утоплены в поверхность стола, это значит, что там будет собираться куча пыли и весь мусор и крошки который вы будете стряхивать со стола окажется в этих колонках, а выскребать их от туда будет сильно затруднительно.
    • Столы типа крыло выглядят красиво и необычно, но с практической точки зрения не удобны. У нас на работу подобные стоят и все плюются. Стол широкий, больше чем нужно и на края ничего не положишь. При этом стол не глубокий и ноги особо не вытянешь и разместить клавиатуру так, что бы локти лежали на столе также затруднительно. Из-за неправильной формы возникают проблемы с тем, что бы впихнуть их в ограниченное прямоугольное пространство. Классические прямоугольные столы в разы лучше впихиваются.
    • Регулировка высоты штука классная. Можно идеально подогнать высоту стола под свой стул и свои удобства. Но как сказали выше, это требуется сделать один раз и все. После этого эта функция потребуется только если вы решите сменить стул на другой с другой высотой, причем еще стулья должны быть не регулируемыми по высоте, иначе проще стул поднять чем стол.

    На мой взгляд, лучше простой ровный стол, без излишеств и с одной дыркой по центру стола в которую уходят все провода и нормальный органайзер для проводов под столом. А если хочется отдельную зарядку для телефона на столе, то на мой взгляд лучшим решением будет эта настольная лампа от IKEA.

  • Умные столы на работе и дома. Итоги конкурса «Предложи фичу»
    +2

    боже упаси. лишняя подсветка добавляет нагрузку на глаза которые и так вечно устают

  • Типобезопасная работа с массивами PHP
    0

    или можно взять что-то по проще
    https://github.com/gpslab/payload

  • Права компании на код программистов
    0

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


    Вот я и думаю, имеет ли работодатель права на такие проекты? На сколько я понял из стать, в большинстве случаев не имеет, но бывают исключительный кейсы. А где грань тогда?

  • Типобезопасная работа с массивами PHP
    0

    Тогда уж должно быть так:


    $isDiffer = $after->get($code)->str() !== $was->pull($key)->pull()->get('VALUE')->str();

    Хотя из кода совершенно не понятно, что это за магическое условие.

  • Типобезопасная работа с массивами PHP
    0
  • Типобезопасная работа с массивами PHP
    0

    удалено