• Почему $watch в директиве не следит за переменными $scope?

    @vsvladimir
    Вроде так изменить нужно:
    $scope.$watch($scope.fullScreen, function(fullScreen)
    
    $scope.$watch("fullScreen", function(fullScreen)
    Ответ написан
    4 комментария
  • Где почитать про структуризацию кода на AngularJs?

    miraage
    @miraage
    Старый прогер
    Вы шутите? Только на днях вопрос был.
    Учитесь поиском пользоваться.

    Как хорошо писать и организовывать код?
    https://github.com/johnpapa/angular-styleguide
    Ответ написан
    Комментировать
  • Почему не рекомендуется использовать select и как правильно его заменять?

    DigitalSmile
    @DigitalSmile
    http://brainstorage.me/digitalsmile
    Недавно была статья на хабре, рекомендую, вполне удобно, хотя и не без багов.
    Ответ написан
    Комментировать
  • Unit tests Angular, как протестировать запрос к провайдеру?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Суть юнит тестирования - тестировать только один юнит за раз, все остальное - моки. То есть мокать надо сам сервис а не $http
    Ответ написан
    3 комментария
  • Какой Javascript framework выбрать для новичка?

    aen
    @aen
    Keep calm and 'use strict';
    Вот до тех пор пока все будут учить фреймворки, а не принципы проектирования и то как работает браузер, у нас и будут появляться быдлокодеры. Это мысли в слух. Не в обиду автору.

    Фреймворк это просто инструмент. Он за вас решит ряд вопросов. Позволит какие-то фичи сделать быстрее за счет того, что они уже были решены ранее. Но любой фреймворк можно изучить и применять за приемлемое время при условии, что у вас будут достаточно прокачанные скиллы по js, по тому как работает браузер, по тому как передается информации между клиентов и сервером (сокеты, xhr, cors и прочие свистелки).

    Если вы новичок, то просто пишите код. Ставьте задачи. Смотрите как эти задачи решены были ранее в рамках любого фреймворка или библиотеки, прочитайте исходники.

    Фреймворки, к сожалению, весьма подвержены моде. Раньше был тренд на Backbone.js, затем под ореолом Гугла все подхватили Angular.js, сейчас начинается повальное увлечение React.js. Завтра появится, что то новое, все кинутся на него.

    Если вы хотите максимально быстро зарабатывать, то посмотрите требования в вакансиях. Рынок сам вам скажет, что ему нужно.

    Если вы хотите просто прокачаться, но посмотрите примеры решения типовой задачи TodoMVC на разных фреймворках. Выберите то, что вам будет понятнее всего.

    А человек, который на ваш вопрос "Что мне изучать?" быстро и легко назовет имя любого фреймворка, скорее всего сам еще недостаточно прокачался, потому как он видимо не понимает, что нет "серебряной пули". Нет идеального фреймворка, который бы решал все ваши задачи.
    Ответ написан
    Комментировать
  • Как посчитать свою профессиональную стоимость?

    Alexufo
    @Alexufo
    противоречивый, сложный, весь компьютерный.
    Существует ли у человека ( бесконечности ) цена (обусловленность) времени его действий в аренду? Сколько людей на огромных зарплатах ничего не делают, а мы стесняемся измерять свою индивидуальность в рублях, как бы не завысить, или как бы не обидеться на несправедливый мир.
    Человек - индивидуальность. У нее нет цены, мы себя продаем по обоюдному соглашению. Нас кто-то может целовать и платить кучу бабок за снятие процесса зависшего диспетчера в месяц, кто-то унижать за кучу работающего реально сложного кода. Мы просто так договорились. Понятно, что никто не может платить миллионы в месяц за какую то работу. Цена как то немного регулируется спросом.

    Если в вашей индивидуальности есть наглость, претензия большой своей значимости в этом мире, вам повезло. Вы будете требовать и требовать, менять работу и искать признание...
    Но разработчики чувствуют в основном скрытого бога в своей работе. Идеальный паттерн или язык программирования он какой? Эти раздумаья нам говорят что наша значимость тут не шибко важна, есть вещи куда интереснее. Но без эго в нашем мире копейки не дадут. Голодный художник только при Хрущеве был в тренде.
    Ответ написан
    Комментировать
  • Может ли NodeJS использоваться как основа для крупного проекта?

    @kazmiruk
    @d00mko видимо не потрудился прочитать статью, прежде чем посоветовать ее Вам. В статье как раз пытаются избавиться от мифов вокруг ноды.
    По сути вопроса - нода вполне подходит для проекта любого размера и сложности (как и пхп, раби, питон, ява и т.п.) Никогда в жизни не сталкивался с ситуацией, что язык становился узким местом в веб приложении. Если Вы с этим столкнетесь, то значит Ваша архитектура уже идеальна, у вас миллионы пользователей и у Вас миллиарды денег, чтобы взять и переписать все с нуля где-нибудь на побережье океана попивая мохито, принесенное личным барменом.
    Ява - готовьтесь к тому, что Вам надо МНОГО оперативной памяти. Разработка будет вестись долго, но большинство глупых ошибок Вы избежите в силу особенностей языка.
    ПХП - готовьтесь к тому, что в Вашем коде будут появляться какашки, так как из всех пхп кодеров лишь доли процента могут написать хороший код. Это действительно очень трудно, когда язык сам манит писать все больше и больше какашек ) Лишь просветленные могут удержаться )
    Нода - Вас ждет мир непонятного асинхронного кода, но как только наступит просветление, то Вы будете писать намного более эффективные приложения, чем Ваши товарищи пхпщники ) Наилучшее применение - чаты, кометы и т.п. Но и в качестве веб-сервера чувствует себя замечательно.
    Питон - можно использовать и асинхронный подход и синхронный. Памяти жрет намного меньше, чем Java (личный опыт. разница была почти в 7 раз). По скорости работы практически не уступает яве. По скорости разработки разрывает ее в клочья
    Раби - ничего не могу сказать дельного, но синтаксис мне не нравится.
    Эрланг - если Вы действительно суровы и Вам нужна максимальная производительность - это Ваш выбор. Столько боли и страдания Вам не доставит ни один язык. Вы можете часами сидеть и тупить над одной строчкой кода, но каждый раз после написания такой строчки Вы будете впадать в экстаз ) Да и пока вы часами тупили над одной строчкой в эрланге на другом языке вам бы пришлось написать 200 строчек. Хардкор вариант, есть много тестов, уроков и примеров, но сам бы я не рискнул начинать проект на нем, так как моих знаний не достаточно, а найти разработчика - нереально.
    Вообще, не пишите серьезные проекты на том, что хотите изучить или то, что модно. Пишите на языке, который лучше всего знаете.
    Ответ написан
    7 комментариев
  • Какая библиотека позволит масимально просто организовать из под node.js воркеры для тяжелых вычислений?

    Буквально на днях мне нужно было "в фоне" запустить длительный вычислительный процесс, так что я искал простую реализацию воркеров. Перепробовал все, что предлагает Гугл, но в итоге пришел к child_process.fork. Ничего реально простого и работающего "из коробки" для данной задачи не нашлось.
    Ответ написан
    Комментировать
  • Node.js в качестве server-side для enterprise приложения?

    Stdit
    @Stdit
    По моему опыту, nodejs — удобная, стабильная и быстрая штука, имеющая отличное сообщество и много хороших библиотек в npm. Преимущества можно перечислять долго, лучше сразу перейти к проблемам.

    — Сложно найти готовых к работе толковых программистов, даже среди фронтендщиков. Но можно обучить. На обучение и понимание среды nodejs, API, асинхронности, замыканий, калбэков, событий, функционального подхода — уходит примерно месяц-два.
    — Библиотеки из форнтендов использовать можно, но только если они грамотно написаны и оптимизированы для перманентной работы. Иначе есть риск, что они сожрут всю память или повесятся.
    — Сервер nodejs обычно однопоточный, со всеми вытекающими. Имеется возможность форкать и открывать дочерные процессы, на это нужны дополнительные затраты труда. Но это требуется только в исключительных случаях.
    — Код пишется в основном легко, если следовать чёткому стандарту, который обычно навязывается используемым фреймворком. Однако javascript, ввиду своей нестрогости, неустойчив к коррозии, в спешке или по неопытности можно наделать рака и превратить жизнь своей команды в ад.
    — При сложной логике со множеством вызовов можно без злого умысла нагородить «лестниц» из калбеков. Однако, проблема решается разными вариантами библиотек управления задачами (async, Q, и т.д.). Вообще лучше делать максимальную декомпозицию кода, создавать бесчисленные функции внутри функций — не очень хорошая практика.

    По поводу камней:
    — Обычно, всякие руководства и мануалы типа «hello world» используют один сокет для соединения с БД. На практике оказалось, что если этот сокет зависает под тяжёлым запросом, то все остальные запросы прилежно ждут его освобождения. Поэтому первое, что нужно сделать в новом проекте — это подключить database connection pool.
    — Случилось так, что количество одновременных подключений к серверу перевалило за тысячу, и внезапно возникли необъяснимые аномалии и отказы. Как выяснилось, страшного ничего не произошло, и нужно было просто в операционной системе разрешить открывать на порядок больше файловых/сокетных дескрипторов.
    — Память для nodejs лучше ограничивать ключами запуска и отдавать больше для БД (если они на одной машине). В противном случае nodejs не спешит запусктать сборщик мусора (это ведь затратная операция) и разрастается.
    — Перезагрузки nodejs из-за внезапных падений от багов решаются специальными библиотеками, например forever.
    — Чтобы nodejs не вылетал из-за исключений, нужно ставить глобальный обработчик uncaughtException, который пишет их в лог или сразу шлёт на мыло ответственному лицу.
    — Нужно не забывать отвязыватсь обработчики от событий по окончании работы подписанного на событие объекта (removeListener()).

    По поводу фреймворков, используем express, потому что он красивый, простой и мы к нему привыкли.
    Ответ написан
    2 комментария