Задать вопрос
  • Как лучше поступать в такие моменты по bem?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Эта разметка абсолютно правильная в двух случаях:
    1) Ваши `close` и `card` действительно нигде не переиспользуются;
    2) Объём стилей блока `some-class` остаётся адекватным для восприятия.

    Соответственно, вам нужен новый блок в двух случаях: либо он переиспользуется, либо для разделения кода для простоты восприятия.

    Возьмём разметку посложнее (не надо в ней искать какого-то смысла, просто от фонаря что-то набрал для иллюстрации):
    <div class="block">
      <!-- Header -->
      <div class="block__header">
        <h2 class="block__title">Title</h2>
        <div class="block__actions">
          <button type="button" class="block__action block__action--edit">
            <span class="block__action-icon"></span>
          </button>
        </div>
      </div>
      <!-- Content -->
      <div class="block__content">
        <p>...</p>
      </div>
      <!-- Footer -->
      <div class="block__footer">
        <div class="block__about">
          <div class="block__author"></div>
          <div class="block__date"></div>
        </div>
        <div class="block__awards">
          <div class="block__award">
            <div class="block__award-inner"></div>
            <div class="block__award-tooltip">
              <div class="block__award-tooltip-content"></div>
              <button type="button" class="block__award-tooltip-close"></button>
            </div>
          </div>
        </div>
      </div>
    </div>


    Положим, что весь контент этого блока уникальный и никак не переиспользуется.
    Объём стилей `block` при такой структуре неизбежно станет некомфортным для восприятия, строк на 200-300.

    В таком случае хорошо создать внутренний блок (или несколько) просто для того, чтобы размазать сложность.
    `block-header`, `block-footer` или даже `block-footer-award`.

    Самое главное здесь организовать файловую структуру / конфигурационный файл / чем вы там ещё собираете таким образом, чтобы было очевидно, что `block-footer` - это не самостоятельный блок, а внутренний блок `block`, нужный только для упрощения восприятия, и он не может / не должен использоваться в отрыве от него (в этом случае у него не должно быть в названии общего префикса с `block`, чтобы не создавать путаницу)

    * И не забывать о том, что даже для таких внутренних блоков действуют те же самые правила, что и для других - вся внешняя геометрия задаётся через элементы.
    Ответ написан
    8 комментариев
  • Есть ли на русском полный учебник по GO?

    @Spargwy
    20 годиков. Голанг баккенд девелопер
    "Язык программирования Go" от создателей
    Но он 2014 вроде, так что некоторых тем может не быть. Наверстаешь в доке.

    UPD: А вообще го не такой объёмный язык. Намного больше времени потратишь, чтобы понять КАК на нём писать, а не на его функционал.
    Ответ написан
    Комментировать
  • Почему не устанавливается пакет chi с помощью go get?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    Вики по GOPATH.
    GOPATH подход устарел и с 1.16 версии по умолчанию используются модули.

    Если вам так нужен проект в GOPATH, то можно отключить модули:
    GO111MODULE=off go get github.com/go-chi/chi/v2

    В режиме модулей зависимости сохраняются в кэше.
    Их можно перенести в проект командой go mod vendor, и зависимости перенесутся в папку vendor рядом с файлом go.mod.

    При сборке проекта зависимости автоматически скачиваются в кэш.
    Ответ написан
    1 комментарий
  • На что обратить внимание на сервере после взлома?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    В подобных случаях лучше переустановить ОС к чертям, имхо.
    Ответ написан
    Комментировать
  • Как организовать сеть (теория)?

    @Akina
    Сетевой и системный админ, SQL-программист.
    • 0. Всегда (на все три вопроса). 800 устройств в одном домене коллизий, это [censored] и полный ступор.
    • 1. Да. Но нет. Все в одной подсети - бред и никакого смысла.
    • 2. Немаршрутизируемые в Интернет адреса (bogon networks). Я бы делал подсети в 172.16. Но это дело вкуса.
    • 3. Ни разницы, ни усложнения нет и в помине. Стандартности тут тоже никакой.
    • 4. Каждую подсеть в свой VLAN. Ибо нефиг.
    • 5. Серверы в отдельных подсетях. Причём не одной. Что делать серверу видеонаблюдения в подсети бухгалтерии?
    • 6. Стройте схему на основании потоков трафика, а не по некоему мистическому наитию.
    • 7. Не у телефонии, а у некоторых коммутаторов есть специальная работа с VoiceVLAN. да, только экономия портов. Если не работал - то и не связывайся. Потом поэкспериментируешь.
    • 8. По требованиям безопасности сеть видеонаблюдения вообще должна быть по возможности физически отделена от пользовательской. Отдельные коммутаторы и кабельные линии. да и трафика они генерят - могут забивать каналы, оно надо? То же и с линиями охранно-пожарной сигнализации - но тут строго, никаких "по возможности".
    • 9. Сервер печати. И да - он и принтеры в отдельном VLAN.

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

    Ставь сразу нормальный маршрутизатор.
    Потому что коммутатор, хоть и L3, тебе ничего не даст во вменяемой форме - ни статистики, ни управления, ни наблюдения.
    Ответ написан
    13 комментариев
  • Посоветуйте Lato-похожий шрифт с кириллицей

    sharapovk
    @sharapovk
    На сайте разработчика шрифта есть версия 2.0 с поддержкой кириллицы: www.latofonts.com/lato-free-fonts/#download.
    Пишут, что скоро должен появиться в Google Fonts.
    Ответ написан
    19 комментариев
  • Golang jetbrains не читает БД в sql?

    @deliro
    1. Goland, а не Golang. Golang — это язык, а то, что от JetBrains — IDE с именем Goland
    2. Изучать синтаксис SQL. Никакого отношения к Golan(d|g) "ошибка" не имеет
    3.
    Дальше будут сложнее запросы?
    То, что ты написал — самый элементарный запрос. Проще только SELECT 1; Очевидно, будут сложнее
    Ответ написан
    Комментировать
  • Как сделать динамичный title?

    aliencash
    @aliencash
    Партизан
    На js вам доступно document.title. Меняя его вы получите нужный эффект.
    Ответ написан
    Комментировать
  • Какой стек технологий лучше всего подойдет для работы с объемными базами данных?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    исходя из вышеизложенного, какой бы стек технологий вы бы выбрали как разработчик чтобы решить вышеописанную задачу?

    Для начала немного контекста - 2 важных примечания:
    1) Описанная задача решается на любом упомянутом стеке, + еще десяток возможных вариантов (Java/Spring, питон, нода, дотнет, голанг и т.д.).
    2) Быстродействие системы зависит от ее самой медленной части, и в 95% случаев самая медленная часть - БД, просто в силу специфики работы: много данных со сложными связями, выборки с сортировкой и фильтрацией из большого массива и вот это все, в то время как язык бэкенда в основном выполняет достаточно простые манипуляции с уже готовыми наборами данных (за редчайшими исключениями, которых в вашем кейсе нет, или они не описаны в вопросе).

    В вашем случае:
    - база можно сказать совсем небольшая, до 1 миллиона записей условный мускуль ворочает весьма шустро, если железо соответствует.
    - задача сбора метрик достаточно тривиальная, особого ума в сохранении действий пользователя не надо, бОльшая часть работы - вывод в красивые графики и написание быстрых запросов с хитрыми выборками/агрегациями, немного пошаманить с формулами, возможно делать какие-то сводные выборки с денормализованными результатами для отчетов и прочие мелочи. Работа не сложная, но нудная, и ее много.

    Насчет стоимости и условий:
    полный самопис 150к+ (я это не тяну) или же сайт на Laravel +MySQL а дальше варьируется.
    полный самопис - либо маркетинг, либо идиотизм, писать на голом языке не будет ни одна нормальная студия, в принципе в данном случае либо используется фреймворк и заказчику преподносится как "сделано вручную программистами девственниками под светом серебряной луны", либо разработчики идиоты, мнящие себя круче всех (нет). В первом случае это то же что и "сайт на Laravel +MySQL" (норма и стандарт для среднего уровня студий), во втором - развод на мани на пустом месте и попытка продать г**но в обертке "иксклюзивнасти".

    По цене - на сегодняшний день, если я не ошибаюсь, 150к деревянных это +- 1000уе. Цена приемлемая за нормальную работу, если найдете дешевле "на Laravel" - думаю будет вообще ок. Опять же, цены штука такая, кто-то за копейки сделает хорошо, кто-то за дорого каку сляпает. Влияет так же регион, понятно что в Мск цена будет серьезно больше чем в условном Челябинске...

    Важный момент - нормальное ТЗ в разы упрощает как поиск исполнителя, так и оценку работы. Я бы на вашем месте погрузился именно в тему создания качественного ТЗ, нежели в дебри современных технологий.

    UPD:
    проект планируется на 100 к+ посетителей в месяц...
    предупреждают что если аудитория достигнет условных 100 тысяч в месяц Лара начнет потихонечку задыхаться от нагрузки,
    ок, пусть будет 200к для наглядности.
    В среднем, если это маркетплейс, то постоянных посетителей будет не много, думаю около 10%, так что ими можно пренебречь. Условно - 200к / 30 дней = 6600 в сутки, при активных 10-12 часах посещения это ~600 в час. Пусть на 1 посетителя будет 5 запросов страниц, это 600*5=3000 в час = 50 в минуту или менее 1 запроса в секунду.
    Даже если умножить это на 30 (допустим такая пиковая нагрузка), 30rps вообще "ниачем". Не знаю кто там вам считал то это проблема, любое современное железо среднего уровня вытягивает без напряга.
    Ответ написан
    2 комментария
  • Какие русские платежные системы принимают платежи с Америки и ЕС?

    @Akela_wolf
    Extreme Programmer
    Никакие. Так как ограничение на платежи установлено самими платежными системами - VISA и MC. Никакой сервис не может принимать платежи, если их не позволяет сама платежная система
    Ответ написан
  • Кого-нибудь штрафовали за картинки из гугла и шрифты без лицензии?

    lxfr
    @lxfr
    Чтобы это сделать владелец должен быть резидентом РФ или компания должна иметь представительство в РФ (например как Microsoft). Если разговор идет про РФ.
    Ответ написан
    Комментировать
  • Когда использовать RWMutex вместо Mutex?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    В случае с обычным мьютексом возможен только эксклюзивный доступ к ресурсу, т.е. только один поток имеет доступ для чтения или записи.
    А когда у нас RWMutex, то количество потоков при чтении неограниченно, но при обращении на запись доступ становится опять эксклюзивным только для одного потока.

    RWMutex используется для увеличения пропускной способности, когда к ресурсу чаще обращаются на чтение, чем на запись.
    Ответ написан
    Комментировать
  • Почему не запускается язык go на ubuntu 20.4?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    Перейди в директорию, где храниться код и там запускай.
    Ответ написан
    2 комментария
  • Почему не запускается язык go на ubuntu 20.4?

    @deliro
    Это не ошибка. Открой ЛЮБОЙ туториал по го, будь добр
    Ответ написан
    1 комментарий
  • Можно ли использовать платные шрифты в веб проектах?

    @FoxInSox
    могут ли возникнуть проблемы потом у заказчика из США

    Конечно нет, как известно воровство в штатах легализовано, так что воруйте с чистой совестью на здоровье.
    Ответ написан
    Комментировать
  • Как работать с формой веб сайта?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Копаюсь в исходниках сайтов.

    А смысл? Не лучше ли сперва почитать основы? В них подробно описываются подобные вещи.
    site.ru&id=12

    Это - параметр URL, хотя и неправильно записанный.
    Правильно будет:
    example.com/addres?key=value&?key2=value2
    site.ru#profile12

    Это похоже на якоря
    Гугл выдаст 100500 статей по ним
    Ответ написан
    Комментировать
  • Курсор ввода в любом месте окна браузеров?

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

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

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    *Human и Human это два абсолютно разных типа данных.
    Значит и реализацию для интерфейсов для каждого типа надо делать отдельно.

    *Human - указатель на значение типа Human.
    Ответ написан
    Комментировать
  • Зачем нужны "ссылочные" методы и почему они не удовлетворяют интерфейсам?

    func (h *Human) Speak() {
    
    }

    Если глянуть на внутренности языка, то метод это по сути обычная функция, у которой первым параметром является ресивер (тот объект, у которого вызывается метод). То есть, компилятор этот код превратит в
    func Speak(h *Human) {
    
    }

    Соответственно, при вызове метода в случае *Human будет передача структуры по указателю, а в случае Human, по значению, со всеми вытекающими.

    Что касается ошибки про несоответствие интерфейсу, то тут надо учесть, что если у структуры определены методы через указатель, то и соответствовать интерфейсу будет указатель на эту структуру: https://go.dev/play/p/o7EsGmeYSRS
    Если же без указателя, то соответствовать интерфейсу будет сама структура: https://go.dev/play/p/oTsXP4DXaMJ
    Но оба одновременно определить не получится.
    Ответ написан
    Комментировать