Задать вопрос
  • Что прочитать для исчерпывающего понимания работы сети?

    @poslannikD
    Java/C/C++ Programmer
    Вот превосходный курс по сетям
    https://www.asozykin.ru/courses/networks_online
    четко, ясно, не напряжно

    Из книг:
    https://www.ozon.ru/context/detail/id/135453228/
    https://www.ozon.ru/context/detail/id/141492301/
    Ответ написан
    Комментировать
  • Как и стоит ли учить паттерны на Javascript?

    Stalker_RED
    @Stalker_RED
    Да стоит. Потом стоит поучить еще на каком-то языке, и еще на каком-то.
    В итоге возможно вы заметите, что паттерны не зависят от языка, а общие для всех :)
    Ответ написан
    1 комментарий
  • В каких случаях нужно наследовать Controller?

    Konata69lol
    @Konata69lol
    backend developer (php/go)
    Я периодически создаю классы, которые и не модели и не контроллеры - т.е. они просто содержат в себе всякие функции-утилиты.

    Вы создаете сервисные классы.
    А что я вообще получаю от класса Controller в своих контроллерах?

    Работу с запросами и ответами, сессии, куки и т.п
    Например, инъекция зависимостей в функцию - это от него?

    Нет, это по всему ларавел приложению работает. Можете определить свой класс и использовать DI там.
    Как понять где он мне нужен а где нет?

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

    Можете залезть во внутренности базового класса контроллера, посмотреть, что он содержит. Лишним не будет.
    Ответ написан
    1 комментарий
  • Сколько в среднем получает джун/миддл в веб-разработке в регионах (не Мск)?

    rockon404
    @rockon404
    Frontend Developer
    Вариант 1:
    1. Открываем любой сайт с вакансиями конкретного города.
    2. Смотрим актуальные зарплаты на интересующие позиции.

    Вариант 2:
    1. Открываем https://moikrug.ru/salaries
    2. Нажимаем Узнать другую зарплату
    Ответ написан
    8 комментариев
  • Насколько адекватно требовать домашнего развития от разработчиков?

    Zoominger
    @Zoominger
    System Integrator
    снг-бодишопов перфоманс ревью опен-сорс

    Лец ми спик фром май харт.

    По теме:
    1). Каким образом вы сделали данные выводы? Вы описываете исключительно свои частные субъективные наблюдения или у вас есть какие-нибудь источники, может, HR-handbook, где прямо описывается практика вешания ярлыков? Не сочтите за какую-то грубость, просто так можно что угодно утверждать.

    2). Вопросы, которые вы перечислили, вполне нормальные, мне на каждом интервью их задавали. Так проверяется мотивация, любовь к своему делу, уровень развития собеседника.

    3). Развиваться на и вне работы - рядовое качество нормального айтишника. Если кто-то говорит, что уже достиг каких-то высот и дальше ему развиваться некуда, то этот человек либо лжёт, либо скоро устареет и потеряет ценность. Область IT меняется постоянно и относительно быстро и изучать что-то самому - суровая необходимость, ибо на ряд специальностей нет образовательных программ даже на Западе.
    Ответ написан
    3 комментария
  • Как делать бекап в облачное хранилище?

    @mezhuev
    Системный администратор
    https://en.wikipedia.org/wiki/NTFS_symbolic_link

    Переносите папку в облачное хранилище и делаете ссылку на старое расположение.
    Ответ написан
    2 комментария
  • Как делать бекап в облачное хранилище?

    Включите синхронизацию хранилища в каталоге programData\solo9

    Или смонтируйте Yandex.Disk с использованием webdavfs и копируйте туда ваш каталог programData\solo9
    Ответ написан
    Комментировать
  • Как делать бекап в облачное хранилище?

    @zhaar
    Воспользоваться любыми специализированными утилитами для облачного бэкпирования.
    Ответ написан
    2 комментария
  • Как реализовать генератор интерфейсов?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    1. Вытащить название класса
    2. Подключить файл и создать ReflectionClass от этого класса
    3. Создать интерфейс по данным ReflectionClass

    Есть проблема безопасности подключения стороннего php файла, над этим тоже нужно подумать
    Ответ написан
    Комментировать
  • Как выгрузить массив в БД MySQL?

    @NedoKoder
    Include в цикле? Это новый вид мазохизма?

    Добавьте массив в базу в виде Json текста. Очень удобно потом обратно в массив переводить
    Ответ написан
    Комментировать
  • Как выгодно себя продать на рынке труда?

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

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

    грамотные люди не охотятся за конкретными знаниями, они охотятся за мозгами в целом и адекватностью в частности. ваше дело – продемонстрировать обладание этими качествами.
    Ответ написан
    Комментировать
  • Защита от mysql инъекций без средств pdo?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    mysqli_query (сам удивлён как он до сих пор живой)

    А в чём проблема? mysqli жив и поддерживается, у них даже частично кодовая база с pdo_mysql пересекается - если с mysqlnd собирать.

    mysqli предоставляет интерфейс prepared statements. Ну экспорт escape тоже есть.
    Ответ написан
    Комментировать
  • Какую сборку Windows 10 установить в 2019?

    Zoominger
    @Zoominger Куратор тега Windows
    System Integrator
    НИКАКУЮ

    Какая, блджад, сборка в 2019?! Они со времен Семёрки уже неактуальны, а нужны были на XP, потому что из коробки там не было ничего.

    Не занимайтесь ерундой, ставьте стоковую Винду, в сборках вам понапихают троянов за обе щёки. Не доверяйте школьникам-сборщикам, которые такое наворотят с системой, что просто диву даёшься.
    Ответ написан
    6 комментариев
  • Сколько нужно уметь для трудоустройства?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Ищите работу прямо сейчас.

    Прямо в вакансиях четко написано кто им требуется. Зачем вы спрашиваете это на тостере, если есть более надежный источник прямо у потенциального работодателя?
    Ответ написан
    Комментировать
  • Смена движка InnoDB → MyISAM на таблице с триггерами?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Делаете бекап, конвертируете, проверяете.
    Так-то триггеры живут уровнем выше storage engine и задеть не должны.

    PS: и стоит ещё раз внимательно подумать, точно ли хорошая идея менять транзакционный innodb на какую-то кучу бинарного мусора. Если вы понимаете, что транзакционность - это не только про слова begin/commit.
    Ответ написан
    Комментировать
  • Валидация полей на клиенте?

    @vanillathunder
    Можно отправлять данные через ajax и на клиенте смотреть ответ валидации, в принципе proengsoft/laravel-jsvalidation вполне достаточно.
    Ответ написан
    Комментировать
  • 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 комментария