• Получил заказ на первый сайт от знакомых, выбираю бэкенд систему - cms либо python, что в связи с этим посоветуете?

    Язык программирования, фреймворки, CMS и т.д. - это только лишь инструменты для выполнения главной задачи: решить бизнес-проблему заказчика.
    С этим пониманием сделаем вывод, что выбирать инструмент нужно наиболее подходящий к задаче, но так же надо учитывать и то, насколько хорошо вы владеете тем или иным инструментом. Но всё же научиться пользоваться молотком гораздо быстрее и проще, чем мучиться, забивая гвоздь микроскопом.
    А при слове "визитка" мой опыт громогласно кричит WordPress!
    Ответ написан
  • PHP - как показать изображения в браузере из папки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я хочу вынести ее из публичной папки.
    Зачем? Есть какая-то особенная необходимость? По логике все файлы сайта должны находиться в одной папке проекта, а файлы видимые из веба в публичной папке проекта. В некоторых случаях, например когда эти файлы не должны отдаваться без какого-то уровня доступа, их выносят выше публичной папки, таким образом закрывая от прямого доступа из веб. Далее доступ осуществляется через пхп, конкретная реализация сильно зависит от задач и имеющегося кода/фреймворка. Простейший вариант - имя файла читается как параметр из урл, далее делается readfile() из этой папки с файлами, предварительно отдаются заголовки, указывающие что это файл изображения. Хотя без понимания "зачем" реализация "как" это тыканье пальцем в небо. Может вам симлинк тупо подойдет...

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

    @Kolt_DA
    Здравствуйте! На моём проекте есть очень похожая проблема. Полностью решить её я не смог, но в моем случае, причиной стали иконки. Конкретно, .svg у которых есть stroke. Звучит странно, но реально из-за этого были похожие визуальные приколы. Собственно, их удаление или замена на .svg без stroke ,решает проблему.
    Ответ написан
    Комментировать
  • Как лучше поступить в данный момент?

    GavriKos
    @GavriKos
    пойти на очку и понять что если цель - это макбук 2020 года - то все плохо.
    Ну на заочку тоже можно - только неясно потянете или нет еще и работу.

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Не надо ничего никому обьяснять. Готовьтесь к вступлению в жесткий и безжалостный мир взрослых :) Заочка и фриланс лучше чем просто фриланс :) Заочка и стабильная работа лучше чем заочка и фриланс.
    Родители Ваши обязаны Вас содержать ровно до момента восемнадцатилетия - а дальше как договоритесь, дальше их обязанности с точки зрения законодательства закончены, к этому моменту Вам было бы зело неплохо самому себя обеспечивать :)
    Вот Юлия Бедросова совершенно правильно сказала - когда сами сможете оплачивать аренду хаты, еду и все прочее нужное для того, чтобы жить одному (а если уже и не одному - это вообще плюс стопицот) - вот тогда Вас и родители зауважают.
    Ответ написан
    Комментировать
  • Как лучше поступить в данный момент?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Обьяснить довольно просто. Давите финансами.
    А насчет обучения думайте. Лучше конечно заочка и работа в оутсорс фирме. За 3-4 года поднимите свой уровень до мидла.
    В итоге через 3-4 года вы будете иметь

    * опыт работы и подтвержденные проекты
    * диплом
    * подушка по деньгам
    * какие то связи с однокашниками
    * возможно у вас в институте будут программы обмена студентами
    Ответ написан
    Комментировать
  • Как использовать ООП в контроллере Laeavel?

    @vism
    создаёте папку services и внутрь пихаете бизнес логику.

    61589552f391e310838520.png
    Ответ написан
    Комментировать
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

    Таким образом мы можем менять поведение класса, не меняя его код

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


    Похожим на сервис локатор является сервис- или DI-контейнер. Используемый вручную, он является тем же самым сервис локатором. Поэтому вручную его никогда не надо вызывать - что и запрещается в симфоневских конроллерах - а только для автоматического создания классов. В МВЦ у тебя ведь очень многие объекты создаются автоматом - сущности, контроллеры. И вот для того, чтобы при автоматическом создании экземпляра класса у тебя были на руках все требуемые сервисы - и нужен контейнер.

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария
  • Правильно ли начинать путь во фронтенд с битрикса?

    DevMan
    @DevMan
    если вы хотите конкретно фронтенд, то битрикс вообще не упёрся: там упор на бэкенд.
    Ответ написан
    2 комментария
  • Почему искажается превью в php?

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

    Что касается PHP, gd поддерживает кучу разных алгоритмов интерполяции (вторым параметром к imagescale). Потестируйте, что лучше сработает именно в вашем случае.
    Ответ написан
    Комментировать
  • Зачем нужно тестирование?

    @programrails
    Я лично думаю, что тесты - это образчик типично западного лицемерия - как в сказке Андерсена "Голый король". Тесты - это чушь собачья (точнее, чушь свинячья). Полезность тестов - вымышленна. Тесты были изобретены на Западе - и они чужды по духу русскому человеку - ввиду своего чудовищного (типично Западного) лицемерия. Сторонники тестов пытаются что-то там такое невразумительное говорить (в защиту тестов) - но никто им не торопится верить - отсюда, собственно, и появился данный вопрос на данном форуме - если бы полезность тестов была реальна - люди бы не спрашивали, зачем они нужны - а просто пользовались бы ими. Все, кто выступает в защиту тестов - я думаю, лишь послушно повторяют цитаты из западных учебников - вместо изложения своих собственных мыслей. Конечно, ведь так хотят работодатели - так как же можно выступить против них?

    Где, скажите, убедительно-неопровержимые доказательства нужности тестов как таковых? Их нет. Взамен предлагается просто поверить на слово в "полезность" тестов. Кроме того, написание тестов отнимает уйму времени и само по себе является источником ошибок. Намного быстрее и эффективнее просто проверить руками тот или иной функционал - чем писать для этого тест - как правило, на чрезвычайно неудобном, корявом и глючном тестировочном языке.

    Писать же тесты ДО написания кода - это вообще ВЕРХ абсурда. Неужели непонятно, НАСКОЛЬКО противоестественно это занятие? Это просто дичь какая-то. Даже сами западные авторы учебников по тестированию об этом пишут - я прочёл несколько западных учебников по тестированию, пытаясь найти хоть какой-то смысл в тестах - они пишут, что BDD хорошо не более чем в 20% случаев.

    Использовать тесты как защиту на будущее - "если что-то поломается при новых правках"? Ну извините, а не слишком ли дорогая цена - для 90% проектов? Да, может быть, на каком-нибудь миллионно-посещаемом сайте это и оправдано экономически - но на подавляющем большинстве сайтов - едва ли.

    И вообще - даже если и идея автоматизирования тестирования и носит разумное зерно - почему нужно СПЕЦИАЛЬНО вручную писать тесты? В лучшем случае, это должно быть сделано так: ты тестируешь РУКАМИ какую-то фичу - а программа при этом АВТОМАТИЧЕСКИ запоминает всю последовательность ручных тестировочных действий (и потом воспроизводит при нужде). Только так это имеет право выглядеть. Я немного утрирую, конечно - но суть в том, что это безумный абсурд - писать тесты руками - тратя на это уйму времени и генерируя тем самым новые ошибки.

    Короче, я для себя лично пока что решил так: писать тесты только для западных заказчиков - чтобы их душа была спокойна. И делать тесты как можно правдоподобней при этом - максимально выдавая их под якобы действительно нужную и полезную вещь (с точки зрения западного менталитета). Вот моя чисто практическая рекомендация. У них там на Западе множество идиотизмов, не понятных (и чуждых) русскому человеку - и это один из них.

    Так что я действительно искренне не понимаю - зачем нужны тесты - и считаю, что они и не нужны на самом деле - а нужны исключительно для введения в заблуждение западных заказчиков - и больше ни для чего. Во всяком случае, в том (нелепом) виде, в котором они (тесты) существуют сейчас. Я же свой код тестирую руками - и это намного лучше и эффективней тестов. Да, я не говорю, что я не тестирую свой код - тестирую обязательно (а как же без этого) - но только руками. Может быть, и есть в отдельных случаях смысл написать именно тест - если руками тяжело и долго воспроизводить тестировочно-проверочную последовательность действий - но это как исключительный случай. Западное же требование покрытия кода тестами под 80-90% - вообще полная чушь - бездумная и шаблонно-тупая. Они ведь там тоже не семи пядей во лбу - а главное, что на Западе категорически запрещено думать своей головой - это только в России пока позволено (и то не каждому, как очевидно).

    Я против тестов (в нынешнем их виде). Тем более, я против TDD. Но я не против тестирования - но только ручного.

    Излагайте свои доводы - но только СВОИ, а не где-то вычитанные.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы в webpack 5 работал hot reload?

    @mkedevel
    Данная проблема возникает после подключения пакета browserslist
    Нужно добавить в webpack.config.js

    {
       target: 'web'
    }
    Ответ написан
    2 комментария
  • Как сделать кастомный select?

    @timokins
    Если просто и лаконично, то
    selectize.github.io/selectize.js
    Ответ написан
    Комментировать
  • Как прикрутить чат телеграм в модальное окно или просто на сайт?

    @mr_good_cat Автор вопроса
    Оставлю тут ещё 2 метода. PHP и javascript. Может кому пригодятся.
    https://habr.com/ru/post/302056/
    https://www.intergram.xyz/
    Ответ написан
    Комментировать
  • Как прикрутить чат телеграм в модальное окно или просто на сайт?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Не надо встраивать телеграм в сайт, это бессмысленно. Надо просто сделать отдельный канал взаимодействия с веб-пользователями на вебсокетах. На другой стороне заводить хоть в веб-интерфейс, хоть в бота, хоть в десктопное приложение.
    Ответ написан
    Комментировать
  • Остатки Linux'a?

    Adamos
    @Adamos
    Я бы предложил просто переставить винду, снеся к чертовой матери этот на хрен никому не нужный (при двух-то разделах) логический том. Пляски с утилитами, которые растянут на него системный раздел, займут примерно столько же времени, да еще могут внезапно закончиться нерабочей системой. Смысл?
    Ответ написан
    1 комментарий
  • Как использовать JavaScript с Bitrix?

    @ZardoZAntony
    программист, сис. админ
    Прочитать бесплатный курс разработчика для bitrix, хотя бы что такое шаблоны и как их применять.
    Скорее всего это потянет за собой отсутствие знаний js и php.

    А так без проблем: копируете шаблон компонента меню в свою тему или в local/templates/.default/, . Изменяете его под себя как душе угодно. Добавляете классов в вашем случае.
    Ответ написан
    Комментировать
  • Как верстать с хорошими показателями Google Speed?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Здесь нет волшебной таблетки. Это комплекс факторов...
    Из главного: ленивая/отложенная загрузка всего и вся (всевозможные метрики и второстепенные скрипты / графика / компоненты, если используете фреймворки), использование современных форматов графики (webp в частности), вёрстка mobile-first (существенно снижает время на расчёт лейаута и рендер на приоритетных устройствах), инжект CriticalCSS (это про time to first paint), уменьшение размера DOM-дерева.
    Это из фронта, на бэке - сжатие gzip/brotli, максимальное время жизни кэша, оптимизация времени до ответа.

    Они же все рекомендации прямо при проверке пишут, там очень подробно всё расписано.
    Волшебной кнопки не существует.

    За 100/100 гоняться на чём-то больше стандартного лендоса - как правило бред сумасшедшего (оно обычно можно, но того совершенно не стоит, так как из-за отложенной загрузки/рендера будет страдать UX, что важнее красивой пузомерки).
    90+ для почти любого проекта - вполне несложно, если умеючи.
    А умеючи - это с опытом, анализом рекомендаций, а не поиском новых сборок/инструментов.
    Ответ написан
    2 комментария
  • Битрикс загибается?

    И да и нет.
    Битрикс 24 как продукт компании куда как интересней и развивает он его явно активнее чем просто битрикс
    НО б24 сделан на битрикс так что полное вымирание ядра явно не грозит.
    Но кризис на лицо.
    Так же нужно понимать что рынок битрикс сужается
    снизу теперь его поджымают конструкторы, а в топе самопись.
    так же как вы заметили обратная совместимость битрикс дает о себе знать, на их месте я бы уже давно отказался от поддержки обновлений начиная с 7 версии, это же маразм никто в жизне не будет поднимать 7 битрикс до 20.
    Но политика партии, скорее всего все прийдет к тому же что и у php рано или поздно отказавшись от старого кода написав все заново, но время ввода D7 на рынок говорит то том что эта стратегия была провальна, выводить технологиию 10 лет это даже не смешно.
    Так же нужно понимать что у разрабов битрикса уже сложилось свое мнение.
    К примеру разговаривая с Садониным я спросил у него собираются ли они как-то изменять "эрмитаж" на что они сказали что он работает заебись, и никаких изменений не требуется!!!!
    Дада Вот это убожество по их мнению в 2020 совершенно нормально работает.

    В общем
    - Да интерес битрикс к битрикс падает в следствие б24
    - обратная совместимость делает невозможность сделать действительно достойный релиз.
    - застой технологии как таковой. С появлением kubernetas рано или поздно битрикс должен или перебраться полностью в облако или издохнуть или найти 3 путь, как и остальные движки.
    - Судьба php на данный момент находится ровно в той же позиции что и битрикс, оно все еще доминирует на рынке веба но есть куча мощьнейших конкурентов которые не дремлят.
    + Битрикс де факто еще является стандартом екомерц в РФ , и по факту его заменить тупо нечем.
    Делать проект с бюджетом в 1-10 млн на самописи это маразм, так что тут битриксу замены нет.
    В топовом сегменте битрикс никогда и не использовался, за исключением собственно чистого екомерц да и то как исключение.
    Ответ написан
    10 комментариев