Учебный курс. Повышение качества разработки. Вводная лекция, часть 2




Принцип обмена данными из 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='\

36 Comments

  1. VmvLer

    Не заметил в этой статье идей по заголовку-приманке

    Повышение качества разработки

    Ткните мне пальцем где тут идет речь о повышении качества?

    По-моему это примитивная компиляция вводной лекции по программированию за 1-й курс стандартного ВУЗа, причем «прочитанная» сухо и скучно.

    Ремарка

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

    зачем?

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

    Мое мнение может не совпадать с мнением авторов, аудитории и бла-бла-бла.

    Reply
  2. Артано

    (1)

    Ткните мне пальцем где тут идет речь о повышении качества?

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

    По-моему это примитивная компиляция вводной лекции по программированию за 1-й курс стандартного ВУЗа, причем «прочитанная» сухо и скучно.

    Если упрощать, то так и есть. С другой стороны, компиляция большого массива знаний в короткое резюме с выделением базиса, требует больше усилий, но даёт больший эффект. На первой лекции как раз рассматривались подобные проблемы восприятия действительности, под общим названием «культовое сознание».

    Не проще ли было сразу перейти к практике, а не лить воду.

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

    Я надеюсь, далее в статьях не будет …а ля «а вот в прошлой статье я говорил, что такое полиморфизм». Что это такое пытливый ум прочтем и найдет сам и более информативно.

    Я не был бы так категоричен и самоуверен, впрочем моё мнение тоже субъективно…

    Reply
  3. TODD22

    (1)

    По-моему это примитивная компиляция вводной лекции по программированию за 1-й курс стандартного ВУЗа

    Если только профильного. Но не все 1сники заканчивали профильные учебные заведения.

    Reply
  4. Артано

    (3) Горячо поддержу. И не только в 1с, вообще в IT всё больше и больше людей приходит не только без профильного образования, но и вообще без ИТ-контекста в виде хобби и увлечений.

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

    (1) Когда человек начинает обдумывать то, что он делает, а впоследствии (так бывает не всегда) еще и понимать — качество продукта возрастает весьма значительно.

    Обсуждение СП и ООП понравилось безусловно. Порядок (как и разруха) имеет место быть в голове, а не в подъезде (М. А. Булгаков)

    Reply
  6. CheBurator

    Качество разработки начинается с того, что начиная лекцию №2 — дают ссылку на Лекцию№1… тут такого не заметил, возможно — туплю…

    Reply
  7. Артано

    (6) Моё упущение. В первой дал ссылку на вторую, а во второй нет. Спасибо за наблюдение

    Reply
  8. CheBurator

    Почитал. Нормально. Мне полезно.

    (запятых по тексту не хватает)

    Reply
  9. nodalt

    Автор проделал большую работу чтобы опубликовать в свободный доступ

    компиляцию вводной лекции по программированию за 1-й курс стандартного ВУЗа

    — уже за это спасибо! Этот базис я начал понимать только после многих лет практики. В ВУЗе это все изучал, зубрил, сдавал, но не понимал. В целом, очень полезно для новичков. Да для всех полезно. Хотя бы для того, чтобы сравнить свое понимание с видением Автора и прочих обитателей …

    Reply
  10. genayo

    К содержанию особых претензий нет, но вот с пунктуацией беда…

    Reply
  11. starik-2005

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

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

    2. Совершенно упущена фундаментальная вещь в ООП, которая это самое ООП и определяет. И фундаментальной вещью в нем является как раз совмещение данных и логики их обработки, преобразования и представления в контейнере класса. Без ООП такие концептуальные паттерны программирования, например MVC/MVP/MVVM, реализации поддаются с трудом; также для него написан целый, я бы сказал, стандарт — S.O.L.I.D: одна причина для изменения класса; расширение класса, а не изменение; наследование должно расширять, а не заменять класс (т.е. ПО должно работать с новыми классами без изменения логики программы); множественность интерфейсоов лучше, чем один; Зависимость на Абстракции, а не на чем-то другом. Последние две вещи по первому времени вообще неочевидны.

    Ну и вообще про ООП скорее мне лично показалось, что написано с точки зрения культиста, который перешел от Свидетелей Иеговы к Баптистам, и теперь говорит о смертных грехах первых )))

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

    ЗЫ: мой коллега разбирался в течение какого-то времени с HyperLeger Fabric и прочей его инфраструктурой и просто в восторге от ООП того же JQuery после 1С, на что я ему сказал, что он увидел только край зеленой поляны после засушливой пустыни, а там еще водопады есть… Ну реально, убогость 1С зашкаливает сверх всякой меры по сравнению даже с древним JS, не говоря уже о таких штуках, как JQuery, которые в этот JS просто вносят реализацию интерфейса взаимодействия с ДОМом, и это еще без BootStrap и прочих AngularJS и ReactJS…

    Reply
  12. CyberCerber

    По ООП в 1С

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

    Да ничего там не полный порядок. Его в 1С, можно сказать, и нет. Несколько раз надо было создавать в конфигурации набор похожих прикладных классов. Выкручивались так: создавали класс-шаблон, где были определены все общие методы и поля. Реализации методов выносились в общий модуль. Тогда наследуемый класс создавался копированием шаблона и доработкой. Это хоть как-то упрощало разработку. Но если нужно было прописать новый метод или изменить интерфейс существующего, приходилось изменять каждый из N классов.

    В 1с инкапсуляция также широко представлена как в предустановленных классах, так и во вновь создаваемых.

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

    Например, может существовать единая функция, принимающая параметры множества разных типов, но внутри неё для каждого типа выполняется подходящий код.

    Может, я сам не до конца понимаю полиморфизм, но то, что вы описали, это как раз какой-то спагетти-код. Для полиморфизма нужно совпадение интерфейсов объектов разных классов, чтобы можно было, например, для каждого объекта из коллекции вызвать один и тот же метод, а сам объект уже его обработает по своим внутренним принципам. И для каждого класса это будет своя процедура. Это, как раз, можно решить в 1С в своих надстройках. В принципе, и стандартные классы 1С в основном поддерживают этот принцип.

    В общем, затронули для меня больную тему ООП в 1С. Мне его очень не хватает.

    Reply
  13. starik-2005

    (12)

    В общем, затронули для меня больную тему ООП в 1С. Мне его очень не хватает.

    ООП вполне можно на 1С реализовать, но это уже будет не совсем ООП.

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

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

    Полиморфизм для 1С, как языка без типов (хотел сказать «без костей»), «искаропки», т,е. вызывая метод экземпляра класса мы вызываем именно его метод, а не метод базового класса. С точки зрения ООП это может требовать отдельной реализации для языков с типизацией. Например, в объектном паскале это реализовывалось через виртуальный метод, который переопределялся для всех потомков в обязательном порядке.

    А по поводу нехватки в 1С ООП, то решается просто:

    1. Создается модуль с методами класса-прототипа.

    2. Создаются модули с методами классов-потомков (Переопределяемый, СуперПереопределяемый, Перезаопределенный, …)

    3. Для совмещения логики работы с данными можно создать структуру через функцию конструктора в базовом или унаследованном модуле, которая возвращает свойство со ссылкой на общий модуль с методами.

    Да, изврат, конечно, но вполне реализуемый. Товарищи сертифицированные и прочее, прочее, в БСП что-то такого чуть ли не на каждом шагу понаворотили, и те адинэснеги, кто парадигму ООП понимает только через class newClass {…}, конечно понять ничего тут не смогут (не говоря уже о тех, кто вообще об ООП что-то слышал, но не читал и осуждает) )))

    Reply
  14. Артано

    (11) Про функциональное программирование — исключено сознательно. Причина та же по которой вообще появился этот курс — необходимость дать в нескольких простых определениях интуитивно понятные (а ООП именно таков) приёмы мышления.

    Ну и вообще про ООП скорее мне лично показалось, что написано с точки зрения культиста, который перешел от Свидетелей Иеговы к Баптистам, и теперь говорит о смертных грехах первых

    Вовсе нет, здесь ООП всего лишь наиболее удобный инструмент познания, который я и предлагаю.

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

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

    P.S. Спасибо за важные дополнения, эти комментарии выполняют роль сносок «вы хотите узнать больше?»

    Reply
  15. Артано

    (12)

    Может, я сам не до конца понимаю полиморфизм, но то, что вы описали, это как раз какой-то спагетти-код. Для полиморфизма нужно совпадение интерфейсов объектов разных классов, чтобы можно было, например, для каждого объекта из коллекции вызвать один и тот же метод, а сам объект уже его обработает по своим внутренним принципам. И для каждого класса это будет своя процедура. Это, как раз, можно решить в 1С в своих надстройках. В принципе, и стандартные классы 1С в основном поддерживают этот принцип.

    Это один из примеров полиморфизма. Далее идет как раз описываемый пример. Полиморфизм даже в рамках ООП многозначный термин, о чем предупредил и привел два базовых варианта проявления этого свойства

    Reply
  16. Артано

    (13)

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

    Нет, я такого не писал:

    Под инкапсуляцией (сокрытием) в контексте ООП понимается сокрытие деталей реализации методов и свойств объектов от внешней среды, с целью упростить и стандартизировать использование объектов

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

    Reply
  17. HAMMER_59

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

    Я считаю, что понятие абстракции в статье описано очень абстрактно, а следовательно теряется контекст и детали. Есть какие-то свойства, и почему-то мы их должны отбрасывать. Вот есть предмет, допустим, мяч. У предмета множество свойств: цвет, вес, форма, свойства материала, и он либо есть, либо его нет со всеми его свойствами. Как же мы можем отбросить часть свойств?

    Мы можем построить модель: автомобиля, здания, ракеты. При этом модель не будет точно повторять реальный объект, мы выберем важные для нас свойства, и построим упрощенную модель. Зачем строить модель, думаю понятно, по поведению модели мы можем предсказать как будет вести себя реальный объект.

    Конфигурации 1С являются экономическими моделями, т.е. реальную хозяйственную деятельность мы моделируем в упрощенном виде, т.к. реальная деятельность слишком сложна. Описать всю хозяйственную деятельность мы могли бы одним текстом, получился бы толмут на 5000 страниц, что обычно и происходит на практике. Работать, естественно с такой информации крайне сложно, поэтому текст начинают структурировать: на тома, на разделы и т.д.

    В статье сложность работы с большими объемами информации преподносится как данность, сложно и все. А это ведь очень важный момент. Попробуйте запомнить десятизначное число, сложно? Как отдельный цифры, в пределах короткого времени запомнит только гений. Обычный же человек запомнит числами по 3 знака. А теперь возьмем 20-значное число, это уже 7 трехзначных чисел, и это уже на грани возможностей. Всего-то 7 трехзначных чисел, и это уже грань краткосрочной человеческой памяти.

    Насчет удобности ООП — крайне однобокий взгляд. Для разработчика — безусловно удобно. А теперь представьте, открываете вы типовую конфигурацию, а там сотни объектов, естественно никак не документированных.

    Reply
  18. awk

    По моему не раскрыт основной вопрос: «Почему в запорожце нет кондиционера как в мерседесе». Хотя ответ вроде очевиден: «Запорожец это не мерседес».

    Reply
  19. Артано

    (18)

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

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

    Я считаю, что понятие абстракции в статье описано очень абстрактно, а следовательно теряется контекст и детали. Есть какие-то свойства, и почему-то мы их должны отбрасывать. Вот есть предмет, допустим, мяч. У предмета множество свойств: цвет, вес, форма, свойства материала, и он либо есть, либо его нет со всеми его свойствами. Как же мы можем отбросить часть свойств?

    По тексту ниже сами даёте ответ на вопрос, более кратко он дан в статье при определении абстракции. Это мысли вслух?

    Насчет удобности ООП — крайне однобокий взгляд. Для разработчика — безусловно удобно. А теперь представьте, открываете вы типовую конфигурацию, а там сотни объектов, естественно никак не документированных.

    Интерфейсы есть, книжки есть, методисты есть. Неудобные интерфейсы и кривизна логики, это проблема в головах и руках, а не в концепциях.

    Reply
  20. Артано

    (19) Запорожец была семерка. А семерка с телепатом и 1с++ — это ара-тюнинг и форсированный движок!

    Reply
  21. awk

    (21) Любая аналогия ложна.

    Reply
  22. Артано

    (22) А як жи! Но без них никуда

    Reply
  23. HAMMER_59

    (20)

    Интерфейсы есть, книжки есть, методисты есть. Неудобные интерфейсы и кривизна логики, это проблема в головах и руках, а не в концепциях.

    ИМХО документация от 1С хромает на обе ноги. Я не встречал документации по программному коду типовых конфигураций. Документации для пользователей на троечку с минусом: «В справочник контрагенты заведите контрагента, в реквизит ИНН заполните ИНН».

    По стандартным объектам, например СКД нет нормальной документации.

    Найти полезную информацию на ИТС — это подвиг. Абсолютно не понимаю почему 1С, не развивают справку.

    Как только появится ООП в 1С, весь этот бардак заиграет совершенно новыми красками.

    Reply
  24. Артано

    (24) ООП верное замечание. Я неправильно понял про документированность. Насчет бардака, тоже верно — ООП инструменты привнесут лишь новые проблемы. Пример приводил в разделе про структурное программирование

    Reply
  25. antz

    (18) Насчёт памяти — ну для этого и существует мнемотехника. Упаковка образов, чертоги разума и проч. Вчера, прочитав ваш комментарий, ради интереса запомнил 50-значное число. Через 3 часа его воспроизвёл, и сегодня утром тоже. Думаю, воспроизведу его и через три года.

    Reply
  26. starik-2005

    (25)

    ООП инструменты привнесут лишь новые проблемы

    Забыли добавить: «для тех, кто в ООП разбирается плохо или не разбирается вообще».

    (24)

    Как только появится ООП в 1С, весь этот бардак заиграет совершенно новыми красками.

    А чем ООП в 1С усложнит восприятие кода? Сейчас в типовых изобретается свой «ООП» из-за попытки упростить код, увеличив уровень абстракции (опять же для разработчика типовых, а для рядового 1С-ника, пришедшего в отрасль из бухгалтерии или розничной торговли, это, конечно, усложнение, и ООП настоящий мог бы это упростить и для него).

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

    Reply
  27. starik-2005

    (26)

    Думаю, воспроизведу его и через три года.

    А зачем? Если, конечно, упражнения заради, то можно, но есть упражнения куда полезнее и не только для себя. Вот, например, можете привести пример кода для какого-нибудь метода объекта 1С, чем некоторым образом поможете сообществу 1С-программистов.

    Reply
  28. antz

    (28) Практическое применение именно то, о котором вы писали — обработка и усвоение больших объёмов информации, мнемотехники это же не о запоминании чисел, а о запоминании и сортировке вообще всего.

    Reply
  29. starik-2005

    (29)

    а о запоминании и сортировке вообще всего.

    Есть некоторым образом авторитетное мнение на тему того, что машине с абсолютной памятью интеллект не нужен — она просто будет доставать готовый ответ. А программирование — это интеллектуальные задачи, и развитие памяти мало в этом помогает (имхо, конечно). А вот логика — это да, это помогает. http://nazva.net/logic_test7/ — хороший тест на эту тему…

    Reply
  30. antz

    (30) Обычный тест на формальную логику и соблюдение правил силлогизмов. Формальная логика тоже не шибко сильно при программировании помогает)

    Reply
  31. starik-2005

    (31)

    Формальная логика тоже не шибко сильно при программировании помогает)

    Все программирование основано на присваивании и ветвлении. Ветвление без логики — это нонсенс. Программировать — это искать причинно-следственные связи через ретроспективный анализ результата во входящие параметры.

    Reply
  32. dotPRICE.ru

    Измените заголовок Вашей статьи, например: «Типа Учебный курс…»

    … или исправьте Ваши фразы: «в течении (времени)» на «в течениЕ», «Нет большой пользы с ответа » на «Нет большой пользы ОТ ответа»…

    Извините, накипело.

    Reply
  33. starik-2005

    (33) филфак?

    Учительница русского языка, прыгая с парашютом, была обескуражена, взволнована, … Но вслух кричала другое )))

    ЗЫ: а может быть в этом деепричастном обороте запятые и не нужны, да? 😉

    Reply
  34. dotPRICE.ru

    Не филфак. По-моему, это пятый класс начальной школы… 🙂

    Статья полезная и заголовок публикации «Учебный курс…» обязывает писать грамотно.

    (34)

    Reply
  35. Артано

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

    Reply
  36. mitia.mackarevich

    Хороший материал. Когда читал тут же вспомнил статью Нуралиева «1С как продукт инженерной мысли» (вроде так называется). Местами есть сквозные идеи.

    Reply

Leave a Comment

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