• Как запретить отправку формы в течении 30 минут?

    @Beltoev
    Живу в своё удовольствие
    Форму оставляете как есть, а в БД создаете табличку с полями: IP, время отправки, еще какие-то данные, чтобы идентифицировать пользователя.

    После этого каждый раз при получении данных от формы сверяете, не повторная ли это отправка и прошло ли уже полчаса. Если всё путём, отправляете данные на почту, а данные пользователя снова пишите в БД. Если нет - игнорируете.

    Важен факт того, чтобы злоумышленник всё так же думал, что вредит вам, хотя на самом деле вы его давно обошли. Так он не будет пытаться придумывать новые способы вам что-нибудь испортить
    Ответ написан
    4 комментария
  • Какой url лучше?

    mannaro
    @mannaro
    Умею профессионально гуглить
    /category/name/5/

    Вообще, предпочитаю использовать REST.
    Ответ написан
    Комментировать
  • Нужен ли JavaScript для работы с фреймворками?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Нужно ли знать русский язык чтобы написать этот вопрос?

    Конечно нужно, вы же будете на JS писать. Фреймворки дают вам только инфраструктуру, это второстепенная часть приложения, хоть и бывает так что она занимает 95% приложения.

    Нужно знать и понимать:
    - основные конструкции, циклы, условия и т.д.
    - функции, контекст вызова функции, скоупы
    - объектная модель в JS, представление о том какие типы данных в JS есть и что все есть объект
    - прототипное наследование
    - event loop или асинхронность в контексте javascript-а.
    - было бы неплохо годик попрактиковаться прежде чем делать кому-то проекты.

    А еще было бы неплохо знать HTTP, базы данных и прочие радости жизни.
    Ответ написан
    Комментировать
  • Как правильно спроектировать REST приложение на Ruby on Rails + Angular JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    На что обратить внимание?

    www.vinaysahni.com/best-practices-for-a-pragmatic-...

    jsonapi.org - можно использовать как стандарт для реализации API.
    Ответ написан
    3 комментария
  • Синтаксис ООП в js и использование prototype

    runawayed
    @runawayed
    JS — объектно-ориентированный язык, но в нем отсутствуют классы, их заменяют конструкторы объектов, поэтому вместо обычного наследования через классы существует наследование через прототипы. Т.е. экземпляр класса наследует его свойства и методы, которые находятся в его прототипе.
    Конструктор класса (function Obj() {}) — функция, в которой описаны свойства и методы прототипа, поэтому ко всем ним будет доступ при создании экземпляра.

    В примере A конструктор пустой, а Obj.method присваивает метод объекту, а не его прототипу, поэтому он не будет наследован в obj = new Obj(). Этот пример не работает.

    Пример B — правильный, здесь метод method добавляется в прототип и будет наследоваться всеми экземплярами.

    Пример C чаще всего используется, когда нужно реализовать singleton или namespace, потому что это простой хэш без конструктора, его нельзя наследовать. Фактически это не объект в ООП понимании, а просто ассоциативный массив, в котором могут содержаться любые данные, методы и другие объекты.

    Пример D аналогичен примеру C, только его свойство method содержит ссылку на внешнюю функцию. Этот пример можно использовать, когда нужно вызвать какую-то функцию из внешней библиотеки.

    Пример E правильный и аналогичен примеру B, с разницей в том, что наследуемый метод задается сразу в конструкторе, а не через prototype.
    Ответ написан
    1 комментарий