• CRON задача каждую минуту это нормально?

    gordon_shamway
    @gordon_shamway
    CRON задача каждую минуту это нормально?

    Да
    Ответ написан
    3 комментария
  • Оптимизация mysql 8.0.15 only innodb под 400млн запросов в сутки?

    @neol
    Перестаньте выкручивать значения до неимоверных величин не разбираясь, на что это вообще влияет.

    read_buffer_size = 196M
    read_rnd_buffer_size = 196M

    https://www.percona.com/blog/2007/09/17/mysql-what...

    sort_buffer_size = 196M
    innodb_sort_buffer_size = 64M

    https://www.percona.com/blog/2007/08/18/how-fast-c...
    Если коротко, то там написано, что нужно тестировать конкретно ваши запросы на конкретно ваших данных с разными значениями sort_buffer, чтобы найти оптимальное значение. Внезапно оно может оказаться очень небольшим.

    join_buffer_size = 32M

    On Linux, there are thresholds of 256KB and 2MB where larger values may significantly slow down memory allocation, so you should consider staying below one of those values. Experiment to find the best value for your workload
    https://dev.mysql.com/doc/refman/8.0/en/server-sys...

    max_heap_table_size = 1024M
    tmp_table_size = 16384M

    https://dev.mysql.com/doc/refman/8.0/en/server-sys...
    https://dev.mysql.com/doc/refman/8.0/en/internal-t... - тут написано при каких условиях временные таблицы на диске будут создаваться вне зависимости от того, на сколько вы выкрутите tmp_table_size

    max_user_connections = 6000
    max_connections = 18000

    Мне кажется это дичь и вам надо на порядок меньше подключений, но тут надо подождать вывода mysqltuner.

    На сколько нормальным решением делать бэкап через mysqldump с quick и без блокировки на сервак морды каждые 2 часа

    Раз уж у вас все таблицы innodb, то стоит посмотреть в сторону xtrabackup
    Ответ написан
    1 комментарий
  • Дайте оценку верстке?

    @Flying
    Визуально выглядит вполне пристойно и очевидных косяков почти нет, но если копнуть глубже - возникают вопросы.

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

    Из наиболее заметного - заглавная картинка с автомобилем в PNG которая занимает почти 600кб и из-за этого грузится весьма и весьма неспешно (и заметно для пользователя). В целом это по большей части косяк дизайнера, не приложившего усилий к тому чтобы выбрать правильную графику (автомобиль снят явно на улице и отражения в стёклах дают существенный вклад в визуальный шум и, как следствие, в размер картинки, нужно было выбирать фотографию сделанную в специальном помещении). Кроме того дизайнер, очевидно, не слышал про требования к такси в Нью-Йорке и рисовал как взбредёт в голову, но оставим это на его совести. Сочетание фоновой картинки, на которой весь траффик едет в обратном направлении и делает автомобиль такси нарушающим правила дорожного движения - тоже на совести дизайнера.

    Однако и в этом случае и, тем более, в случае фоновых изображений ниже по странице вы допускаете ошибки с выбором форматов файлов, способами их вставки в страницу и оптимизацией. К примеру из картинки с автомобилем можно выжать почти 100кб просто за счёт использования оптимизаторов. Гораздо грустнее ситуация с фоновыми картинками ниже по тексту. Во-первых вы сохраняете фотографии в PNG, получая на выходе файлы по мегабайту, хотя они же в JPEG занимали бы в 5-10 раз быстрее. Во-вторых вы, скорее всего, сохранили фоновые картинки уже обработанными (затемнёнными). Я не видел макета, но предположу что там эти картинки стоят в их оригинальном виде и на них наложены какие-нибудь фильтры. На первый взгляд кажется что проблемы нет, но на практике (в случае вёрстки для реального сайта) вы вынуждаете человека который будет поддерживать сайт либо готовить картинки с такой же пост-обработкой либо мириться с тем что стиль сайта меняется. Правильное решение здесь - грузить картинки как они есть и реализовывать фильтры на CSS, тем более что здесь это делается элементарно через multi background или псевдо-класс с полупрозрачным фоном. Очевидно также что для таких тёмных картинок вполне можно использовать JPEG с меньшим качеством и тем самым существенно сэкономить пользователям трафик.

    Ещё одна проблема связанная с фоновыми картинками - вы не подкладываете под них близкий по цвету solid color. Попробуйте включить в dev.tools "Network throttling", отключить кэш и перегрузить свою страницу - думаю вы поймёте что я имею в виду - белые блоки с белым текстом стоят довольно продолжительное время, постепенно заполняясь довольно тёмными картинками. Если бы background-color под ними был бы чёрным - проблемы бы не было.

    Далее - логотип. Обычно логотипы разрабатываются отдельно и даже если он выглядит просто набранным шрифтом - это вовсе не значит что это не так. Логотип Google, Microsoft или Яндекс - тоже просто название, но, надеюсь вы не сверстаете их, написав надпись текстом? В общем логотип = картинка, лучше в векторе. Сейчас даже одно съезжание слогана на пиксель влево относительно названия уже рушит всю конструкцию логотипа.

    Обратите внимание на то как вы работаете с формами. Все поля в форме являются <input type="text">, хотя часть названий явно намекает на date / time селекторы, а "Choose Vehicle" - на список выбора.

    Хотелось бы отметить работу с иконками - их всё-таки лучше хранить в SVG и либо требовать с дизайнера либо подбирать на том же Icon Finder. При этом оформление (те пресловутые жёлтые кружки) лучше делать через CSS т.к. это позволяет вам существенно гибче работать с размерами элементов.

    Есть всякие недочёты касающиеся responsive, к примеру, внимание как отображается блок "Our Tariffs" в размере чуть более 600px, в частности название тарифа и описание.

    Пожалуйста обратите внимание на то что вы используете два разных меню для desktop и mobile представления. В целом в вашем случае меню довольно простое и можно было бы обойтись одним. Конечно две копии используют часто, но у этого решения есть свои недостатки (в частности отсутствие синхронизации состояния), так что вы должны осознанно принимать решение по таким вопросам. Кроме того inline обработчики onclick там явно могут быть заменены на элементарный
    document.querySelectorAll('.menu a, .menu-hover a').addEventListener()
    что явно сделает код более простым и поддерживаемым.

    Ещё один важный момент который зачастую опускают при вёрстке - поведение макета с реальными данными. То что дизайнер в макете понапихал везде lorem ipsum и тексты примерно одинакового размера - отнюдь не означает что на реальном сайте эти условия будут соблюдаться. Отсутствие навыка проверять поведение макета в изменяющихся условиях ведёт к множеству ошибок которые не видны в условиях синтетических данных. К примеру попробуйте в блоке "We Do Best Than You Wish" (претензии по поводу английского языка оставим в стороне) в любом из элементов банально увеличить количество текста в 2-3 раза. В Chrome это приводит только к излому сетки, в Firefox - ещё и к изменению размера иконки. При этом я предполагаю что Firefox ведёт себя правильно т.к. пропорции элементов изменились, а ограничения размеров на картинки у вас не заданы.

    В целом похоже что макет верстался и проверялся только в Chrome. К примеру посмотрите как ведёт себя картинка с рукой и телефоном в Firefox при изменении размеров. Опять же Firefox вполне корректен т.к. вы не обрезали картинку корректно, предпочитая выгрузить "как есть" и подгонять положение в CSS, но забыв при этом про overflow: hidden для контейнера.

    Теперь перейдём к CSS:

    Обратите внимание на то как вы подключаете внешний шрифт:
    family=Lato:400,700,700i,900,900i&amp;subset=latin-ext
    . Возникают два вопроса:
    1. Зачем вам subset=latin-ext на сайте где есть только базовая латиница?
    2. Как вы выбирали начертания? У вас подключаются 5 начертаний (400, 700, 900 + два italic'а), при этом grep по CSS даёт значения font-weight 200, 300, 400, 500, 600, 800 и ни одного italic. Вам не кажется что эти множества почти не пересекаются?


    Кроме того вы постоянно забываете про fallback шрифты что на медленном интернете и при отсутствии инструкций для font loading приводит к невидимому контенту страницы на период загрузки.

    Отсутсвие ограничения по ширине для .wrapper приведёт к недопустимо широкому сайту на больших мониторах с высоким разрешением. Можете уменьшить масштаб страницы до 50% и полюбоваться результатом.

    В стилях повсеместно используются достаточно общие названия классов в global namespace. К примеру кто бы мог подумать что стилизует селектор .text? Вы уверены что нигде больше на сайте подобный селектор не встретится? Даже при дальнейшем развитии сайта? Другими словами именование селекторов - важная часть работы, вы можете использовать любую методологию (тот же БЭМ или что-то ещё) или разработать свою, но ваш код не должен ломаться при добавлении ещё пары блоков, особенно если это будет делать другой человек.

    Списки элементов, к примеру тот же .product-cont лучше делать именно списками, а не распихивать элементы по столбцам вручную, благо flexbox и column layout здесь всё прекрасно сделают за вас, зато имея одноранговый список вы обеспечите себе куда большую свободу действий.

    Использование id в качестве CSS селектора - плохая практика, но у вас таких мест немало, 11 штук.

    Уверен что мог бы найти ещё что-то, но надеюсь для затравки хватит, и так много получилось... :)
    Ответ написан
    4 комментария
  • Имеет ли смысл создавать интернет журнал на Vue.js?

    @McBernar
    Не будет. Заверения Гугла и Яндекса по этому поводу не соответствуют действительности.

    Делайте SSR.
    Ответ написан
    Комментировать
  • Имеет ли смысл создавать интернет журнал на Vue.js?

    @inzeppelin
    Можете посмотреть в сторону Server Side Rendering на Vue.
    Ответ написан
    1 комментарий
  • Дайте оценку верстке?

    sergski
    @sergski
    web-developer
    Вполне достойно.
    С методологией написания стилей хорошо бы поработать: class="tfs-box aa", .product product2 --- плохая практика
    Ответ написан
    Комментировать
  • Как соблюсти принцип последней буквы SOLID?

    @Wentixon
    Во-первых, я советую тебе не заниматься херней, проходя всякие тупые курсы и делая свои велосипеды. Поверь, эти курсы тебя ничему хорошему не научат, я сам это все прошел - толку ровно ноль. У тебя все равно ничего хорошего не получится, так как лучшие разработчики годами оттачивают свои фреймворки, при чем заимствуя фишки друг у друга (речь идет о популярных фреймворках).

    Во-вторых, если все же у тебя шило в попе, хочется какую то херню погородить, то умные люди придумали некоторые стандарты. Условным стандартом в php являются компоненты с самого качественного фреймворка symfony, на которых кстати основан также laravel. Вот компонент роутера например. Популярные фреймворки состоят из таких мелких независимых компонентов.

    В-третьих, на будущее.. Прежде чем что то делать, посмотри как это сделано у других. Компонент роута я тебе дал, хочешь свой пилить (хотя это абсолютно бессмысленно), то пожалуйста, но лучше ты 100% не сделаешь, так что просто посмотри как сделано у них хотя бы.

    Ну а теперь отвечу на твой вопрос. Контроллеры привязываются к роутеру извне, так что внутри никаких привязок не будет. И вообще, тут не стоит говорить о SOLID, так как это этап загрузки приложения. Никто не может быть уверенным, что такой контроллер вообще найдется и в нем будет присутствовать такой метод, так что в этом случае просто будет исключение.

    Кстати можешь посмотреть эти курсы, самое толковое из того что есть
    Ответ написан
    64 комментария
  • Как поступить чтобы проще понять java?

    @AndrewRusinas
    Писать код, читать чужой, повторять за видео уроками — сначала будет нихрена непонятно, но "мышечную" память поможет развить. Параллельно читайте какую-нибудь хорошую книгу-справочник по Java. Со временем придёт понимание.

    Поставьте себе цель сделать какое-то конкретное приложение, которое будет решать вашу конкретную проблему. И делайте. Смиритесь с мыслью, что первые три месяца будет полнейший ступор.

    Для общего понимания программирования можно почитать "грокаем алгоритмы", и другие книги этого автора.
    Ответ написан
    2 комментария
  • Популярные плагины для Laravel - какие именно?

    TLDR; - Вы путаете CMS и Framework. Используйте WordPress, если его достаточно для ваших нужд.

    Отделяйте яблоки от апельсинов. Если вы хотите сделать из Laravel - WP - то используйте WP. Лара она не цмс все же, а фрэймворк. Это для тех, кому мало цмс и нужна своя функциональность. А раз такое понадобилось, то и формы нужно делать свои, иначе - есть упомянутая вами же contact form 7 - зачем "изобретать велосипед" в виде такой же формы на Laravel ? =)

    Ну, вообще сам Laravel - это набор плагинов, своего рода. Artisan, Eloquent, Homestead + штуки из раздела документации Official packages. А на счет формы - ну есть же `php artisan make:auth` =)
    Ответ написан
    5 комментариев
  • А вы делаете тестовое задание?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вот сколько раз не делал тестовое задание, в итоге никуда и не брали.

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

    @d-stream
    Готовые решения - не подаю, но...
    37.1442351143%
    Ответ помог?
    Если нет - значит это ответ на вопрос)
    Ответ написан
    3 комментария
  • Нормально ли ходить на повторное интервью после провала?

    SagePtr
    @SagePtr
    Еда - это святое
    Если работодатель адекватный, то он понимает, что за 2.5 месяца соискатель вполне мог получить необходимые навыки и теперь подходит на должность.
    А если неадекватен, то даже при прохождении тестового задания найдёт повод не взять, в таком случае это будет даже к лучшему, что не устроились к идиоту.
    Ответ написан
    Комментировать
  • Нормально ли ходить на повторное интервью после провала?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    Если Вы подтянули знания, то почему бы и нет?!
    Настойчивость, целеустремленность!

    "Стучите - и Вам откроют!"
    Ответ написан
    Комментировать
  • Как оценить стоимость разработки?

    mixail_fet
    @mixail_fet
    Дизайнер веб-интерфейсов
    Ответ написан
    1 комментарий
  • Какие налоги и взносы платить фрилансеру-физлицу?

    @EkaterinaBel
    Физическому лицу надо платить НДФЛ. Можете подать 3-НДФЛ в налоговую. Взносы платить не обязаны
    Работаю с несколькими компаниями без каких-либо документов и договоров (вопрос доверия опустим, все "свои"). Оформлять ИП не хочу, так как доход небольшой (в пределах 30 тыс./мес.)
    Вопрос - что и куда мне платить как физлицу по закону?

    По закону НДФЛ должны были удержать эти компании при выплате дохода. И страховые взносы заплатить.
    Если не удержали НДФЛ и не заплатили взносы, то их оштрафуют и страховые взносы взыщут. Если платили безналично и систематически, то это вопрос времени.
    Если Вы подаете 3-НДФЛ, укажите реквизиты компаний и суммы. Приложите выписку со счетов. При подаче декларации можете сообщить, что справку 2-НДФЛ предоставить не можете, так как выплаты были без заключения договора и неофициально. Налоговый орган возражать не будет.

    Что все-таки выгоднее - продолжать работать как физлицо или оформлять ИП?

    Финансово можно сравнить
    ИП обязан заплатить 36 238 руб. страховых взносов в год + 1% от суммы сверх 300 000 руб.
    У Вас годовой доход 360 000 руб.
    страховые взносы 36 238 + 600 = 36 838 руб.
    Налог можно уменьшить на сумму взносов. Если выберете УСН 6% (доходы), то налог 21 600 руб, взносы выше, то есть полностью учитываются и налог платить не надо
    Соответственно, должны будете заплатить только взносы 36 838 руб.

    Если как физлицо, то НДФЛ - 13% от суммы
    налог - 46 800 руб.

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

    @boss_lexa
    1) Раз в год нужно подать в вашу налоговую инспекцию декларацию по НДФЛ, попросите и они вам пойдут распечатают квитанцию 13% НДФЛ c вашего дохода и нужно будет оплатить их. Выписка необязательна, но иногда могут попросить

    2) Физлицам за самих себя платить не нужно, если вы не самозанятый или ИП. Если вы официально трудоустроены за вас должен платить работодатель

    3) лечение/обучение/ипотека/недвижимость/ИИС/страхование По каждому виду свои лимиты.
    Подробнее https://ndflka.ru/

    Согласно законодательству если получаете систематический доход - то нужно стать предпринимателем/самозанятым

    Если вы проживаете в регионах как: Москва и Московская область, Татарстан, Калужская область - становитесь самозанятым и платите 4-6% налогов с дохода

    ИП на УСН (доходы) платит:
    • обязательные взносы около 36 000 руб взносов в ПФР и ОМС - даже если нет дохода
    • взнос в ПРФ 1% (свыше дохода 300 тыс ) но не более около 230 тыс в год
    • 6% налога на доходы по УСН (его можно уменьшить на всю сумму взносов в ПФР и ОМС если вы вовремя поквартально их оплатили)


    если у вас доход 30 тыс/месяц * 12 = 360 тыс руб в год * 13% НДФЛ = 46800 руб налогов если вы физлицо
    на ИП вышло бы 36 тыс (обязательны взносы) + (360-300)*1% в ПФР = около 37000 руб - меньше чем физлицо

    если доход в год меньше 277 000 руб в год (36000 делим на 13%) - было бы выгоднее платить как физлицо

    Для ип выгоднее всего открыть бесплатный счет в сбербанке легкий старт (до 150 тыс в месяц снимайте бесплтано)

    если вы будете принимать оплату от физлиц (любым способом) или наличными от организации - нужна будет касса (обойдется с ОФД и ФН на 3 года за 18 тыс). Если будут платить организации только по безналу - касса не нужна

    за ИП вам нужно будет раз в квартал заплатить налоги и взносы + раз в год сдать декларацию по УСН и отчет росстат - это несложно
    Ответ написан
    5 комментариев
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых - ООП, иначе нет смысла заморачиваться с крупным проектом, да и функциональный подход сегодня вообще в проектах больше чем "свой микроблог" никто не использует, это не рационально.
    Так же откройте для себя MVC и возьмите какой-то фреймворк в котором все это уже нормально реализовано, в итоге время потраченное на прочтение документации и написание контроллеров и моделей к проекту будет в разы меньше чем вы потратите на свое кошмарное велосипедостроение. Кроме того, построенный по вашим наброскам Титаник и показать то кому-либо будет стыдно, а знания любого современного фреймворка напротив - будет большим плюсом.
    Удалив модуль и БД мы повлияем на работу других модулей. Изменив структуру БД мы повлияем на работу других модулей.
    SOLID, DRY, KISS...PSR4 и много других страшных аббривиатур вам помогут )
    Ответ написан
    8 комментариев
  • Как лучше организовать код?

    amark
    @amark
    rush less, feel more
    У меня сложилось впечатление, что вы изобрели велосипед.
    В общем-то в вашем тексте много разумных находок и выводов.
    Однако может вам имеет смысл выбрать какой-то фреймворк? Yii, Laravel, Symfony и т.п.
    Вы автоматом получите и структуру, и порядок работы, и разделение и кучу всего, что упростило бы вам жизнь. М?
    Ответ написан
    7 комментариев
  • Среднее количество обращений к БД?

    gobananas
    @gobananas
    finishhim.ru
    5 это нормально, не беспокойтесь. Количество не всегда важно, иногда и один запрос может базу положить ))
    Ответ написан
    Комментировать
  • Какой срок жизни SSD Macbook Air 2018?

    AlexMarken
    @AlexMarken
    Скажу сразу - о сроках жизни даже не беспокойся)

    Одним из главных факторов срока жизни SSD является количество перезаписей на ячейки диска. Чем объёмнее накопитель и больше допустимых циклов перезаписи, тем дольше он прослужит. Тип SSD с TLC имеет 500-1000 (возможно, и более) циклов перезаписи ячейки, и соответственно есть такой параметр, как TBW (Total Byte Write), - общее число байт которое можно записать на диск, после чего ячейки памяти израсходуют свой ресурс.

    Все мои SSD (Samsung, Plextor) жили не более 4-5 лет, получается Macbook Air проживет также?

    SSD в MacBook'ах стоят хорошего качества и с огромным количеством циклов перезаписи, да стоят они дорого. Если сравнивать твои SSD с теми, что использует Apple, цифры будут сильно отличаться в пользу Apple - и в цене, циклах перезаписи, и тп. На такие диски, как в iMac/MacBook, производители обещают срок службы до 10 лет.

    А теперь посчитаем. Допустим, SSD у MacBook Air 2018 имеет объём 128Гб и 800 циклов перезаписи на одну ячейку памяти, а железо меняют раз в 4 года в среднем. Срок службы производитель заявляет до 10 лет.

    1. "Чтобы угробить диск за 4 года, нужно...":
    а) TBW = 128Гб * 800 циклов / 1024 = 100 ТБ информации можно записать на диск, чтобы ячейки памяти отказали.
    б) 100ТБ / (4 * 365 дней) * 1024 = 70 ГБ нужно перезаписывать в день, чтобы диск за 4 года пришёл в негодность.
    в) DWPD = 100ТБ / (128Гб * 4 * 365 дней) * 1024 = 0.54 - количество перезаписей всего объема накопителя в день (из 800 допустимых).

    2. Время жизни с учётом погрешностей:
    Средний пользователь записывает-удаляет 20Гб информации ежедневно (с учётом нагрузки софта на диск).
    100 ТБ * 1024 / (20Гб * 365 дней) = 14 лет службы диска, берём в расчёт различные внешние факторы, влияющие на жизнь SSD = получаем 8-11 лет безотказной работы SSD у MacBook Air 18г.

    3. "Если объём увеличен в двое":
    Точно такой же диск, но с объёмом памяти 256Гб будет иметь показатели, увеличенные в 2 раза.
    Например, TBW = 200Тб или 140 ГБ/день перезаписи за 4 года. Но DWPD останется прежним и срок службы тоже до 10 лет.

    Вывод:
    а) MacBook Air 2018 c 128Гб будет иметь жизнь диска 8-11 лет при условии эксплуатации среднего пользователя;
    б) Если ты покупал недорогие SSD с 128-256Гб памяти с меньшим циклом перезаписи, срок службы для них 4-6 лет - как и получилось в твоём случае;
    в) У более объёмных носителей показатель TBW может достигать и 900Тб, и даже выше.
    Ответ написан
    30 комментариев