• Play Framework - Есть ли смысл?

    @bromzh
    Drugs-driven development
    Если новичок, то естественно лучше спринг. Хотя бы потому, что по спрингу намного больше инфы. Ну и влюбом случае, хорошо изучи сперва саму яву.
    Ответ написан
    Комментировать
  • AngularJS или ExtJS для работы с Java бэкендом?

    @bromzh
    Drugs-driven development
    На текущем месте работы делаем личный кабинет интернет-банка. Довольно насыщенный фронтенд - диаграммы, много всяких форм, и т.д.
    Стек как раз Spring + angular с requirejs(я фронтенд пилю). Пишется отлично. На другом фреймворке было бы геморнее.

    UPD. Перечислю вещи, которые мне нравятся в ангуляре.
    • DI. Это довольно хороший паттерн, и тут он очень помогает. Да и это близко по духу к самой яве, там это часто используется.
    • Двустороннее связывание данных. Многие критикуют его, т.к. в больших приложениях могут начаться тормоза из-за кучи вотчеров. Но на самом деле, если писать нормальный код, связывать с 2-х сторон только нужное и помнить про циклы. то всё будет хорошо.
    • Директивы
    • Отсутствие шаблонов. Вместо этого манипуляции напрямую с DOM. Для меня это плюс, так как нет разделения на обычный html-код и синтаксис шаблонизатора. Это очень удобно. Сперва делается вёрстка, при этом верстальщик не обязательно должен знать ангуляр. А потом js-разраб расставляет по коду директивы и постепенно наращивает функционал. В случае наличия шаблонизатора, верстальщик должен ещё и уметь в шаблоны.
    • Отсутствие стандартного набора виджетов. Можно выбирать на свой вкус: есть модуль с UI на Bootstrap'e, есть Matrial, и всегда можно сделать свой набор UI
    • Модули
    • Куча библиотек почти на все случаи жизни
    Ответ написан
    1 комментарий
  • Как в Angular $rootScope передать переменную из шаблона?

    @bromzh
    Drugs-driven development
    хотелось бы минимизировать кол-во запросов к серверу

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

    UPD
    Если уж сайт генерируется извне, то можно сделать так же, как делает плагин angular-templatecache для систем сборок: сгенерировать код, который бы эти данные засовывал в константу:
    angular.module('app', [зависимости]); // это ты пишешь сам
    
    // А это должен генерировать сам генератор:
    angular.module('app').constant('screens', { 
    а сюда вставлять сгенерированные данные в каком-то формате
    });

    Ну а в ангуляр-коде использовать эту константу по назначению.
    Ответ написан
    6 комментариев
  • Как зарабатывать на Open Source проекте, если ты не Линус Торвальдс?

    @bromzh
    Drugs-driven development
    Посмотри на проект nginx. Человек работал и параллельно пилил сервак для собственных нужд. Проект сам себя разрекламировал, так как был качественным. А сейчас Игорь основал компанию, в которой занимается разработкой коммерческих решений. Деньги получает как раз за техподдержку При этом весь код открыт.
    Таких историй не мало: некие люди на работе пилили проекты под свои нужды, а потом, если продукт оказывался успешным, приходили и деньги.

    Так что если хочешь стать частью опенсорс - то пиши код, а не думай о деньгах. Качественный продукт сам семя разрекламирует.
    Ответ написан
    Комментировать
  • Как лучше: повторять стили или ставить много классов?

    @bromzh
    Drugs-driven development
    Никак, давай элементам осмысленные имена. Не как они должны выглядеть, а что они из себя представляют. И не надо делать классы, явно указывающие на размер/цвет и т.д. Потому что это почти ничем не лучше, чем вёрстка прямо в html-коде через атрибут style.
    Можешь посмотреть как рекомендуют чуваки из яндекса.
    Ответ написан
    Комментировать
  • Как выровнять форму по центру?

    @bromzh
    Drugs-driven development
    чтобы margin: auto работал, ширина должны быть фиксированная.
    Там вообще в вёрстке приличный говнокод. Как с сеткой бутстрапа можно такое натворить - непонятно.
    Ответ написан
  • Верстка кода с реальным отображением сделанного?

    @bromzh
    Drugs-driven development
    BrowserSync + любой сборщик (Gulp/Grunt/etc). Или можно поставить WebStorm и плагин livereload.
    Ответ написан
    Комментировать
  • Нормален ли такой подход для работы с git'ом(хранение дизайн+код)?

    @bromzh
    Drugs-driven development
    Сетевой диск/гуглодрайв/дропбокс. Ещё можно прикреплять файлы к задачам в такс-менеджере, тогда сразу видно что к чему.
    Незачем хранить дизайн в гите.
    Ответ написан
    Комментировать
  • Что значит "по модулю m"?

    @bromzh
    Drugs-driven development
    Остаток от деления. Вообще это в школе проходят, элементарные основы теории чисел.
    Ответ написан
    1 комментарий
  • ООП в высоконагруженных проектах считается устаревшим?

    @bromzh
    Drugs-driven development
    Только ситхи возводят всё в абсолют. ООП для каких-то случаев хорошо применим, а для каких-то нет. Тоже самое справедливо для любой другой парадигмы. А выбирать технологии только исходя из общей моды очень тупо.
    Ответ написан
    Комментировать
  • Почему использование $parse не рекомендуется в angularjs?

    @bromzh
    Drugs-driven development
    Может потому что это и есть почти тоже, что и eval? Следовательно нужно тщательно проверять входные параметры. А ты сразу вызываешь её от значений атрибутов, даже не проверив их ни на что. Ну и отслеживать ошибки в таких штуках крайне сложно.

    habrahabr.ru/post/244001/#comments
    Ответ написан
    1 комментарий
  • Какой MV*(js) фреймворк выбрать для конкретной задачи?

    @bromzh
    Drugs-driven development
    Да почти любой подойдёт. Возможно даже хватит библиотеки типа бекбона.
    Выбери наиболее популярный, с хорошими доками и крупным сообществом. Можешь тут посмотреть.

    Я бы взял ангуляр, потому что хорошо его знаю. Да, возможно будет оверхед, так как часть функций не будут использоваться. Но с другой стороны, приложение будет легко расширить в дальнейшем.
    Ответ написан
  • Как анимировать часы на главной странице?

    @bromzh
    Drugs-driven development
    Например momentjs.com
    Смотри исходники, подстраивай под себя.
    Ответ написан
    1 комментарий
  • Почему приложения для Android пишут на джаве?

    @bromzh
    Drugs-driven development
    Для андроида пишуь на яве потому что гугл давно полюбил этот язык, и сделал свою мобильную ОС (андроид) именно на этом языке. Под капотом там особое ядро линукса и переработанная виртуальная машина явы, которая и служит прослойкой, между приложухами и ядром. Т.е. почти любое приложение запускается в этой виртуальной машине, соответственно должно быть написано на яве (если точнее, то виртуалка запускает байткод, который получается после компилирования программ). И большинство библиотек именно для явы.
    Можно писать на питоне, но это медленно. Да и библиотек намного меньше.
    На C/C++ тоже можно писать, но там свои заморочки. и гугол рекомендует использовать это лишь в крайних случаях.
    Для остальных языков инфраструктура тоже небольшая. Так что в 95% стоит брать яву, как и задумывалось.

    Ну а на счёт того, что ява ужасна, на ней нет приложений и она скоро сдохнет - это полный бред. Язык простой (хоть и многословный), инфраструктура JVM ещё лучше. есть огромнейшее число библиотек на все случаи жизни. Ну и перспективы у него очень хорошие: андроидофонов сейчас намного больше, чем телефонов на других платформах, энтерпрайз любит и использует яву вовсю ( подавляющее большинство интернет-банков именно на яве), десктопные приложения можно писать на хорошем JavaFX. Т.е. область применения очень широкая. И это реально кроссплатформенный язык, так что запускать свои поделки можно почти везде. Скорость у явы вполне хорошая (например, в бенчмарке сетевых фреймворков, сервера на яве обычно в лидерах), а многословность лечится другими языками (scala, kotlin, groovy).
    Ответ написан
  • Как вы храните разные gulp/grunt таски?

    @bromzh
    Drugs-driven development
    посмотри как генератор gulp-angular-generator хранит таски. Очень удобная и гибкая структура.
    Пощупать можно так:
    npm install -g yo gulp bower
    npm install -g yo gulp bower
    mkdir test
    cd test
    yo gulp-angular

    В папке gulp таски, разбитые по файлам. В Gulpfile подцепляются автоматом все файлы из папки gulp.
    Ответ написан
    Комментировать
  • Как в наследнике переопределить свойство?

    @bromzh
    Drugs-driven development
    попробуй объявить поле action в родительском классе:
    class Father(models.Model):
        COST = 100
        content = models.TextField(max_length=COST)
        action = models.BooleanField(default=False)
    
        class Meta:
            abstract = True
    
        def save(self, *args, **kwargs):
            if self.COST > 200:
                self.action = True
            super(Father, self).save(*args, **kwargs)
    
    class Children(Father):
        COST = 500
    Ответ написан
    Комментировать
  • Как грамотно организовать проект на Django (приложения, шаблоны, статические файлы)?

    @bromzh
    Drugs-driven development
    Блин, да это же джанго, он сам явно подталкивает к одной структуре приложения.
    Одно приложение на 1 логическую и независимую часть сайта. Например, интернет-магазин должен включать в себя каталог продукции и функционал для заявок. Потому что они взаимосвязаны. А вот новостную часть на этом сайте надо выносить в отдельное приложение, так как новости обычно почти не связаны с заказами и товарами как таковыми.
    Ещё в каждом приложении можно создавать папку static, куда класть все статические файлы. Но так обычно поступают разрабы "плагинов" для джанги. В рамках сайта можно коласть в 1 папку static в корне проекта, но разделяя js и css файлы (чтобы вёрстка не было в 1-м суперогромном css файле, в котором хрен чо найдёшь). Потом сборщики должны всё собирать и минимизировать.
    Шаблоны раскидывай по папкам, соблюдая иерархию. Т.е. если есть приложение shop, то в корневой папке templates создай layout.html, а все шаблоны магазина клади внутрь templates/shop, наследуя. Также можно хранить шаблоны внутри приложения, но опять же, это обычно используют разрабы "плагинов", хотя сам принцип хорош.
    Ответ написан
    4 комментария
  • Что лучше использовать async.js или promise?

    @bromzh
    Drugs-driven development
    Чисто промисы - это та же лапша, только в профиль. Ну только вложенность уменьшается. Генераторы и yield выглядят получше.

    Так же, где применим yield помимо асинхронного кода?
    Там, где нужны генераторы
    Ответ написан
  • Как вы организуете JS код в энтерпрайзе?

    @bromzh
    Drugs-driven development
    requirejs

    PS ответ к комменту:

    >Но весь js размазан по сотне тысяч строк html-файлов
    Нет, у нас ангуляр, только 1 html. Но если код так размазан - то это плохая архитектура всего приложения, надо что-то менять. Например, не стоит писать часть js в html, а часть в файлах. Оставить только отдельные js-файлы. Серверные вставки заменить на обращение к АПИ. Разбивать всё на компоненты так, чтобы каждый компонент был в своей папке вместе с его стилями, скриптами и статикой (картинки, шрифты). Собирать всё каким-нибудь сборщиком (Gulp, например). Тогда бардак уменьшится на порядки.

    >Как поддерживать работоспособность, когда часть кода уже в модулях, а часть — нет?
    Очень просто, надо описывать не amd-файлы в блоке shim в настройках requirejs. За подробностями - в доки.
    Ответ написан