• Зачем нужны события в yii2?

    MegaMufa
    @MegaMufa
    Событийная модель помогает строить слабосвязанную систему. Пример из жизни. Я сейчас работаю над SAAS платформой. Компания покупает учетку и выбирает за какие модули платить. Есть модули учета, проверок, для кадровиков и т.д. Модули должны взаимодействовать между собой, но любого модуля может не быть.

    Например при создании сотрудника в модуле "кадррезерв", его автоматически надо добавить в модуль "учета". Я не могу напрямую дергать метод из другого модуля т.к. заранее не известно, будет он куплен или нет.

    Вместо этого я бросаю событие типа user.created, а в модуле учета в обработчике этого события заношу пользователя в нужные списки. Получается, если модуля нет, то событие просто выброситься в холостую, а если есть, то запустится обработчик.

    Это на самом деле очень удобно. Но есть и негативная сторона: из-за слабой связаности усложняется навигация по коду. Что бы узнать, где есть обработчики приходится пользоваться поиском по имени события. Но это малая цена за гибкость, которую дают события.
    Ответ написан
    9 комментариев
  • Как в добровольных GRID вычислениях защищаться от ложных данных?

    opium
    @opium
    Просто люблю качественно работать
    Считайте все два три раза если совпадает результат то ок, если нет то пересчитываете, очевидное же решение если рассчитываемые решения нельзя проверить
    Ответ написан
    5 комментариев
  • В чем вы создаете php/tpl/html шаблоны?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    но вот PHP ну никак сюда не вклеивается...

    именно так.

    Есть модули на js, есть решения на php. Вам выбирать что и как юзать.

    Я как-то подумывал о том что бы впилить поддержку jade/haml в twig, благо он это позволяет делать благодаря своей гибкости, но так как я не часто пишу шаблоны для php (я уже больше года как разделил фронтэнд и бэкэнд и поселил между ними rest), то как-то не удалось.
    Ответ написан
    Комментировать
  • JavaScript заменит php или ASP.NET?

    opium
    @opium
    Просто люблю качественно работать
    Ахахахаха и много вы написали хороших десктопных приложений на жс? А интернет магазинов? Так рассуждать всем бы на ассемблере программировать.
    Жс убог и ограничен о какой то его универсальности речи вообще не идёт
    Ответ написан
    29 комментариев
  • Для чего нужна репутация на тостере?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Зачем отвечать на тостере?
    • Хороший ответ на вопрос поднимает и собственный скилл, часто отвечая на вопрос узнаешь много нового, или открываешь для себя детали, которые раньше упустил
    • Поддерживаешь свои знания в актуальном состоянии
    • Учишься быстро находить информацию, правильно гуглить
    • Учишься понятно выражать свои мысли


    Зачем нужна карма?
    • Для повышения ЧСВ. Тостер в этом смысле пока слабоват, на стаковерфлоу карма работает гораздо круче например
    • Для повышения позиции своего профиля в рейтинге. Топовые позиции хорошо влияют на потенциальных работодателей например.
    Ответ написан
    2 комментария
  • Почему не все серверы пишутся на Node js?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Принципиальных качественных преимуществ у node.js перед остальными языками нет, как впрочем и недостатков. Просто yet another язык со своими особенностями. Соответственно если в вопросе заменить node.js на php/ruby/python итд - ничего не изменится.
    Вопрос по сути абстрактный "почему все не перешли на язык %%%%%"

    2. Ответ на абстрактный вопрос:
    а) Потому что существует огромное количество legacy кода который нужно поддерживать. Работы по поддержке и развитию существующего кода на порядок больше чем написания с нуля нового
    б) Потому что у разработчиков есть свой стек любимых технологий, изменять который без явных экономических причин основная масса не готова
    в) Потому что умные технические менеджеры выбирают стек технологий проекта исходя из имеющихся под рукой разработчиков и легкости поиска и заменимости оных.

    UPD
    hbrmdc
    У NodeJS есть уникальные и очень весомые преимущества, которых нет ни у одного другого языка. Например то, что это JS, и, следовательно, нет необходимости разучивать лишние языки - можно весь webapp писать на js.
    Личные предпочтения обоснованные привычками - это не имеющий значения аргумент в данном вопросе.

    1) Есть отличия, да. Только не те о которых Вы пишите. То что это "JS" вообще ни на что не влияет.
    JS хорошо знают фронтендщики - а кто пустит фронтэндщика к внутренней архитектуре? Там подход совершенно другой нужен, другие навыки, другое понимание как это все работает. Просто пересадить человека с фронта на бек - нельзя.

    На самом деле основные отличия другие:
    Постоянно живущий процесс, фактическая однопоточность. В зависимости от задачи - это может быть и плюсом и минусом. Условно для какого нибудь сокет-сервера - плюс (активно используем на живых проектах). Для middleware - я бы подумал. Для нагруженного сервиса с расчетами - точно нет.

    2) Личные предпочтения обоснованные привычками это основной аргумент.
    Я вот умею в php, умею в ноду, умею в еще десяток умных слов.
    Мне нужна новая команда на новый проект.
    Я открываю hh и что я вижу: node.js 279 резюме из которых половина фронтэндщики.
    PHP - 9613 резюме. Даже если 90% разработчиков PHP на hh - уроды которых к коду нельзя подпускать на пушечный выстрел - останется все равно в 3 раза больше чем есть node.js.
    Собственно на этом выбор и закончен.

    На малопопулярных языках пишут в случаях:
    a) это мелкий сервис с неявными перспективами который можно переписать за неделю
    б) это проект "для души" разработчика.

    Получается замкнутый круг на самом деле.
    Менеджер смотрит резюме, резюме на node.js нет =>
    Менеджер не начнет проект на node.js =>
    Не возникнет вакансия на node.js =>
    Разработчик анализируя вакансии не увидит вакансий на node.js =>
    Разработчик будет учить что то другое =>
    Менеджер смотрит резюме, резюме на node.js нет...

    Переломить ситуацию могут только очень крупные игроки обладающие возможностями формирования рынка (например Apple и Swift), и то не со 100% гарантией (samsung&c и Tizen)
    Ответ написан
    13 комментариев
  • Почему не все серверы пишутся на Node js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    1. Потому, что он подходит не для всех задач Что можно написать на Node.js?
    2. Потому, что не для всех приемлем JavaScript, люди так привязаны к синтаксису
    Ответ написан
    2 комментария
  • Проблема с пониманием алгоритма нахождения простых чисел?

    @Alexander1705
    1. Что-то вроде доказательства от обратного: сначала предполагаем, что число простое isPrime = true; А если находится число, деление на которое происходит нацело, то есть остаток от деления равен нулю if((i%j) == 0), тогда доказано обратное, данное число составное: isPrime = false;

    2. Для того, чтоб не делать лишних итераций, если есть число N, то достаточно проверить только его делители от 2 до √N.

    P.S. Если, поставить i < 100, то в проверку пойдёт и само число, а так как число нацело делится само на себя, остаток будет 0 и условие сработает неправильно. Внутренний цикл перебирает делители числа, а для числа N, они находятся в диапазоне [1, N], однако так как и простые числа делятся на 1 и на самих себя, проверять нужно только диапазон (1, N).
    Все делители больше чем √N дают в результате деления целые числа меньше чем √N, а так как меньшие числа мы уже перебрали, в проверке бо ́льших нет смысла. Условие j<(i/j) как раз обеспечит перебор целых чисел в диапазоне [2, √N].

    Можно также добавить небольшую оптимизацию:
    for (j=2; j<(i/j); j++) {
            if((i%j) == 0) {
                    isPrime = false;
                    break;
            }
          }

    Если нашли один делитель, этого достаточно. Перебирать остальные не обязательно.
    Ответ написан
    3 комментария
  • Как правильно изменить метод в библиотеке?

    Самый разумный вариант в плане дальнейшей поддержки - форкнуть библиотеку и добавить в зависимости свой форк. Если это хотфикс какого-то бага, то можно и в основную репу его отправить и потом переключиться на нее обратно, когда его примут.
    Еще один (костыльный) вариант - скопировать нужный класс в отдельную папку, изменить его поведение, а потом написать скрипт, который после composer update и composer install будет заменять измененным файлом файл из библиотеки. Для этого можно использовать хуки (Спасибо D' Normalization за ссылку).
    Ответ написан
    Комментировать
  • Фриланс и налоги, стоит ли платить?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) налоговая не знает, даже если знает, то официально не знает, пока нет дела по уклонению.
    2) когда встанет вопрос штрафа, придется оплатить и налоги и штраф.
    3) банки отправляют в финмониторинг тарнзакции более 150к (или 300к, говорят по разному), это не налоговая, но тоже неприятно, Пейпал - сложнее, хз что он и куда отправляет, но отправляет тоже, ибо соблюдает законы в рублевой зоне
    4) регистрироваться нужно ИП, чтобы по закону получать периодически из-зарубежа, ибо простому человеку нельзя вести внешнеэкономическую деятельность. Проблема в том, что фрилансеру практически нельзя получать от контрагентов документы для ИП, это, в общем-то, основная загвоздка данной ситуации, ее решают на местах по разному, все же налог ИП выгоднее налога физлица

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

    В вашем случае самым правильным способом ( но не самым дешевым) было бы накопление на Пейпале сумм, вывод их на счет раз в квартал и уплата налоговой просто подоходного - "вот доход, вот налог", можно подать как гонорар, что не предпринимательство и разрешено. Это пусть вам местный бух расскажет.

    Но лучше, т.к. это пригодися все равно - для отношений с организациями и безналом, начинать настраиваться на ведение документации и ИП, если есть бух - спросите, ну и фрилансерские форумы почитайте

    также посмотрите для приема денег на такой вариант
    Ответ написан
    2 комментария
  • Фриланс и налоги, стоит ли платить?

    athacker
    @athacker
    Почитайте про службу финансового мониторинга. Прямо так и загуглите: "финмониторинг банковских операций в РФ". И по первым же паре-тройке ссылок пройдитесь. Если коротко -- то да, риск попасть на карандаш есть, так как есть закон N 115-ФЗ "О противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма". Согласно которому, если у банков "возникают ПОДОЗРЕНИЯ, что какие-либо операции ОСУЩЕСТВЛЯЮТСЯ в целях легализации (отмывания) доходов, полученных преступным путем, или финансирования терроризма", то банк обязан сообщить об этом. При этом размеры сумм в этих операциях значения не имеют.

    Если у вас доход 90 тысяч -- это суммарно за полгода, то наверное, заморачиваться пока не нужно. Но надо понимать, что риск всё равно есть, хотя и небольшой. Если же имеется в виду 90 тысяч ежемесячно, то имеет смысл открыть ИП. У ИП на упрощённой схеме налогообложения довольно щадящие условия, и процент налогов (6%) платится только с дохода.

    Единственный минус ИП -- это обязательность платежей в ПФР и нужно будет оплачивать обслуживание расчётного счёта в банке. Когда я работал, платил около 800 рублей в месяц, сейчас не знаю, сколько. Ну, у разных банков -- по-разному, можно выбрать, где подешевле.
    Ответ написан
    3 комментария
  • Как объединить роуты в Laravel и Backbone?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Роуты Laravel и роуты Backbone - это совсем разные вещи их не надо между собой дружить.

    Есть шаблон приложения и область контента, которая меняется без перезагрузки страницы.
    Вот при переходе по роутам #profile/#list и т.д. нужно, чтобы Laravel собирал данные и передавал их в соответствующие модели.
    Это не Laravel должен делать, а как раз Backbone. На Laravel вам нужно реализовать REST-апи (ну или какое захотите), с которым будет работать Backbone.

    По сути, Laravel в этой связке используется только чтобы отрендерить стартовую страницу приложения и в качестве бэкенда для моделей Backbone. Вся логика приложения реализуется в Backbone, поэтому их роуты связывать не нужно.
    Ответ написан
    Комментировать
  • Стоит ли париться за престижный диплом?

    @Enniack
    "все изложенное ниже актуально только для большинства вузов РФ, для IT сферы, для людей, которые знают, чего хотят, и только в том случае, если вы не считаете себя инфантильным гедонистом"

    Люди, говорящие о необходимости диплома не обладают нужной дисциплиной для самообразования, а также, видимо, считают, что знания возможно приобрести только в университете.
    Похоже, чтобы прочесть нужную IT книгу, либо же, открыть задачник, им необходима пугающая, подпинывающая сессия через несколько месяцев.

    Если вас до сих пор интересуют мое мнение, оно таково: ежегодно множество ВУЗов выпускает людей с почти идентичными знаниями, примерно одинакового возраста.
    Вы можете поступить также. Можете поступить в университет, как и остальные 30 людей. Можете ходить на лекции ежедневно, как и остальные. Получать одинаковый пакет знаний, как и остальные. Устаревший пакет знаний, который, кстати, будет содержать немало лишних предметов, ведь государству же нужно продолжать и после школы воспитывать вас в духе социализма и патриотизма. Университет будет продолжать учить вас сдавать экзамены, а не получать знания.
    Вы будете учить то, что вам говорят учить, вы будете делать то, что вам говорят делать, независимо от того, нравится вам это или нет, без гарантий того, что вам это пригодиться в жизни. Через 4 года вам, как и остальным выдадут диплом. Вам 23, вы не чувствуете ни капли уверенности в своих знаниях, большую часть из которых вы приобрели самостоятельно, вы начинаете думать, что где-то вас обманули, и эти 4 года можно было бы провести более продуктивно. Приятного просмотра, как говориться.

    Вы можете пойти другим путем. Вы можете не поддаться общему настроению и не поступать никуда. (либо же поступить на заочное, если вам или вашим родителям таки нужна эта бумажка)
    В таком случае, ваши знания зависят только от вас. Ваш успех зависит только от вас. От вашей дисциплины, целеустремленности, вашей веры в себя и в свой успех. Вы тратите свое время только на то, что считаете нужным ВЫ. Вы не тратите время на дорогу в университет. Ваш объем знаний через 4 года в таком случае, от 0 до бесконечности. Ваш успех и ваши доходы будут соответственно коррелировать с вашим объемом знаний. И уж точно, вы не будете таким, как остальные дипломисты. И с большой долей вероятности вы будете лучше.

    Выбор за вами.

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

    Ashlst
    @Ashlst
    Фанат эстетики и красивых решений.
    Диплом нужен только когда необходимо открывать рабочую визу куда-нибудь заграницу,во всех остальных случаях, это просто отличие того, что,Вы энное количество лет посещали универ.
    Главное, то какие навыки, Вы там получите и насколько они будут актуальны.
    Считаю,что нынешняя система образования,вообще 0...только самообразование сможет как-то помочь.
    В Вашем случае, я бы пошел туда,где больше свободного времени для саморазвития и родителей ненадо напрягать.

    UPD: Диплом не сделает из Вас специалиста.Учебная программа любого вуза устаревает уже как только,Вы начинаете учиться в этом заведении.
    В большинстве универов можно научиться только одному полезному навыку - общению с людьми и умению налаживать связи.
    К сожалению,у многих в голове остался совковый мусор - Универ === Отличная работа&& Корочка === Высокообразованный Человек,только так...по - другому - сходу какой-нибудь "Высокообразованный Человек" напишет какой ты тупой .
    В любом случае идите в универ,как я уже писал - диплом понадобится,хотя бы для того,чтобы уехать из СНГ в более развитые страны.
    И еще - Учите английский!!
    Ответ написан
    14 комментариев
  • Сайт оффлайн, как сделать Laravel 4?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Есть же стандартный механизм.
    Если хотите запускать команду программно а не через терминал, в документации подробно описано как это сделать (документация для 5.1, но работает и в 4-ой версии).
    Ответ написан
    Комментировать
  • JS API и REST API - это разные понятия?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Вы путаете теплое с мягким.
    REST - это методология, работа с таким апи может быть реализована на любых технологиях (включая js), реализация на стороне сервера - тоже.
    JS API - это уже конкретная реализация клиентской библиотеки. На сервере, с которым работает эта библиотека, при этом может быть REST апи.
    Ответ написан
    2 комментария
  • Какая лучшая ORM/AR PostgreSQL для PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) PDO все это умеет
    2) Doctrine2, там вам и возможность добавлять кастомные функции (скажем есть готовые расширения для postgis), и кастомные типы.... Вообще это лучшая ORM на данный момент, но она сложная.
    Ответ написан
    Комментировать
  • Как попроще ставить пакеты с AUR?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    как-то вы через одно место ставите пакет )
    Установка пакета такая же как и через pacman:
    % yaourt -S пакет
    необходимые зависимости поставятся автоматически(выдаст соответствующие запросы) после чего продолжится установка пакета.
    Прописывать sudo ненужно, программа yaourt вызовет её автоматически.
    На всякий случай, перед установкой пакета, обновить систему и сами пакеты с Аура:
    % yaourt -Syua
    ключ -a у йогурта отвечает за обновление пакетов установленных через АУР.

    В общем, йогурт сам всё скачает, соберёт и установит.
    Ответ написан
    2 комментария