Ответы пользователя по тегу Веб-разработка
  • Как разбить название на подназвания?

    @bromzh
    Drugs-driven development
    У яндекса где-то был проект по распознаванию текста. Попробуй прикрутить. В целом, это очень сложная задача, особенно для русского языка и произвольного формата описания.
    Ответ написан
    1 комментарий
  • Как исправить ситуацию, когда GlassFish не обрабатывает JSF-страницы?

    @bromzh
    Drugs-driven development
    <!-- JSF mapping -->
        <servlet>
            <servlet-name>Faces Servlet</servlet-name>
            <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <!-- Map these files with JSF -->
        <servlet-mapping>
            <servlet-name>Faces Servlet</servlet-name>
            <url-pattern>*.xhtml</url-pattern>
        </servlet-mapping>

    Добавь это в web.xml
    Ответ написан
    Комментировать
  • Какие существуют языки со встроенным веб сервером?

    @bromzh
    Drugs-driven development
    Так тут java по всем пунктам.
    Более того, не нравится многословность явы - бери groovy. Хочется больше функциональщины и более крутой системы типов - есть scala. Экзотика и иммутабельность коллекций - clojure.

    PS в питон 3.4 включили модуль для асинхронной разработки (async). Погляди, хорошая штука.
    Ответ написан
    Комментировать
  • Почему textarea отличается по ширине от input в браузерах на движке Webkit?

    @bromzh
    Drugs-driven development
    Потому что у textarea есть внутренние отступы. А по-умолчанию они добавляются к заданному размеру элемента. Добавь для textarea в css свойство box-sizing: border-box;
    Вот ещё хорошая ссылка для ознакомления: www.w3schools.com/css/css_boxmodel.asp
    Ответ написан
  • Как это называется?

    @bromzh
    Drugs-driven development
    Тебе нужен Selenium.
    Уже второй раз за 3 дня спрашивают этот вопрос, гуглите хоть перед этим.
    Ответ написан
    3 комментария
  • Какие библиотеки/технологии используют для создания анимации на сайте?

    @bromzh
    Drugs-driven development
    Я для анимаций использую greensock.com/gsap
    Ответ написан
    Комментировать
  • Как реализовать имитацию веб пользователя?

    @bromzh
    Drugs-driven development
    Selenium же
    Ответ написан
    Комментировать
  • Как перенести крупное PHP приложение на Python?

    @bromzh
    Drugs-driven development
    Самое простое - взять Flask и SQLAlchemy. Прикрутить ОРМ джанги к готовой базе труднее, чем в SQL. Да и сам фласк не навязывает свои решения, он модульный. Нужна админка - ставь отдельно. Аутентификация тоже отдельно. ОРМ отдельно, и т.д.

    А инфы мало, потому что сам фреймворк маленький. В документации фласка всё есть. Для всяких расширений доже документации обычно хорошие. Мне обычно хватает инфы из доков.
    Ответ написан
    Комментировать
  • "Набор компонентов PHP для создания пользовательского интерфейса" Что это?

    @bromzh
    Drugs-driven development
    Делать в 2014 году набор компонентов с привязкой к ПХП... Печальный вуз.
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать: Play! (java) или Flask (python)?

    @bromzh
    Drugs-driven development
    Когда твой проект на play в очередной раз будет компилироваться по полчаса, ты пожалеешь, что выбрал play.
    Ответ написан
    Комментировать
  • Bestpractices по ООП и паттернам в js?

    @bromzh
    Drugs-driven development
    Вопрос из серии "почему в функциональных языках нет циклов и переменных и как с этим жить". Так вот, жить можно вполне хорошо. Просто немного по-другому.
    Советую изучить, что же такое ООП и какое оно бывает. За пару минут можно найти инфу, что в жаваскрипте ООП - прототипное, а в питоне "классоориентированое". Т.е. в первом всё есть объект, и создавать новые объекты можно только клонируя основной объект, все методы и поля ищутся сперва у объекта, а потом у всех его прототипов. Во втором случае есть разделение на классы и объекты - экземпляры этих классов. Там диспетчеризация устроена по-другому: методы и поля ищутся у класса, а потом у всех его предков.
    И обходиться без наследования и метаклассов можно довольно легко, если знать, для чего же вообще нужно наследование и метаклассы. Метакласс позволяет манипулировать создаваемым классом на уровне его создания. Т.е. в питоне есть 2 понятия: класс и его экземпляр. В конструкторе класса можно определить поведение создаваемых экземпляров (через __new__ и __init__). Чтобы изменить поведение самого класса (а не его экземпляра) и нужны метаклассы: там, в функциях __init__ и __new__ можно переопределить поведение при создании класса. Так как в жаваскрипте такого разделения нет, то и отпадает само понятие метакласса: каждый объект создаётся путём клонирования от базового объекта (Object в js, хотя можно клонировать и любой другой объект: Array, Function, твой собственный). Такая же фигня и для наследования: там ты просто указываешь, какие поля могут выступать в качестве прототипов для всех "дочерних" объектов, это когда пишешь MyClass.prototype.someMethod = function(args) { ... }. В данном случае, someMethod будет сперва искаться среди самого объекта. Если там такого нет, то ищется в прототипе, т.е. в MyClass. Ну "классы" там объявляются функциями, потому что синтаксис не предусматривает создание класса. Да и то, функция-класс - просто синтаксический сахар: при вызове оператора new MyClass эта функция исполняется и возвращает копию объекта Object, над которой применили некие операции (которые ты как раз и описываешь в ней). Для каждой функции создаётся свой локальный контекст, который хранится в переменной this. Ты можешь в функции-классе описать, какие поля добавить в this, и она вернёт тебе как раз-таки этот изменённый this. Вот в lua нет даже оператора new, и ничего, вполне удобное ООП.

    У каждого подхода есть и плюсы и минусы. Мне удобно писать в обоих стилях. Единственное, могут возникнуть проблемы, когда в классе вытаешься присвоить полю какую-то функцию (callback). This внутри этого колбека будет иметь локальный контекст этой функции, а объекта, в котором находится это поле. На помощь приходит функция bind.

    P.S. Важно понимать, что функции являются объектами (в обоих языках). Но в js использование функций как переменных встречается гораздо чаще. Поэтому, строго говоря, нет никаких методов и полей в js. У объекта просто есть члены, которые могут быть как простыми данными и объектами, так и функциями. Собственно, для питона это тоже верно, ведь сами классы тоже являются объектами (экземпляры типа type). Просто там есть 2 понятия, как бы двухуровневая система. Ну и там куда реже члену объекта присваивают функцию, нежели в JS.
    Ответ написан
    1 комментарий