Не очень понял про какую документацию и спецификацию вы говорите, тем более официальную, но для ООП попробуйте начать с классики банды четырех: Приемы объектно-ориентированного программирования. Паттерны проектирования
https://docs.google.com/file/d/0B6GuCegBf3X3Tm1rZl9BUTduQm8/edit
Понимание и владение паттернами ООП ИМХО выводит человека на другой уровень программирования.
Образно выражаясь, в документации у каждого ЯП по ООП написан алфавит. И после изучения только алфавита программист собирает какие-то несвязные последовательности букв из этого алфавита.
А после изучения паттернов начинает складывать из этих букв слова, предложения и дело доходит до стихов и рассказов, поэм и т.д.
[DOUBLEPOST=1524460445][/DOUBLEPOST]Но это опять таки общепринятые приемы, рекомендации так сказать, которые можно принимать, а можно и нет. В конечном итоге, все равно в процессе поиска каких-то решения приходишь к этим паттернам через кровь и пот. Возвращаясь к примеру естественных языков, на латинском алфавите основывается очень много разных языков. И на каждом из них есть книги, стихи и т.д.
[DOUBLEPOST=1524460651][/DOUBLEPOST]И лучше конечно же использовать некие стандартные приемы, понятные большинству. Например, когда продумываешь какое-то решение, то думаешь примерно так - Вот здесь я использую паттерн строитель, а здесь у меня будет фасад. А тут подошел бы синглтон. И каждый, кто потом будет прикасаться к коду и знаком с паттернами - будет видеть их в коде и ему будет легче понять чужой код. Как-то так ИМХО.
https://docs.google.com/file/d/0B6GuCegBf3X3Tm1rZl9BUTduQm8/edit
Понимание и владение паттернами ООП ИМХО выводит человека на другой уровень программирования.
Образно выражаясь, в документации у каждого ЯП по ООП написан алфавит. И после изучения только алфавита программист собирает какие-то несвязные последовательности букв из этого алфавита.
А после изучения паттернов начинает складывать из этих букв слова, предложения и дело доходит до стихов и рассказов, поэм и т.д.
[DOUBLEPOST=1524460445][/DOUBLEPOST]Но это опять таки общепринятые приемы, рекомендации так сказать, которые можно принимать, а можно и нет. В конечном итоге, все равно в процессе поиска каких-то решения приходишь к этим паттернам через кровь и пот. Возвращаясь к примеру естественных языков, на латинском алфавите основывается очень много разных языков. И на каждом из них есть книги, стихи и т.д.
[DOUBLEPOST=1524460651][/DOUBLEPOST]И лучше конечно же использовать некие стандартные приемы, понятные большинству. Например, когда продумываешь какое-то решение, то думаешь примерно так - Вот здесь я использую паттерн строитель, а здесь у меня будет фасад. А тут подошел бы синглтон. И каждый, кто потом будет прикасаться к коду и знаком с паттернами - будет видеть их в коде и ему будет легче понять чужой код. Как-то так ИМХО.