Профиль пользователя заблокирован сроком с 29 августа 2016 г. и навсегда по причине: Снова мат
  • Как лучше всего настроить роутер или какие готовые решения можно использовать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я давно уже хочу опробовать MVC


    не пробуйте если не разобрались что это такое и какие проблемы решает. И будьте осторожно, за 40 лет существования этого паттерна накопилось много "искаженно" информации. Так что... просто забейте...

    Запомните, смысл этих аббривиатур (MVC, MVVM, MVP, HMVC) не в самих буквах (компонентах которые они предлагают) а в отношениях между ними. Например в оригинальном MVC вьюшка это не шаблончики, а полноценный кусок кода который сам отвечает за себя. На бэкэнде же вьюшка это обычно пассивна, ее формируют контроллеры. Они же обрабатывают пользовательский ввод. Так что это уже явно не MVC. Ищим другие паттерны и они подойдут. Но отсутствие понимания зачем это все делать обычно приводит к непониманию и плохим решениям.

    Скажем то что вы подразумеваете под MVC на самом деле завется Model2 (насколько я понимаю то что вы хотите сделать) и это абсолютно разные вещи.

    единственный вопрос, который мешает это сделать - это написание самого роутера.


    Возьмите готовый.

    Я искал решение, и единственное что нашел это подключить модуль от Symfony.


    Плохо искали. Вот где нужно искать: packagist.org

    https://github.com/nikic/FastRoute
    Ответ написан
    5 комментариев
  • При помощи чего можно создать нестандартные GUI?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Скажите, можно ли на c# написать нестандартные gui?
    Вот чтобы не было стандартных рамок и прочего, а чтобы было все так как я хочу?

    Да, можно рисовать свои контролы. Хоть с нуля, так и поверх имеющихся. Так, кстати, работает сам WPF.

    И ещё по теме - если можно создавать красивые gui, то можно ли их использовать вне windows? А если по другому, то можно ли скомпилировать программу написанную на c# под системы отличные от windows?

    Да, с помощью GTK#. Например: раз, два.
    Ответ написан
    Комментировать
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

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

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев
  • Существует ли ресурс, на котором хорошо написано про паттерны (с примерами)?

    miraage
    @miraage
    Старый прогер
    Да. Книга "Банда четырех".
    Ответ написан
    Комментировать
  • Какие видеокурсы по CSS3 самые эффективные?

    viphorizon
    @viphorizon
    WebTheory, сам учился, рекомендую. Самое главное азы, а потом прямая дорога в htmlbook.ru
    Ответ написан
    2 комментария
  • Typescript и типы по условиям. Как правильно поступить?

    @sanex3339 Автор вопроса
    Сделал пока через user defined guard functions:
    https://github.com/Microsoft/TypeScript/issues/1007

    public static isIdentifierNode (node: ITreeNode): node is IIdentifierNode {
        return node.type === 'Identifier';
    }
    
    estraverse.replace(catchClauseNode.param, {
        leave: (node: ITreeNode, parentNode: ITreeNode) => {
            if (NodeUtils.isIdentifierNode(node)) {
                this.catchClauseParam.set(node.name, Utils.getRandomVariableName());
                node.name = this.catchClauseParam.get(node.name);
    
                return;
            }
    
            return estraverse.VisitorOption.Skip;
        }
    });
    Ответ написан
    1 комментарий
  • Как зарабатывают разработчики на бесплатных framework`ах?

    Denormalization
    @Denormalization
    Взять тот же Laravel:
    - Как минимум 3 сопутсвующих ПЛАТНЫХ проекта (forge, spark, envoyer).
    - Конференции с нехилым ценником.
    - Консультации
    - Не уверен, но возможно laracasts что-то отстегивает.

    И так же у многих крупных OpenSource проектов. Заработок идет на enterprise решениях на основе их проекта. (Та же платная поддержка).

    Некоторые (на вскидку не вспомню) OpenSource проекты получают финансированние от крупных организаций (Google, Yahoo, Microsoft, IBM).
    Ответ написан
    Комментировать
  • Angular2: JavaScript или TypeScript?

    @sanex3339
    TypeScript, тут даже думать нечего.
    Ответ написан
    Комментировать
  • Как найти угл и вектор из матрицы поворота?

    mudrenokanton
    @mudrenokanton
    frontend dev
    Матрицы поворота:
    ----------- по Z
    cos(a) sin(a) 0 0
    -sin(a) cos(a) 0 0
    0 0 1 0
    0 0 0 1
    ----------- по X
    1 0 0 0
    0 cos(a) sin(a) 0
    0 -sin(a) cos(a) 0
    0 0 0 1
    ----------- по Y
    cos(a) 0 -sin(a) 0
    0 1 0 0
    sin(a) 0 cos(a) 0
    0 0 0 1
    Ответ написан
    1 комментарий
  • Как сделать правильную сортировку массива?

    lazalu68
    @lazalu68
    Salmon
    map.sort(function(a, b) {
        return a.value - b.value;
    });
    Ответ написан
    Комментировать
  • Чем является логика компонента?

    @maxtm
    Make money, not job
    Свойство text будет просто свойством текст. Это не бизнес-логика, это просто свойство (или объект).
    К MVC тут оно не имеет никакого отношения.
    Ответ написан
    Комментировать
  • Чем заняться физику в IT?

    NeiroNx
    @NeiroNx
    Программист
    Робототехника, распознавание образов, построение окружения по данным с датчиков - перспективные направления с растущей востребованностью. Речь о программном обеспечении позволяющим заменить человека, автоматизировать опасные отрасли производства.
    Ответ написан
    3 комментария
  • Как сделать морской бой на html+js+css с перетаскиванием кораблей? Куда копать?

    mudrenokanton
    @mudrenokanton
    frontend dev
    Привет.

    А зачем вообще перетаскивание? Это некрасиво и неудобно.
    Лучше сделать панель кораблей. На панели клацнул, выбрал корабль. Потом наводишь курсор на поле, и под твоим курсором на поле в клетках отображается выбранный корабль. По щелчку на поле корабль закрепляется. По ПКМ допустим можно его крутнуть на 90 градусов.
    + можно сделать подсветку краев выбранных клеток, в которые мостится корабль, красными, если корабль ставится в недопустимое место и зелеными, если в допустимое

    По поводу данных в API то в него вообще можно банально передавать обыкновенный двумерный массив
    0 0 0 3 3 3
    0 2 0 0 0 0
    0 2 0 5 0 4
    0 2 0 5 0 4
    0 0 0 0 0 0
    6 0 1 1 1 1
    И то он нужен только когда игра инициализируется, а потом передаешь координаты точки в которую клацнул для получения ответа. Зачем БД — понятия не имею. Можно правда все ходы записывать что бы партию можно было сохранить/загрузить, но вроде в задании такого нет.
    Ответ написан
    Комментировать
  • Можно ли вешать оброботку событий не на DOM элемент?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Де-факто стандарт EventEmitter (в браузере отдельной либой).
    Ответ написан
    1 комментарий
  • Почему Python оборачивает элементы списка в кортежи?

    @fireSparrow
    В первых трёх строках запятые не нужны.

    Перевод строки - уже достаточный разделитель инструкций.
    А запятая для разделения инструкций не используется, только для разделения элементов в разных последовательностях. Её следует применять внутри скобок (либо круглых, либо квадратных, либо фигурных). Если вы используете запятую без скобок, то интерпретатор считает, что подразумеваются круглые скобки (т.е. кортеж).

    Т.е. писать нужно так:

    fio = {}
    age = {}
    date = {}
    diagnoz = {}

    Кстати, переменная diagnoz - это вы какую-то медицинскую систему пишите? Я просто сам в медицинском центре работаю :))
    Ответ написан
    1 комментарий
  • Какую книгу выбрать для изучуение JS?

    @lasmaster
    Вся сила в самообразовании
    Для начала я бы посоветовал рессурс learn.javascript.ru Там и тесты знаний есть для самопроверки, что отсутствует в книгах.
    Ответ написан
    1 комментарий
  • Как создать типизированный итератор?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.

    [Symbol.iterator](): IterableIterator<Node> {
        return this.nodeAll[Symbol.iterator]();
    }

    Имя метода должно быть Symbol.iterator, а не iterator. И да, дженерик IterableIterator, как правильно заметил Алексей Зуев.
    Ответ написан
    1 комментарий
  • Как создать типизированный итератор?

    Я не уверен, но мне кажется, что typescript ждет интерфейса IterableIterator
    interface IterableIterator<T> extends Iterator<T> {
        [Symbol.iterator](): IterableIterator<T>;
    }

    Попробуйте так
    class Node {
        public id: number;
    
        constructor(id: number){
            this.id = id;
        }
    }
    
    class List {
        public nodeAll: Node[];
    
        constructor(nodeAll: Node[]){
            this.nodeAll = nodeAll;
        }
    
        iterator(): IterableIterator<Node> {
            return this.nodeAll[Symbol.iterator]();
        }
    }
    
    let list = new List([new Node(0), new Node(1), new Node(2)]);
    
    let iterator: IterableIterator<Node> = list.iterator();
    
    for(let node of iterator){
        console.log(node.id);
    }
    Ответ написан
    1 комментарий