Задать вопрос
  • Как быстро изучить Yii 2?

    @raycheel
    Антон ! Если вы смотрели видеоуроки, читали официальную документацию и вам показалось, что этого мало, то я подозреваю, что скорее всего, вы просто не знаете как правильно делать реализацию Вашей задачи, так сказать некую технологию или подход к реализации.

    Рекомендую попробовать вникнуть в данную статью: Знакомство с Yii 2 на основе создания простого блога Если в ней что-то не понятно, то идите в документацию и читайте, что это такое.

    Учите английский язык, очень много полезной информации пишут зарубежные коллеги. Не говоря уже о том, что пишут сами создатели framework'a) Зная английский будет легко пользоваться оригинальной полноценной документацией. Хотя документация yii на русском достаточно хорошо переведена.

    Учиться тоже тяжело, просто так не получится, надо самому :) Через тысячи ошибок и неудач появляется бесценный опыт и понимание. Удачи.
    Ответ написан
    1 комментарий
  • Зачем нужны миграции?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Зачем нужны миграции?

    Если по хорошему, то реальное их практическое применение только в том, что бы создать структуру таблиц, например, при установке какого-то бандла. Допустим, у Вас есть бандл "Новости", что бы Вам "руками" не лезть в базу и не запускать, пусть даже готовый SQL - миграции помогут Вам сделать это в автоматическом или полу-автоматическом режиме.

    а если постоянно таблицу с дынными надо поддерживать в актуальном состоянии? не проще ли держать sql-dump этой таблицы в git/svn ?
    На счёт SVN'а (по моему, он вымер как класс, даже Hg/Mercurial почти не осталось) не скажу, но мы так и делаем, храним дамп базы в репозитории, в некоторых случаях даже используем хуки Git'а, которые сверяют версии БД и при изменении - переписывают соотв. файл дампа и добавляют его к комиту.

    И основная проблема (*исключительно в нашей практике) даже не столько в самих миграциях как таковых, а в ущербности их возможностей, в большинстве случаев. Не редко, миграции покрывают лишь малую часть возможностей БД, обычно это: основные типы полей, внешние ключи и индексы. Таких вещей как: триггеры, хранимые процедуры/функции, виртуальные поля, View'шки, типы данных свойственные конкретной БД или просто "не популярные" типы данных, такие например, как GEOMETRY - очень часто, в миграциях не поддерживаются. Так же, как например, я пока не встречал механизмов миграций, которые бы могли нормально создавать такой элементарный тип, как ENUM в PostgreSQL, не говоря уже про более сложные, составные типы и т.д.

    Касательно Symfony, она как и многие другие фреймворки, не поддерживает даже такой типа данных как "ARRAY", вернее то, что в Symfony называется ARRAY - это по факту строка, с сериализованым массивом, а не массив в "чистом виде", который (как тип данных) есть например, в том же PostgreSQL. В виду чего, было бы удивительно ждать чего-то подобного от миграций.

    Ни в одном серьёзном/крупно проекте, я пока не видел настолько безумного администратора БД, который бы позволил модифицировать "живую" БД с помощью механизма миграций на уровне фреймворка. Только SQL-код, после предварительного анализа.

    На основании всего этого, мы для себя сделали вывод, что миграции отлично подходят для автоматизации создания примитивных болванок в БД, например, тех же "новостей", не более того.

    P.S. Я знаю, что для БД существуют специализированные механизмы/программы, для контроля БД, включая данные. Детально пока не разбирался, но подобная возможность ("Контроль версий БД") заявлена, например, в программе SQL Manager for PostgreSQL (для Windows).
    Ответ написан
  • Зачем нужны миграции?

    @pudovMaxim
    web-developer
    Нужно разделять БД на части: структура, служебные данные и рабочие данные. Структура мигрирует - в нее входят схема, таблицы, ключи и все такое. Служебные данные - например данные таблицы со статусами какими-то, может мигрировать, но тут нужно быть аккуратным(эти данные в нормальном режиме статические и необходимы для работы кода). А остальные данные - то есть пользователи там, посты, товары - это все не мегрируется. Их целостность лежит на других механизмах - например бекапы.
    Ответ написан
    4 комментария
  • Как анализировать востребованность технологии?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Обратил внимание, что последние пару лет все чаще слышу про fastapi, насколько он уже созрел на рынке? "Слышать" это одно (субъективщина, хайп и все такие), может есть какие-то метрики, как определять востребованность конкретной технологии относительно другой, например django и fastapi

    Я придерживаюсь 2х критериев для ЯП, которые используются в малых-средний проектах, это сайт с поиском работы (hh), и фриланс площадки. Вот инфа по hh на 10.03.2025:

    Без взаимоисключений:
    - Django: 184 вакансии.
    - FastAPI: 172 вакансии.

    Взаимоисключающие django и fastapi:
    - Django: 100 вакансий.
    - FastAPI: 89 вакансий.

    Всего пару лет назад FastAPI составлял 30% от django, сейчас же они сравнялись (тенденция на лицо), на фрилансе FastAPI так же часто мелькает, а учитывая, что это относительно django новая технология, то на него обязательно стоит обратить внимание, т.к. вполне вероятно, что его рост на рынке продолжится.

    FastAPI изначально идет практически голым по функциональности, в отличие от django, т.е. разработчик должен иметь более высокую квалификацию, чтобы выполнять те же самые задачи. Скорее всего, это отразится на стоимости конечного проекта, хотя и производительность проекта будет сильно больше.
    Ответ написан
    1 комментарий
  • Как правильно добавить файлы миграций в gitignore?

    @marazmiki
    Укротитель питонов
    Правильно — никак. Миграции являются неотъемлемой частью проекта, не нужно их исключать.
    Ответ написан
    Комментировать
  • Для чего нужен throw в JS?

    Если не ошибаюсь.

    "throw" - исключение.
    "catch" - ловить или перехватить ошибку.

    Работает в идеале все в единой связке "try-catch-finally".

    Исключение - событие ( что то не так в коде).
    Возбудить исключение ( или создать, бросить ) - сигнализировать об исключительной ситуации в коде.
    Перехватить исключения - значит выполнить действе для обработки кода ( восстановить работоспособность ).

    try {
    // здесь в коде что то может пойти не так, если есть поломка " бросить" исключение.
    } catch(err) {
    // здесь пишем обработчик ошибки (в переменную err предается код возникшей ошибки) например аргумент оператора throw , генерируем исключение.
    throw new Error ( "Ошибка в блоке №...");
    } finally {
    // Здесь пишем, что должно выполнится в любом случае, есть ли ошибка или нет ( или при завершении по любому оператору перехода return, break, continue).
    }
    Ответ написан
    Комментировать
  • Для чего нужен throw в JS?

    mbelskiy
    @mbelskiy
    Software Developer
    Предлагаю посмотреть на вопрос шире – throw используется не только в JS, но при этом для одних и тех же целей. Тут уже есть хорошие ответы:
    - Зачем нужны исключения?
    - https://sprosi.pro/questions/3445/isklyucheniya-za...
    - https://ru.wikipedia.org/wiki/Обработка_исключений
    - https://ravesli.com/urok-181-isklyucheniya-zachem-...
    Ответ написан
    Комментировать
  • Ошибка с Git, что случилось?

    1. Генерируешь ключ. Для этого в консоли надо ввести
    ssh-keygen -t ed25519
    На вопросы всегда отвечай ентером, ничего не пиши. (Но лучше всё-таки написать пароль, чтобы приватный ключ не лежал в открытом виде)
    6064a4dd0cc01593209113.png
    2. Потом пиши консоли
    cat ~\.ssh\id_ed25519.pub
    Вывод этой команды копируй и иди на гитхаб.
    6064a56e4e389328241008.png
    3. На гитхабе иди в настройки:
    жмёшь на свою аватарку справа вверху и потом выбирай пункт settings в выпадающем меню
    Потом выбираешь раздел SSH and GPG Keys
    Создаёшь новый SSH Key
    6064a5ac5e236897883208.png
    В название пиши что хочешь
    В тело вставляй то, что скопировал ранее.
    6064a60e7d605276301726.png
    4. Профит
    Ответ написан
    3 комментария
  • Что такое эндпоинт простыми словами?

    @dvpingvin
    Если бы мы пытались находить понятия в родном языке, а не заимствовали без перевода и понимания иностранные, то IT было бы менее загадочной областью. Замените слово "endpoint" в тексте на "адресат" (означает лицо или организацию, которым адресовано почтовое отправление) и всё встанет на свои места.
    В контексте безопасности можно использовать "абонент".
    "Адресат" и "абонент" близкие по смыслу слова.

    UPD. Получив пару одобрительных комментариев решил дополнить ответ.
    "Endpoint" дословно перводистя как "конечная точка". Можно представить это как два конца верёвки. У верёвки нет главного конца и вторичного. В компьютерных сетях есть схожее понятие Socket ("розетка") это пара IP-адрес и порт, которым предназначен пакет. Но там не рессматривают взаимодействие выше 3 уровня моделя OSI.
    Если у нас есть две системы, которые должны общаться друг с другом, помимо IP-адреса и порта нам нужно знать ещё и протокол, по которому будет происходить взаимодействие. Когда просят указать Endpoint, то обычно требуется эта информация.
    Endpoint может выглядеть как строка вида ://:. Наример:
    TCP://MYSYSTEM.Adventure-works.MyDomain.com:7022
    TCP://MYSYSTEM.Adventure-works.MyDomain.com:7033
    TCP://10.193.9.134:7023
    TCP://[2001:4898:23:1002:20f:1fff:feff:b3a3]:7022

    В контексте анивирусной защиты под Endpoint понимают любое конечное защищаемое устройство: компьютер, смартфон, ноутбук, сервер и т.д.
    Провайдеры подразумевают под Endpoint конечного абонента, которому нужно провести кабель. Это может быть как квартира в жилом доме, так и здание предприятия.
    Ответ написан
    2 комментария
  • Как найти и настроить процесс, который грузит систему под 100%?

    @rPman
    Есть два самых серьезных процесса в windows, из-за которых наибольшая нагрузка - обновление системы, нагружает сеть и жесткий диск (будет не так заметно, если заменить на ssd), а второе - антивирусник, по умолчанию работает в режиме онлайн сканирования, когда каждый открываемый файл проверяется на вирусы. Телеметрия не нагружает процессор, а только крадет вашу приватную информацию.

    Особенно больно работать на hdd, так как при случайном доступе скорость даже топовых десктопных предложений падает до 10-20мбайта/сек.

    Если железо обновить или сменить ОС на адекватную - не вариант, тогда попробуй настроить обновление системы на ночное (на hdd это будет занимать часы) и не выключать компьютер совсем.

    Так же настоятельно рекомендую на слабой машине отключить антивирусник (штатно это невозможно, ищите инструкции как это сделать через реестр) но тогда взять за правило любой новый документ или тем более приложение проверять на вирусы (тем более это пара кликов мышки), а так же запускать полное сканирование компьютера так же по ночам. Это потребует повысить свою дисциплинированность, но зато станет понятно, что антивириусник это способ заплатить мощностью машины но остаться разгильдяем.
    spoiler
    по пути реестра HKEY_CLASSES_ROOT\*\shell добавить или открыть существующий раздел с именем как оно будет выглядеть в меню проводника, в нем еще раздел command в котором параметр по умолчанию как то так:
    "%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File "%1"
    Ответ написан
    2 комментария
  • Как найти и настроить процесс, который грузит систему под 100%?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Именно процессы - их надо смотреть на вкладке Подробности. Но вам это не поможет - у вас диск нагружает общий процесс служб - которых там много, сами видите.
    Можно попытаться понять, какая именно служба нагружает диск в Мониторе ресурсов. Он отображает конкретные файлы, к которым идет доступ (на вкладке Диск). Запустить его можно с вкладки Быстродействие Диспетчера задач.
    Ответ написан
    Комментировать
  • Прошу помочь разъяснить ситуацию, vue или react?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    тот или иной фреймворк решает различные задачи,

    Если имеются ввиду angular, react, vue - чушь это всё собачья. Решают они одни и те же задачи, просто разными методами и философиями.

    А что вы хотите услышать?

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

    Берите то, что нравится. Просто возьмите все 3 и используя стандартные CLI, напишите обыкновенный бложек с созданием, редактированием, удалением записей, детальной страницей, т.е. обыкновенный CRUD. И посмотрите, с каким из них, вам процесс работы нравится больше. Потратить пару дней и всё.

    Один спец. скажет вам, что реакт, другой скажет, что vue.
    Третий скажет, что реакт это вообще даунгрейд по сравнению с vue(и тут я согласен).
    Четвёртый скажет, что реакт для мужиков, на него больше вакансий, они дороже и проще найти работу.
    Пятый скажет, что на реакте есть куча всяких штучек дручек и т.п.
    Шестой будет молчать, т.к. юзает ангуляр и не знает никаких проблем и с насмешкой смотрит на этих 2х. Потому что это ещё одна, совсем не похожая на других философия. Где за тебя уже всё придумали, сделали и сказали как делать дальше.

    Вы не получите полноценную картину.

    От себя скажу так, если вы любите работать с html берите vue. Vue для меня гораздо лучше, чем react. В react гораздо больше писанины кода, чем в vue. Я терпеть не могу jsx(во vue он тоже есть), отвратительная штука, но это вкусовщина. Обязательно найдутся те, кто скажет иначе, ради бога. В vue шаблоны - это родной и привычный мне html с очень удобным и понятным шаблонизатором. Любите работать с html, вперёд.

    Если вы не любите верстать и вам больше нравится сам процесс писанины js, писать стили на js, берите реакт.
    Если вы любите типизацию, если вы за строгий контроль кода и вообще, вы считаете себя "тру" прогером, берите ангуляр, если коротко.

    Заметьте, я чаще всего сравниваю react и vue, а ангулар где-то в стороне. angular - это как volvo, тебе ничего больше не нужно, у тебя и так всё хорошо.
    Ответ написан
    6 комментариев
  • Бесплатные сервисы баз данных?

    sim3x
    @sim3x
    Для хранения СУБД (и сервис для него не нужен)
    Можно скинуть все с sqlite бинарник и его скачивать
    Или раскидать по json/yaml и также скачивать

    Доп вариант именно СУБД и именно сервиса - https://firebase.google.com/pricing/ (но имеется вендор-лок)

    ИМО за $2.5 можно иметь свой впс для игр и тестов
    Или высунуть свой "домашний" пк интерфейсом в www
    Ответ написан
    Комментировать
  • Бесплатные сервисы баз данных?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Если для ваших тестов вам подойдёт mongoDB, то можно воспользоваться https://mlab.com/ . Сам как-то использовал для этих же целей.
    Ответ написан
    Комментировать
  • Бесплатные сервисы баз данных?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    У heroku.com была возможность поднять БД, я точно поднимал PostgreSQL для себя.
    UPD. https://data.heroku.com
    Ответ написан
    Комментировать
  • Где взять бэкенд для фронтенд учебного проекта?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Почему при просмотре видео на YouTube теряется контрастность?

    @Qoteak
    Нашел причину, в Google Chrome заходим в Настройки, Система, Использовать апаратное ускорение (Выкл), перезапускаем браузер и теперь видео отображается с нормальной контрастностью.
    Ответ написан
    Комментировать
  • Какие особенности должны быть у сайта производства?

    @volt_amper
    Вы получите:
    + доверие покупателя, если на сайте будет исчерпывающе описано что производите, условия сотрудничества с вами, тесты продукции, обзоры продукции, каталог продукции с качественными фотографиями и полным описанием, сертификаты (если предусмотрено), если есть награды, то смело об этом расскажите на сайте.

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

    Ваш сайт должен красиво и "вкусно" презентовать ваш товар (или услугу) потенциальному покупателю.
    Ответ написан
    Комментировать
  • Курсор ввода в любом месте окна браузеров?

    @greg79
    В хроме та же F7
    Ответ написан
    Комментировать
  • Курсор ввода в любом месте окна браузеров?

    rus0nix
    @rus0nix
    Admin
    Видимо вы нажали клавишу F7 в Microsoft Edge.
    5b549528da25f774201802.jpeg
    Нажмите опять эту клавишу для отключения.
    Ответ написан
    20 комментариев