Задать вопрос
  • Нужна ли формам семантика?

    @asmodeus13th
    Семантика нужна не только для удобства слепых и любителей TAB клавиши. Почитай статьи, как это влияет на поиск в гугле, восприятие плагинами, дополнениями и ботами. Даже тот же ИИ настраивают под семантику. В эту тему можно нырнуть на очень большое время, но основа (вкратце) - возможность понимать друг друга. Время , потраченное на создание архитектуры проекта, может быть больше, чем на написание кода. Зачем? А это самое интересное! Во- первых, ты уберегаешь себя и коллег от возможных багов и позволяешь легко ориентироваться по файлам, не зависимо от размера и познания в проекте. Хороший код - тот, который можно легко читать. Зачастую приходиться уступать производительностью ради читабельности. Придерживаться семантики - значит писать в едином стиле со всеми разработчиками. Даже если опустить архитектуру, то семантика нужна и для различных ботов. Вот написал я плагин для хрома, который делает мини-навигацию по форме (на самом деле ничего я не писал, просто привожу пример) и ориентируется поиск по тегу с формой, а у тебя на странице такого даже нет и всё, плагин работать не будет. А теперь представь какую фичу ты упускаешь, когда прячешь разметку от гугловских ботов. Любые таблицы, правила, списки и прочие семантические данные выводятся на странице поиска. Попробуй загуглите какую-то страну или инструкцию для, например, убунту. Гугл выведет информацию из Википедии или другого ресурса, не заходя на сайт. Думаешь, Телеграм не использует семантику? Вот весь такой оптимизирован благодаря ей. Посмотри на ютубе семинары от HTML Academy по семантике. Там всё доступно объясняют (что очень большая редкость для онлайн курсов). Понятное дело, что собирая сайт через фреймворки или путем встраивания html из js, боты не увидят эту семантику, а просто один тег с Id=“root”. Если взять в пример Figma, то семантики ты не увидишь, так как это не задумывалось как сайт, а скорее как приложение. Не придумали в html ещё таких тэгов как «рисовать пером» или что-то вроде «шаблон шаблона страницы». В общем семантика должна быть там, где она уместна. Если тебе не нужны привилегии семантической разметки или это соло проект без развития или вообще ты делаешь проект на оте*бись для плохого заказчика за 5$, то можешь не заморачиваться. Но в остальных случаях хорошей практикой, да и просто для себя, будет уместно и очень полезно использование семантики.
    Ответ написан
    1 комментарий
  • Нормально ли я отрефакторил if-else?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Я бы посоветовал оставить начальный вариант, т.к. если сделаете banchmark'и - вы увидите, что он будет быстрее вашей реализации.
    Т.к. в начальной реализации нет доп. вызова функции, а в вашей есть getRulesResult.
    Чтобы вызвать функцию - нужно положить значения в стек, а по завершению извлечь.
    За счёт этого ваша реализация будет работать медленнее.
    Но это замечание справедливо только для функций, скорость выполнения которых критична, как сортировка например.

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

    Но и визуально первый вариант понятнее.
    Оцениваю просто по времени, которое нужно затратить на то, чтобы понять как работает начальная реализация и ваша, на начальную ушло меньше времени.

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

    Но вы однозначно на верном пути, принятые решения и подход мне нравятся, просто у вас не совсем удачная задача для рефакторинга выбрана, решение изначально хорошее )

    Обычно, код, который нужно рефакторить выглядит во много раз непонятнее, это может быть простыня на несколько экранов монитора :)), а когда в такой простыне еще и цикломатическая сложность огромная (вложенность if'ов и for'ов большая) - такой код вообще очень трудно понять :)
    Вот тут самое то для рефакторинга.
    Ответ написан
    3 комментария
  • Стоит ли подписывать согласие на обработку персональных данных до того как прислали оффер?

    part_os
    @part_os
    Сложное в простом
    а что вас смущает? у вас есть данные, их нужно вносить в программу например hr сканер, уже идёт обработка. люди в компании начинают их смотреть. паранойя должна быть контролируемой, ваши данные уже давно у всех есть, это формальность.
    Ответ написан
    6 комментариев
  • Почему событие onchage не срабатывает для select?

    @alexalexes
    Есть события: click, change, input и т.д.
    Привязка обработчика соответствующего события с использованием атрибута тэга осуществляется с приставкой on:
    <select id="selectTheme" onchange="alert('Theme changed')">
    </select>

    Но в тоже время, привязка обработчика события с использованием addEventListener не требует указания on, берется само название события и с названием атрибута не нужно путать:
    sel.addEventListener('change', (event) => {
        	alert('Theme changed');
        })
    Ответ написан
    3 комментария
  • Как верстают сайты на React и Next?

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    Верстка делается сразу в React компонентах ? Или вначале делается классическая верстка, а потом переносится в React?

    Как Вам удобнее.
    Можно заказать вёрстку на аутсорсе, а потом перевести на реакт. А можно сразу верстать на реакт компонентах.

    Если я делаю какой-то сложный с точки зрения вёрстки компонента - я сначала просто верстаю его на чистом HTML, потом декомпозирую на подкомпоненты, если это имеет место быть, а потом накидываю реактивность и логику условного рендеринга. Я считаю, так компонент получается качественнее, с точки зрения вёрстки.

    если сайт на React, там все должно быть на React или допускается сделать некоторые элементы на нативном Js

    Реакт по своей природе - библиотека, которая может быть добавлена на любой сайт.
    Что означает, что у вас может быть 90% статичной вёрстки и 10% на реакте(какие то виджиты, отдельные блоки или сложные формы).
    И наоборот.
    Как и 100% на реакте.
    Ответ написан
    Комментировать
  • Как собирать данные с медицинской аппаратуры?

    @VT100
    Embedded hardware & software.
    Судя по тому, что Вы - анестезиолог, - речь идёт о стационарных приборах в палате интенсивной(?) терапии. Значит - стоит задача получать данные "in situ".
    Первое - убедитесь, что все приборы имеют выход LAN. Так Вы получите соответствие(?) требованиям по изоляции "на шару".
    Второе - "по локоть" погружаетесь в Гугль и ищете документацию на приборы. Параллельно - ***те АХО (или как оно у Вас называется) на тот-же предмет (а так же - где куплено, чтобы ***ть мозги и продаванам).
    Третье - продумайте Т.З. на основе найденной информации.
    Четвёртое - найдя документацию и/или ПО производителей пишете нужный софт на ПК сами или с привлечением сторонних специалистов.
    Пятое - не забудьте армейское правило инициативы.

    Ежели найдутся динозавры с COM и будет их меньшинство - оставьте их, как и USB, без внимания. Совет hint000 "Начните с COM." хорош быстротой. Но содержит подводный камень изготовления и сертификации "железа" (см. п. 1).

    Техподдержка не поможет.

    Почему? Фирмы прекратили существование? Или перешли, как это нынче модно у нетрадиционных, на модель Any_Peace_Of_Shit-As-A-Service?

    P.S. Короткий ответ на вопрос - "Да, можно." Правильный - "Недостаточно исходных данных."
    Ответ написан
    2 комментария
  • Встраиваемая бд которая лучше sqlite?

    @acwartz
    Тут должна быть ваша реклама.
    Да нету их особо, SQlite да вроде бы Firebird умеют быть встроенными-переносными без лютого бэкграунда.
    На мой взгляд у вас либо неправильная постановка задачи либо непраильная организация данных, либо тупо лень-матушка делать данные удобными для быстрого поиска.
    Кроме того есть прям-прям специальные решения для быстрого полнотекстового поиска по текстам, вряд ли среди них есть встраиваемые легковесные решения, ElasticSearch тот же.
    Ответ написан
    1 комментарий
  • Как создать ограничение доступа к просмотру записи?

    Fragster
    @Fragster
    помогло? отметь решением!
    Создаешь политику: https://laravel.com/docs/8.x/authorization#creatin...
    описываешь логику (ну, чтобы там автор, админ и назначенные могли видеть, автор и админ - менять, или любую свою), и в контроллер добавляешь регистрацию этой политики в конструктор: https://laravel.com/docs/8.x/authorization#authori...
    Ответ написан
    Комментировать
  • Приложение для анализа диска Linux?

    deepblack
    @deepblack
    NCurses Disk Usage

    sudo apt install ncdu
    Ответ написан
    Комментировать
  • Можно ли в запросе получить сразу 2 записи, по параметру, который известен в 1?

    BorLaze
    @BorLaze
    Java developer
    Именно две или первая нужна постольку поскольку нужно поле mytarget из нее?

    Если важен только последний запрос, можно сделать так
    SELECT result 
    FROM mydata 
    WHERE id < '127' AND mytarget = (SELECT mytarget FROM mydata WHERE id = '127')
    ORDER BY id DESC 
    LIMIT 1


    Если же нужны именно обе строки, тогда UNION
    SELECT result, mytarget 
    FROM mydata 
    WHERE id = '127'
    
    UNION 
    
    SELECT result, mytarget 
    FROM mydata 
    WHERE id < '127' AND mytarget = (SELECT mytarget FROM mydata WHERE id = '127')
    ORDER BY id DESC 
    LIMIT 1


    Насчет быстрее, сказать трудно; но обычно два запроса выполняются дольше одного, пусть и сложного.
    Ответ написан
    2 комментария
  • Как передать URL в javascript?

    @Vlad16
    Веб-программист
    В Laravel есть хелпер route. Чтобы его использовать надо дать маршруту имя. https://laravel.com/docs/8.x/helpers#method-route Вот посмотрите.
    Ответ написан
    3 комментария
  • Какие есть универсальные форматы (кроме pdf), в которые можно конвертировать html?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    PDF все используют не просто так.
    Есть, конечно, разные, даже docx и сам html умеют уже открывать телефоны. Но нужен ли вам этот геморрой?

    Если у вас ничего не вышло с PDF, вряд ли ваш путь с epub, например, будет сильно проще.
    Под PDF есть множество библиотек и в целом формат очень простой для языков и, к тому же, он открытый.
    Ответ написан
    Комментировать
  • Как создать пользователя ad с помощью php и передать ему пароль в md5?

    gbg
    @gbg Куратор тега Системное администрирование
    Любые ответы на любые вопросы
    Делать наоборот - при логине пользователя запрашивать AD по LDAP - если разрешает логин - логинить.
    Ответ написан
    Комментировать
  • Как найти на гитхабе живые форки?

    deepblack
    @deepblack
    insights -> network
    60d06c2da2b99542547445.png


    Там можно бегло оценить какой форк стоит выбрать.

    Либо как вариант автоматизировать это дело с помощью парсера реп (при условии что это оправданно)
    Ответ написан
    1 комментарий
  • Как реализовать систему входа по карте или qr коду?

    gbg
    @gbg Куратор тега Системное администрирование
    Любые ответы на любые вопросы
    Наймите специалиста, он вам все сделает. Причем начиная с техзадания.

    В вашей идее например нет никакого смысла в сканировании кода на стене, человек может просто нажимать кнопоньку на сайте или в приложении. Однако для этого нужно гарантировать, что на проходной есть гостевой вайфай.

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

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

    Короче, это огрызок техзадания, а не вопрос, не по формату ресурса, к сожалению. У нас не приветствуются неконкретные вопросы и развязывание дискуссий и брейнштормов.

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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Какие есть области без гитов

    Те, где кода на столько мало, что вести его историю нет необходимости.

    Без фрейморков

    Те, где фреймворки не помогают в решении задачи.

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

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Слишком объемный вопрос для тостера, причем обычно ответы на такие вопросы стоят достаточно больших денег...
    Обратитесь в аудиторскую компанию, там ответят на первую половину вопроса, заодно проконтролируют, чтобы данные о прибыли были правильными.
    На вторую половину вопроса Вам ответят в рекламном агентстве, можно и на фриланс к специалистам по продвижению обратиться.
    Ответ написан
    Комментировать
  • Какое направление выбрать, если не хочешь до конца жизни пилить формочки и гонять json?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    За свою жизнь мне довелось поработать в веб-разработке, автоматизации газопроводов, бухгалтерии, автоматизации бизнеса и даже дизайнером рекламы и журналистом. И останавливаться пробуя новое пока не собираюсь) При этом образование у меня - радиотехника.

    Образование не ограничивает круг возможных профессий, а жизнь иногда складывается так, что приходится заниматься совершенно неожиданными вещами. Выбирайте ту специальность, которая ближе Вам в данный момент, интернет здесь вряд ли подскажет оптимальный выбор, тем более что у каждого здесь свой собственный путь и своя правда - кто-то оканчивает ВУЗ и всю жизнь работает по специальности, а кто-то ищет себя в самых неожиданных областях.
    Ответ написан
    1 комментарий
  • Как правильно определять тип объекта в Typescript (React)?

    search
    @search
    мама говорит что я особенный
    Тайпскрипт правильно ругается потому что таргет события не обязательно должен быть дом элементом. События могут так же порождаться, например XHR запросами.

    Я бы на вашем месте сделал так называемую type guard функцию, в которой убеждался бы что таргет действительно элемент дом. Все элементы дом наследуются от объекта HTMLElement. Это можно использовать для проверки:

    const isHtmlElement = (v: any): v is HTMLElement => v instanceof HTMLElement;


    далее мы можем использовать эту функцию для проверки нашего таргета:

    const eventHandler = (e: Event) => {
      if (!isHtmlElement(e.target)) {
        return;
      }
      // Вот здесь мы можем смело работать с таргетом как с ДОМ Элементом
      e.target.classList.toggle('active');
    }


    УПД

    Еще информация к размышлению.

    Финальный код, сгенерированный тайпскриптом, не содержит информации о типах. В рантайме нельзя узнать тип интерфейса, выполнив, например `peremennaya instanceof VashInterfeis`. Но всегда можно создать type guard функию, которая будет определять что объект именно нужного типа по каким-то косвенным признакам (например по наличию определённых полей в объекте). Так как код guard функции невозможно провертить статическим анализватором, тайпскрипт не может гарантировать того что ваша guard фунция верна и не пропускает всё подряд. Поэтому, хорошим тоном является писать такой код, который не нуждается в подобных проверках. Это возможно. Код при таком подходе становится стройнее и легче для осмысления.
    Ответ написан
    1 комментарий
  • На каком этапе роста проекта приходится использовать Raw запросы?

    DevMan
    @DevMan
    на одних проектах вообще не использую, просто заранее тяжелые выборки загоняю в кэш.
    на других – вообще со старта. ибо много сырых данных, обновляющихся каждый день, а распихивать их по моделям нет ни смысла, ни необходимости (данные только читаются).
    в третьих - там, где не хватает возможностей и надо хитрить.

    в общем: все зависит, универсального ответа нет.

    ну и стоит отдельно определиться, что подразумевается под сырыми запросами: квери-билдер или прямой доступ к базе. последнее я практически не использую.
    Ответ написан
    Комментировать