LINUX.ORG.RU

История изменений

Исправление DonkeyHot, (текущая версия) :

Тебе придётся его сделать - я не знаю, как «правильно» ПШать, а сравнивать на некошерном коде не честно. Эксперимент такой:

Берём какую-то простую задачу и постепенно доводим её до «энтерпрайного» состояния. На каждом этапе записываем, что вызвало необходимость добавления каждого слова, и «это негодное» для каждого удалённого - где «это» - название элемента, по причине которого ранее появилось удалённое. Например:

mv * $dst/ -- ТЗ - начальная версия
for i in ... cp $i $dst/.$i && mv $dst/.$i $dst/$i && rm $i -- ТЗ - нужно прятать недокопированные файлы
do done && $ -- баш - синтаксис
shopt -s pipefail -- баш - детали реализации(или стандарт)
test -f "$i" || continue -- ТЗ - не трогать подкаталоги
"" вокруг всех $переменных -- баш - пробелы в значениях переменных
cat $i | tee $dst/.$i >$dst2/.$i || continue ; mv $dst2/.$i $dst2/$i && -- ТЗ - нужно в 2 места; cp - негодное
trap "" TERM INT -- ТЗ - не доставлять файлы повторно при ребутах
Ну, и продолжаешь в таком духе, пока фантазии хватает. Где увидишь в списке виноватых слово «объект/аттрибут/метод» - там и усложнения. Минимум будет "." - но её можно не считать, т.к. редко кому удаётся разделить слова менее чем одним символом. В твоём примере лишним уже выглядит "()" - пользователю нужно помнить что ".getType()" а не ".type"(по аналогии с «fullname»).

Может случиться, что ты не найдёшь, в чём винить объекты. Я бы посмотрел на эту версию - пока мне кажется, что это потребует перехода к «всё есть строка»(и т.о. устранение объектных неприятностей) на как можно более ранних этапах, что есть читинг.

Исходная версия DonkeyHot, :

Так я увижу хоть один пример, где объектность реально мешала бы?

Тебе придётся его сделать - я не знаю, как «правильно» ПШать, а сравнивать на некошерном коде не честно. Эксперимент такой:

Берём какую-то простую задачу и постепенно доводим её до «энтерпрайного» состояния. На каждом этапе записываем, что вызвало необходимость добавления каждого слова, и «это негодное» для каждого удалённого - где «это» - название элемента, по причине которого ранее появилось удалённое. Например:

mv * $dst/ -- ТЗ - начальная версия
for i in ... cp $i $dst/.$i && mv $dst/.$i $dst/$i && rm $i -- ТЗ - нужно прятать недокопированные файлы
do done && $ -- баш - синтаксис
shopt -s pipefail -- баш - детали реализации(или стандарт)
test -f "$i" || continue -- ТЗ - не трогать подкаталоги
"" вокруг всех $переменных -- баш - пробелы в значениях переменных
cat $i | tail $dst/.$i >$dst2/.$i || continue ; mv $dst2/.$i $dst2/$i && -- ТЗ - нужно в 2 места; cp - негодное
trap "" TERM INT -- ТЗ - не доставлять файлы повторно при ребутах
Ну, и продолжаешь в таком духе, пока фантазии хватает. Где увидишь в списке виноватых слово «объект/аттрибут/метод» - там и усложнения. Минимум будет "." - но её можно не считать, т.к. редко кому удаётся разделить слова менее чем одним символом. В твоём примере лишним уже выглядит "()" - пользователю нужно помнить что ".getType()" а не ".type"(по аналогии с «fullname»).

Может случиться, что ты не найдёшь, в чём винить объекты. Я бы посмотрел на эту версию - пока мне кажется, что это потребует перехода к «всё есть строка»(и т.о. устранение объектных неприятностей) на как можно более ранних этапах, что есть читинг.