Культурный офтопик
 help / color / mirror / Atom feed
From: "Денис Смирнов" <mithraen@altlinux.ru>
To: smoke-room@lists.altlinux.org
Subject: Re: [room] новички
Date: Thu, 26 Oct 2006 08:28:27 +0400
Message-ID: <20061026042827.GB5829@localhost.localdomain> (raw)
In-Reply-To: <20061026020730.0c1b7963@dhcppc0>

On Thu, Oct 26, 2006 at 02:07:30AM +0500, Aleksey Korotkov wrote:

 AK> Не совсем так. Понятие аналогия знакомо? Так вот, можно провести такую
 AK> параллель: написание кода PHP "традиционным способом" vs генерация
 AK> "меташтуками" <-> создание html ручками vs визуальным редактором.

Не работает аналогия. Потому что "меташтучки" пишет сам программист, а
визуальные редакторы сторонняя компания. Если бы написание визуального
редактора было бы неотделимой частью разраобтки _конкретного сайта_ -- код
был бы куда чище.

Корректная аналогия как раз скорее "ручками сверстать весь сайт" VS
"использовать PHP". PHP генерит HTML код часто куда хуже чем для данной
конкретной страницы сделал бы хороший верстальщик.

В некотором виде использование PHP можно тоже с натяжкой назвать
метапрограммированием. Мы используем один язык чтобы генерить код на
другом языке.

AK> Поскольку, на мой взгляд, процессы сходны, а "чистота кода",
AK> генерируемого визуальными редакторами, хорошо известна, я счёл (на
AK> мой взгляд, обоснованно), что есть основания _сомневаться_ в чистоте
AK> кода, генерируемого "меташтуками".  
>> Ещё интереснее то, что это
>> позволяет мне обходиться практически безкомментариев -- код
>> прозрачнее становится.
AK> Хотел сам спросить -- ты опередил :) Увеличение прозрачности кода
AK> отсутствием комментариев -- что-то новенькое :)

Старенькое это. Есть код который требует каждую букву комментировать
(начинающие перловики такую муть, например, написать умудряются... без
поллитры даже смотреть страшно).

А есть код на который смотришь -- и тебе сразу понятно что и как он
делает.

>> Простой вопрос -- как ты проверяешь входные данные? На какие
>> именноусловия ты их проверяешь? Я вот последнее время стараюсь даже
>> регекспамиобрабатывать все входящие данные. 
AK> Так условия, на которые нужно проверять и используемые методы проверки
AK> -- от задачи и данных зависят (скажем, регэкспы для проверки
AK> корректности почтового адреса).

Ещё раз, ты прописываешь полный комплекс всех условий для каждого
параметра передаваемого в PHP-код?

>> Плюс констрейнты на
>> диапазоны. Для_всех_ данных. 
AK> А так, в принципе, с последним согласен, разумно. Здесь консенсус :) 

:)

>> Ещё раз объясняю. Когда человек пользуется метапрограммированием, он
>> несмотрит глазами генерат. Его компьютер исполняет. Для него есть: -
>> генератор; - данные для генератора; Это и есть код. 
AK> Это не код. Код -- результат работы генератора.

PHP это тоже не код. И C не код. Код -- это результат работы компилятора.
Аналогия ясна? ;)

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

>> Который
>> оказывается сильно лучше чем если бы он написалруками то, что будет
>> написано генератором.
AK> По-прежнему сомневаюсь.

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

>> Я уже сказал -- если выбирается вариант хоть на один байт длиннее --
>> этотребует обоснования. 
AK> Извини, но это при современных объёмах дисковой памяти попахивает
AK> маразмом ;). И противоречит твоим же словам. И вообще всему -- здравому
AK> смыслу и так тобой любимой "общепринятой практике". Потому что программы
AK> тогда надо писать без комментариев, без отступов, в одну строку и
AK> т.д. :) Будет сэкономлена куча байтов. Ура, товарищи!

_требует обоснования_ пропустил. То есть:

$a = $a + 1 // прибавляем к a единицу

я точно также бы поинтересовался обоснованием необходимости _такого_
комментария.

А вот если комментарий нужен для лучшего понимания кода -- это достаточное
объяснение зачем он нужен.

Аналогично с отступами -- они улучшают читаемость. 

AK> Я просил _внятных и разумных обоснований_, почему echo, а не print. Пока
AK> их не было, и закрадываются сильные подозрения, что не будет. Поскольку
AK> их нет :)
AK> Ещё раз подчеркну: не мой выбор echo || print, а твой echo && ! print
AK> требует обоснования.

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

>> Не. Все просто. echo "общепринятый" вариант и на целый 1 байт
>> короче.Поэтому обосновывать выбор не надо. 
AK> См. выше. Надо, надо и ещё раз надо. Только без анекдотических
AK> аргументов. OK? [За такие аргументы надо вообще наказывать, заставляя
AK> в течение месяца программировать на ассемблере для Windows 1.0 :)]

Детский сад. Ты выбрал нестандартное решение, не смог обосновать его
применение _никак_ кроме "так тоже можно". Я выбрал другое решение,
обосновав его выбор "так принято, и при этом не имеет неодстатков по
сравнению с твоим вариантом".

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

>> Как и то что вообще использовался оператор
>> вывода, где можно быловообще не использовать никаких операторов.
AK> О CLI помним? :)

А ты проверь мой вариант в CLI. А то ведь очередную двойку получишь :-P
Работает оно в CLI. Может её и можно настроить так, чтобы не работало --
но я не представляю себе где и кто так будет делать.

>> Все очень просто. Если код большой, но написаный "метаигрушкой",
>> тодостаточно предъявить простой алгоритм того модуля который генерит
>> кодпроверки аргументов, и его входные данные. Объем кода для проверки
>> в твоемслучае будет больше как минимум на порядок для сложного
>> проекта.
AK> Всё не очень просто. Тебе будет нужно предъявить доказательство
AK> правильности этого "простого алгоритма". Это задача никак не простая
AK> (исключая тривиальные случаи). Проверка на одном конкретном наборе
AK> входных данных -- не катит (на 10 наборах -- тоже). [и почему только
AK> "того модуля"?]

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

-- 
С уважением, Денис

http://freesource.info
----------------------------------------------------------------------------
У нас здесь talk-room, здесь не обижаются. :-)
		-- aen in talk-room@


  reply	other threads:[~2006-10-26  4:28 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-12 22:25 ` [room] ну почему мы такие страшные Sergey Stepanov
2006-10-13  0:02   ` Денис Смирнов
2006-10-14 16:54     ` [room] новички Michael Shigorin
2006-10-14 19:51       ` Денис Смирнов
2006-10-15 18:27         ` [room] комоды Michael Shigorin
2006-10-15 22:46           ` Денис Смирнов
2006-10-16 11:35             ` [room] IA: комоды += mithraen@ Michael Shigorin
2006-10-16 18:22               ` Maxim Tyurin
2006-10-16 19:40                 ` [room] IA: комоды += mrkooll@ Michael Shigorin
2006-10-16 18:19         ` [room] новички Maxim Tyurin
2006-10-16 20:14           ` Денис Смирнов
2006-10-16 21:20             ` Michael Shigorin
2006-10-17  8:10               ` Денис Смирнов
2006-10-17  8:20                 ` Evgenii Terechkov
2006-10-17 19:21                   ` Michael Shigorin
2006-10-18  0:54                     ` Evgenii Terechkov
2006-10-18  7:02                       ` Michael Shigorin
2006-10-18  8:08                         ` Evgenii Terechkov
2006-10-17 20:34                   ` Maxim Tyurin
2006-10-18  0:51                     ` Evgenii Terechkov
2006-10-18  8:31                       ` Maxim Tyurin
2006-10-18  9:24                         ` Evgenii Terechkov
2006-10-18  9:33                           ` Maxim Tyurin
2006-10-18 10:10                             ` Evgenii Terechkov
2006-10-18 10:22                               ` Maxim Tyurin
2006-10-18 15:07                                 ` Evgenii Terechkov
2006-10-18 20:44                                   ` Michael Shigorin
2006-10-19  5:46                                     ` Dmytro O. Redchuk
2006-10-19  5:58                                       ` Evgenii Terechkov
2006-10-19 23:08                                         ` Michael Shigorin
2006-10-20  3:58                                           ` Evgenii Terechkov
2006-10-19 23:07                                       ` [room] whitespace (не язык) Michael Shigorin
2006-10-20  3:46                                         ` Evgenii Terechkov
2006-10-20  8:16                                           ` Michael Shigorin
2006-10-20  9:18                                             ` Maxim Tyurin
2006-10-20 11:46                                               ` Michael Shigorin
2006-10-20 12:09                                                 ` Maxim Tyurin
2006-10-20 12:23                                             ` Evgenii Terechkov
2006-10-19  5:55                                     ` [room] новички Evgenii Terechkov
2006-10-19 23:05                                       ` Michael Shigorin
2006-10-20  3:56                                         ` Evgenii Terechkov
2006-10-20  3:57                                         ` Evgenii Terechkov
2006-10-19 16:01                                     ` Maxim Tyurin
2006-10-19 15:57                                   ` Maxim Tyurin
2006-10-19 17:33                                     ` Evgenii Terechkov
2006-10-19 17:57                                       ` Maxim Tyurin
2006-10-19 19:52                                         ` Evgenii Terechkov
2006-10-20  9:15                                           ` Maxim Tyurin
2006-10-20 12:32                                             ` Evgenii Terechkov
2006-10-19 18:28                                       ` Денис Смирнов
2006-10-20 19:44                                         ` Aleksey Korotkov
2006-10-20 22:02                                           ` Денис Смирнов
2006-10-21 19:47                                             ` Aleksey Korotkov
2006-10-21 20:22                                               ` Денис Смирнов
2006-10-21 22:16                                                 ` Michael Shigorin
2006-10-21 22:45                                                   ` Денис Смирнов
2006-10-22 11:18                                                     ` Michael Shigorin
2006-10-22 21:01                                                       ` Денис Смирнов
2006-10-22 21:20                                                 ` Aleksey Korotkov
2006-10-22 21:28                                                   ` [room] язычки и библиотечки Michael Shigorin
2006-10-23  6:15                                                     ` Eugene Ostapets
2006-10-23  7:36                                                       ` Michael Shigorin
2006-10-23  7:53                                                         ` Eugene Ostapets
2006-10-23 12:21                                                           ` Maxim Tyurin
2006-10-23 12:38                                                             ` Dmitriy L. Kruglikov
2006-10-24  1:48                                                             ` Денис Смирнов
2006-10-24 10:44                                                               ` Maxim Tyurin
2006-10-23 18:21                                                           ` Michael Shigorin
2006-10-23 18:30                                                             ` Eugene Ostapets
2006-10-23 19:18                                                               ` Michael Shigorin
2006-10-23 19:26                                                                 ` Eugene Ostapets
2006-10-24 10:35                                                                   ` [room] язычки и библиотечки [fin?] Michael Shigorin
2006-10-23  8:10                                                         ` [room] язычки и библиотечки Денис Смирнов
2006-10-23 20:14                                                         ` Aleksey Korotkov
2006-10-24 10:33                                                           ` Michael Shigorin
2006-10-24 22:57                                                             ` Aleksey Korotkov
2006-10-25 10:18                                                               ` Michael Shigorin
2006-10-23  8:24                                                     ` Денис Смирнов
2006-10-23 18:19                                                       ` Michael Shigorin
2006-10-24  1:55                                                         ` Денис Смирнов
2006-10-24  7:03                                                           ` Michael Bochkaryov
2006-10-24  8:54                                                             ` Денис Смирнов
2006-10-24 10:30                                                               ` [room] wackowiki Michael Shigorin
2006-10-24 10:49                                                                 ` [room] lustre Eugene Prokopiev
2006-10-24 15:07                                                                   ` Michael Shigorin
2006-10-24 16:04                                                                 ` [room] wackowiki Денис Смирнов
2006-10-24 16:08                                                                   ` Igor Zubkov
2006-10-24 16:47                                                                     ` Денис Смирнов
2006-10-24 17:51                                                                       ` [room] wackowiki vs mediawiki Igor Zubkov
2006-10-24 19:20                                                                         ` Michael Shigorin
2006-10-25  3:47                                                                           ` Денис Смирнов
2006-10-24 19:37                                                                       ` [room] wackowiki Michael Shigorin
2006-10-25  3:40                                                                         ` Денис Смирнов
2006-10-25 10:10                                                                           ` Michael Shigorin
2006-10-25 17:13                                                                             ` Денис Смирнов
2006-10-25 18:38                                                                               ` Michael Shigorin
2006-10-25 21:17                                                                                 ` Aleksey Korotkov
2006-10-26 21:01                                                                                   ` Michael Shigorin
2006-10-26  4:36                                                                                 ` Денис Смирнов
2006-10-28 14:26                                                                                   ` Michael Shigorin
2006-10-28 16:02                                                                                     ` Денис Смирнов
2006-10-29 17:44                                                                                       ` Michael Shigorin
2006-10-29 20:49                                                                                         ` Денис Смирнов
2006-10-30  7:48                                                                                           ` Michael Shigorin
2006-10-30 13:32                                                                                             ` Денис Смирнов
2006-10-30 17:19                                                                                               ` Igor Zubkov
2006-11-01  9:22                                                                                                 ` Денис Смирнов
2006-11-01 17:11                                                                                                   ` Igor Zubkov
2006-11-01 21:08                                                                                                     ` Денис Смирнов
2006-10-31  9:47                                                                                               ` Michael Shigorin
2006-11-01  9:20                                                                                                 ` Денис Смирнов
2006-10-31  9:49                                                                                               ` Michael Shigorin
2006-11-01  9:21                                                                                                 ` Денис Смирнов
2006-10-30 16:59                                                                                   ` Igor Zubkov
2006-11-01  9:20                                                                                     ` Денис Смирнов
2006-10-30 16:58                                                                                 ` Igor Zubkov
2006-10-31  3:16                                                                                   ` Evgenii Terechkov
2006-10-25  6:47                                                               ` [room] язычки и библиотечки Michael Bochkaryov
2006-10-25  7:16                                                                 ` Eugene Prokopiev
2006-10-28  8:18                                                                   ` Michael Bochkaryov
2006-10-25  8:35                                                                 ` Денис Смирнов
2006-10-25 10:07                                                                   ` Michael Shigorin
2006-10-25 17:15                                                                     ` Денис Смирнов
2006-10-24 10:28                                                             ` Michael Shigorin
2006-10-24  8:58                                                           ` Eugene Prokopiev
2006-10-24 15:57                                                             ` Денис Смирнов
2006-10-24 19:35                                                               ` [room] java off the rails Michael Shigorin
2006-10-25  3:37                                                                 ` Денис Смирнов
2006-10-25  6:21                                                                   ` Eugene Prokopiev
2006-10-25  6:39                                                                     ` Eugene Prokopiev
2006-10-25 10:05                                                                   ` Michael Shigorin
2006-10-25 16:59                                                                     ` Денис Смирнов
2006-10-25  6:00                                                               ` [room] язычки и библиотечки Eugene Prokopiev
2006-10-25  8:30                                                                 ` Денис Смирнов
2006-10-25 10:43                                                                   ` [room] Лекция по Java Eugene Prokopiev
2006-10-25 10:53                                                                     ` Eugene Prokopiev
2006-10-25 16:50                                                                     ` Eugene Prokopiev
2006-10-25 18:10                                                                     ` Денис Смирнов
2006-10-25 18:34                                                                       ` Michael Shigorin
2006-10-26  4:39                                                                         ` Денис Смирнов
2006-10-26  8:05                                                                           ` Eugene Prokopiev
2007-02-25 21:48                                                                             ` Денис Смирнов
2007-02-25 22:10                                                                               ` Eugene Prokopiev
2007-02-25 22:20                                                                                 ` Денис Смирнов
2007-02-25 22:56                                                                                   ` Eugene Prokopiev
2007-02-26 14:01                                                                                     ` Денис Смирнов
2006-10-26  7:47                                                                       ` Eugene Prokopiev
2007-02-25 22:01                                                                         ` Денис Смирнов
2007-02-25 22:52                                                                           ` Eugene Prokopiev
2007-02-26 14:05                                                                             ` Денис Смирнов
2007-02-26 20:16                                                                               ` Eugene Prokopiev
2007-02-26 20:51                                                                                 ` Денис Смирнов
2007-02-26  5:50                                                                           ` Eugene Prokopiev
2007-02-26 14:09                                                                             ` Денис Смирнов
2007-02-26 20:07                                                                               ` Eugene Prokopiev
2006-10-25 10:45                                                                   ` [room] язычки и библиотечки Eugene Prokopiev
2006-10-25 10:03                                                                 ` Michael Shigorin
2006-10-25  6:57                                                               ` Michael Bochkaryov
2006-10-25  8:37                                                                 ` Денис Смирнов
2006-10-24 10:27                                                           ` Michael Shigorin
2006-10-24 16:01                                                             ` Денис Смирнов
2006-10-24 19:44                                                               ` Michael Shigorin
2006-10-25  3:36                                                                 ` Денис Смирнов
2006-10-24 19:44                                                               ` [room] mod_security article (was: язычки и библиотечки) Michael Shigorin
2006-10-23 20:09                                                     ` [room] язычки и библиотечки Aleksey Korotkov
2006-10-24 10:22                                                       ` Michael Shigorin
2006-10-24 23:12                                                         ` Aleksey Korotkov
2006-10-25 10:19                                                           ` Michael Shigorin
2006-10-25 15:46                                                             ` Aleksey Korotkov
2006-10-25 18:39                                                               ` Michael Shigorin
2006-10-25 21:19                                                                 ` Aleksey Korotkov
2006-10-23  8:08                                                   ` [room] новички Денис Смирнов
2006-10-23 20:08                                                     ` Aleksey Korotkov
2006-10-24  1:46                                                       ` Денис Смирнов
2006-10-24 10:22                                                         ` [room] г-флейм Michael Shigorin
2006-10-24 10:27                                                           ` Денис Смирнов
2006-10-24 22:44                                                         ` [room] новички Aleksey Korotkov
2006-10-25  3:29                                                           ` Денис Смирнов
2006-10-25 10:00                                                             ` Michael Shigorin
2006-10-25 16:38                                                               ` Денис Смирнов
2006-10-25 18:25                                                                 ` Michael Shigorin
2006-10-26  4:14                                                                   ` Денис Смирнов
2006-10-25 15:07                                                             ` Aleksey Korotkov
2006-10-25 16:57                                                               ` Денис Смирнов
2006-10-25 21:07                                                                 ` Aleksey Korotkov
2006-10-26  4:28                                                                   ` Денис Смирнов [this message]
2006-10-26 13:39                                                                     ` Aleksey Korotkov
2006-10-26 15:10                                                                       ` Денис Смирнов
2006-10-25  9:58                                                           ` Michael Shigorin
2006-10-25 15:30                                                             ` Aleksey Korotkov
2006-10-25 18:27                                                               ` [room] смайлЫ Michael Shigorin
2006-10-25 21:14                                                                 ` Aleksey Korotkov
2006-10-25 16:35                                                             ` [room] новички Денис Смирнов
2006-10-18 11:11                               ` [room] язЫки программирования Michael Shigorin
2006-10-18 11:22                                 ` Maxim Tyurin
2006-10-18 15:08                                 ` Evgenii Terechkov
2006-10-18 11:10                           ` [room] новички Michael Shigorin
2006-10-18 15:12                             ` Evgenii Terechkov
2006-10-19 16:04                               ` Maxim Tyurin
2006-10-19 17:19                                 ` Evgenii Terechkov
2006-10-19 18:00                                   ` Maxim Tyurin
2006-10-19 18:57                                     ` Evgenii Terechkov
2006-10-19 23:10                                       ` Michael Shigorin
2006-10-20  3:53                                         ` Evgenii Terechkov
2006-10-23  6:59                                   ` Dmytro O. Redchuk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061026042827.GB5829@localhost.localdomain \
    --to=mithraen@altlinux.ru \
    --cc=smoke-room@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Культурный офтопик

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/smoke-room/0 smoke-room/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 smoke-room smoke-room/ http://lore.altlinux.org/smoke-room \
		smoke-room@lists.altlinux.org smoke-room@lists.altlinux.ru smoke-room@lists.altlinux.com smoke-room@altlinux.ru smoke-room@altlinux.org smoke-room@altlinux.com
	public-inbox-index smoke-room

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.smoke-room


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git