Ответы пользователя по тегу JavaScript
  • Почему алгоритм работает некорректно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Ужос. Где var перед переменной a? Зачем вам явный тройной цикл, есть же indexOf

    var data = [],
        count = 42,
        tmpVar;
    while (data.length < count) {
        tmpVar = Math.floor(Math.random() * count);
        if (data.indexOf(tmpVar) === -1) {
            data.push(tmpVar);
        }
    }
    Ответ написан
    Комментировать
  • Стартап после работы?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Парень, меняй работу. Вкалывать по 12 часов в сутки - это очень хреновая идея, будешь овощем. Работа на износ эффективна только очень короткий промежуток времени, как только это время закончится производительность начнет резко падать, а потом - перегорание и апатия (к слову из них выйти не всегда легко).

    Если я правильно понял - работаешь в конвейерной web-студии, там смысла развивать спецов нету потому как задачи однотипные.
    Ответ написан
    Комментировать
  • Как защитить сайт от вредоносных атак?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    1. Пользователь всегда врет. Все без исключения входящие данные ОБЯЗАТЕЛЬНО должны валидироваться, в случае ошибки - шлем на йух.
    2. Для средних систем - вполне норм подход: во всех публичных методах выполнять обязательную проверку всех аргументов простых типов, чуть что не так - исключение. Так как проверок будет море - критично время их выполнения, можете посмотреть мой проектик: https://github.com/ko-ko-ko/php-assert

    Пример использования:
    /**
     * @param string $login
     * @param string $password
     * 
     * @return int
     * @throws \InvalidArgumentException
     */
    public function login($login, $password)
    {
        Assert::assert($login, 'login')->lengthBetween(4, 16);
        Assert::assert($password, 'password')->lengthBetween(6, 20);
        
        // Business logic here
    }

    Код конечно после таких действий не самый красивый, но надежный. В случае действительно крупного проекта - вполне норм делать проверки в приватных и защищенных методах. Многомерные массивы как аргументы методов можно использовать только в безвыходных ситуациях.
    3. Гетеры и Сеттеры - обязательно. По хорошему классов с публичными свойствами быть не должно.
    4. Права на запуск ТОЛЬКО у точек входа, например index.php.
    5. Log - твой друг. Каждое исключение обязательно должно сохраняться для выяснения причин.
    6. Жесткая блокировка типов запросов. Например на главной - только GET, на login - только POST.
    7. По хорошему в мир должен смотреть только 80/443 порты.
    8. Блокировка сканнеров - в случае подключения запросов на то, чего у вас нет публично, pma (phpmyadmin) например - банить по ip на час, или больше. *Если у вас таки есть публичный pma - сами себе злобные буратины))
    9. По хорошему - стоит снимать метрики работоспособности вашей системы, например в zabbix, это косвенно решает проблему безопасности: отклонение метрик - маячок.
    10. Система контроля версий на проде обязательна, но с заблокированным push + системные файлы vcs закрыты для мира.
    11. Доступ к проду только у сисадмина и тим лида.
    12. Ручные правки кода в не релизное время выполняет тимлид и только после апрува руководства. Эти правки ОБЯЗАТЕЛЬНО должны быть сохранены в репозиторий в ближайшее время, например в течении 3-х дней.
    Ответ написан
    1 комментарий
  • Чего не хватает сервису?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    С точки зрения бизнеса ваш проект опасен. Передавать трафик третьему лицу (т.е. вашему сервису), вместо того что бы выполнять эту задачу собственными силами как-то не правильно. Тот же даже очень нагруженный чат реализуется через сервера очередей, или кластер redis(pub/sub) с нодой на фронте.

    Тема пожертвований - это конечно мило, но что вам мешает помимо целевых сообщений, передавать еще например рекламу? Сам пользователь будет думать, что это либо его собеседник, либо мой сервис, про hawk он даже не будет иметь ни малейшего представления.
    Ответ написан
  • Есть ли ресурсы для обучение детей программированию?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Не надо начинать ни с JS, ни с С#.
    JS - это асинхронный язык, за счет этого не всегда себя ведет очевидно. + Он очень развращает.
    // Забавное наблюдение: большинство соискателей, говорящие, что знают JS на 7+/10, знают только jQuery.
    C# - ООП язык, высокого уровня, что бы смочь его нужно знать основы.

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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Может есть какие то параметры или инструкции как должен выглядеть код?

    Существуют конечно, но их огромное количество + они противоречат друг другу + они ориентированы на РАЗНЫЕ задачи.
    Не программист, не сможет оценить программиста, увы и ах. Дело в том, что многие не имеют ни малейшего понятия, чем занимаются программисты, мы как кузнецы из средневековья, это магия.
    Прикол в тому, что любой программист может решить любую задачу, а разница между ними в том, что синьйор сложную задачу сделать продуманно и так, что "все сломалось" вы не скажете (в крайнем случае 1 раз), а юниор - сделает быстрее (или на порядки медленнее), "ничего не работает" будет звучать довольно часто. Со стороны это будет выглядеть еще забавнее: синьйор будет выглядеть как бездельник но работать все будет, юниор будет потеть, вкалывать но постоянно будут вылазить косяки.

    > Или может определить приоритетный язык и фреймворк для написания?
    Это определяется ТЗ, а не вашим желанием.
    Вот представьте, что собеседуете ядерного физика, и скажете: в общем нам нужна эл. станция на 1ккккВт, но мы работаем на дровах...
    Ответ написан
    Комментировать
  • Как выполнить php код при нажатии?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Конечно можно. Для этого вам потребуется написать интерпретатор php на js и запустить его в браузере. Это всего каких-то 10+ человеко-лет работы.
    Ответ написан
    Комментировать
  • Создание бота, или где начать копать?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотри в сторону PhantomJS / CasperJS
    Ответ написан
    Комментировать
  • Где поискать JavaScript программиста для open source проекта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Что вам мешает написать бриф + ТЗ о вашей мега-мысле, выложить их в публичный доступ и давать ссылку на него на ресурсах вроде этого? Люди, что непосредственно заинтересуются - с вами свяжутся сами.
    Ответ написан
    4 комментария
  • Как лучше реализовать фронтенд под IIS и веб-сервисы?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Можете в сторону catberry посмотреть
    Ответ написан
    Комментировать
  • Где водятся специалисты JavaScript?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    > ... который мог бы совмещать качественных фронт и бэкэнд на node.
    Не ищите 8-мирукого Шиву. Backend и Frontend отличаются очень сильно.
    Хороший фронтендщик должен уметь верстку, уметь браузерные фреймворки и знать нюансы работы каждого из поддерживаемых браузеров + фотошоп и т.д.
    Хороший бэкнедщик (nodejs) должен знать как минимум несколько бэкенд фреймворков, как минимум одну СУБД, уметь в линукс (если проды под ним), знать k-v базы данных и т.д.

    Это при том, что оба должны знать JavaScript.

    Обратите внимание, какие вопросы задаются на собеседовании. Очень много зависит от интервьюера. Бывали довольно забавные случаи:
    1. Ок, про горизонтальное расширение поговорили, про индексы бд поговорили, про системы кэширования поговорили, а теперь практика: что произойдет (показывает код) $a = 5 + '5abc' + 'abc5';. Я: Вообще говоря 10, но на самом деле - постараюсь поговорить с автором с целью понять, что такое ужасное может произойти в жизни, что бы он позволил себе такое написать. (сразу после этого вопроса желание идти в эту компанию поубавилось)
    2. Назовите хотя бы 5 плейсхолдеров sprintf. Я: я ее не использовал. Но как же, все ее используют! Я: вы помните все плейсхолдеры функции date, помимо стандартных Y,m,d,H,i,s ? ....

    > Сергей
    > который знает js, а Node.js, это библиотека.
    Очень спорно)), браузерный и серверный js довольно сильно отличаются. Если программист знает nodejs - он знает js, в противном случае - велика вероятность, что он просто знает jquery, такое сплошь и рядом.

    UPD

    > Тимофей
    > Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.
    Вы мой комментарий прочитайте еще раз.
    > Если программист знает nodejs - он знает js
    В браузерном JS чуть-что всегда можно перезагрузить страничку. Проблема утечек памяти в там в принципе возникает, если пишется SPA, или его производные. В то же время на серверной части - это критично.
    Я лично, когда собеседовал соискателей задавал вопрос: как на существующем сайте (там jquery не установлен), с помощью jquery нажать на кнопку? Единицы отвечали что-то в стиле "создать DOM элемент script под jquery, а дальше нажать через click", в большинствен случае было что-то невнятное в стиле "ыыы....", или "никак".

    Смысл тут в том, что nodejs разработчик обязан знать native js, от фронтендщика это требуется меньше, как следствие существует куча человеков, считающих себя тру-синьйорами, а на деле знаю только jquery.
    Ответ написан
    2 комментария
  • Как сделать спидометр на js с получением данных с сервера(php)?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если одним словом: геморно.
    У вас должен быть уже готовый фон (без стрелки и цифр).
    Отдельно изображение стрелки с черным кругом над ней. И центром в этом круге.
    Отдельно изображение свечения над черным кругом (тот который над стрелкой).
    --
    При рендеринге:
    Стрелку с кругом повернуть на рассчитанный градус шкалы.
    У изображения свечения позиция фиксированная, у заднего плана тоже.
    Цифры отрендерить в изображение и уже его спозиционировать по горизонтали и вертикали.

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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    НЕ бери "система дистанционного обучения", не повторяй чужих ошибок.

    Можешь взглянуть на catberry фреймворк и написать на его базе генератор backend-less системы.

    Довольно интересным проектом может быть генератор GUI для конфигурационных файлов.
    Ответ написан
  • JSLint зло или добро!???

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Не пиши каку и все ок будет, там же в выводе написано, что не так. И это не "гребанный валидатор", а ОЧЕНЬ эффективная система по выпрямлению кривых рук.
    Ответ написан
    1 комментарий
  • Какой правильный подход к изучению JavaScript?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Как правильно подойти к процессу изучения?

    Про системы обучения написаны кучи диссертаций, и лучшей не существует))
    Я учу что-то новое в it сфере следующим образом: подбираю "понятную для меня" книгу 700+ стр. Читаю, как "художественную" с целью понять: что я могу делать и какие механизмы для этого стоит использовать. Дальше практика с книгой. Потом книга откладывается на полочку и пользуюсь официальной документацией ну и гуглом конечно.

    Какую литературу читать?

    Книга подбирается под себя. Заходишь в магазин, берешь первую попавшуюся (книги типа "С++ за 21 день" - даже не смотри, это тупая трата времени). Открываешь где-то в средине, читаешь абзац, если вообще не ясно о чем там - книга не подходит.

    Какие видео курсы смотреть?

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

    Сколько времени уделять обучению в день?

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

    Какая перспектива как javascript-разработчик?

    Вы посмотрите вакансии по js

    Что вообще лучше Верстальщик или писать мозги сайту(хотелось бы услышать о зарплате, сравнительно)?

    Что лучше, вилка, или ложка? Смотря что собираешься делать))

    --

    З.Ы. Самое важное научиться быстро находить информацию - например ваш вопрос тут уже не раз освещался))
    Ответ написан
    1 комментарий
  • Сделал веб-страницу, как её заполнить?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Перефразирую ваш вопрос:

    Сделал книгу, как ее заполнить?
    50815026ef19.jpg

    Сделал вот такую книгу, как ее заполнить используя ручку?
    Как на английском изменить оглавление итд на другой странице?
    Ответ написан
    3 комментария
  • Существуют ли шаблонизаторы для HTML?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вас забанили в гугле?))
    Ответ написан
  • Стоит ли поверять ввод пользователя и на клиенте и на сервере?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Базовую валидацию стоит выполнять на клиенте - так нет необходимости в лишнем запросе (для hl это не малый плюс). На сервере валидация обязательная.
    Ответ написан
    Комментировать
  • Какой способ организации сайта без перезагрузки лучше?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Что лучше, ложка, вилка, или нож?)) Каждый способ оптимален под свои задачи.
    Ответ написан
    Комментировать