История программирования: Дейкстра. И Брукс.




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

98 Comments

  1. vcv

    Миллион плюсов. Молодежь должна знать основоположников. Хотя бы по фамилиям.

    Reply
  2. Шёпот теней

    … написать программу в 10 строк может каждый

    … написать программу в 100 строк может подготовленный пользователь

    … написать программу в 1 000 строк может программист

    … написать программу в 10 000 строк может гений

    … ВОТ …

    п.с. программист это не тот кто знает «КАК» а то кто знает «ПОЧЕМУ» …

    Reply
  3. Шёпот теней

    (1) …

    1.естьпрограммисты «холерики» — им не трудно двадцать раз всЁ переписать …

    2.естьпрограммисты «флегматики» — им не трудно двадцать раз всЁ подумать …

    … первые создают образ у которых «ничего не работает» …

    … вторые что они «ничего не делют» …

    … вот …

    Reply
  4. Арчибальд

    (3)

    Задача Университета — не предлагать то, что просит общество, а давать то, что обществу необходимо. © Дейкстра

    У программиста (особенно, одноэсника) задача такая же…

    Reply
  5. Шёпот теней

    (5) … вопрос «что обществу необходимо» … да и судьи кто ? становится интересным …

    я бы сказал бы что «университет» должен ориентроваться на «верхние слои» знаний… кто их не может усвоить тот вылетает …

    и еще я бы сказал… что рано или поздно, какой бы мы вопрос не затрунули и не исследовали бы, краеугольным станет вопрос культуры …

    нельзя помогать «бедным» и показывать Дом-2 …

    … если высшее образование способен получить или купить ЛЮБОЙ — то что это за ОБраЗОвание … ??? и что это за УНИВЕРситеты котрые дают/продают ТАкоЕ образование … ???

    … вот …

    Reply
  6. Alraune

    (6)

    если высшее образование способен получить или купить ЛЮБОЙ

    Имеете в виду само высшее образование или диплом?

    Reply
  7. Шёпот теней

    (7) … ты, что смЕЕЕшься … ? … !

    … типа «те» кто учится — получают «реальные» знания … что ли …?

    … уровень образования в ЭрЭфии упал … разве это кому-нибудь «не видно» … ???

    … мой опыт в четыре года преподавния в школе и институте говорит об «ужасном» положении нашего будущего инженерного положения …

    … вот …

    Reply
  8. Шёпот теней

    и потом если диплом (любым образом полученным) даёт вам право заниматься «строительством мостов» то о чЁм должно думать общество … ???

    может поэтому у нас рушаться крыши, горят здания, не летают «булавы» и всЁ остальное … вот …

    Reply
  9. Арчибальд
    На наше формирование большое влияние оказывают инструменты, которые мы используем, в частности: формализмы, которые мы используем, формируют наш образ мышления лучшим или худшим образом, и это значит, что мы должны быть чрезвычайно осторожны в выборе того, чему учить и чему учиться, потому что разучиться потом совершенно невозможно. © Дейкстра

    Reply
  10. Шёпот теней

    (10) … всегда есть не только культура но ещЁ и традиция … а если мы касаемся обучения и традиции то лучше «нашего» Ушинского … ! …

    Константин Дмитриевич УШИНСКИЙ

    родился 19 февраля (2 марта) 1824 года в Туле в семье Дмитрия Григорьевича Ушинского — отставного офицера, участника Отечественной войны 1812 года, мелкопоместного дворянина.

    Педагогика — не наука, а искусство: наука изучает существующее или существовавшее, а искусство стремится творить то, чего еще нет. Всякое искусство имеет свою теорию, которая предписывает правила для практической деятельности, черпая основания для этих правил в науке. Джон Стюарт Милль: «Где говорят в правилах и наставлениях, а не в утверждениях относительно фактов, там искусство… Положения искусства не утверждают, что что-нибудь есть, но указывают на то, что должно быть» . Ясно, что в таком смысле ни политику, ни педагогику нельзя назвать науками; ибо они не изучают того, что есть, но только указывают на то, что было бы желательно видеть существующим, и на средства к достижению желаемого. Поэтому педагогика — искусство, а не наука воспитания.

    .. можно добавить и искусство программировать …

    … ВОТтакаяОНАэтаРОССИЯ …

    Reply
  11. Ish_2

    Какова ,однако, реакция на невинное «Рисуешься ?».

    Бесспорно , ответный залп получился .

    Reply
  12. Арчибальд

    (12)

    Наиболее важными активами компетентного программиста являются — возможно, именно в таком порядке — отличное мастерство в своем естественном языке и значительная математическая зрелость. Уже более десяти лет эти факты общеизвестны и общепонятны.

    19 September 1980

    prof. dr. Edsger W. Dijkstra

    Видишь, какой оптимист! Мне же захотелось, чтобы эти факты из «общепонятных» превратились в «понятные ИСовцам». 😐

    Reply
  13. Ish_2

    Слушай , куда жаловаться ?

    Дейкстра жестоко не прав в своем выборе из альтернатив :

    Взгляд А: Программирование в основном весьма просто.

    Взгляд В: Программирование — это очень сложно.

    Если вложить в «программирование» узкий смысл — то массовое появление программистов 1с-ников — не это ли подтверждение взгляда А.

    Взгляд же B тоже симпатичен , но понять в ЧЕМ эта сложность могут совсем немногие.

    Лучше быть поближе к народу :

    Взгляд А преобладает , и поэтому выгоднее и практичнее его считать верным.

    Reply
  14. Ish_2

    (13) Опять я не согласен :

    Я бы оставил только

    «отличное мастерство в своем естественном языке» .

    Нынче «математическая зрелость»важна уж очень в узкой сфере ( в области 1с-программирования — точно нет).

    А вот умение поставить задачу ,»ловко выкрутиться» поможет в любой сфере и при любой власти.

    Reply
  15. Шёпот теней

    … массовость убивает талант …

    … уровень компетенции с ростом организации (программы) падает ….

    … в десяти строках программы всегда есть хотя бы одна ошибка …

    … один Эс это не программа стандартов решения а программа универсальных методов использования … а универсальность — враг качества ….

    написать программу под жёсткое выполнение «просто» — написать програму с проверкой на перекрещивающиеся ошибки архи «сложно» …

    … ужжжВОТужжж …

    Reply
  16. Ish_2

    Вообщем , Арчибальд, ты смущаешь своими цитатами от 1980 г. неокрепшие умы.

    30 лет прошло.

    Умничая из сегодняшнего дня , можно сказать и «Браво» и «Старо !».

    http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/pp/ewd540.html

    Reply
  17. Арчибальд

    (17) Вот тебе посвежее, и, судя по (14), ближе по духу:

    В нынешней политической ситуации непохоже, чтобы что-то улучшилось вскоре; в ближайшем будущем нам придется жить среди предрассудков, что программирование — это «настолько просто, что им могут заниматься даже члены республиканской партии».

    Остин, 26 августа 1995

    Prof. dr. Edsger W. Dijkstra

    Reply
  18. Шёпот теней

    (17) … молодости свойственно «не желание нового» т.к. она не знает ни «его» ни даже «направления» … она, в основном, «тупо» отрицает «старое» …

    … знамо … знамо … и сами были молодыми … т.к. признак нового это не только «развалить» но и прежде всего «построить» …

    … во … во … что-то проблемы с этим вот «построить» …

    … ВоооТ …

    Reply
  19. Ish_2

    (18) Хм… Прошло 15 лет с 1980г. и Дейкстра через иронию признал течение жизни :

    Вся сила — во взгляде А.

    Нравится — не нравится ? — не тот вопрос. Это — ПРОГРЕСС во всей его красе.

    Дейкстре , на мой скромный взгляд , мешает зацикленность на программировании, как особой непохожей на другие человеческой деятельности.

    И то , что «изолированно» претендует на особую глубину , в другом , более широком контексте вызывает грустную улыбку .

    Сравним ?

    Взгляд А: Программирование в основном весьма просто.

    Взгляд В: Программирование — это очень сложно.

    Взгляд С: Лицедейство в основном весьма просто.

    Взгляд D: Лицедейство — это очень сложно.

    Взгляд E: Обработка металлов в основном весьма просто.

    Взгляд F: Обработка металлов — это очень сложно.

    И глубокомыслие Дейкстры при обосновании взгляда B для читателя сводится к простой народной истине :

    Всяк кулик своё болото хвалит.

    Reply
  20. Шёпот теней

    (20) … ты слишком «личностно» а значит НЕобЪективно т.е. СУБЪективно воспринял его наставления …

    … эх … молодость … молодость … молодость …

    … «создавать» надо а «не отрицать» … когда дети начинают СОздавать они лучше понимают отцов …

    … вот …

    Reply
  21. Ish_2

    (21) Субъективность (читай- полемическая заостренность) бывает полезна для приближения к объективности.

    Считай , что это провокация. Провокация к мысли.

    Reply
  22. Арчибальд

    (20)

    Необходимые приемы эффективного доказательства достаточно формальны, но до тех пор, пока программированием занимаются люди, не владеющие ими, кризис программного обеспечения будет продолжать пребывать с нами и будет рассматриваться как неизлечимая болезнь. А вы знаете, что делают неизлечимые болезни: они приводят к появлению знахарей и шарлатанов, которые в данном случае принимают личину Гуру Программирования.
    Reply
  23. Шёпот теней

    … провокация это понятно … а вот с мыслью не совсем …

    как можно спорить с «человеком-практиком» … т.к. «как написать программу знаЮт все» … многие знают синтаксис и правил языка программирования … а вот «написать» программу ? которая выполняет возложенные на неё функции … ? и чем она разветвлЁннее тем меньше способных …

    … вот …

    … твоя провокация … как впрочем и почти все остальные — это провокация не «за» и не «против» а просто «отрицание» …

    Reply
  24. Ish_2

    (23) Отсюда вытекает ,

    что тот самый ПРОГРЕСС — есть не что иное как развитие кризиса.

    Кризиса понимания как неизлечимой болезни ПРОГРЕССА.

    Спустимся на грешную землю.

    Разбираю текст чужой программы (клиент -серверный вариант).

    По модулю разбросаны обращения к реквизитам справочника через точку . Есть они и внутри циклов.

    И я подумал : вот он кризис понимания (читай, ПРОГРЕСС). Здесь и сейчас.

    Reply
  25. Шёпот теней

    … программа — это, прежде всего, то что «работает» … остальное дело вкуса, знаний, культуры … и… ? … утверждений ГУРУ … вот … (сам же сказал в своих провокациях) …

    … вотПРОВОКАЦИЯвот …

    Reply
  26. Valerich
    Мораль этой истории — в том, что, конечно, мы должны быть очень осторожны, давая советы молодежи: иногда они следуют им!

    очень глубокая мысль…. особенно если вдуматься

    Reply
  27. значит я не сумасшедший! это радует )))

    Reply
  28. Арчибальд

    (28) Вот с этого места поподробней, пожалуйста ❓

    Reply
  29. Шёпот теней

    (27) … ВалерычЪ … мне понравилась твоя «мысль» … интересно а «какую» идею ты вложил в неЁ … ? … вот …

    ответственность и общества и учителя … ! … поэтому я Ушинского и упоминаю … в том же контексте и ссылку приводит Арчи, как я понял, о «чему должны учить университеты» … вот …

    Reply
  30. Valerich

    (30) Есть такой закон Мэрфи (или следствие из него, не помню)….

    Все что может быть понято неправильно, обязательно будет понято неправильно…..

    поэтому советуя что-то молодым и начинающим надо думать что говоришь, иначе можно получить интересные эффекты и винить будт некого, кроме самого себя…. 🙂

    Reply
  31. (29) ну просто мне все в части ИТ кажется очень простым )))

    при том что все вокруг все усложняют и говорят что это все нириально сложно.

    и я долго думал что это проблема во мне, что это мои глюки ))

    а оказывается Дейкстра также считает ))

    если сильно не заморачиваться и не умничать, то по сути ИТ сводится к ряду достаточно простых функций, описанных в библиотеке ITIL.

    могу утверждать, т.к. есть опыт создания ITSM систем для обслуживания различных ИТ.

    и одну систему затюнинговал до того, что она сейчас кроме ИТ-услуг, может поддерживать бухгалтерские услуги и технологии управления качеством по ИСО 9000.

    и все что для этого нужно было, это выключить умный мозг и взглянуть на мир просто ))

    причем тюнинг касался лишь данных. программирование и метаданные оставил в сторонке. сейчас система выдает показатели по ИТ, стабильность, затраты, динамика, планирование и осуществление различных улучшений, контроль специалистов, действий, сроков. в общем вся картинка по ИТ, админам и программистам, в разрезе по 30 заказчикам )

    Reply
  32. Шёпот теней

    (31) … для того чтобы быть «однозначно» понятым человечество придумало «грамотность» (в кавычках потому, что имеется ввиду не только правильное написание но и правильное использование слов как определений) …

    … например, «маржа» — в разных течениях смысл этого слова совершенно разный … или наоборот несколько разных понятий могут означать похожие смыслы … именно поэтому человечество столько сил потратило на словари, энциклопедии и справочники, госты …

    … от нежелания знать грамоту вот и получается слова есть а смыслы у всех разные … поэтому так часто речь специалистов не только строго по «определениям» но и описанием не только текста но и контекста их использования …

    … такоеВОТмнение …

    Reply
  33. Шёпот теней

    (32) … повторюсь из (5) :

    … написать программу в 10 строк может каждый

    … написать программу в 100 строк может подготовленный пользователь

    … написать программу в 1 000 строк может программист

    … написать программу в 10 000 строк может гений

    … ВОТ …

    п.с. программист это не тот кто знает «КАК» а то кто знает «ПОЧЕМУ» …

    написать программу «чтобы работало» не сложно … написать программу на «дурака» — очень сложно … 1С пишет универсально — а ЭТО ещё сложнее …

    … вот МОЁмнение …

    Reply
  34. Арчибальд

    (30) Применительно к сабжу. Дейкстра всегда считал одной из причин кризиса неразберихи в программах то, что машины Фон Неймановского типа позволяют изменять программный код так же, как и данные. Например, формировать текст запроса в зависимости от неких условий — это зло. Не говоря уже о #ЗагрузитьИзФайла 😎

    Reply
  35. (33) Мы говорим одни слова на этом свете, но видим разное кино…

    (с) http://polonium194.livejournal.com/52256.html

    Reply
  36. (35) Меня тоже программисты боятся )))

    Reply
  37. Valerich

    (34)

    написать программу «чтобы работало» не сложно … написать программу на «дурака» — очень сложно

    100% согласен. при этом просто программы не пишутся никогда, поскольку пишем для «дураков»…. иногда доходит до маразма….

    1С пишет универсально — а ЭТО ещё сложнее

    я бы уточнил — ПЫТАЮТСЯ писать универсально. Дело усложняется тем, что они оторваны от реалий жизни…. и пишут похоже подмастрья, а не мастра…

    Reply
  38. (34) а причем тут программки и ИТ?

    я говорю немного о другом уровне. там где нужна простата и управляемость.

    это как BMW. создать не убиваемые движки могут только лучшие инженеры и специалисты, но для водителя все должно быть просто и управляемо.

    так же и в ИТ. да, разработать стабильную программу могут только лучшие специалисты.

    но руководителю и пользователю важно чтобы все это в конечном итоге сводилось к простым показателям и параметрам. дабы управляемость была в норме )

    по сути я сейчас занимаюсь дизайном приборных панелей и салонов для пользователей и руководителей. смотрю чтобы им было удобно, понятно и комфортно.

    движки собирать тоже могу, но не так хорошо как специалисты, просто имею представление и если нужно соберу что то пыхтящее и жужащее.

    сборку движков передаем специалистам. себе оставив только функции перевода и управления.

    Reply
  39. Шёпот теней

    (39) … чтобы сделать то что ВЫ говорите нужно сто-% стабильность входящих условий … в нашем разнообразиии форм отчётности — 1С лучшее … вот … остальное ручками или задницей …

    Reply
  40. Шёпот теней

    (38) … 1С … собрав достойных — являются БОЛЬШОЙ компанией где скорость прохождения «вопроса» низка и стоимость её решений и согласований «высока» … опять же рамки нашего учёта — та же ЗП или НУ … ужжж ПБУ18/02 никто не комментирует … вот …

    … другое дело «частное» решение … » здесь «отдельные» специалисты бЬют 1С наповал … например тут

    … вот …

    .. вот …

    Reply
  41. Valerich

    (42) насчет достойных и сложности ЗП и НУ….

    на дворе июль… страховые взносы анонсировали ще в середине прошлого года…

    что имеем: в начала года была нервотрепка с выходом новых релизов, которые не работали… Сейчас конкретно сижу и занимаюсь внесением тех же исправлений в 298 релиз Зика, что и в несколько предыдущих, потому что в проводках по РБП путают аналитику, считают неправильно…… примеров тому и на этом сайте в том числе предостаточно….

    Чем же заняты «достойные» и кто тогда мы? 😥

    Reply
  42. Арчибальд

    (38) Брукс. «Мифический человеко-месяц»

    Reply
  43. Арчибальд

    (39) Вот так понятнее 🙂

    А то за (32) хотел предать тебя анафеме 😎

    Reply
  44. Шёпот теней

    (42) … ВалерычЪ … я говорю о «сложности» оборота «мысли» в таких компаниях и «+» сложность изменений в «универсальных» программах …

    … например, наша одна «контора» … в ней чтобы по правилам сетевой кабель проложить или подключиться к системе или создать нового пользователя требуется много-много-много терпения и времени … может тянуться и месяц и два и …

    … частное решение проще … но для этого нужно знать и частные условия … как только появится коллектив больше 12 человек управление становится 2-х ступеньчатым … а максимум чем может управлять человек это 3-ступенями … а дальше — возрастающая степень не совершенства при любом количестве желания, ума, трудолюбия …

    … количество премен гораздо больше чем возможность системы подстраиваться …

    … вот …

    п.с. «Закон Паркинсона» — человек, ораганизация как система стремиться достичь уровня своей Некомпетентности …

    Reply
  45. Шёпот теней

    (39) — с … что-то у ВАС там ВСЁ слишком идеально — с … и прямо такое ЕВРО-разделение труда … хотьБЫоднимГЛАЗКОМпосмотретьВОТ …

    Reply
  46. huse
    1С пишет универсально — а ЭТО ещё сложнее

    я бы уточнил — ПЫТАЮТСЯ писать универсально. Дело усложняется тем, что они оторваны от реалий жизни…. и пишут похоже подмастрья, а не мастра…

    Писать универсально можно двумя путями: повышая уровень абстракции и делая на каждую новую область новый блок. 1С идет последним путем. ИТРП тоже…

    Reply
  47. Шёпот теней

    … когда «пройден уровень компетентности» повышать абстракцию НЕвозможно … при всЁм желании …

    .. к тому же «делая на каждую новую область новый блок» вы снижаете издержки на «интеллекте» и на «местном ремонте» …

    … вот …

    п.с. везде свои достоинства и не достатки …

    Reply
  48. Шёпот теней

    воообще … но к теме:

    «…За последнее столетие накопился колоссальный опыт реформирования самых разных экономических систем, причем зафиксированы не только немногочисленные удачные решения, но и ошибочные, неудавшиеся попытки. Так вот, оказывается, что реформаторы в разных странах и в разное время повторяют одни и те же ошибки: рассматривают реформы как абсолютное благо, даже не пытаясь оценить связанные с ними издержки; принимают за аксиому, что заимствовать надо непременно самые передовые институты и технологии; навязывают бизнесу абстрактные принудительные схемы, вместо того чтобы сделать его своим союзником; не пытаются компенсировать потери слоям населения, проигрывающим в результате реформ; не заботятся о правильном выборе последовательности реформ. Немало вреда принесла ориентация на догматические промежуточные цели вроде «децентрализации», или «усиления управляемости», или «повышения конкурентоспособности» без детального анализа влияния намечаемых мероприятий на эффективность производства, благосостояние и рост…»

    … нет ПЛАНА — нет АНАЛИЗА — нет УПРАВЛЕНИЯ …

    Reply
  49. Арчибальд

    Быть лучшим программистом — означает быть способным разрабатывать более эффективные и достоверные программы и знать, как делать это эффективно. То, что, по моему мнению, для этого нужно, — это совершенствование математических навыков, при этом я употребляю слово «математика» в смысле «искусство и наука эффективных рассуждений«. В действительности задачи разработки высококачественных программ и построения высококачественных доказательств весьма сходны, настолько сходны, что я уже не могу их различать: я не вижу осмысленных различий между методологией программирования и математической методологией в общих чертах. Короче говоря, повсеместное вторжение компьютеров сделала способность к применению математического метода важнее, чем когда-либо.

    По жестокой шутке истории, впрочем, американское общество выбрало именно двадцатое столетие для того, чтобы становиться все более и более нематематическим. Мы достигли парадоксального состояния, когда из всех так называемых «развитых наций» именно США сильнее всех зависят от программируемых компьютеров и хуже всех интеллектуально оснащены в данном направлении. Предположение о том, что проблема программирования может быть вылечена математическими средствами, мгновенно отвергается как совершенно нереалистичное.

    В результате Разработка Программ ограждена от возможности стать поддисциплиной Информатики.

    Остин, 26 августа 1995

    Prof. dr. Edsger W. Dijkstra

    Reply
  50. Арчибальд

    (47) Сложность продается лучше…

    Reply
  51. YVolohov

    Это явно стоит почитать 🙂

    Reply
  52. (46) ок. постараюсь скоро описать ту систему что у нас выстроилась за последний год.

    как уже сказал там все до жути просто.

    но как сказал Дейкстра, на осознание этой простоты ушли годы жестоких боев на проектах и килотонны изученной литературы )

    Reply
  53. Valerich

    (45)

    …хотя деятельность программиста заканчивается с конструированием корректной программы, процесс, который выполняется под управлением этой программы, является истинной сущностью этой деятельности; этот процесс должен завершиться с заданным эффектом; поведение этого процесса должно удовлетворять заданным спецификациям

    .

    это к вопросу о сложностях управления и т.п. Конечный продукт н должен зависть от сложности управления его создателями. он должен удовлетворять спецификации….

    …есть еще одно обстоятельство, которое оказало глубокое влияние на отношение программиста к своей работе: с одной стороны, помимо своей ненадежности, его машина обычно была слишком медленной и имела слишком мало памяти, так что он постоянно находился в прокрустовом ложе, тогда как с другой стороны ее причудливая система команд приводила к весьма неожиданным конструкциям. В те времена смышленый программист получал немалое интеллектуальное удовлетворение от изощренных трюков, посредством которых он умудрялся втиснуть невозможное в тесные рамки своего оборудования…

    Настоящим программистом не надо сложно управлять — он сам собой управлять должен. По моему глубокому мнению большая часть тех, кто себя гордо именует программистами — всего лишь кодеры — люди способные переложить одно из воможных решений задачи на конкретный язык программирования. Но возможных решений много… Найти наиболее элегантное, быстрое, нетребовательное к ресурсам вычислительной техники, используя при этом возможности средства разработки — вот в этом и состоит ИСКУССТВО программирования.

    Reply
  54. Арчибальд

    (54)

    Настоящим программистом не надо сложно управлять — он сам собой управлять должен.

    Недавно в одной из дискуссий по управлению проектами я заявил, что управленческая деятельность, включая принятие решений в условиях неопределенности, адаптивное управление, и т.п. — это часть повседневной деятельности программиста, причем не самая сложная. Программиста, а не кодера.

    Ух как не понравилось 😉

    Reply
  55. Шёпот теней

    (54) … нууу… первая часть это «просто» … программа может «хорошо» работать там где есть «повторяющиеся» действия (если мы говорим об автоматизации или хотя бы электронной механиации) … если разветвлений много — то этоне повторение — это много частностей (ну например, написать программу учёта хотя бы пяти флажков … это уже 2 в пятой степени вариантов …) …

    … создать можно почти ВСЁ — вопрос цены и самое главное цены «перемены» логики и цены «ремонта» в случае обнаружения ошибки … ?

    по второй части ещё проще….

    если ориентироваться на гениев программирования — то обслуживать их программы бкдет некому… а если создавать коллектив — то здесь КУЧА проблем которых никто не избежит … от «свободности труда программистов» до хаотичности и не стандартности обслуживаемых процесоов, задачЬ …

    … вот …

    п.с. пока ТЫ один … можешь и само организоваться … но если программа «больше» тебя — тут возникнут все наши болезни …

    Reply
  56. Valerich

    (56) программу гения обслуживать проще простого — потому как все гениальное просто

    (с) народная мудрость

    Reply
  57. Шёпот теней

    (57) … ага … ага … отмазался … ну-ну … то-то у нас булава не летает … видимо «простота» закончилась … вотВедьВот …

    Reply
  58. Арчибальд

    (60) Там гениев дефицит… Да еще хаза сгорела…

    Reply
  59. huse

    (55) Вы сравнили деятельность управленца и деятельность исполнителя.

    Исполнитель тоже управляет, но не людьми.

    Reply
  60. Арчибальд

    (62) Нет такой профессии — исполнитель. А управление, в том числе, управление человеком — это не профессия, а навык. Один из необходимых программисту.

    Reply
  61. (63) интересно сколько лет нужно обучаться на программиста, который бы соответствовал требованиям Арчи? ))

    а может все таки программисты пусть программируют, а руководители руководят? ))

    так как то логичней и проще 🙂

    опять же поделюсь нашим опытом. у нас все просто.

    есть всего один вид должности — специалист. даже у руководителя и то специалист ))

    и каждый сотрудник занимает эту должность.

    но вот дальше самое интересное 🙂

    по мере развития сотрудника, к нему подключаются компетенции и зоны ответственности, а также ФОТы. и тем самым чем сообразительнее человек, тем больше он может взять на себя ответственности, и тем выше его доход.

    эдакий конструктор монстро-специалистов в реальном времени )

    хочешь сегодня будешь бухгалтером, завтра менеджером по продажам, а после завтра программистом ))

    Reply
  62. Арчибальд

    (64)

    Да, я разделяю ваше беспокойство: вряд ли можно научиться хорошо программировать, пройдя соответствующий курс. Ситуация сходна с аналогичной в математике, где программа обучения ориентирована на математические результаты; как заниматься самой математикой — студент должен впитать самостоятельно, так сказать.

    prof. dr. Edsger W. Dijkstra

    В этом вся суть. Не учат программированию, в лучшем случае, могут кодированию обучить. Меня, во всяком случае, не учили (http://infostart.ru/profile/46936/blog/840/).

    Настоящий программист, кроме всего прочего, более способен стать монстроспециалистом (если уже не стал им в процессе «селфмейдинга»), ибо у него голова «заточена» на понимание (анализ) причинно-следственных отношений/связей.

    Оценочно — три-четыре года напряженной работы.

    Reply
  63. Шёпот теней

    … чтобы получился «хороший» инженер … требуется лет 15 практики и постоянного повышения квалификации и изучение «соседних» областей … если он конечно не полный монстроспециалист или не занят «селфмейдингом» …

    … это известно давно … за меньшее время почему то никак … только специалисты по УУ получаются …

    … ВОТ …

    Reply
  64. Арчибальд

    +(64)

    а может все таки программисты пусть программируют, а руководители руководят?

    Программист по-любому руководитель программного проекта. Ибо в его работу входят:

    — предпроектное исследование предметной области;

    Reply
  65. Арчибальд

    (66) Реально, конечно, чтобы иметь влияние на принятие решений (а речь, в том числе, и об этом) фикси должен заработать авторитет, что не так быстро делается. А вот грамотный аутсорсер в принципе может воспользоваться авторитетом своей фирмы (иногда).

    Reply
  66. CheBurator

    Шепот, ну сделай отдолжение — не мучай мозг посетителей, пиши в общепринятой нотации, ПЛИЗ!

    Reply
  67. (67) Ладно, раз уж это портал программистов, то пусть такой специалист называется супер-программист 🙂 Хотя в моем понимании это РП 🙂

    но как не назови, речь тут идет просто о специалисте с вполне определенным набором компетенций: знание программ, компьютеров, методов описания процессов (инструкций, комиксов), умением ладить с людьми и бронированными нервами.

    назвать его можно хоть рыцарем джедаем 🙂 суть от этого не поменяется 🙂

    Reply
  68. XXXL

    Удивительно просто, сколько читаю ваши беседы в разных ветках — об одном и том же говорите (каждый о себе;)). Вы можете хотя бы иногда оторваться от своих субъективных позиций и попытаться выйти во «внешний мир» — не для того, чтобы найти подтверждение своих (ну конечно же правильных) теорий, а узнать, нарыть новые, да и познакомить с ними ваших благодарных слушателей?

    Reply
  69. Арчибальд

    (71) То-то и оно, что посмотришь на какую-то «новую» теорию, начнешь разбираться — оказывается, новая там только терминология. Или иная расстановка приоритетов рассматриваемых проблем. Потому-то и нужно знать прошлое — чтобы адекватно оценить настоящее и сделать будущее хоть немного ожидаемым.

    Reply
  70. Шёпот теней

    (71) … желания нового …веренее «вера» в новое как в «палочку выручалочку» означает следующее:

    1. вы «ничего» не знаете и «не образованы» …

    2. вы не верите своему образованию, университету, родителям, роду, предкам …

    3. вы просто ничего не делаете на практике … вам страшно …

    … вот …

    Reply
  71. Ish_2

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

    «Программирование оно ж — непростое дело. Ох , непростое..»

    А изобретение «суперпрограммиста-РП» — это сила. Вершина.

    Тяга к абсолюту в своей области есть обычное направление мысли варящегося в собственном соку мастера (Безенчука, Дейкстры , Арчибальда)

    Reply
  72. Арчибальд

    (74) Слово мастер применительно к Арчибальду должно начинаться с прописной буквы М. Безенчука это тоже касается. Дейкстра — тот, скорее, Учитель. А 1С, туды ее в качель, разве кисть дает? Ни кисти у ней, ни глазету…

    Reply
  73. Ish_2

    (75) Компьютерщик Безенчук —

    первый шаг в художественном познании роли программиста на предприятии .

    Reply
  74. Шёпот теней

    если ты «компьютерщик» то твоё место на стульчике у компьютера … тогда ты «м»альчик …

    если ты как в (67) … тогда ты «М»астер … тогда код писать можно поручить и «м»-компьютерщику — но в очень конкретных рамках (иначе такая будет ах-инея типа УУ) ….

    … вот …

    Reply
  75. Арчибальд

    (76) Ну вот, опять ляпнул. Безенчук — не компьютерщик, а Обработчик прерываний 🙁

    Reply
  76. Ish_2

    (78) Понимаю .

    Выделить главное и отбросить второстепенное тяжело даётся мастеру Арчибальду.

    Мастеру нужны детали. И без кисти и глазета ему никак.

    Reply
  77. zfilin

    Хорошая литература, годная.

    Reply
  78. marsohod

    (11)

    Где говорят в правилах и наставлениях, а не в утверждениях относительно фактов, там искусство… Положения искусства не утверждают, что что-нибудь есть, но указывают на то, что должно быть.

    В таком случае физику тоже надо отнести в разряд искусства. Потому что хорошая физическая теория объясняет не только известные факты, но и предсказывает еще и неизвестные явления. Так, кстати, было открыто нейтрино — «на кончике пера» 🙂

    Reply
  79. marsohod

    (64)

    эдакий конструктор монстро-специалистов в реальном времени )

    хочешь сегодня будешь бухгалтером, завтра менеджером по продажам, а после завтра программистом

    Эдакий коммунизЬм получается 😳

    Reply
  80. Арчибальд

    (82) Кухарка хоть и не может, но должна управлять государством 😮

    Reply
  81. Шёпот теней

    (83) … вопрос о «кухарке» и «государстве» … уточните КТО «кухарка» и КТО «государство» … ? … вот …

    http://www.kara-murza.ru/books/sc_a/sc_a53.htm

    Редкий демократический политик или журналист не помянул Ленина, который, якобы, заявил, что управлять государством должна простая кухарка. Возникла даже привычная метафора « ленинской кухарки ».

    *В действительности В.И.Ленин писал в известной работе «Удержат ли большевики государственную власть» (т. 34, с. 315): «Мы не утописты. Мы знаем, что любой чернорабочий и любая кухарка не способны сейчас же вступить в управление государством. В этом мы согласны и с кадетами, и с Брешковской, и с Церетели».

    http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0­%B5_%D1%84%D1%80%D0%B0%D0%B7%D1%8B

    Reply
  82. marsohod
    …антропоморфный взгляд на машины и механический взгляд на людей…

    …подозреваю, что именно этот механический подход ограничивает деятельность программистов механическими действиями по написанию кода, и затем измеряет «производительность труда программиста» количеством произведенных им строк кода. (Когда весьма широко известный и очень уважаемый ученый-компьютерщик использовал недавно эту меру производительности труда программиста в своей лекции, от слушателей поступило предложение говорить не о «количестве произведенных строк кода», а о «количестве израсходованных строк кода», и что лектор, следовательно, занес их не в ту графу учета баланса расходов и доходов. Лектор ответил, что он вынужден использовать эту меру производительности, поскольку не располагает никакой альтернативной, которая позволяет вести точный учет!) Это не может больше рассматриваться как безобидное заблуждение, поскольку принятие этой бессмысленной «меры производительности» профессиональными программистами гарантированно стимулирует их к написанию рыхлого кода.

    Тема неоднократно обсуждаемая на ИС 🙂

    Reply
  83. Шёпот теней

    (83) … вопрос о «кухарке» и «государстве» … уточните КТО «кухарка» и КТО «государство» … ? … вот …

    http://www.kara-murza.ru/books/sc_a/sc_a53.htm

    Редкий демократический политик или журналист не помянул Ленина, который, якобы, заявил, что управлять государством должна простая кухарка. Возникла даже привычная метафора « ленинской кухарки ».

    *В действительности В.И.Ленин писал в известной работе «Удержат ли большевики государственную власть» (т. 34, с. 315): «Мы не утописты. Мы знаем, что любой чернорабочий и любая кухарка не способны сейчас же вступить в управление государством. В этом мы согласны и с кадетами, и с Брешковской, и с Церетели».

    http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0­%B5_%D1%84%D1%80%D0%B0%D0%B7%D1%8B

    http://promanov.livejournal.com/9487.html

    … вотведь …

    Reply
  84. Арчибальд

    (86) Приписывание этой цитаты Лениу — заслуга тупых преемников Сталина. Это идея левых коммунистов.

    В контексте моего замечания, «государство» — это предприятие, а «кухарка» — это «специалист» в неизвестной специальности.

    Анатолия Ю. прошу не принимать эти слова на свой счет, поскольку на мой непредвзятый взгляд, он относится к исключениям, подтверждающим правило… 😳

    Reply
  85. Арчибальд

    (85)

    Опять-таки в это же время Гидрометцентр платил «пришельцам» 50 коп за строчку отлаженного фортранного текста.

    http://infostart.ru/profile/46936/blog/840/

    Reply
  86. Шёпот теней

    (85) … банальное: какие «задачи»такой и «код» … только «сверх»задача что-то создаЁт новое — всЁ остальное банально копирует и выживает …

    (87) … специалист» в неизвестной специальности … супер …

    как сказал Хазин: … и раньше чиновник мог ничего не делать — но он знал «что» он не делает … теперь он даже и не знает «что» он должен делать …

    … вот …

    Reply
  87. Арчибальд

    (89) Специалист подобен флюсу — его полнота одностороння © К. Прутков.

    Впервые, полазив по сайту Анатолия, усомнился в непогрешимости Пруткова 😳

    Reply
  88. marsohod

    (88) Вчера на фразе «преимущественно без осадков» смыло Гидрометцентр.

    😀

    Reply
  89. Арчибальд

    (91) Это и есть результат приобретения программ «на вес» 😀

    Reply
  90. leasing

    «Напротив, большинство наших систем гораздо сложнее, чем может считаться разумным, и слишком запутанны и хаотичны, чтобы ими было удобно и надежно пользоваться.» — Это в полной мере относится к типовым 8-кам. На их фоне 7-ки типовые можно считать достижением.

    Reply
  91. L_B

    (93) «Напротив, большинство наших систем гораздо сложнее, чем может считаться разумным, и слишком запутанны и хаотичны, чтобы ими было удобно и надежно пользоваться.»

    Золотые слова! Только их нужно сначала отнести к бухгалтерии и налоговому учету — в первую очередь. А учетные системы «отражают» запутанность и хаотичность. Отражают!

    Reply
  92. leasing

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

    Как бы там ни было, с их писаниной грамотный человек разбертся. Иначе все ошибались бы в учете и уплате налогов. А это не так- ошибается меньшинство.

    Ничего запутанного нет в бухучете. Не сложнее таблицы Менделева. Что может быть запутанного в системе, которая совершенствуется 500 лет подряд? Курс обучения на дипломированного бухглатера в США — не менее 180 часов. Прослушал и можешь идти на «госсэкзамен». После успешной сдачи можешь обратиться к местным властям за получением статуса CPA.

    И с налогами все понятно в каждый момент времени.

    Главная проблема не в непонятности, а в изменичвости. На постсовке нормативы изменчивей погоды. И в этой изменчивости кровно заинтересованы чиновники. Они извлекают из этого непосредственные выгоды- семинары, публикации, консультации. Их от этого корыта только пулеметом отгонишь.

    Reply
  93. L_B

    (96) Ну сравнивать с американским бухучетом российский — это вы насмешили.

    Вот ссылка: http://www.vkursedela.ru/article711/.

    Начало более чем пафосное:

    «Подарочные сертификаты – широко распространенный во всем мире способ продаж.» Попытка впихнуть в российский БУ данную схему продаж — 17 ( ❗ ) ссылок на нормативные документы.

    Вот насколько сложна должна быть программа, чтобы учесть весь этот кошмар?

    Reply
  94. leasing

    (96) Скажите, а вы пробовали сравнивать?

    Reply
  95. Арчибальд

    (97) Статья, вообще-то, юмористическая. О том, как создать себе лишний геморрой.

    Ни один нормальный бизнесмен — неважно, в России или в Штатах, — не станет оформлять манипуляции с сертификатами как торговые сделки. Это обычная акция по продвижению товара/фирмы, т.е. рекламная деятельность.

    Reply
  96. L_B

    (98) А зачем это здесь и сейчас? Мы же говорим о наших программах и соответственно наш учет интересен, во всяком случае в вашем посте 93 были упомянуты именно они. И причем тут американский учет, о котором вы говорили в 96?

    (99) А статью-то по ссылке читал? Что-то юмора я не заметила, все на полном серьезе. Особенно поразила фраза о том, что затраты на изготовление сертификата считаются внерелизационными — какая разница бизнесмену какие они — они затраты и должны идти на уменьшение прибыли — и все. Так вот если бы учет был простой — программы были бы простые.

    Reply
  97. Светлый ум

    (1) Утопия — ошибаются все, даже самые опытные..

    возможно вы имели ввиду при помощи грамотного подхода (моделирование БП, и т.п.) — снижать ошибки к минимуму.

    Reply
  98. Арчибальд

    (103) Светлый ум, Дейкстру назвать утопистом каждый может. Этот же каждый и Аристотеля лягнуть не постесняется…

    Да… УЖ

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *