Задать вопрос
  • Как добавить поле в высоконагруженную базу в таблицу на продакшене где 100 миллионов записей?

    Melkij
    @Melkij
    PostgreSQL DBA
    Могу ответить про postgresql.

    без ее блокировки

    Именно в такой постановке вопроса - никак.

    С короткой блокировкой (доли секунд) - другое дело. Принципиально зависит от конкретного alter table и версии базы
    Простой alter table foo add column col; - ставите statement_timeout to '100ms' и вносите как есть.
    alter table foo add column col default const - после pg11 см. выше, до - интересное приключение
    Если default не константа - сначала внесите как default null, затем обновляете частями. как в процессе до pg11.
    Ответ написан
    Комментировать
  • Кеш, вёрстка и Mozilla Firefox?

    delphinpro
    @delphinpro Куратор тега Вёрстка
    frontend developer
    Зачем очищать-то постоянно? Это же ужасный геморрой. просто откройте devtools

    5f72ec6eec94f655452702.png

    Пока консоль открыта, кеша не будет.
    Это скрин из хрома. В мозилле точно так же.

    5f72eced49267576013138.png
    Ответ написан
    1 комментарий
  • Почему Service Locator это зло и что использовать вместо?

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

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

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

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


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

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Ну все же наслышались что в ИТ платят баксами, что посидел в ИТ 2-3 года и можно жить на островах, попивая самбуку, лениво тыкая кнопки в ноутбуке.

    Вот в ИТ и ломанулись люди.

    Как бы не была тяжела сфера в изучении, если туда идут миллионы, то понятно что конкуренция будет сумасшедшая, особенно на уровне новичка.

    Вот на уровне мида уже понятно, что оказывается изучать нужно ТАК много, что некоторые В ПРИНЦИПЕ не готовы тратить на это столько усилий. Многие перегорают через полгода-год только обучения, и ищут смежные работы.

    В некоторых профессиях можно стать старшим специалистом просто отсидев 5-10 лет, но в ИТ это редкость.
    В ИТ нужно много учить. Нестандартно учить. Самому искать и мотивировать себя на развитие.
    Поэтому до уровня сеньора и архитектора вообще дорастают единицы - подавляющее большинство остаются на уровне мида даже после 10-20 лет работы. А то и вообще разочаровываются, отстают от тренда и спрыгивают в сторону.
    Ответ написан
    1 комментарий
  • В сфере IT для новичков нет перспектив?

    @nApoBo3
    Это сложный вопрос. На первый взгляд на низовых позициях в ИТ дикая конкуренция. С другой стороны, она дикая но совершенно беззубая, поскольку уровень кандидатов соответствует дворнику.
    Месяц назад искал себе помощника помощника, кандидатов море, уровень ниже плинтуса, не знают ничего совсем, две кнопки выучили и вот уже ИТ специалист.
    Работа, это все таки не школа и не институт, тут вы в замен тоже что-то должны дать, т.е. должны делать какую-то работу полностью самостоятельно и с должным качеством. Если вы что-то умеете делать самостоятельно и полностью понимаете процесс, то вот такую работу и ищите. То что кто-то может next, next, finish, поставить windows ИТ специалистом данного человека не делает.

    Вот и получается, конкуренция дикая, но среди перспективных ее практически нет.
    А перспективные это те, кто понимают, чтобы получить нужно сначала вложить, и много, и регулярно вкладывают в себя.
    Ответ написан
    3 комментария
  • Как писать хороший и расширяемый css код?

    qant
    @qant
    programer
    Используйте Scss + переменные + формулы и все возможные продвинутые фичи + cборшик.
    https://sass-lang.com/documentation/syntax

    Вот крутой видос по теме: https://www.youtube.com/watch?v=Mrq2ora_p0o и крутой канал по верстке, там и бем видосы есть, но бем не панацея как по мне...

    Мощь SASS/SCSS и владение сборкой, хотябы gulp в идеале webpack.

    + Уйма удобных плагинов для верстки и копирования кода для vscode
    BEM Helper
    eCSStractor for VSCode
    Live Sass Compiler

    Сейчас просто с космической скоростью можно работать с SASS/SCSS
    Ответ написан
    1 комментарий
  • На React нельзя делать конкурентов Facebook?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Реакт до недавнего времени был под своей хитрой лицензией в которой был пункт по которому фейсбук может нагнуть того кто его использует если захочет.
    в прошлом по моему году кто-то таки дочитал до этого пункта и был большой шум, после которого реакт быстро зарелизили под человеческим MIT.

    Так что теперь - можно.
    А раньше - тоже было можно но пока фейсбук не против.
    Ответ написан
    Комментировать
  • Возможно ли сделать полноценный скрипт в фоне на чистом PHP?

    DevMan
    @DevMan
    можно. но не нужно.
    вся задача современного вэба – принять задание и поставить его в обработку. и пусть оно там колбасистся хоть неделю.
    для этого вовсе не нужно "скрипт, который при закрытии веб страницы на стороне пользователя, продолжал работу без проблем". для этого нужно познакомиться с очередями заданий.
    хотя бы в самом примитивном виде.
    Ответ написан
    Комментировать
  • Php 7+ умеет без библиотек открывать excel и гугл таблицы?

    @sl0
    Конечно можно. Надо лишь написать свою.
    Ответ написан
    Комментировать
  • Как ускорить PHP FPM?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Блокировка сессий скорее всего у Вас.
    Для группы пользователей "все"/"everyone" - сессий внутри кода обработки быть не должно.
    Проверьте тестом ab на скрипт без сессий.
    А потом - с сессиями (с изменением хотя бы одной сессионной переменной).
    И посмотрите на разницу в скорости обработки.

    Посмотрите на тайминги выполнения запросов/ответов к БД.
    Кэшируйте часто используемые и редко изменяемые данные в памяти (профиль или боковые панели веб-страницы, к примеру) и обновляйте кэш при их модификации (отслеживайте "флагом" с простым запросом в БД, например).
    Ответ написан
    4 комментария
  • Как верстать такие "чудо" макеты?

    Aetae
    @Aetae
    Тлен
    Ну пускай дизайнер рисует как он видит адаптацию этого дела хотяб для трёх основных размеров и от туда уже плясать.
    Иначе влепи картинкой с width: 100% и вёрстка готова.)
    Ответ написан
    3 комментария
  • Программирование деформирует человека как личность?

    DevMan
    @DevMan
    при чем тут программирование?
    или по вашему остальные (кроме топ–менеджеров газпрома и прочих роснефтей) меньше устают?

    40+ лет.
    20+ лет зарабатываю программированием.
    есть ли усталость и выгорание? безусловно.
    можно ли с этим бороться? элементарно: периодически менять место работы/направления.
    Ответ написан
    6 комментариев
  • Какие материалы считаются лучшими для глубоко изучения JS?

    @dmitry-toster
    Для глубоко изучения JS

    Вряд ли есть что-то лучше серии книг Kyle Simpson - You don't know JS, где одной только теме про thisили замыканию уделена целая книга

    Интересен супер подробный разбор event loop

    Помимо книг выше, есть также отличное видео на YouTube после которого отпадут все вопросы как оно работает

    Что можно считать лучшим источником

    Собственно Standard ECMA-262
    Ответ написан
    1 комментарий
  • Какие существуют бесплатные сервисы для расчета расстояний между координатами на карте?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Зачем вам сторонние сервисы? Если на входе координаты, то можно использовать локально либу https://gdal.org/
    Если точки уже в постгресе, то поставьте postgis и там все необходимые функции прямо в базе. Хоть на лету считайте, хоть агрегируйте.
    Могу написать вам лично такой веб-сервис незадорого=)
    Ответ написан
    1 комментарий
  • Какие существуют бесплатные сервисы для расчета расстояний между координатами на карте?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Математика бесплатна. Формула расчёта длины на сфере (вам же точность не важна) выведена ещё тысячу лет назад.
    Ответ написан
    3 комментария
  • Каким браузером можно заменить chrome?

    2ord
    @2ord
    Не обязательно менять браузер.
    Чтобы пощадить ресурсы ОС, достаточно установить подходящий плагин.
    Оценка влияния на производительность популярных до...
    DuckDuckGo Privacy Essentials и uBlock Origin также оказались лучшими при оценке потребления ресурсов при выполнении фоновых операций.
    Ответ написан
    2 комментария
  • Каким браузером можно заменить chrome?

    Zoominger
    @Zoominger
    System Integrator
    Смотрю в сторону оперы

    Это тот же Хром, просто с другим оформлением.
    Firefox пойдёт.
    Ответ написан
    2 комментария
  • Можно ли работать по ПСН без УСН?

    @d-stream
    Готовые решения - не подаю, но...
    Положения главы 26.5 НК РФ не запрещают индивидуальным предпринимателям совмещать несколько режимов налогообложения.

    То есть не запрещают и не обязывают.

    Моментиков несколько:
    1. по умолчанию при регистрации ИП устанавливается ОСН (остальные - это специальные налоговые режимы). Переход на иные СНО осуществляется отдельным действием (заявление+оплата и т.п.).
    2. если вдруг часть дохода "не впишется" в рамки ПСН - при отсутсвии других СНО - будет действовать ОСН

    Соответственно есть резон подумать/промоделировать ситуацию в случае п.2 и оценить "потери". Вполне очевидным окажется что наименее рискованные это УСН6%+ПСН или УСН15%+ПСН. Притом в общем-то УСН6%+ПСН отличается от ПСНonly - максимум на 3 печатных листа в год. imho - совсем необременительно.

    p.s. ПСН по платежам - это патент+ФФОМС+ПФР, УСН6% - это 6% - ФФОМС - ПФР[-1%ПФР от превышения 300тр]
    Ответ написан
    3 комментария