Pull to refresh
0
0
Байбара Егор Романович @gorinich

Пользователь

Send message
Позволю себе заметить, что весь изюм скриптовых языков программирования призван ускорить написание кода. Зачем на Perl или РНР писать в Си стиле? Зачем тогда вообще эти языки?
Плох тот программист, который не сможет разобраться в собственном коде.
Ну почему же?
mysql_connect() or die; вполне имеет право на жизнь.
Тут смысл не в том, чтобы упаковать побольше комманд в одну строку. А в том, чтобы уменьшить количество кода, но и не потерять в читаемости.

Я пишу на Perl, и поэтому примеры будут соотвествующие ))

принимаем параметры
my $param = shift || 0;
Параметр по умолчанию, никаких проверок.

Вместо if (!$a) {$a = $default_value}; гораздо приятнее написать $a = $default_value unless $a; или еще проще $a ||= $default_value;

Выворачиваться всегда и везде плохо, это да. Но есть ряд случаев, когда удобнее и красивее использовать логический оператор, вместо условного блока.
Cookie не нужны для идентификации ресурса, для этого служит URL. Все остальные данные должны передаваться методами POST и PUT.
Cookie — это надстройка над HTTP протоколом, а это уже не REST по его же определению. Примерно так )
Что я ничего не понял, что вы тут нагородили )
«HTTP GET-PUT-POST-DELETE это реализация CRUD для HTTP-протокола.» согласен.
«Она наиболее часто используется, поэтому и возникает путаница.» Какая путаница? С чем?

«Но url — это именно universal resource locator, универсальный идентификатор ресурса, а не ссылка в интернете.» Это где я URL ссылкой обозвал *осматривается* :)
Почему-то REST всем нравится. Почему-то каждый, кто открывает его для себя наполняется энтузиазмом и с криком «Так правильно, да будет так!!!» бьет себя пяткой в грудь и обещает начать это дело использовать. Вот только на этом дело обычно и останавливается.
REST призывает использовать HTTP по прямому назначению, ровно так, как он изначально задумывался, без всяких его расширений и перегрузок. Но в наших реалиях это мало возможно. Все стремятся использовать ЧПУ (красивые урлы, если кто не в курсе). Это хорошо, это дает возможность сказать, что каждый наш ресурс имеет урл, но это еще далеко от REST.

Поясню. REST предполагает, что все есть ресурс. Таким образом, каждый комментарий к этой статье должен иметь свой URL и быть по нему доступен. И каждый коммент должен подгружаться отдельным запросом.
Все как в ООП. Если у вашего объекта «магазин» есть метод «инвентарь», то инвентарь это тоже объект, и каждый предмет в инвентаре тоже есть объект, и загружается соответственно отдельно.
Но с другой стороны REST на этом не настаивает. Вот жешь блин )))

Короче. REST — это мечта, которая на практике не эффективна. Так же как красивый код и безупречная архитектура. Рано или поздно, станет тесно и не удобно.

Кстати, такая вещь как cookie должна противоречить REST.

Все сказанное сугубо IMHO. Конструктивные критика и комментарии приветствуются )))
Соглашусь, что REST в каком-то смысле сложно обозвать архитектурой.
Это скорее подход. Как ООП ;)
Но, с другой стороны, чтобы в полной мере реализовать REST, понадобится разработать под это дело архитектуру. Которую потом придется обозвать REST-архитектурой.
Так что считаю спорить о том, является ли REST архитектурой или не является, пустым делом ;)
Вы не поняли темы. method в форме, это всего лишь метод передачи запроса. Сама архитектура REST исповедует разделение на ресурсы. Все есть ресурс. Как в ООП — все есть объект. И каждый ресурс имеет свой адрес (url). Т.е. когда вы запрашиваете книгу (как в статье) по урлу и передаете GETом параметры через вопросик, это уже не REST. REST предполагает, что книга это ресурс и у нее есть свой адрес. Методов GET, POST, PUT и DELETE достаточно для работы с такой моделью.
Если уж вы решили сослаться на автомобили и все с ними связанное, то автомобилям с мощностью двигателя более 100 л.с. на улицах города делать нечего.

Другое дело, что на Perl пытаются писать люди, которые не умеют этого делать. Вот и получаются результаты, как если пересесть с Жигулей на Porsche. Сначала надо научиться использовать инструмент.

И знаете, тут надо обсуждать не что и где применять, а что, где и, главное, _как_ применять.
Есть задачи которые на Perl решаются в одну строчку, а на жестко типизированном языке это может занять не одну сотню строк, есть и наоборот.

И не говорите мне что на Java нельзя отжечь так, что всем плохо станет. На любом языке можно отжечь. На Perl можно писать простой и понятный код, а можно отжечь слабо понятный для языка, но очень эффективный код.
Посмотрите пример.
tochkak.ru/job/
Не подготовленный человек не поймет, что делает этот код. В ЖЖ сообществе ru_perl кто-то предположил, что это скрипт рассылки почты ))) На самом деле это функция парсинга POST запроса. Готовая к использованию. Используется нами в экстримальном окружении. Никогда не подводила. В модуле CGI.pm этот же функционал расписан на 100 килобайт и работает раз в 300 медленнее (мы проверяли)!!! Если у вас есть опыт работы с Perl, то вы сможете прочитать этот код как текст, все последовательно, просто и ничего лишнего.
Вы скажете, что этот код будет не понятен для большинства рабочей силы? А они его никогда и не увидят. Как мало кто знает, как работает CGI.pm. Как никто не видел кода, которым РНР парсит запросы.
Если вы скажете, что ваш крутой банковский проект на Java написан толпой программистов, я не поверю. Может куча дополнений и написана толпой, но само сердце написано одним или несколькими программистами. И вся толпа этого кода в глаза не видела. И так же не поверю, если вы скажете, что берете работника и он сходу вникает в работу и не делает ошибок и не пишет плохого кода, потому что Java этого не позволяет. Говнокод — понятие не привязанное к конкретному языку. Говнокод бывает на любом языке. На любом языке можно писать как красивый и всем понятный код, так и говнокод.
Скажу! Вы не поверите, но ПДД не есть часть автомобиля ;)
В качестве примеры ралли и любые гонки.
Представляете, если бы ралли Париж-Дакар проводились согласно ПДД :)
Везде есть свои правила и стиль. Стиль Perl по сравнению со многими языками это как ралли по сравнению с городским движением ;)
Как будто интерпретатор РНР не на Си написан )
Кстати, РНР по синтаксису больше похож на Си, чем Perl ;)
ru.wikipedia.org/wiki/Php
Раздел «История»
Но эти нормативы никто не запрещает нарушать.
Нельзя сказать, что язык лучше подходит для корпоративной разработки, только потому, что у него есть «жесткие и четкие письменные нормативы на стиль оформления кода». Ведь это чисто условное ограничение. Это не часть языка. И это не делает язык лучше или хуже.
Плохому танцору яйца мешают.
РНР произошел из Perl, не забываем, так что про «так себе» можно долго спорить.
На Perl можно писать как на РНР, наоборот нельзя ;)
На Perl можно писать как на Си, наоборот нельзя ;)
Про Python и Ruby ничего не скажу, не моя грядка :)
Про Java не понял. Чем она заточена под «этот стиль»?
Притирка к команде нужна всегда! Если команда работает без притирки, то в результате получается говнокод, и это не зависит от выбранного инструмента.

Все сказанное сугубо IMHO.
Вот у вас времени вагон! Вашу бы энергию, да в нужное русло!
Я не виноват в вашем выборе. Удачи.
Я не тролль. Я просто ненавижу говнокод.
И как может Вас задеть ветка обсуждения, в который Вы не участвуете?
Гадят непрестанно )))
Я столько минусов не получал даже от поклонников Python ))) На удивление ранимые люди )))
Это еще что. Мы ведем один очень большой проект, который писали не мы. Это пипец просто, кладезь перлфаков. Там можно целый музей собрать. Представьте каково это, поклонникам pretty-code поддерживать говнокод. Так оно еще и работает почти стабильно и практически не падает :).

Но одно мы поняли точно, промышленный код не может быть pretty. Это может быть только говнокод, иначе оно себя не оправдывает. Прекрасное только для себя )

А прибавление 0 к переменной, это практически нормально.
Когда нам нужно получить именно число, то к нему можно просто прибавить 0. Если это была пустая переменная, то она превратится в 0, если была строка, то она превратится в 0, если это была строка типа '123ej', то она превратится в число 123. Это такие неявные преобразования ;) Очень удобно в некоторых случаях.
Это скорее NetCat-дрочеры ;)
Есть такой подвид людей, которые пользуются продуктом, а когда им доказывают, что продукт говно, они очень сильно обижаются и начинают гадить. Говнокоду говнопользователи.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity