На самом деле, главный вопрос - какой браузер и сколько памяти требует тот самый локальный сайт с прайс-листом. Потому что сколько-нибудь свежие распространенные браузеры просто не заработают на таком железе, а древний или ультраминималистский может сделать из сайта тыкву вместо отображения.
Толстый Лорри, ну да, завтра он сдаст эту лабу и ему непременно пригодится все, что предусмотрено для развития этого кода на пять лет вперед. Вы серьезно?
Я же не спорю с тем, что архитектура важна. Но на начальном этапе она так же уместна, как разбор ямбов с гекзаметрами в первом классе, сразу после первого заученного наизусть четверостишия Барто.
Толстый Лорри, ну да, действительно. Это я, видимо, с вашей подачи забежал вперед и машинально решил, что этот велосипед уже, как ему положено, заменен стандартным контейнером ;)
Вот именно. Встает проблема, требующая решения. А вы сейчас предлагаете без всякой на то необходимости решать проблему, которая еще не встала, студенту, который о таких проблемах ничего не знает. Переворачивая задом наперед естественный порядок обучения.
Толстый Лорри, но вы же знакомы со стандартами образования и прочими умными словами - и, безусловно, можете буквально в паре фраз пересказать мне, упорствующему в своем невежестве, ГДЕ в этой задаче ТРЕБУЕТСЯ правильная архитектура, SOLID и разбиение на классы? Я весь внимание.
campus1, вообще-то это противоестественно. Классы нужны для того, чтобы убрать в них данные и логику, и больше их никто снаружи не видел. А при вашем разделении все внутренности матрицы придется вывернуть наружу.
Толстый Лорри, любые попытки привнести архитектурную правильность в этот код до того, как автор понимает, зачем она нужна, мне представляются оверинжинирингом.
Для задачи, высосанной из пальца, вполне естественно аналогичное решение.
.
На мой взгляд, именно в этой задаче высасывание из пальца какого-то "нормального ООП" на таком скудном материале - очевиднейший оверинжиниринг.
О современном ИТ-образовании спорить не буду - не знаком.
Толстый Лорри, вы так уверенно телепатите и за студента, и за препода...
Я же по коду с изрядной долей уверенности могу сказать, что ТС работу с классами чуть ли не в первый раз видит. Вот и весь полиморфизм.
Остаюсь при мнении, что опыт украшается правильными решениями, как торт - кремом. А тесто его замешивается на ошибках.
Толстый Лорри, я пытаюсь сказать простую вещь: до уверенного владения языком (а ничего иного препод этому студенту на этом этапе дать все равно не может) любые попытки скакнуть сразу к SOLID, архитектуре, паттернам и прочим высокоуровневым вещам так же вредны, как обратное - преждевременная оптимизация с копанием в сырых байтах на ровном месте. На начальном этапе обучения говнокод, имхо, ПОЛЕЗЕН.
А выстраивание какой бы то ни было архитектуры без опыта говнокода в лучшем случае приведет к дерьмовой архитектуре, а в худшем (и более вероятном) напрочь собьет с толку и лишит ясных ориентиров.
Толстый Лорри, грамотная архитектура и уменьшение связности в задаче такого уровня полезны примерно в той же степени, как определение с высокой точностью количества ангелов, которые могут уместиться на кончике иглы. Скорее забивает голову не переваренным мусором, чем чему-то учит.
Толстый Лорри, объективная причина кроется в самом задании.
ТС не надо рефакторинг. Ему не надо уменьшить связность. Ему вообще не надо грамотной архитектуры. Ему надо, чтобы было два класса.
Поставленную таким образом задачу имеет смысл решать с минимальными интеллектуальными затратами. Имхо.
Имхо, вам нужно пытаться упростить не выборку, а логику.
Если вам нужно вывести записи 100 пользователей - сначала загрузите данные пользователей (1 запрос), а потом - фото и видео этих пользователей (еще 2 запроса). И раскидайте их по пользователям уже в коде. Делать по три запроса на каждого пользователя, конечно, глупо.
Павел Бондаренко, "не так" тут Битрикс, в котором постоянно используются однострочники. На стыках которых и вылезают лишние переводы строк.
С другой стороны, аккуратно собрав код так, чтобы не было зазоров, вы получите риск того, что кто-то его возьмется править в битриксовском WYSIWYG-редакторе, а тот запутается в коде и выдаст вам вовсе нерабочую страницу.
Я бы советовал унять перфекционизм и забить.
Или, если невмочь, направить его в сторону, противоположную Битриксу.
Компилятор - это прекрасно. Но программы для iOS распространяются только через AppStore, для выкладывания требуется аккаунт разработчика, а для него - ябловская система (тут достаточно Хакинтоша) и ябловское мобильное устройство (а вот тут хрен).