напоминалка

наследование в ООП или про Стадо Больших Невидимых Слонов и Фиговину

хотите покажу феерическую фиговину про ООП? помним про наследование и повторное использование кода? основной ващет плюс ООП. дык вот.
берем плагин WP, можно все шо угодно, я тут генерирую туповатый в ноль кейс, просто они более-менее отвязаны от. скажем, мне надо сделать простейшую весчь: для конкретного заказчика добавить опцию и где-нить ее попользовать разог. и даже (!). предположим, что для этого нужно поменять буквально два класса, перекрыть пару методов в десяток строк оба, и - все.
казалось бы - идеальные условия для применения ООП и иллюстрации этого мощнейшего (тм) подхода.
смогу ли я это сделать? да хрен там. даже в теории. по очевидным причинам: класс наследник надо переприбивать гвоздями везде где он пользуется и new-кается по жесткому имени. заменить его вручную и тихо переписав код можно, а сверху, через ООП - никак. то есть - ваще.

интересная же история выходит, а? декларируем одно, а как только чуть рядом, вне сияющих примеров с собачками, возникает простейшего вида необходимость - то кранты, совсем. не работает оно никак. тут кагбы даже не имеет смысл объяснять как это можно пофиксить, потому, что масштаб этой картины меня лично просто поражает.
это ж прикинуть - никто. от слова совсем. этого вот Слона, причем, тут больше похоже на Стадо Слонов этой вот чисто практической фигни - не замечает, не видит, про это не пишет. привыкли? заООПились в удивительно захватывающем направлении мысли? настолько, что остальное как шорами закрыто?
причем, очевидно, даже приглядываться не надо, что подобных кейсов - вагон и маленькая тележка, они _везде_. научиться переиспользовать в языках вот такой код - и петабайты текста просто испарятся. ну, вглухую.
сейчас же это решают так: #$%№%, ну, по-разному. обычно - через полнейшие дебри и хорошо если плюют и тупо делают копию кода. неООП-шно, зато вот.
а то спрашивают тут про ООП, SOLID прочее г., а на самом деле просто все поголовно смотрят децл вбок от. я даже не знаю как бы это назвать.
очевидного Стада Больших Повторно Переиспользуемых Слонов?
напоминалка

про 2+2 это ни о чем или чему и как учат на планете

вообще, если посмотреть на то, чему вообще учат и как - возникает интереснейшая картинка. например, пресловутые 2+2. как учат? да просто, на пальцах. вот 2, вот 2 вот это выходит 4. зачем, нафига, оно вообще кому-то надо? а зачем надо? хорошо еще что в мелком возрасте оно как-то проходит чисто из-за интереса вообще (!) ко всему. но - не у всех. и вообще...
или, например, до сих пор считается, что языковой запас в изучении языков не просто самый важный, а единственный ваще способ изучить язык. никто напрямую не говорит про это, но явно имеется в виду, что если выучишь наглухо словарь, то типа будешь знать язык. что на самом деле - даже и близко не так. и даже если выучишь времена - думается тоже. а чо если набор из словаря даже не самый важный и даже не просто важный, а?

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

и даже это еще не все. все намного хужее. потому, что судя по всему, окей, когда ты маленький, ты можешь в какой-то момент "набрать" достаточный объем термов для прохода в "прошел минимум в языке, дальше можно по накатанной". чисто из-за большого % вытеснения полной словарной ахинеи. и фильтрации остатка. но обучаясь либо недостаточным объемом, либо позжее, либо по частям - вот до этой планки приходится добираться уже совсем иначе. через тошнотность (от постановки материала "сверху") и тупо очень длительное время. потому, что всем кажется (!), что вот это, постановка "сверху" и словарный запас - этого достаточно. но это только кажется, потому, что все работает походу иначе. а фиксационно-зубрежное обучение только ухудшает обучалку.. и тут какой бы ты не был титулованый лингвист - этого четко и явно недостаточно для правильной компоновки для быстрого и четкого изучения. для сортировки и классификации языкового материала достаточно, не вопрос, а для обучения других - ну, нифига и никак.
кейс нумбер ван: к примеру, чо если правильное обучение будет выглядеть как полная ахинея? связанная друг с другом, не знаю, как анекдоты про петьку и васильваныча? те наглухо нелогичными с точки зрения науки (тм) структурами: не временами, не сложностью, не формами и прочим г-м. относительно вот этих, текущих "итс эээ тейбл", а?
кейс нумбер ту: а чо, если +-критерием правильности является не словарный запас и способность вязать предложения, а моменты "о, мля! во чо!". надеюсь, принципиальная разница видна. и моменты эти должны быть не по одному, а сплошняком фигачиться, если траектория обучалки - верная. потому, что как показала практика, вязать предложения можно под бухло до этого момента (без него намнооого хуже), а вот моменты могут попереть и лет через 20 после начала изучения. что как бы четко наталкивает на определенные выводы, что клей как раз нужОн
оукей, простой пример. показываем картинки, круг и квадрат, и спрашиваем чо приходит в голову. мне вот - анекдот. но если весь тест тут резко заканчивается, то я явно попаду в категорию олигофренов, которые не могут круг от квадрата отличить. но я могу в этот момент и послать (а еще развлекался тем, что при прохождении тестов подстраивал по ходу результаты, ибо оно ну видно жеж, чо и куда оно ведет, ибо тестов, где этого не видать - я видел всего пару штук в жизни), а ведь вся обучалка именно и основана на том, чтобы втюхивать "правильные" ответы на "нужные" картинки. и говорить шо ты урод, если чо иначе, ведь проверка идет - также. и пресловутая зубрежка - оттуда же.
прикиньте просто, так, на пальцах, что подобное "обучение" - оно везде! и что каждый из нас потерял при фиксации на траектории обучения на "только квадрат, никаких анекдотов". как мы еще не скатились до неандертальцев при таком сужении на следующих поколениях - непонятно, подозреваю, что чисто потому, что когда чо начинает по-настоящему нравится - народ проходит планку тошнотности моментально и идет дальше, уже в развитие. захватывая множество сайдовых штук, которые вытягивают траекторию. но раз: это пока сложность позволяет, ибо еще чуть и будет стопор по всей планете. но два: факт остается фактом, подозрение, что нас "учат" путем жесткой фиксации, выбивая наглухо кучу полезнейших и фик пойми каких еще штуковин (прям по кастанеде, там про обучение через фиксацию четко было) - просто вот не просто есть, а привело аш к пойсту.

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

скоростные базы и почемушки

ну вот взять идею со скоростной базой, поддерживающей только часть sql. а чо еще? у меня вот возникают вопросы на предмет хранилищ: вон, mysql поддерживает (к примеру) myisam и innodb. а в чем разница? мне простихосспади транзакционность и другое расширение файлика ни о чем не говорит. ну, говорит, канеш, но немного, мягко говоря.
причем, несмотря на то, что эту фиговину можно ставить потаблично, обычно ставят на базу и везде в табличках копируют. странноватенько, не? и явно фиговенько, раз так.
а ведь судя по всему нагрузка и использование баз и таблиц _могут_ значительно отличаться и именно там можно ожидать конкретного, на порядок прироста производительности. если подумать и подойти качественно.

Collapse )
напоминалка

Много потоков или анафига

Не, понятно, что какой-нить вебсервер чисто может просто попользовать скажем ядер так 100. А человек? Да нифига. Вообще, UI как подсказывает практика - это один поток и точка. Да, чисто где-то на фоне может болтаться еще штук 7 (ну, чисто цифирка, но она тоже с потолка, потому, что _отслеживать и одновременно_ никаких 7 там не будет) чего-то ui-подобного, но это все.
Вторая часть балета связана с простым фактом, посчитать 2+2 в несколько потоков ну, явно затруднительно. и писать код в несколько потоков не просто неслабонервное занятие, оно - не очень-то и необходимое. Возникает вопрос: анафига тогда сотни ядер в бытовухе и как их не просто четатам, а хотя бы придумать, чем грузить?
Ну. первый уровень - это явно по приложениям. Но их не нужно много юзеру, даже если он обвешаецо ими. Второй уровень - сервисы этих приложений и потоки. Но, скажем, даже копировать сотни файлов может один поток, по крайней мере до тех пор, пока дисковые системы это не смогут переварить в сотни тредов.
лаже современный веб ну явно заведомо может переварить только несколько тредов на страницу, врядли больше.

а чо если ядер будет заведомо больше чем? чем - это пусть 10к или мильон или больше...

Collapse )
напоминалка

принципиальные невозможности ООП

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

Collapse )
напоминалка

построчная многотредовость

ваще многотредовость для мильонядерных процов вещь занятная. ведь понятно, что 2+2 как ни крутись, на несколько ядер не раскидаешь. но ведь большинство вообще кода (важное слово) состоит из чего? из $bla = new Bla; $bla->do; или фик бы с ним, $bla23 = $bla->do();
ну, не всегда, я тут смотрю на сайтики в основном, но тем не менее...

что это значит с точки зрения анализа текста в этом плане? то, что за исключением создания объекта вызовы методов и функций можно попробовать чисто построчно запхать в треды. каждую в свой. да, треды должны быть практически прозрачными на создание и оверхед. да, есть некоторые нюансы. но в принципе почему бы и нет? главное понять где ждать все тредики и как это оформить текстом, ведь конец функции тут не очень подходит, нужно "чуть ранее". например так:
{ // чисто обертка для wait for all. а может - и построчной многотредовости
$bla = new Bla; $bla->do;
$bla = new Bla; $bla->do2;
} // где-то тут по дефолту ждем пока все отработает или чо не отвалится, причем, чисто в рамках обычной обработки ошибок, что важно и интересно, ведь ничо больше менять не надо! ни оборачивать, ни обрабатывать иначе.
а тут рендерим страничку, к примеру, из этих двух частей. [конец функции]

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

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

ООП, проюктирование и оформление как критерий

а теперь посмотрим какие паттерны и структурные вещи чисто указывают на то, что код за-ООП-шлен наглухо. не упоминая лишний раз их функции (если кому хочется - см интернету).

Collapse )
напоминалка

и еще про ООП, проюктирование и WP, что стоит отдельного поста

мне вот интересно, как Фаулер (пофик ваще кто, хоть кто) спроектировал бы блог (!) с возможностью редактирования и добавления любых страниц и прицелом на landing pages, news sites, различный ecommerce с доставками и оплатами на любой вкус и вот этим всем. а?

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

а тут ничо, оно ж есть, вон оно. и никто не орет что-то, ваяли и ваяютъ.
типа ну да, есть какие-то фигни, но!!! очевидно же, что если бы были фигни совсем из ряда вон, вида "в таком энвайронменте техницки невозможно поднять _это_", тогда даже криков бы не было, обычно такое подыхает еще до релиза (с).