Уверен, что люди которые со мной работали слышали эту фразу много-много-много раз.
Но, начну с начала. Начинается все с того, что есть гуру Вася или немерно крутая фирма Мугл (кстати, если скрестить Microsoft + Google то как раз выйдет Moogle). И вот по ходу своей жизни, Вася бросает фразу «Самое важное это строить архитектуру Model-View-Controller, а остальное херня» или этот самый Мугл говорить, нанимайте самых лучших специалистов и все будет у вас пучком.
Ну, и соотвественно вокруг, тысчи почитатей и обожателей, начинают шептать… «о… да… я всегда знал, архитектура MVC — это круто… это единственное важное» или «нанимать самых лучших, точно, как мы раньше не доперли, самых лучших».
И вот, проходит неделя, месяц, год. И эту фразу превращаю в мантру, одевают в красивую рамочку и приходят на нее помолиться. Постепенно вырастает поколение, которое обожествляет фразу (зачастую не помня даже к чему она была сказана). Это поколение передает ее следующему и т.п. Та даже, если не передает, а просто первое поколение бьет поклоны фразе, уже выходят перекосы.
В чем собственно говоря проблема с этим. Тем, что на самом деле ни одна фраза или идея не может описать всех ситуаций и всех подходов. И применяя бездумно одну и туже идею куда не попадя просто не имеет смысла.
Ну, условно говоря, какая MVC для написания драйверов? Или какое нанимание лучших в случае, когда нужен средний человек для выполнения какой-то руттинной работы в малом Перепурдянске?
Собственно говоря, даже тогда, когда фраза применима у нее есть границы. Предположим — хороший чистый код для программы всегда хорошо. Но это не значит, что чистить код надо до дыр. Это не есть цель, это метод. И нужно понимать, что стоит за этим методом, какая более высокая цель.
Например чистый код ведет к более легкому исправлению ошибок, добавлению функциональности. Но опять же и это не самоцель. Это нужно для того, чтобы программа была более конкурентоспособная, но и это промежуточная цель. А выше стоит большие продажи.
Вот думаю, большинство подумаю что повышение продаж или прибыли это уже фактически самоцель.
Две ситуации, чтобы доказать, что максимизации прибыли еще не самоцель
а) Петя продал все запчасти для холодильников которые были вместо 6 месяцев за 1 неделю. Петя вроде большой молодец. Вот только новая партия не прийдет раньше чем через 3 месяца. И это значит, что все остальные заказчики уйдут к конкурентам, плюс VIP заказчики не получат деталей тоже. Прибыль максимизированна, но на очень коротком сроке.
б) Берем более длинный срок (скажем год). За три месяца до окончания года, большая фирма увольняет 1000 человек, и экономит этим очень приличную сумму. Проходит пол года, обнаруживается, что на всех проектах не хватает людей.
Можно продолжать до бесконечности.
Собственно я хочу сказать, что когда фраза начинает возносится в нечто божественное, спущенное свыше, она тут же теряет свой смысл. Особенно мне не нравиться, когда выбирается один элемент из сложной системы и ставится краеугольным камнем (например MVC). Это лучший метод задурить головы молодежи и получить вместо движения к цели, просто следование методу.
Кстати, даже фразу «Без фанатизма» нужно воспринимать с некоторым сомнением. Вот такая вот рекурсия.
Здравая мысль! Если не понимаешь, что делаешь, то лучше не делать.
У нас тоже был прецедент на работе, когда один очень «умный» человек пришел и сказал, мол у вас сеть сделана коряво, я знаю как надо переделать. В итоге офис неделю не мог нормально работать.
Да, в общем это ситуация похожая на то, что я описал.
То есть цель — правильная настройка сети поставлена была выше, чем реальная цель — чтобы сеть работала постоянно.
Все должно иметь здравый смысл. Посту +1
Moogle — в мемориз 🙂
Насчет фанатизма — типичная проблема, появляющаяся в двух ипостасях:
а) Cargo Cult — когда люди не знают, что и зачем делают, но видели, как это делали другие или так принято [для примера — у нас в фирме когда-то, еще до wide с++ era =), было принято «бояцца» эксепшенов, и не использовать их. Пришел с++, java, .net, а эксепшенов боятся по-прежнему, хотя никто не может объяснить, почему это плохо =)]
b) Gold Hammer — «когда у меня в руках молоток, все остальное вокруг — это гвозди». Человек так уверует в силу того инструмента, которым он овладел, что пытается решать _все_ проблемы с его помощью, а зачастую выходит крайне неоптимально, потому что любой инструмент или подход имеет ограниченную применимость
Как-то так 🙂
Насчет Cargo Cult и Gold Hummer? Это устоявшиеся выражения?
Я бы тогда взял бы на применение.
Да, насчет exception — очень-очень показательная ситуация.
Да, это устоявшиеся выражения из мира анти-паттернов создания ПО. Берите-пользйтесь, везде поймут 😉
http://ru.wikipedia.org/wiki/Культ_карго
Имхо, ни то, ни другое выражение не являются широко известными, без расшифровки лучше не упоминать 🙂 я про Gold Hummer — услышал впервые 🙂
Поэтому я и спросил, что я тоже слышал их раньше.
Классный текст=) Если есть программист, который понимает цель, для которой он сам является инструментом — это здорово! Но таких мало, по сути холивар программистам очень близок. Сел на коня и поскакал, а куда уже второй вопрос=)
Я бы сказал, их потому и мало, что мало кто удосуживается им рассказать об этом.
Не скажу, что у меня все были гениальные программисты, осознающие цели и т.п. Но, в общем-то в фанатизм впадали достаточно редко, так как несколько раз с людьми обсуждал.
в принципе, об этом говорят на первом курсе предмета «философия». очень жизненная штука, те студенты, которые манкируют сим предметом, в дальнейшем открывают эти истины сами. чуть позже.
говоря формализованным языком абсолютной истины нет, потому, что критерий истины — практика, а абстрактной практики не существует, поэтому любое утверждение справедливо только в конкретных исторических / временных условиях. даже математики это касается — для любого мат. утверждения неявно приводится набор аксиом, на которых эта математика построена.
😉
Э… Наверное у вас продвинутая философия была или вы продвинутые были.
То, что было у нас не в какие ворота не лезло, не говоря о том, чтобы применить философию к реальной жизненной ситуации.
я слукавил. это было на первом курсе аспирантуры 😉
М… Ну пожалуй, к первому курсу аспирантуры я уже мог бы извлечь какие-то интересности из философии.
Хотя у нас лично преподавала философичка, которая
а) Была бывшей завкафедрой по коммунистическому воспитанию (черт… не могу точно вспомнить, как на самом деле оно называлось)
б) Считала, что компьютер — это одноглазый монстр двадцать первого века. А программисты если не личная демоны, то по крайней мере прислужники сатаны.
Соответственно много из этого вынести не удалось.
Интересно было почитать, спасибо за вашу умную голову!
[…]Вашему вниманию мы показываем подборку отличных блогов Рунета[…]
Да согласен, фанатизм ещё никогда до хорошего не доводил… Научи дурака богу молится и он себе весь лоб расшибёт!)))
Именно-именно. 🙂
Причем ладно бы только дураки, так и достаточно умные люди бывают ударяются.
Кстати, самое обидное, что умные люди могут в результате фигни устроить больше чем десять дураков.