А поговорить хочу, собственно говоря, не о каких-либо конкретных методах или приемах, применяемых в веб-программировании, а занятии программировании как таковом, а точнее, о его эффективности.
Как известно, основным критерием оценки качества работы программиста является скорость написания рабочего кода. (темп отладки кода отнесем в данном случае туда же, к скорости написания кода, в данном случае это будет некая абстрактная скорость написания кода, совсем не механическая, печатания по клавиатуре ).
Так вот, на скорость написания кода влияет оч много факторов, начиная от температуры кофе в чашке у программиста и состояния погоды за окном и до выбора конкретной среды разработки приложения и применяемых методов и функций.
Непоследнюю роль в иерархии определяющих скорость факторов играет степень абстракции кода, так называемая высокоуровневность, которая на интуитивном уровне понятна всем, более менее разбирающимся в программировании, а конкретно в php может выражаться примерно следующем:
менее абстрактный подход
Код
<?php
$a1=1;
$a2=2;
$a3=3;
$a4=4;
$a5=5;
...
$an=N;
$summ=$a1+$a2+$a3+$a4+...+$an;
echo $summ;
?>
$a1=1;
$a2=2;
$a3=3;
$a4=4;
$a5=5;
...
$an=N;
$summ=$a1+$a2+$a3+$a4+...+$an;
echo $summ;
?>
более абстрактный подход
Код
<?php
for($i=0;$i<=N;$i++)
{
$summ+=$i;
}
echo $summ;
?>
for($i=0;$i<=N;$i++)
{
$summ+=$i;
}
echo $summ;
?>
Общепонятно и очевидно, что при повышении уровня абстракции кода, код становится все более сжатым, коротким, универсальным и масштабируемым, то есть, вкусным и питательным. В общем, такие мысли гуляли у меня этим вечером в голове, а ночью же мне приснилось следующее....
... Это был конструктор програм, очень удобный, каких еще не видел ни один программист, в нем можно было лихо щелчком мыши создать переменные, которые имели вид разноцветных шариков, причем тип переменной определял цвет; циклы, условия, цифровые скобочки выражались в виде коробочек, полупрозрачных, вложенных в друг друга, где было видно все их содержимое, причем глубина сложности и вложенности была сколь угодно сложной, но это не вызывало сложностей при понимании, также, как и не вызывает сложностей при охвате воображением конструкция из десяти вложенных матрешек, блоки условий, циклы обьединялись в виде хитроумных трубочек, клапаны и переключатели на которых были привязаны тоненькими ниточками к переменным, от которых зависело их состояние.
Запросы к базам данных были представлены в виде армированных указателей, красиво поблескивающих при наведении на них курсором, разноцветные треугольнички соответствовали полям внутри базы, а цветные шарики - переменным php, и никаких гребаных SELECT FROM WHERE LIMIT ORDER BY DESC JOIN LEFT и прочего, лишь тоненькие и аккуратные веревочки взаимосвязей между переменными.
Черт подери, было много еще чего удивительного и интересного, но часть забылось сразу после пробуждения... помню что функция вывода из массива представлялась в виде то ли сита, то ли мясорубки, а php-скрипты соединялись между собой полыми трубками-каналами, по которым текли данные запросов GET и POST. Да, и еще, можно было замедлить выполнение скрипта и посмотреть в виде наглядной анимации как протекает его выполнение в виде анимаций переменных, циклов, расбухания и сжатия массивов и перетекания разноцветных жидкостей между скриптами и формами)) Ну прямо как в компьютерных игрушках или флешевых развлекухах.
Все было настолько просто, легко и увлекательно, что такое программирование бы смог освоить даже ребенок.
Может быть и правда, постепенно уходит в прошлое эпоха написания тысячестрочных скриптов, регулярных выражений, запросов к базам, проверок условий и прочей каки, может быть, будущее действительно за удобными, понятными, по-настощему объектно-ориентированными конструкторами сайтов/баз данных/приложений и прочего, и прочего.
Конечно, программирование сложно сравнивать с написанием музыки, но, временами создавая треки в FLstudio и прочих различных секвенсорах, можно убедиться, что поистине явный прирост скорости и качества, удобства и эффективности в музыкальном творчестве дает использованием midi-клавиатуры, когда есть возможность играть мелодии вручную, снабжая их естественными полифониями, громкостями, акцентами и оттенками, которые имитируя мышкой ползунки параметров можно имитировать несравнимо медленнее и топорнее.
Программирование это тоже творчество (если кто сомневается, я готов поставить кругленькую сумму на это в споре ), а посему инструментарий для этого творчества должен быть максимально удобным, а главное - простым, понятным и естественным.
Посему, хочу обсудить следующую тему - какие конструкторы приложений (в том числе и для web) на сегодняшний день самые визуально-наглядные и удобные? Какими вы пользуетесь и почему? И если не пользуетесь, то тоже - почему?
П.с. А все-таки, приятный был сон) Как же клево орудовать мышкой, а не писать конструкции вида
Код
<?php $update=mysql_query("UPDATE booking SET fio='$fio', phone='$phone',
data=CAST(CONCAT(CAST(YEAR(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR), '-', CAST(MONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR),
'-', CAST(DAYOFMONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR)) AS DATETIME), timer='$time', ip='$ip', place='$place' WHERE booking_id='$booking_id'");?>
data=CAST(CONCAT(CAST(YEAR(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR), '-', CAST(MONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR),
'-', CAST(DAYOFMONTH(DATE_ADD(NOW(), INTERVAL '$date' DAY)) AS CHAR)) AS DATETIME), timer='$time', ip='$ip', place='$place' WHERE booking_id='$booking_id'");?>
Пойду досыпать, может что путное к утру напишу))