Александр Кокорин, читайте документацию, что тут еще скажешь. Без этого гадать на кофейной гуще почему работает так - не работает эдак можно до бесконечности.
Поясню за "луковую архитектуру". Это означает что есть слой сервисов, который реализует бизнес-логику (даже если эта логика тупа на уровне "сохрани в БД, прочитай из БД" как это обычно происходит в CRUD-приложениях). И есть внешний для бизнес-логики мир. Так вот, бизнес-логика не должна зависеть от внешнего мира, наоборот, внешний мир должен прогибаться под бизнес-логику приложения.
А внешним миром тут является:
а) контроллер. Который может внезапно из REST превратиться в какую-нибудь Service Bus. Или RPC или еще во что-нибудь.
б) БД. Которая из реляционной может неожиданно стать NoSQL, обрасти каким-нибудь кэшированием, выделиться в отдельный микросервис и т.д.
Поэтому, строго говоря, в каждом слое должны быть свои модели (DTO) и конвертеры данных между ними. Разумеется, далеко не во всех проектах имеет смысл настолько вкладываться в "чистую архитектуру" (см. Р. Мартин "Чистая архитектура"). Но если нужен гибкий, тестируемый, повторно используемый код - то это хороший путь.
Lattuse, я бы не советовал "с нуля". У вас есть C++ и Python - это достойные, хорошие языки. Не мечитесь, сконцентрируйтесь на чем-то одном. Не нравится "Изучаем пайтон" - возьмите другую книжку. Читайте документацию по языку - там тоже много полезного.
Javascript потребуется когда решите делать проект для браузера - это либо сайт, либо десктопное приложение на Electron. Вот тогда и будете его изучать.
У меня php7/8 не ругается. Ругается 5.6, который то ли не умеет понимать возвращаемый функцией тип, то ли не умеет понимать скалярные типы. Не помню уже, давно дело было.
M-I-B, на самом деле нифига этот вопрос не простой. Я в свое время с аналогичным вопросом ходил за консультацией к нашему SQL-гуру. Это один из тех случаев, когда решение вроде и несложное, но найти его самостоятельно - тот еще ребус.
plxel, в переходном процессе, как правильно указал Армянское Радио нужно учитывать не только сопротивления, но и паразитные емкости и индуктивности. И там все будет сложно. Если говорить о скорости движения электронов, то она вряд ли будет отличаться на участках цепи (я не уверен, но не вижу почему она должна отличаться), но она будет изменяться во время переходного процесса по сложному закону, пока не установится стационарный режим.
M-I-B, это не оператор, это псевдоним таблицы-подзапроса. MySQL требует наличия псевдонима, без него синтаксическая ошибка (хотя он никак не используется). Можете там написать любой (tmp, например). Или вообще сразу агрегировать функциями SUM, без промежуточного подзапроса.
FanatPHP, захочет разобраться - разберется. Я функцию показал, дальше - вперед, читать документацию, благо она у PHP на русском имеется. Не захочет разбираться - не разберется. Я ему не ментор, мне за это не платят.
Дмитрий, это если у каждого пользователя первый заход медленный. А если он медленный только у первого пользователя (после какого-то перерыва, когда выдохлись кэши, например) - то не обязательно.
PHP акселератор установлен и включен?
При первом заходе задержка может быть связана именно с компиляцией и кэшированием опкодов, а также с загрузкой данных в другие кэши.
Если проблема только при первом заходе - проблема ли это?
SQL online