2008/09/30

Каждый блоггер обязан

Каждый блоггер обязан чтить и неукоснительно исполнять "правила хорошего бложика" :)

Правило первое: всем рассказывать о своём бложике
Правило второе: всегда всем рассказывать о своём бложике
а если серьёзно, то
Правило третье: в блог надо писать, надо кормить читателя контентом
Правило четвёртое: грамотного читателя надо кормить качественным контентом; надо хоть немного разбираться в том, о чём пишешь.
Грамотного читателя всегда приятнее видеть в бложике, чем неграмотного.

2008/09/26

важное дополнение к предыдущему посту

мало кто помнит, да чего уже там! мало кто вообще знает, что изначально в MVC было две буквы M - MMVC:
одна M для "бизнес-логики", а другая M - для приложения.

так как человекам свойственно всё упрощать, вот и доупрощались: сначала букву потеряли, а затем и смысл. свалили всё в кучу, пересказали школьникам, которые, разумеется, всё и понять-то не могли.

в результате что имеем в отрасли? в начальниках и "тимлидах" - тупые двадцатилетние студенты, выгнанные из бауманки, гении на всю голову, коллайдера на них нет, под чьим "руководством" криативятся миллионные проекты и десятки тысяч строк кода, там где при нормальном дизайне можно было бы обойтись лишь сотнями. ну и далее - проблемы с тестированием и поддержкой, и поток килорублей, текущий мимо. мимо всего.

2008/09/25

МВЦ не существует!

Утверждение в заголовке звучит весьма резко и вызывающе, и многие сразу начинают с ним спорить.

На самом деле, это краткая форма более полного утверждения: «В настощее время на текущем этапе развития научно-технического прогресса, теории и практики алгоритмизации и программирования, реализация теоретического обоснования идеи MVC (Model-View-Controller Данные-Представление-Управление) в полной мере невозможна». Ещё раз: речь идёт о невозможности реализации, соответствующей теоретическему обоснованию идеи.
Возможны лишь некоторые приближения. После некоторых допущений.

А теперь по порядку:
а) МВЦ так и не имеет канонического описания. И каждый вправе думать про него что хочет.

б) МВЦ не имеет канонического описания по факту своего появления. Его придумали и начали использовать программисты Small Talk в программировании (исключительно!) пользовательских интерфейсов.

в) Причём, если мы будем фанатично следовать триразделённости МВЦ в проектировании приложений, забывая о пункте б), что часто бывает, может возникнуть примерно следующая ситуация:

предположим, контроллер получает сигнал о необходимости изменений представления данных, обращается в модель за данными, модель (как достаточно высокоуровневая система) обращается к подсистеме хранения данных. И, следуя идее МВЦ, обращается она к контроллеру подсистемы, который запрашивает собственную модель, и т.д. вглубь...

Это нереализуемая патовая ситуация.
Любой другой вариант является отклонением от исходного разделения и удаляет нас от МВЦ.

г) В свете вышесказанного особенно опасно говорить о МВЦ в приложениях, которые фактически не имеют тесной связи с клиентской частью. На мой взгляд, это все веб-приложения, за исключением, может быть, ява-апплетов.

д) Все виденные мною «реализации МВЦ» для пхп (все берут корни из phptemplates.org когда он был ещё жив; не ходите туда сейчас – там чей-то пустой блог) не являются МВЦ, это плохие эмуляции. Хотя бы потому, что классический МВЦ утверждает независимость трёх компонентов. Которая отсутствует в этих эмуляциях.

е) Даже полная «объектизация» языка программирования не помогает в реализации МВЦ.

Нет ничего плохого, если вы используете какой-либо из ранее найденных на просторах интернета шаблонов якобы МВЦ, или даже придумали свою реализацию %) Присмотритесь к ней внимательней, и вам захочется рефакторить её и рефакторить, и рефакторить, и рефакторить...

Не надо называть МВЦ то, что МВЦ не является.

На мой взгляд, о МВЦ нельзя думать как о шаблоне (pattern) реализации или разработки, и даже говоря о МВЦ как о шаблоне проектирования, не надо закладывать в схему (в проект) эти три буквы %) Лучше уж «проект пишем, МВЦ в уме».

Вот, кажется, и всё. Это из личного опыта и опыта виртуальных коллег.
Надеюсь, прочитанное вам поможет. Хотя, см. п. а)
зы: тоже польза http://phpclub.ru/talk/showthread.php?threadid=71560&highlight=mvc

зы2: статья основана на переписке с потенциальным работодателем. и полугодичных мытарствах с mvcговнопаттернами

лето 2007г

ps: http://angry-web.blogspot.com/2008/09/blog-post_26.html

люди и деньги

деньги, как известно, пятое состояние вещества и пятое измерение. они совершенно свободно конвертируются во что угодно. во время, например. или пространство. или яблоки.
но я не стал писать в предыдущем посте о том, что хочу денег. это пошло и банально. заезжено, запилено и растерзано по разного рода бложикам без меня.
не я стал я писать и о том, что не хочу денег. люди, которые говорят, что не хотят денег - лгут. прежде всего себе

это будет первое сообщение

первому сообщению, как и всяким другим первым штукам, люди склонны придавать мистические смыслы и практические подоплёки.
так вот, всё это ерунда. просто расскажу, для чего я завёл ещё и этот уютненький бложик:
а) стало тесно в уютненькой жежешечке
б) надо ж куда-то откладывать умные мысли
в) надеюсь, не только мне будет интересно следить за захватом мира
г) а после события из п. в) этот блог может служить пособием "как не надо делать"
зы: также, я постараюсь изложить много из того, что знаю на тему "как делать надо"