• Где лучше учиться на программиста, если тебе за 35?

    xez
    @xez
    TL Junior Roo
    Шансы от этого не зависят.
    Учиться в любом случае придётся самостоятельно.
    Ответ написан
    Комментировать
  • Возможно ли оптимизировать mysql запрос?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Сразу готовый JSON из базы данных:
    WITH countries_links AS (
        SELECT JSON_OBJECT('name', `name`, 'iso2', `iso2`, 'links', COUNT(`link_id`)) d
        FROM `links`
        JOIN `countries` ON `countries`.`iso2` = `links`.`country`
        GROUP BY `name`, `iso2`
        HAVING COUNT(`link_id`) > 0
    ) SELECT JSON_ARRAYAGG(d) FROM countries_links

    Пример: https://sqlize.online/sql/mysql80/087bf8ba4f587b13...
    Ответ написан
    Комментировать
  • Зачем многие интернет магазины не предоставляют api?

    Real_Fermer
    @Real_Fermer
    Программист PHP
    Потому что владельцы магазинов хотят что бы покупали в их магазинах, а не в сторонних приложениях
    Ответ написан
    2 комментария
  • Как быть с кэшированием файлов (css, js, svg...) при их изменении?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    ведь его браузер новые стили не прочитает
    Бразуер кеширует конкретный файл. Соответственно, для сброса кэша просто меняют путь к файлу.
    Простой вариант: добавить get-параметр, в котором будет содержаться время последнего изменения. Но этот вариант требует чтения с диска на сервере, чтобы узнать mtime (не велика беда) и работает не со всеми reverse proxy (некоторые криво настроенные могут игнорировать get-параметры).
    Поэтому уже лет десять существуют системы сборки фронтенда, которые прямо в имя файла подставляю хэш от его содержимого. Сейчас это есть для абсолютно любой системы - gulp, webpack, что угодно.
    Называется это Cache Busting, вот вам первая попавшаяся статья: https://www.keycdn.com/support/what-is-cache-busting
    А ещё, кэш - это не только "не запрашивай файл 365 дней", там много различных функций: https://jakearchibald.com/2016/caching-best-practices/

    при их изменении на стороне клиента
    Такая формулировка подразумевает, что это клиент что-то меняет. Я уж обрадовался: "о, какой интересный вопрос, есть над чем подумать!"...
    Ответ написан
    2 комментария
  • Как сделать ромбообразную сетку?

    Это ведь сетка, состоящая из квадратов под углом 45 градусов, не так ли?
    Ответ написан
    3 комментария
  • Эффективны ли roadmapы в обучении?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Каждый пункт roadmap'а надо понимать, а не помнить наизусть. Если вы действительно разобрались с сокетами, то понимание никуда уже не денется.
    Ответ написан
    Комментировать
  • Почему логическое "И" & в C# возвращает 1?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    0 возвращает не &.

    & - жадный оператор. И левый, и правый операнд будут вычислены.
    && - ленивый. Если значение левого операнда false, то второй операнд даже не будет вычисляться.

    Получается, что в первом случае выражение вычисляется полностью:
    true & false & false -> false
    Выражение firstNumber++ > 0 имеет значение false, тк это пост-инкремент.
    В результате значение firstNumber=1 тк инкремент был вызван.

    Во втором случае инкремент не будет вызван, тк значение выражение будет очевидно в самом начале:
    (true && false)&& ... -> false
    Тк инкремент не вызван, secondNumber=0
    Ответ написан
    Комментировать
  • Какую базу данных использовать для такого проекта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут подходит любая реляционная SQL БД потому что нет противопоказаний. Реляционку мы выбираем
    уже более 30 лет как default вариант и почти не ошибаемся.

    Когда задача имеет признаки ярко выраженной high-load системы - мы делаем ей частичную денормализацию
    и раскладываем ее в NoSQL Key-Value решение. Но это не про улучшение а это про неизбежность. У нас нет выхода просто.
    Иначе мы клиенту не сможем быстро отдать какой-то резуальтат.

    Когда задача имеет ярко выраженную документную природу (нет спецификации на values) - мы берем MongoDb/CouchDb.

    Когда задача хранит граф и ищет в графе и вообще требует графовых алгоритмов - то мы берем Neo4j или ей подобные.

    Когда задача хранит данные измерений (телеметрия) - то предпочтительно взять InfluxDb или ей подобные. Здесь-же мы предполагаем что у нас - не будет joins а будет только измерения в диапазоне времени.

    Но в данном ТЗ и на картинке обычная SQL БД (MySQL/Postgres) вполне себе нормально справляется.
    Ответ написан
    Комментировать
  • Что такое бизнес логика и как их разделять с логикой приложения?

    xez
    @xez
    TL Junior Roo
    Бизнес-логика - это то ради чего создается приложение.
    На примере калькулятора, это все, что связано с расчетами: сложение, вычитание, деление и т.д.
    Бизнес логику всегда можно описать в формате "юзер-стори".

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

    Предположим, вы решили для своего калькулятора сделать мега-фичу - отправка результата вычислений по почте.
    Вычисления, запрос е-мейла и его отправка - это будет бизнес-логика, это все, что видит пользователь, а вот уже установление соединения с SMTP сервером, формирование валидного сообщения и т.д. - это пользователя не интересует, это в бизнес логику не входит.
    Ответ написан
    1 комментарий
  • Что такое бизнес логика и как их разделять с логикой приложения?

    Adamos
    @Adamos
    Владимир, вы бы еще архитектуру хелловорлда взялись "понимать".
    Если хотите понять в двух словах, то можно применить такой принцип: бизнес-логика - это то, ЧТО должно выполнять приложение. А логика приложения - то, КАК оно это выполняет. Гругря, "по заказу формируются документы в формате XLSX и PDF" - это бизнес-логика. А вот запрос к БД за данными заказа, разбор шаблона документа, использование библиотек для генерации файлов нужного формата - это логика приложения. Отталкиваясь от такого примитивного понимания, можно разглядеть уровни в коде: где программист размахивает человекопонятными блоками и выполняет техзадание, а где - копается в байтах, соединениях и потоках вывода. Если мы одно от другого отделяем, то оказывается, что низкий уровень для большинства задач один и тот же и его можно опять-таки собрать в библиотеки и практически без изменений использовать там, где понадобилась другая бизнес-логика, но использован тот же технологический стек.
    Ответ написан
    1 комментарий
  • Что такое бизнес логика и как их разделять с логикой приложения?

    vabka
    @vabka
    Токсичный шарпист
    На примере калькулятора бизнес-логикой будет собственно логика калькулятора - работа с переменными и математические операции.

    Логика приложения - всё что связано с взаимодействием с пользователем. Кнопки, формы, итд.

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

    Нет. Кнопки - это логика пользовательского интерфейса. Бизнес-логика - то, что за этими кнопками на самом деле стоит.
    Ответ написан
    1 комментарий
  • Правда ли, что если изучить Фронтенд а потом начать изучать Бэкенд, ты почти забудешь Фронтенд?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    за 20+ лет изучишь не только шарп но и порядка 400 технологий и успешно их забудешь и вспомнишь.
    Так что не партесь
    Ответ написан
    Комментировать
  • Правда ли, что если изучить Фронтенд а потом начать изучать Бэкенд, ты почти забудешь Фронтенд?

    Mi11er
    @Mi11er
    A human...
    Если сразу после учебы и без практики, то разумеется фронт будет забываться.
    Поэтому и надо будет или параллельно или в долгую практику
    Ответ написан
    Комментировать
  • Почему консольное приложение С# созданое в VS Code выглядит нестандартно?

    Adler_lug
    @Adler_lug
    Прямо в первой же строке ссылка, по которой находится ответ на ваш вопрос.
    Ответ написан
    Комментировать
  • Продумать формат для хакатона?

    @alekcena
    Нелинейный наставник
    Это не хакатон.
    Возможность пройти стажировку после испытательного без интервью, это проверка по техническому заданию. Так и проведите конкурс.
    Кто хочет пройти на стажировку, будет участвовать.

    Суть хакатона.
    Берем 100 команд.
    Говорим им, работать над идеей в области такой-то.
    Воруем идею.
    Начинаем реализовывать с участниками понравившейся идеи.
    Потихоньку выкидываем всех, кто эту идею придумал, реализуем нормальной профессиональной командой.
    Ответ написан
    1 комментарий
  • Как организовать поиск в БД с 1000 таблиц?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Даю совет: базу данных, в которой "есть очень много таблиц (>10.000), в каждой от 1 до 50 строк" нужно удалять, а того, кто её проектировал, увольнять с позором.
    Ответ написан
    4 комментария
  • Как выбирать первичные ключи в БД?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Но часто всё-таки добавляют искусственный первичный ключ "Номер".

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