Как вам сказали, такой книги нет. И быть не может. Ни одна книга не может покрыть каждый трюк и технологию используемую в программировании. Методы, которые являются официально одобренным способом решить задачу в одном языке, могут быть восприняты как признак плохого стиля и малого опыта в другом. Некоторые не могут быть применены к данному языку вообще; некоторые имели смысл раньше, но считаются вредными сейчас, если ты не пишешь для старых систем; некоторые полезны при каком-то определённом стиле программирования, но бесполезны при другом, причём оба этих стиля широко используются.
Расписывать ли структуру приложения перед тем как приступить к написанию или использовать подход "пишем как придётся, потом отрефакторим"? Оба этих подхода работают. Просто нужно понимать, когда какой использовать. И это подводит к основному.
Программирование это опыт. Никакое количество книжек не сделает тебя программистом если не писать код. Невозможно
полноценно понять ни один совет из книжек по проектированию, паттернам, best practice и т.п., если ты ни разу не столкнулся с проблемами, которые они решают. Поэтому:
macode.ru