Автор оригинала: john.brown
fisher
Можно иметь одного, двух гуру пятого уровня магии, а остальных просто дисциплинированных магов, уровнем пониже.
нельзя вот так отдельно рассматривать проблему. тут мы приходим к наставничеству и к вопросу, а что собственно должен делать наставник. а на мой взгляд наставничества больше должно быть в архитектуре, в программировании на мета-уровне. в больших проектах ОО архитектуры нет - ОО это уже дизайн кода, компонент. эта магия дизайна компонент важна но вторична(!) - я писал об этом выше. все знания о подсистемах формулируятся в терминах данных, передачи данных, общения между серверами и сервисами - потому что фундаментально программа это данные и работа над ними. базовый язык другой - это сильно отличается от клепания типовых сайтов на фреймворках или создания себе или коллегам инструмента для такого клепания. 80% работы в большом проекте - саппорт, причем чаще всего задачи заведомо некорректные - разобраться в проболеме по подземному стуку, и если разработчик будет выебываться "не понимаю, что хотите, поставьте мне корректну задачу" - ему объяснят, что в этом мире правила такие, что надо либо разбираться, либо работать где-то ещё. поэтому существует такой поток задач, такие внешние условия, когда с точки зрения процессов ООП это вообще дело десятое, и чем проще и "тупее" код тем лучше. и выгоднее иметь полностью самостоятельных ребят, чтобы каждый вел свой кусок - и не потому что шалопаи, можете попробовать пройти у нас собеседование
тут пробегала фраза мол ооп мне помогает какой-то там язык создать и разговаривать на нем на интутивно понятном бла-бла. вот для распределенных проектов базовый язык - он вообще другой, а ооп привносит ещё и какую-то свою "сложность" (не в смысле веса, а в смысле бритвы оккама). это не проблема ООП, но я просто вижу по опыту как это влияет на метод "думания". я для себя выработал простой принцип - cost oriented development. я не знаю, наверняка этот термин кто-то придумал и обсосал раньше. суть очень простая - моделирование не затрагивает ооп вообще. данне, работа над ними, что как куда едет. это архитектура. ооп включать можно только в тот момент, когда архитектура понятна со всех сторон рассмотрена и принята - надо задизайнить компоненты. но тут появляется связывание и целая магия избавиться от связывания. у меня есть знакомый один, довольно опытный разработчик, он как-то мне сказал, что для того чтобы не искушать себя дизайном и игрушечками он в какой-то момент стал делать чаще классы исключительно со статическими методами. понятно что это крайность, но вспомните, что я писал про объединение "состояния" и "поведения", а также пост про "королевство существительных". так вот ооп как язык мысли 1) с большой вероятностью "замоет" физический уровень 2) усложнит код там, где его можно было упростить. скроет красиво косяки и вылезут они потом тебе боком в том же саппорте. это к вопросу "что делать", который мне тут с завидной регулярностью задают. то есть ооп только для дизайна компонент, причем без излишеств типа "на каждую сущность делаем объект".
вы меня обвиняли в "неправильности" темы. я считаю все эти обвинения были исключительно эмоциональны, провокация сработала - разрушала ваш тоннель. так выйдите из него и посмотрите на проблему со стороны.