[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Несколько вопросов вразброс



29.06.2012 00:41, Igor Chumak пишет:
> Примеров говнокода на одноименном сайте 100500. Некоторые вещи действительно
> выглядят как написанные наспор или под действием веществ, и как пример для
> неподражания не годятся. Некоторые - реальные простыни кода.. заниматься
> исследованием, что ж там накосячено - кусок работы. лучше хорошую книжку
> почитать, хотябы и о программировании;)
Ну, по крайней мере, в каждой хорошей книжке есть антипримеры. А на сайт тот я
как-то заходил. :-)
Вспомнил и вложил пример скрипта из той системы. Стоить заметить, что в качестве
интерпретатора используется (и давно, полагаю, до того, как они начали её
писать) ksh.
Он отлично понимает подстановки.
Но самое плохое - реализация архитектуры. Насколько я понял (из по-долбоёбски
написанной документации, по-другому не скажешь, т.к. читать этот местами
подчёркнутый жирный курсив, набранный с межсимвольным интервалом 1.5, маленьким
межстрочным, несоблюдением отступов и с ошибками, достаточно сложно), система
задумывалась, как совокупность независимых подсистем, просто пользующихся
услугами некоего "сервера БД", который сохраняет все данные в определённое место.
Потом данные берутся из архива и выводятся, либо, как real-time, либо как архив.
Идея была неплохая. Но получилась откровенная каша, которую практически
невозможно поддерживать.
Первые варианты, как мне сказали, заставляли людей постоянно мотаться из одного
места в другое, потому что что-то ломалось. Заказчик предупредил, что откажутся,
если её не перепишут. Они переписали. Откровенно хреново. Я даже не хочу
представлять, что было до этого.

И это неплохо. Если что-то будет в перспективе, я эту систему вспомню и пойму
почему так делать не надо. И постараюсь таких ошибок не допускать (самому же
легче потом будет).

>> > Плохих способов решать задачи почему- то значительно больше чем хороших;
так что
>> > лучше изучать хорошие;)
>> Эм, думаю, лучше решать задачу. А способы изучать, конечно нужно, но не нужно
>> только на способах зацикливаться.
> например, человека обучили сортировке пузырьком..  и он, окрыленный знанием,
> пишет функцию sort..  и начинает ее использовать везде.. и случайно нарываетс я
> на массив из 1000000 элементов... теорию надо знать!
Ну да, теорию. Я ж не спорю. Но не только способы решения задачи. Ещё неплохо
уметь бы оценить время выполнения алгоритма и самому уметь вывести какую-нибудь
сортировку Хоара (не зная об оригинале). Хотя это так, мои дурные размышления. %-)
# Сценарий запуска окна измерения фидеров
# Версия		1.08
# Дата 27.07.2007
# Добавлена опция -k в строку запуска

if test $UDCS_PATH
then  :
else
  UDCS_PATH=/udcs
fi
if test $UDCS_TMP_PATH
then :
else
	UDCS_TMP_PATH=/tmp
fi
if test $UDCS_RCK_PATH
then :
else
	UDCS_RCK_PATH=/archive_rck
fi
if test $UDCS_TRC_PATH
then :
else
	UDCS_TRC_PATH=/archive_trc
fi
for i in $@
do
	case $i in
		-D) echo "В сценарий fiders.scr передана строка аргументов" $* ;;
	esac
done

cfg_path=$UDCS_CONFIG_PATH/$UDCS_DISTANCE/$UDCS_STATION
# склеить результирующий файл с описанием всех устройств измерения ПИК10 и АЦП
if [ -r $UDCS_TMP_PATH/fid.txt ]
	then
	rm $UDCS_TMP_PATH/fid.txt
fi
if [ -r $cfg_path/fiders.txt ]
	then
	cp $cfg_path/fiders.txt $UDCS_TMP_PATH/fid.txt
fi
if [ -r $cfg_path/analog.txt ]
	then
	cat $cfg_path/analog.txt >>$UDCS_TMP_PATH/fid.txt
fi
# запуск программы
$UDCS_PATH/control/fiderck $* -r$UDCS_TMP_PATH/fid.txt -k -P $UDCS_RCK_PATH -Q $UDCS_TRC_PATH -q$cfg_path/device_control.cfg -M -C -T "Измерения в пит. установках" &

Reply to: