Здравствуйте читатели сего опуса. В данном сочинении я описываю моё знакомство с фрэймворками, написанными на языке программирования PHP.
Вступление.
Я являюся простым человеком, не обременённым многочисленными стереотипами, присущими современным homo sapiens. Я стараюсь придерживаться в жизни, в делах да и во многих других отношениях принципа простоты. Я думаю, что если можно описать какую-то вещь простыми словами, то лучше описать её так, а не замудрствуя лукаво. Есть даже такая поговрка о том, что, если ты можешь описать сложную вещь так, чтобы понял любой дурак, то ты знаешь как эта вещь работает, из чего она состоит да и вообще знаешь об этой вещи очень многое.
Любой забюрократизированный профессор может напыщить щёки и сделать умное лицо и начать втирать нам, что весь мир есть квазифлуктуации многомерных мегаструктур и сверхпозиционная трансмутация эфемерных гиперпространственных сферических коней в вакууме, помноженных на степень замудрённости профессора, степень его замшелости и многое другое… но правильно ли делать так? Ведь достаточно сказать пары простых слов, и мир станет красивее, радостнее и приятней!
Zend Framework.
На сайте фрэймворка “Zend” указано, что он супер-быстрый, очень крутой и всё такое прочее. Взглянув на его исходный код и обучающие материалы, я уже десять раз засомневался, правильно ли я прочитал рекламные слоганы.
Аналогия.
Приведу примеры того, как выглядит программный код, написанный собственно тобой, и как выглядит выполнение простейшей функции “сказать привет” в сферическом фрэймворке компании “Вася Пупкин Инкорпорэйтед”.
2. Позвонить менеджеру внешнеэкономической деятельности, попросить его оформить перелёт переводчика из страны с противоположного континента в нашу страну.
3. Получить разрешение министерства бюрократических взаимоотношений на пересечение границы, установленной два века назад каким-то вождём в ходе каких-то событий.
4. Подождать пока свершится запрошенное.
5. Позвонить менеджеру по доставке крупногабаритных объектов, ведь такие вещи просто так нельзя провезти по городу – мосты мешают, провода висят, дороги непомерно узки для провозки субмарины по суше. Переводчик может передвигаться только под водой, потому что иначе ему некомфортно. Для симуляции подводного мира доставка осуществляется в настоящей субмарине класа “эфирная живность”, мэйд ин “тумба юмба”, год 3502. только на такой возможна перевозка, ибо жители планеты мопсов против всех других классов и годов выпуска ))) а планета мопсов – законодатель (даёт законы) в этой галактике.
6. Итак, субмарина с переводчиком из племени “Тумба-Юмба” доставлена до нужного места. Все бюрократические документы оформлены. Открывается люк субмарины. Но человек не может просто так из неё вылезти, она огромна. Вызываем погрузчика с длинющим краном.
7. Кран потребляет кучу топлива. За краном привязывается дозаправщик, потому что без него кран не доедет до нас.
8. Кран выгружает долгожданного переводчика из субмарины до нужного места. Но возникает проблема. По законам текущей страны и текущего режима, нельзя разговаривать с жителями племени “Тумба-Юмба”. Нанимаем юриста с альфы кентавра для совершения посреднической опреации для передачи взаимодействия между нами и переводчиком.
9. Всплывает факт того, что жители племени “Тумба-Юмба” от рождения носят на голове рога, а альфа-кентаврийские юристы категорически не переносят наличие рогов на собеседнике. Нанимаем бюро оптических трансмутаций для проксирования визуального взаимодействия между юристом и переводчиком.
10. Оказывается, что для оптического проксирования нужен редкий химический элемент трубадуриум с планеты “Хрюмзик-5”, а на нашей планете запасы его исчерпаны. Ждём 10 лет доставки редчайшего элемента галактики.
11. Идут годы… годы идут… планеты крутятся, растения рустут...
12. Неужели, мы это сделали? Мы передаём запрос, чтобы переводчик сказал “привет”. В ответ слышим “тевирп”. Что? Как так? Оказывается, что жители племени живут в обратном хронологическом порядке и для совершения дейтсвий в нашем хрональном континууме для них подготавливают перелёты темпоральных зоднов в их будущее (наше прошлое), для изменения судьбы галактики. Однако в этот раз что-то пошло не так, версия зонда, совершавшего искажение времени галактического масштаба, оказалась слишком старой. Баги (дыры) в его программном обеспечении не предусмотрели бунт на планете “крокодилов” галактики “хрен-знает-какая” и зонд был отловлен повстанцами и не смог совершить искажение событий жизни галактики. Короче говоря, из-за ошибки в программе темпорального зонда переводчик не смог выполнить нашу просьбу и куча ресурсов была потрачена впустую… Если всё это “очень быстро”, то что же тогда значит “медленно” ???
Теперь посмотрим, как выглядит функция “сказать привет” если ты её пишешь сам:
Super_fan[78RUS], полностью согласен. Изучив то, что пишут на всяких сайтах-справочниках по SQL, я понял, что они многое не договаривают и пишут всё очень расплывчато. По идее, программирование предполагает сверхчёткую логику, но, видимо, это не про них. Как и везде, здесь полно кое-какерства.
Во-первых, сам стандарт SQL (ANSI и ISO) не лежит в свободном доступе. Его можно получить только за деньги, и деньги немаленькие.
Во-вторых, оказывается что в этом самом SQL логика весьма тугая и работает примерно так же как и операционные системы от мелкософта, то есть как чёрный ящик.
The SQL COUNT function returns the number of rows in a table satisfying the criteria specified in the WHERE clause. It sets the number of rows or non NULL column values. COUNT() returns 0 if there were no matching rows.
Сначала нам говорят что функция показывает количество строк результата запроса. При этом нигде чётко не указано что означает параметр функции COUNT. Указано очень расплывчато, что если задать звёздочку "*", то выдаст количество всех строк результата, а если указать название колонки, то выдаст кличество всех строк результата, в которых ячейки указанной колонки не содержать пустое значение (NULL). Ладно, вроде бы пока логично. Но далее появляются шаманства с конструкцией "GROUP BY", которые противоречат описанной логике.
Оказывается, если почитать описание "GROUP BY", то оно служит в некотором роде исключением над стандартной ситуацией, и "COUNT" вместе с "GROUP BY" работает не так как указано в описании "COUNT"... Это ж *** охренеть можно. Супер стройная логика! Стандарт писали явно какие-то академики с большими чинами.
Оказывается, GROUP BY неявно разбивает результат на под-результаты, и вся деятельность COUNT повторяется многократно (по одному разу для каждого под-результата). Какого фига они тогда пишут такие кривые описания... С самого начала, когда я увидел синтаксис SQL, я понял что его придумали криворукие хитрожопы (хитрожоп это не опечатка а имя существительное, такой тип людей).
База данных написанные тобой мало того что работают быстрее, так они ещё и работают чётко, не имеют двойных стандартов и непонятных толкований...
Я понял, что в любой сфере жизнедеятельности есть свои кланы, своя мафия, свои секты. Каждый "тянет одеяло на себя", хочет быть властелином всего.
Например, в законах пишут что власть якобы принадлежит народу. А на практике это означает что ты никто и звать тебя никак, и если даже что-то пукнешь, то объявят тебя экстремистом, который нарушил все возможные законы. Но ведь копая шахты и буря скважины, убивая животных и сжигая растения, чиновники и бизнесмены нарушают законы космические, они убивают природу и жизнь. А ведь природа вечно терпеть не будет.
Вспомниается только фраза хоккейного коментатора Николая Озерова, произнесёная во время матча "СССР - Канада" 28 сентября 1972 года: "Да... Такой хоккей нам не нужен."
Сообщение отредактировал zz - Воскресенье, 23.07.2017, 16:26