The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз компилятора Rakudo 2022.02 для языка программирования Raku (бывший Perl 6), opennews (??), 13-Фев-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


40. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  –1 +/
Сообщение от Самокатофил (?), 14-Фев-22, 16:50 
>> * Сложность рефакторинга, обусловленная вышепереречисленными трудностями.
> Вот тут ничего не смогу сказать.

Есть их у меня :-P

Вот если под рефакторингом тот "программист" понимает рестайлинг, то конечно, новичку timtowdy даст по щам. И чем зелёней новичок -- тем смачнее. Но ведь с таким рефакторингом справится и perltidy + perlcritic + Абу. Зачем называть рефакторингом то что отдалённо является им, а мерять его удобство по плачу обезьяны по сигилам. Для рефакторинга понадобятся: профайлер, дебаггер, дебаггер регулярок, тесты, и профессиональное сообщество хакеров, которое восполнит недостаток знания perl internals при "неожиданном поведении". По моему скромному мнению, с этим у перла лучше чем у многой скриптоты. Не говорю "всей" только из душевной скромности.

Ответить | Правка | Наверх | Cообщить модератору

52. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Аноним (23), 16-Фев-22, 03:57 
> Вот если под рефакторингом тот "программист" понимает рестайлинг
> Зачем называть рефакторингом то что отдалённо является им, а мерять его удобство по плачу обезьяны по сигилам.

Сам обозвал рефакторинг рестайлингом (зачем???), сам удивился, а обезьяной почему-то обозвал кого-то другого. :)

Под рефакторингом понимается переработка кода для лучшей читабельности и поддерживаемости. То есть код переносится в другие функции, в другие модули, изменяются взаимосвязи между частями кода, а также АПИ. Функции сливаются или наоборот разбиваются на несколько, переименовываются, переносятся в другие модули. Модули тоже могут сливаться, разбиваться, переименовываться. По сути, рефакторинг - это один из способов снижения технического долга.

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

Вот, самое простое, поменять количество параметров в функции или поменять параметры местами. И чтобы код продолжил работать. В Перле это будет сделать труднее, чем в Питоне и Руби. Потому что вместо списка внятно именованных параметров в Перле @_. А прототипы, которые не сильно бы и помогли, никто не использует, ибо убоги.

Ответить | Правка | Наверх | Cообщить модератору

54. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Самокатофил (?), 16-Фев-22, 04:04 
>[оверквотинг удален]
> могут сливаться, разбиваться, переименовываться. По сути, рефакторинг - это один из
> способов снижения технического долга.
> Рефакторинг в динамических языках - вообще неблагодарное занятие, по сравнению со статическими.
> Но в Перл в этом деле сливает даже другим динамическим языкам.
> Очень трудно что-то прорефакторить и не внести ошибок.
> Вот, самое простое, поменять количество параметров в функции или поменять параметры местами.
> И чтобы код продолжил работать. В Перле это будет сделать труднее,
> чем в Питоне и Руби. Потому что вместо списка внятно именованных
> параметров в Перле @_. А прототипы, которые не сильно бы и
> помогли, никто не использует, ибо убоги.

Нагенеренный AI инфошум. man perlsubs.

Ответить | Правка | Наверх | Cообщить модератору

70. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Самокатофил (?), 17-Фев-22, 17:22 
Ты не понимаешь что такое прототипы, сигнатуры, и для чего они нужны. При изменении порядка аргументов функции нужно апдейтить документацию, потому что смотрят документацию, а не порядок аргументов функции в исходном коде. В общем, читни манца, дуде, и не пори чушь здесь про "рефакторинг".
Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

72. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Аноним (23), 18-Фев-22, 17:47 
> При изменении порядка аргументов функции нужно апдейтить документацию, потому что смотрят документацию, а не порядок аргументов функции в исходном коде.

Я ж уже писал про это. Во многих реальных проектах документация на функции часто бывает устаревшей или вообще отсутствует. Особенно для внутренних функций модуля, не для API-функций. В идеале, конечно документация всегда должна быть и должна апдейтиться. Но увы, далеко не всегда так бывает.

> смотрят документацию, а не порядок аргументов функции в исходном коде

Это правда для API-функций популярных библиотек. И почти всегда неправда для внутренних функций.

Чтобы далеко за примером не ходить, вот исходник, на который выше ссылку кидали:

https://github.com/uutils/coreutils/blob/main/src/uu/mktemp/...

В файле определено несколько функций, у скольких из них есть документация? Спойлер: ни у одной.

Ответить | Правка | Наверх | Cообщить модератору

74. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Самокатофил (?), 18-Фев-22, 18:17 
>> При изменении порядка аргументов функции нужно апдейтить документацию, потому что смотрят документацию, а не порядок аргументов функции в исходном коде.
> Я ж уже писал про это. Во многих реальных проектах документация на
> функции часто бывает устаревшей или вообще отсутствует. Особенно для внутренних функций
> модуля, не для API-функций. В идеале, конечно документация всегда должна быть
> и должна апдейтиться. Но увы, далеко не всегда так бывает.

В Perl принято писать POD. А документацию ради документации конечно, никто не пишет.

>> смотрят документацию, а не порядок аргументов функции в исходном коде
> Это правда для API-функций популярных библиотек. И почти всегда неправда для внутренних
> функций.

Ну дали тебе сигнатуры. Твой аргумент устарел лет на 8.

> Чтобы далеко за примером не ходить, вот исходник, на который выше ссылку
> кидали:
> https://github.com/uutils/coreutils/blob/main/src/uu/mktemp/...
> В файле определено несколько функций, у скольких из них есть документация? Спойлер:
> ни у одной.

И чем им поможет в данном случае параметры? Ты высасываешь из пальца аргументы к своему синдрому утёнка. Перловщикам не нужны сигнатуры en masse. Это подтверждается практикой, и я, как перловщик, говорю тебе об этом прямо, face to face. Что нужно для рефакторинга я тебе написал выше. Твои аргументы -- детский сад. Прости, не б обиду, дружище, но реально, это такая мелочь, что я просто не знаю как сказать это так, чтобы тебя не обидеть.

Ответить | Правка | Наверх | Cообщить модератору

77. "Релиз компилятора Rakudo 2022.02 для языка программирования ..."  +/
Сообщение от Аноним (23), 18-Фев-22, 19:14 
> Ну дали тебе сигнатуры. Твой аргумент устарел лет на 8.

Принимаю, что этот аргумент устарел. Спасибо, что рассказал. Можно было и без такой драмы. Куча остальных аргументов никуда не делись, кстати.

>> https://github.com/uutils/coreutils/blob/main/src/uu/mktemp/...
> И чем им поможет в данном случае параметры?

Тем, что становится понятней, как вызываются функции.

> Перловщикам не нужны сигнатуры en masse.

А мне нужны. Имею я право покритиковать их отсутствие в реальном коде?

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру