Например, есть класс логгера. Вместо создания отдельного экземпляра логгера в разных классах, вы можете создать один экземпляр и внедрять его где необходимо.
Также например класс работы с базой данных или внешним сервисом.
Думаю, что вам необходимо разделить запрос следующим образом:
1. Выбрать id категорий.
2. Выбрать новости для каждой категории, со связями к комментариям и картинкам.
А то, что запросов получается 35-55 это не много, надо смотреть что они из себя представляют.
Посмотрите, какой формат данных получается при выполнении запроса:
Сделайте два метода.
1. Имена пользователей
2. Имена пользователей + компании (sql запрос: join с таблицей company)
В цикле только формирование значения из полученных данных
Литературы полно в интернете, в большинстве своем англоязычная.
Изучайте как устроен блокчейн Ethereum, как работают смарт-контракты.
Пишутся контракты на языке Solidity. После изучения основ, теории, разбирайтесь как работают pancakeswap, uniswap. И дальше по таск-листу изучения: defi, dapp и т.д.