Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
Fesor

Сергей Протько

Full-stack developer (Symfony, Angular)
  • 4269
    вклад
  • 61
    вопрос
  • 4691
    ответ
  • 36%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как узнать с какого дня недели начинается месяц?

    Sanasol
    Александр Аксентьев @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    <?php
        $date = date();
        $first_day = strtotime('first day of this month', $date);
    ?>


    Православный путь stackoverflow.com/a/2094993/1603055
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • На чём бы лично вы разрабатывали программу вроде автокада?

    sim3x
    sim3x @sim3x
    Если у тебя есть опыт в такого рода проектах на жс и команда, которая потянет, то вперед

    А в реальности проще будет сделать плагин для SketchUp
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Есть ли подобие global из php в js?

    Sanasol
    Александр Аксентьев @Sanasol Куратор тега JavaScript
    нельзя просто так взять и загуглить ошибку
    они и так доступны без дополнительных махинаций.

    в гугле: область видимости {название языка}
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Зачем Ruby нужен fiber?

    Dem1
    Andrey Demidenko @Dem1 Куратор тега Ruby on Rails
    Ruby on Rails developer
    Основное отличие Fiber от Thread, в том, что переключение контекста вы программируете самостоятельно
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как запретить изменение переменных из консоли?

    RonKey
    Сергей Кузнецов @RonKey
    Ищущий
    К сожалению или к счастью, но никак. Все, что на стороне клиента в этом случае можно менять - вы лишь можете усложнить этот процесс. Кроме того, это данные можно изменить в процессе передачи, точнее отправить нужные данные вместо ваших.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как работает автозагрузка файлов в PHP?

    DevMan
    DevMan @DevMan
    да, парсить все папки.
    только не при каждом вызове, а по специальной команде типа "build/manifest", которая просканирует нужные папки, построит "карту" и сохранит ее в кэш.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Откуда информация о быстрой порче SSD?

    leahch
    Алексей Черемисин @leahch Куратор тега Linux
    Я мастер на все руки, я козлик Элек Мэк :-)
    SSD бывают сильно разные. У нас партия из 10 штук ADATA 460 вылетела через две недели использования в качестве кеша. Так и лежат теперь, я их даже в ноут боюсь ставить, хотя остались и нераспакованные.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как реализовать объект с методами, которые можно было бы вызывать последовательно?

    qork
    display: block @qork
    { background: #F00B42 }
    https://learn.javascript.ru/task/chain-calls
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Отличия абстрактного класса от интерфейса?

    abyrkov
    Dark Hole @abyrkov
    JavaScripter
    Если выражаться "проще википедии", то главная разница между абстрактным классом и интерфейсом в том, что интерфейсы можно множественно наследовать, а абстрактные классы могу содержать не абстрактные вещи.

    Что касается их использования... тут все гораздо проще, если понимать, зачем нужен абстрактный класс, а зачем - интерфейс. Абстрактный класс используется, когда мы хотим получить конкретную реализацию, но она должна гибкой. Интерфейс используется, чтоб реализация этой вещи вообще была.
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Как правильно работать с объектами выборки doctrine в Symfony?

    riky
    Юрий @riky
    Laravel
    1) ссылки с картинки на продукт не срут память, ибо объект продукта один и все картинки ссылаются на один объект. лишней памяти не тратится.

    2) по поводу сложности. да оно кажется избыточным, но нужно чтобы было удобно потом работать с ними, добавлять новые связи, ленивая загрузка и тд.
    просто сущности вы не получите, но если нужен только вывод то можно вместо getRepository / find сделать например createQuery / fetchArray. но это будет массив без вложенных сущностей, то есть картинок у продукта автоматически не будет.

    3) вместо $em->getRepository('AppBundle:Product')->findById(1);
    лучше $em->getRepository('AppBundle:Product')->find(1);
    или даже $em->find('AppBundle:Product', 1);
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Кто может расписать все условия детально?

    xmoonlight
    xmoonlight @xmoonlight
    https://sitecoder.blogspot.com
    Здесь нет преобразований.
    Это называется: "приведение типов при операции сравнения".
    Любой непечатаемый символ, пустой набор или строка с единственным нулём - всегда равны 0, но не равны между собой.
    Вкратце, схема предупреждает: никогда не сравнивайте нестрогой проверкой "==" что-либо с нулём. Лучше всегда проверять через "===".
    771622eae9cb4319b31b219bb552aa7a.jpg
    Ответ написан более трёх лет назад
    12 комментариев
    12 комментариев
  • Длительная задача в Laravel?

    Eugene Budnik @egenik
    Необходимо использовать очереди https://laravel.com/docs/5.3/queues
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Возможно средствами пхп, js сделать скриншот?

    viktorvsk
    Viktor Vsk @viktorvsk
    Из php вам нужно запустить браузер и в браузере сделать скриншот. Например с помощью phantomjs: phantomjs.org/screen-capture.html
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как научиться создавать свои функции в PHP?

    za4me
    Борис Якушев @za4me
    Человек
    Реально ли вообще с нуля самому не смотря не документацию или чужой код создать Движок?

    Реально ли вообще с нуля самому учится математике не смотря в учебник?
    Реально ли вообще с нуля научится работать с деревом не обрабатывая дерево?
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Реально ли эмигрировать PHP программисту в возрасте?

    Sanes
    Sanes @Sanes
    Для начала поживите хотя бы пару месяцев за бугром. Переехать никогда не поздно.
    Ответ написан более трёх лет назад
    14 комментариев
    14 комментариев
  • На каком уровне системный архитектор должен знать технологии?

    Nipheris
    Станислав Макаров @Nipheris
    Дисклеймер: я не системный архитектор, и даже не знаю, кто конкретно должен так называться, наверное это что-то вроде технического директора.

    Или у меня чрезмерно идеалистические представления о роли архитекторов в разработке?

    Да, чрезмерно. Архитекторы (как вы их называете) не боги и даже не "вторые после бога".

    включая "подводные камни", которые, как правило, доступны только прилично поработавшим с технологией специалистам?

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

    Опять же, отрасль очень бурная - когда успевать работать и следить за всем, что в ней происходит?

    А надо уметь главное выделять. Ну к примеру, вот позавчера анонсировали докер на винде на нативных контейнерах. Что нужно знать хорошему техническому директору? Что в 2016-й винде есть контейнеры (причём двух видов, настоящие и поверх hyper-v), что докер теперь будет их использовать со всеми вытекающими. Само собой нужно представлять что такое контейнер и чем от отличается от ВМ. Вот и всё что нужно знать, ну и посматривать за отзывами первых, кто осмелится опробовать технологию в деле.

    Ну или вот возьмём TypeScript. Не обязательно писать на нём или знать его досконально. Достаточно понимать, что такое статическая типизация в языке, и уже можно будет представить разницу между использованием в большом проекте ES5/ES6 и TypeScript. Достаточно принять решение опробовать его у себя (как сейчас делаем мы) на небольшом куске проекта, и сделать вывод о дальнейшем использовании.

    Возьмём, наконец, базы данных. Не думаю, что хороший "архитектор" обязан знать, что в какой-нибудь Монге какие-нибудь запросы с агрегацией по двум свойствам работают в 5 раз медленнее, чем по одному свойству. Однако то, что в Монге нет атомарной записи сразу нескольких документов, знать очень полезно, я бы даже сказал, критично (иначе можно пытаться написать какой-нибудь биллинг на Монге вместо какой-нибудь реляционной базы, и сорвать пучок проблем).

    Техническому директору проекта ("архитектору") гораздо важнее уметь правильно обрабатывать информацию, уметь снимать маркетинговую шелуху (вроде той, что была и есть с NoSQL от всех проблем и несчастий), спокойно реагировать на модные баззворды, и собирать библиотеку доверенных людей и информационных ресурсов. И важно знать о вещах, которые с течением времени не меняются, или меняются медленно и неохотно:
    • для каких задач подходят функциональные языки, а для каких - ОО;
    • что графовая СУБД как правило быстрее обрабатывает запросы на поиск с большой длиной цепочки;
    • что утверждение из предыдущего пункта неплохо бы проверить на практике с конкретными СУБД;
    • что веб-фреймворки бывают толстые и тонкие;
    • какие сегодня есть вариации паттерна MVC;
    • что сборка мусора это всегда накладные расходы и иногда не вполне предсказуемое поведение;
    • что данные от пользователя нужно фильтровать, иначе в вашей системе найдут машину Тьюринга не там, где надо;
    • что в информационной системе есть компоненты с разным уровнем доверия, равно как и сотрудники;
    • что транзакции в СУБД придумали не для того, чтобы учебники стали толще.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Нужно ли разкидывать загрузчики классов по разным классом, чтобы сохранить принцип единой ответственности?

    index0h
    index0h @index0h
    PHP, Golang. https://github.com/index0h
    Вас только разморозили? На дворе 2016))

    объявляет глобальные вспомогательные переменные

    Интернеты пестрят статьями "почему глобальные переменные - зло".

    Можно ли записать в него функции автозагрузки, или их лучше вывести в отдельные классы?

    PSR-4 + composer. Автозагрузка - это давно решенная задача, не стоит изобретать никому (вам в том числе) не нужный велосипед.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как в php из одного класса сделать вызов других классов в зависимости от их названия?

    DevMan
    DevMan @DevMan Куратор тега Laravel
    php.net/manual/en/function.call-user-func.php
    php.net/manual/en/function.call-user-func-array.php
    php.net/manual/en/reflectionmethod.invoke.php
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Какая версия Slim Framework более адекватная?

    OnYourLips
    OnYourLips @OnYourLips
    Последняя стабильная версия наиболее адекватна.
    Но я вам все равно рекомендую посмотреть на более популярные фреймворки: разработка на Slim напоминает изобретение велосипедов: вы делаете свой фреймворк на его основе. Это непродуктивно.
    Ответ написан более трёх лет назад
    8 комментариев
    8 комментариев
  • Стоит ли все function собирать в одном файле?

    xmoonlight
    xmoonlight @xmoonlight
    https://sitecoder.blogspot.com
    Функции делятся на 2 основных вида:
    1. Вспомогательные - делятся по сферам применения и относительно форматов данных, с которыми они работают:
    1.1 Языковые
    1.2 Фильтрации данных
    1.3 Работа со списками
    1.4. Работа с очередями
    и т.д.
    2. Внутреклассовые - здесь и так понятно.

    Каждый из этих пунктов должен быть включён через include_once() и ИСКЛЮЧИТЕЛЬНО! по мере необходимости для обеспечения функциональности, заданной БП.
    Ответ написан более трёх лет назад
    9 комментариев
    9 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Drno
    • 9 ответов
    • 1 вопрос
  • dimonchik2013
    Dimonchik
    • 8 ответов
    • 0 вопросов
  • delphinpro
    Сергей delphinpro
    • 7 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • Dr. Bacon
    • 5 ответов
    • 0 вопросов
  • ThunderCat
    ThunderCat
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации