Пример канонического питон кода
github.com/...er/codereview/patching.py
Приложились: создатель питона Гвидо Ван Россум, пол дюжины гуглеров, энтузиасты из сообщества.
Интересно, у ДОУ код читабельнее?
github.com/...er/codereview/patching.py
Приложились: создатель питона Гвидо Ван Россум, пол дюжины гуглеров, энтузиасты из сообщества.
Интересно, у ДОУ код читабельнее?
А вот как нечто похожее можно сделать на нормальном языке программирования: stackoverflow.com/.../3560513/246677
Вполне кошерный код, учитывая что туда не нужно вносить правки каждый день. Кто умеет так писать, и понимать написанное — вполне может идти работать в Гугл.
После прочтения (и правки!!) инсталляционных кодов программ под Линукс, просто чтобы юзеру поставить готовую софтину — этот код читается просто как сказка Колобок.
После прочтения (и правки!!) инсталляционных кодов программ под Линуксэт вы еще msi файлы не декомпилировали, правили и пересобирали . вот после этого «инсталяционные коды программ под линукс» (.configure ? .makefile ?) выглядят как стихи
Есть много способов облагородить этот код:
— добавить коментариев
— разбить на функции с читабельными именами
— переименовать переменные используя читабельные имена
— написать его в ООП стиле используя классы и методы а не спагетти код над кортежами
— заюзать какую нибуть тулу по разбору заданной граматики в конце концов
разбить на функции с читабельными именамиа если этот код больше нигде не используется ?
переименовать переменные используя читабельные именаэто самая большая проблема в CS. да и питонисты не особо любят длинные имена переменных/функций — это тебе к джавистам.
написать его в ООП стиле используя классы и методы а не спагетти код над кортежамит.е. нагородить десяток классов и чтобы в каждом было максимум по одному методу? :)
заюзать какую нибуть тулу по разбору заданной граматики в конце концова есть ? а пять лет назад была ? а код в этой тулзе для тебя читаем? :)
а если этот код больше нигде не используется ?Его регулярно пытаются править судя по истории комитов, этого достаточно что бы его облагородить.
т.е. нагородить десяток классов и чтобы в каждом было максимум по одному методу? :)Ну это от рук уже зависит.
а есть ? а пять лет назад была ? а код в этой тулзе для тебя читаем? :)Я бы сказал лет 40 назад уже была.
Его регулярно пытаются править судя по истории комитов, этого достаточно что бы его облагородить.плохо смотрел — там всего 3 коммита изменяющего эту функцию.
Ну это от рук уже зависит.классы хороши для отделения неймспейса и наследования. не то, ни другое здесь не нужно.
Я бы сказал лет 40 назад уже была.и ? предлагаешь сделать обёртку над сишной либой чтобы в конце с удивлением обнаружить что это не рабоает на ГАЕ? :)
плохо смотрел — там всего 3 коммита изменяющего эту функцию.т.е. ты считаешь вполне валидной отмазкой плодить гавнокод: «а его все равно никто менять не будет»?
классы хороши для отделения неймспейса и наследования. не то, ни другое здесь не нужно.Очевидно что даже в контексте этого примера chunk.new_range выглядит читабельнее чем chunk[1].
и ? предлагаешь сделать обёртку над сишной либой чтобы в конце с удивлением обнаружить что это не рабоает на ГАЕ? :)Я предлагаю погуглить: wiki.python.org/...LanguageParsing
Меня просто поражает как люди в приступе религиозного фанатизма пытаются оправдать очевидный гавнокод.
Ну ты специально утверждаешь, что это «канонический код на питоне». Успешно троллишь, короче.
Его же Сам Гвидо писал.
Наглядно можно посмотреть на взгляды создателя на то каким он видит применение языка.
т.е. ты считаешь вполне валидной отмазкой плодить гавнокод: «а его все равно никто менять не будет»?я понятия не имею, где в моих комментариях ты увидел отмазки, тем не менее, кто и где его плодит ? пока что, я увидел жалкие попытки анонимного комментатора, с соответствующим ником, назвать чей-то код гавнокодом. не более.
Очевидно что даже в контексте этого примера chunk.new_range выглядит читабельнее чем chunk[1].представь на публику патч — посмотрим насколько очевиднее.
Я предлагаю погуглить: wiki.python.org/...LanguageParsingпредлагаю найти в этом списке парсинг корявых диффов на чистом питоне.
Товарищ, если ты считаешь код по моей ссылке правильно написанным, ок, это твой выбор, могу только посочувствовать. Пыжится и что-то там рефакторить что-бы тебе что-то доказать я не буду, мои примеры и посылы уже и так крайне очевидны.
Пыжится и что-то там рефакторитьотличный пример местного колорита — только языком и умеют.
Такое чувство что человек работал с Perl лет так двадцать, а потом в один день резко соскочил на Python !!!
xml легко изучается в специализированных вьюерах с использованием xpath, а такое говнище не факт что skynet разгребет.
хз. я вот реально не люблю питон (языки без фигурных скобочек меня оскорбляют) но вполне понял что там написано — каша конечно, но разобрать можно
а вот к специализированным вьюверам у меня доверия нет
Огромная функция, которую нужно разбить на 20 мелких
Но за счёт красоты и лаконичности питона этот код не так напрягает, как метод такой же длинны на джаве.
Посмотрите сорцы коре либы джавы, там все гораздо хуже :) не знаю, есть ли там код Гослинга, в каких-то местах, связанных с математикой должен быть.
Что не умаляет ни Гвидо, ни Гослинга. Обычно опытные зубры понимают, что код конвеншоны, паттерны и смеллзы — это только инструменты. Для начинающих — очень важны, они просто должны их знать и выполнять. А для синьоров — уже по желанию. Тем более, для BDFL, которые их сами выдумывают :)
Но за счёт красоты и лаконичности питона этот код не так напрягает, как метод такой же длинны на джаве.Так и на джаве не очень-то и напрягает...пока не надо искать в таком коде баг.
за счёт красоты и лаконичности питонаИ где в данном коде она проявляетсо? В отсутствие скобочек, которое превращает код в стену текста?
Поддерживаю. Что такого красивого и лакончиного то? Я понимаю сказать такое про тот же oCaml, но тут ничего интересного.
и? вполне читабельный код.
для сравнения могу предложить почитать парсинг дифов на любом другом языке ;)
или код того-же patch
Годик назад, один знакомый попробовал меня подсадить на питон, после 5 минут его изучения, я узнал, что вложеность блоков определяется кол-вом пробелов с начала строки , я бросил это изучения в сторону и вернулся к С++/С#.
Блин , ну я не знаю , пусть будет что угодно —
{
}
или...
begin;
end;
Но не пробельчики!
Как по мне этот синтаксис ужесен.
Я тоже думал что это жутко неудобно, но питон за счет этого получается менее массивным что-ли, но эта привычка сильно портит, у меня уже было пару раз когда я на Си писал что-то вроде
if (condition)а потом долго думал почему функции не вызываются вместе, ведь форматирование правильное
____foo1();
____foo2();
а все потому, что двоеточие забыли и точки с запятой не нужны тут xD
не обращайте внимания, это его очередной фейл в комментариях за два дня.
Форматирую, конечно.
Но,,, это нужно только для читабельности кода и к синтаксису языка не имеет отношения, и потом редактор делает это форматирование, с отступами, в автоматическом режиме.
Значит, в питоне отступы муляют, а в плюсах нет.
И на питоне все пишут в ed.
Логика-с
Ну вот так, мулят, даже не столько сами отступы, сколько их присутствие в синтаксисе языка.
И визуально определять блоки кода мне легче, при наличии каких то маркеров.
Значит, в питоне отступы муляют, а в плюсах нет.вот вы, гражданские, вроде умные люди, а строем не ходите © [:|||:]
мулят, даже не столько сами отступы, сколько их присутствие в синтаксисе языка.
я по началу тоже так отнесся, но потом проникся.
питон заставляет писать код немного по другому. мне кажется после питона, мой код на С++ стал намного проще и читабельнее.
по скобкам + отступам. Только по отступам не удобно. Только по скобкам без отступов тоже.
Интересно, у ДОУ код читабельнее?
А на сайте где-то есть функционал: «Utility to read and apply a unified diff without forking patch(1).» ?
61 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів