Pull to refresh
12
0.2
Александр Кудрявцев @ALexKud

Инженер-электроник, программист (SQL)

Send message

Простой сервер примерно похож на кашу из топора, судя по объёму кода.

Тапните по моему Нику в сообщении, на моей странице публикация на хабре. Ссылка вставляется но сообщение не отправляется

Это конечно интересно, но это механика. Гораздо сложнее придумать эвристики оценочной функции для ограничения перебора ходов. По моему убеждению шахматы это на 90% геометрия и на 10% комбинаторика. У меня даже возникла идея разработки движка на SQL/noSQL под это предположение. Доска как таблица, позиция как ячейки-паттерны с узлами различных свойств и весов. А идея такова что нужно определить, возможна ли такая эвристика, которая оценивает позицию на один ход без перебора ходов в процессе игры. Комбинаторика, или перебор ходов включается только тогда когда эвристики скажут что здесь нужно считать. Допустим когда есть предпосылки комбинации или перехода в выигранный эндшпиль и т д и тп. Вот это было бы интересно для меня. В шахматы играю давно, есть победа в сеансе над мастером. Имел когда-то первый разряд. Играю на личесс через смартфон, но больше в процессе перемещения на работу и обратно. Время течёт незаметно тогда. На SQL с логикой в хранимых процедурах разработал несколько систем, одна из них описана в моей статье на этом сайте.

Когда на основании xml делаются некие небольшие конфиги, это еще ладно, но когда конфиг в одном файле составляет 166 страниц, то работа с ним превращается в кошмар. В одной такой задаче пришлось переносить 40 файлов из xml в базу данных и заново писать приложение и это тот еще был квест. Распарсить xml в таблицу БД несложно, но там получается такое дерево, что надо очень сильно постараться это все обработать правильно, не теряя связи. У меня были еще относительно простые варианты xml, где надо было разложить в 5 таблиц не потеряв связи между таблицами. В общем очень нетривиальная задача для SQL.

На MSSQL всегда использовал по умолчанию READ Commited и проблем никогда не было. В последнем случае сделал даже межпрограммное общение через БД. Но вся логика в хранимых процедурах, как и транзакции. Никаких триггеров, view и прочих лишних ненужных сущностей с недетерминированным поведением.

Да, попробовал Delphi от Embarcadero использовать в корпоративной среде для технологических задач тестирования электроники и бизнес- задач в связке с MSSQL через FIREDAC. Все работает прекрасно, быстрый компилятор, простой язык ( я не использую логику на клиенте, только интерфейс, все в харнимых процедурах. Очень доволен тем что получилось. Приложения работают быстро, SQL процедуры оптимизированы по плану запроса. В общем все гораздо быстрее в разработке, проще и функциональнее чем разработка web интерфейсов приложений на PHP в связке с Postgress и МуSQL, которые существуют также в компании.

Все что касается приведённых запросов можно посмотреть в документации все эти операторы и функции. Лично я бы при собеседовании просто узнал, понимает ли человек вообще вообще sql как язык обработки и взаимодействия множеств данных в СУБД. Все остальное нарабатывается в зависимости от стуктуры конкретной БД. А на разработчика и уровень понимания транзакций. Все остальное нарабатывается на конкретной БД и рабочих задачах

Иногда вложенный запрос работает быстрее чем СТЕ. У меня такое случалось.

Заниматься читерством это просто признать себя в шахматах полным нулем. Лучше уж совсем не играть.

Нет гитарных фичей , флажолетов, указателя повтора, апперджио и тп.

Когда переносил из xml объёмом в 116 станиц в mssql в пять связанных таблиц, то рекурсию не стал использовать, а использовал фильтрацию по параметрам, так как их было больше 50 плюс пустые уровни только для связности в исходной таблице иерархии с узлами и данными. И задача была практическая. А вообще, когда разрабатывал запросы из этих таблиц для sqlite и мssql,то с множеством CTE запросы были идентичны и за исключением замены ТОP на Limit.

Когда разобрал датчик давления от йокогава то был весьма удивлён, в схеме 4-20ma отсутствовал микросхема ЦАП. Два больших АSIC на одной стороне платы и много резисторов и конденсаторов на другой стороне с микросхемами в малых корпусах. Похоже на то что ЦАП был сделан на матрице R-2R. Приведённая погрешность этого датчика была сравнима с погрешностью датчика с микросхем ой ЦАП от Analog device. Температурная погрешность была побольше чем у датчика с интегральным ЦАП, но в общем датчик соответствовал своему классу. Резисторы на плате были зелёного цвета, то есть скорее всего 0.01% и 10 ppm температурой погрешности. Как минимум это должен быть 16-ти разрядный ЦАП и соответственно там не менее 32 резисторов должно быть в схеме.

Если уж идти до конца, то нужен ещё режим отладки, пошаговое выполнение, просмотр переменных и тп.

Возможно, где-то, не в нашем провинциальгом районе все эти ит компании пилят свой кусок weba и тащатся от прибыли, но даже там где в производственных компаниях с возрастом за 20 лет и наличием только excell и 1С появляются всякие писатели которые тащат туда всякие непотребства в виде php, pyton, Linux и web в локалку не потому что это необходимо, а потому что либо ничего не знают кроме того что знают, либо просто получают "опыт" и через некоторое время сваливают в какие нибудь сотовые конторы за длинным рублём. А компания остаётся с этим софтом, который периодически глючит и тормозит и новый раз раб начинает это все разгребать зачем-то, когда надо просто убить никому не нужный web интерфейс и все что с ним связано и сидеть все заново в нормальном десктопном варианте.

У каждого свой порог способностей, в том числе и в профессиональной деятельности. А вот сегодняшним 35 летним нужно ещё 30 лет удержаться до пенсии ( если она ещё останется ) на уровне, когда они ещё востребованы, либо будут списаны. И это при том что сейчас все меняется очень быстро, чем 30 лет назад, когда мне было 33. Тогда компьютер был недоступен большинству, но я уже программировал на паскале.

Мне 63. Всегда был технарем, электроникой занимался с возраста 21 год после института. Программированием примерно с 30 лет, с момента появления компьютеров. В 40 лет создал ERP, в 45 участвовал в разработке интеллектуальных датчиков, в 50 был PM в модернизации электроники интеллектуальных датчиков, в 60 разработал программируемую систему тестирования интеллектуальных датчиков (написал статью на хабре об этой системе). В общем дело не в возрасте, а в складе ума. Если нет творческой жилки, то её нет и в 25 и в 35 и не будет никогда. Насчёт здоровья и возраста- двое моих коллег умерли, один в 35, другой в 42. Первый просто не занимался проблемами здоровья, второй от онкологии. Я стараюсь придерживаться здорового образа жизни - утренняя зарядка, зимой лыжи, баня, по пути на работу в служебном транспорте играю блиц 3 мин, иногда очень даже на хорошем уровне 1 го разряда, каждый день отжимаюсь 40 раз, в свободное время изучаю и играю на гитаре классику Баха, фингерстайл,джазовые композиции, свои есть гитарные произведения и музыка на стихи поэтов золотого века, песни для детей и тп. В общем возраст это богатство опыта в различных сферах, знание жизни и людей. На последнем месте работы вокруг много молодёжи по 25, 35 лет и я вижу что многим ещё надо учится и учится. И так всю жизнь, чтобы даже и после 60 быть востребованных специалистом с креативным мышлением.

Может быть вы правы, я забыл что у постгресса нет tempdb...

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

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

Hidden text

1
23 ...

Information

Rating
2,281-st
Location
Россия
Registered
Activity

Specialization

Application Developer, Database Architect
Lead
From 200,000 ₽
SQL
Database
Software development
Algorithms and data structures
Database design
Delphi
MSSQL
Microsoft SQL Server
Visual Studio
Code Optimization