• Авторизация


#1 про программирование 06-03-2007 01:21 к комментариям - к полной версии - понравилось!


Сегодня посетила мысль. Суть: параллели исходных кодов программ к более приземленным реалиям. Причина: надо было человеку объяснить на доступном примере разницу между "тем и этим"

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

Стиль №1.
Басня.
Ломанная рифма, неровные строки - первое что бросается в глаза. Суть кода трудна для понимания с первого взгляда. Но самое главное дочитаться до морали и проникнуться всей глубиной. Код грамотен, но логическому завершению - морали - обычно предшествует длительное обработка и подготовка данных для финального соития.
Характерно для программистов-одиночек, работающих для себя и на себя.

Стиль №2.
Пьеса.
Каждому элементу отведено строго свое место. Каждая функция вступает в ход в строго отведенное время. Все четко расставлено по своим местам. В начале пьесы все функции, классы, константы описаны, прокомментированы и расставлены по своим местам. Обилие комментариев автора.
Код характерен четкой и ясной структурой, хотя зачастую страдает излишеством.
Характерен для программиста, работающего в команде и пишущего с расчетом на то, что его скрипты будут читать и понимать другие.

Стиль №3.
Поэма
Даже так - поэма Пушкина "Евгений Онегин". Красота неописуемая - все грамотно, стиль выверен, абзацы расставлены, ошибок нет, комментарии в меру и на своем месте. И весь-весь-весь код сводится в итоге к обработке десятка созданных массивов значений и отдаче его пользователю.
Смесь стиля №1 и №2.
Пишет обычно профи, работающий в крупной компании с расчетом "код для потомков". Обычно по такому коду очень легко составлять мануалы и описания.

Стиль №4.
Хокку (хайку)
Так обычно пишут истинные гуру. Причем обычно на языках, которые позволяют оперировать сложными структурными типами: perl, bash (да, да, и баш тоже :)), c++, php. ( языки выставлены в порядке уменьшения их "хокку"-нутости).
Три-пять строк, которые без поллитра не разберешь, но которые таят в себе такой смысл, что осилив его открываешь для себя новые взгляды на жизнь.
Реальным примером таких "хокку" являются скрипты моего брата - он перловик.

Мои скрипты тоже местами в них прорываются, но им обычно предшествует басня или небольшая поэмка :))
вверх^ к полной версии понравилось! в evernote
Комментарии (5):
Dail 06-03-2007-11:54 удалить
Блин, да ты крут :)
Flow musicLumen - Свобода

LI 5.8.17
Chick-fire 06-03-2007-17:11 удалить
Хм, мне это не понять!
Регулярные выражения - отличительная черта Хакку. Я про регулярные выражения типа

'/([A-z]{3}) ([0-9]{2}), ([0-9]{4})<\/a>/'

(извиняюсь за бедность примера) , в которых много данных выцепляется одной строчкой из килобайт текста и организуется в аккуратный массив , при этом регулярка изобилует такими моментами , что логику строчки в 100 символов (и более) надо расписывать в схеме на 3-4 листах А-4. Ещё на Хокку пишутся различные конфиги для ЧПУ , например миниатюра:

RewriteRule ^song/([0-9]+)/?$ /index.php?action=redirect&q=$1&subq=2
RewriteRule ^album/([0-9]+)/?$ /index.php?action=redirect&q=$1&subq=3
RewriteRule ^show_album/([0-9]+)/?$ /index.php?action=redirect&q=$1&subq=1

RewriteRule ^show_song/([0-9]+)/?$ /index.php?action=preview&q=$1

RewriteRule ^search/([A-z]+)/([^/]+)/?$ /index.php?action=search&typesearch=$1&q=$2

RewriteRule ^genre(/?)$ /index.php?action=bygenre
RewriteRule ^genre/([0-9]+)/?$ /index.php?action=bygenre&genre=$1
RewriteRule ^genre/([0-9]+)/style/([0-9]+)/?$ /index.php?action=bygenre&genre=$1&style=$2
---

Я конечно не претендую на это стиль и вообще на стиль :) Но если увеличить данные отрывки в 3 раза и добавить им по 1/3 мудрых символов , то можно представить себе ЭТО.

Вот строчка для размышления:

for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
---

Вот комментарий , при обсуждении с коллегой:

22.06.2006 11:11 Naikon for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
22.06.2006 11:11 Naikon гыыы
22.06.2006 11:11 Naikon как тебе конструкция ?
22.06.2006 11:12 Altair ну конечно , Маринок с красивыми глазами и аппетитными местами целовать всю ночь ! +) тебе хоть кайф , а у меня никакого счастья +)
22.06.2006 11:12 Altair беру слова обратно , все же у тебя тоже жесть ;)
22.06.2006 11:12 Altair пепец , что за самокат ?
22.06.2006 11:12 Altair рег экспы ещё ...
22.06.2006 11:12 Naikon агу -)
22.06.2006 11:13 Altair дааа.... жесть ... только не говори что ты это понимаешь +)
22.06.2006 11:14 Naikon эм)
22.06.2006 11:14 Naikon я не вчитывался)
22.06.2006 11:14 Altair ^_^
22.06.2006 11:14 Naikon -_-
22.06.2006 11:15 Altair странная конструкция for , это аля case или switch выходит ?
22.06.2006 11:15 Naikon наверное -))
22.06.2006 11:15 Naikon никогда так не делал))
22.06.2006 11:15 Altair в топку такой синтаксис +)
22.06.2006 11:16 Naikon чо, рульно)
22.06.2006 11:16 Naikon могу сказать что человег который это написал оч хорошо разбирается в предметной части)
22.06.2006 11:16 Altair да я понимаю что вставляет неподетски такой код , но брр +)
22.06.2006 11:16 Altair нам и заказчик вставит , так что надо хоть в языке отдушину искать +)
22.06.2006 11:16 Naikon ага -))
22.06.2006 11:27 Altair я кстати ГОС сдал
22.06.2006 12:12 Naikon молодец!


Гриня 07-03-2007-00:57 удалить
Chick-fire, не повезло.

Апрельский_Ёжик, о дааа! Регулы это святое! Регулы и регэкспы есть второе воплощение Джа в этом мире :)
Вот за что уважаю перл, за его возможность ну оооочень рульной работы с ними. Мой родной РНР так не умеет :(

PS: пример ахуенный. самое то, о чем я говорил :)
и вот пример того, что пишет мой брат
http://phpclub.ru/talk/showthread.php?s=&threadid=95453&rand=4
(читать сначала до конца. Скаррр - это я :-))

свои показывать не буду. Там до гуру-хокку далеко еще :)


Комментарии (5): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник #1 про программирование | Гриня - /* Записки программиста */ | Лента друзей Гриня / Полная версия Добавить в друзья Страницы: раньше»