• Можно ли сделать мвп при этом не наговнокодив?

    @vladdimir
    Верстальщик
    Имхо, тут нет объективных метрик. Время само по себе понятие субъективное, потому как для нас, людей, обладает ценностью.
    Возможно, если ваш мвп сегодня не выйдет, то он потеряет свой потенциал, потребность закончится или ее покроет кто-то другой. А возможно, он сегодня как раз и не нужен, а вот завтра понадобится.

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

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

    Я пытаюсь сказать, что сколько вы по времени выйграте или проиграете зависит сугубо от вашего проекта и вашего понимания требований проекта. В одном случае, вы ускоритесь вдвое, если изначально заложитесь в архитектуры и обозначите жесткие рамки качества кода. В другом, достаточно заложить минимальные стандарты качества, и это будет быстрее всего. В третьем, Рахул победит.
    И никто из посторонних не скажет вам, какой ваш случай, просто потому что мы не вовлечены в проект и не несем за него хоть какую-либо ответственность.
    Ответ написан
    1 комментарий
  • Актуальна сейчас мобильная разработка(выбор swift)?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нет, не актуальна. Мобильниками же никто не пользуется, приложения под них не разрабатывают.
    Ответ написан
    Комментировать
  • Как runloop указывает потоку спать?

    doublench21
    @doublench21 Куратор тега Swift
    У тебя неправильное понимание.

    По своей сути - поток выполняет свою задачу и умирает. Но это иногда плохо, ибо на создание тратятся ресурсы системы. Эту проблему можно решить несколькими способами... но один из них это RunLoop. RunLoop заставляет поток оставаться живым, даже если никакой задачи на нём не выполняется (Но это не основная его задача. Основная его задача "слушать"). RunLoop стал настолько полезной штукой, что его принудительно привязали к каждому созданному потоку разработчики Apple. По-умолчанию, RunLoop не активирован. То есть для обычных потоков вам даже и знать о нём не нужно. ДА вы даже не будете создавать потоки, ибо в 99% вы работаете с абстракциями DispatchQueue/OperationQueue.

    Итак, когда RunLoop активирован, то он заставляет поток жить всё время, пока активен он сам (Я напомню, что для RunLoop это не основная цель). RunLoop способен принимать какие-либо события, но это не тема этого разговора. Так вот... когда RunLoop видит, что на "поле тишина", он переходит в спящий режим.

    А спящий режим у RunLoop это просто вечный цикл. Не верите? Смотрите:
    #define	CFRUNLOOP_SLEEP() do { } while (0)
    #define	CFRUNLOOP_SLEEP_ENABLED() (0)
    Ответ написан
    8 комментариев