Я пользуюсь Excel, чтобы писать код

в 7:55, , рубрики: Excel, Блог компании VDSina.ru, кодинг, ненормальное программирование, Программирование, Софт

Я пользуюсь Excel, чтобы писать код - 1

На своём веку я занимался многими странными вещами, о некоторых из которых не могу рассказать, однако использование Excel вместо кодинга — одно из тех постыдных удовольствий, которые я не буду ни от кого скрывать.

Всегда задавайтесь вопросом: а можно ли использовать для этого Excel?

Забудьте о тесте Тьюринга — проходит ли ваша гениальная идея программы тест Excel? Например, все пользовались простыми табличными формулами для генерации отчётов, но знаете ли вы что Excel может запросто выполнять замены регулярными выражениями, применять операторы if, и даже можно вызывать онлайн-функции, чтобы подгружать актуальные цены онлайн-сервисов?

Excel может подключаться к реальным базам данных, создавать файлы .csv и JSON, его можно запрашивать снаружи с помощью Python или других языков программирования. Можно использовать электронные таблицы в качестве базы данных, применять их для генерации контента и импортировать их на сайты WordPress для массового создания тысяч постов агрегатора новостей или веб-сайтов с видео.

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

Генерация тестовых сценариев

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

Я написал в Excel матрицу, указал в строках основные тестовые сценарии, а в столбцах — параметры, после чего смог просто написать формулу для генерации из них тестовых сценариев и перетащить настолько далеко вниз, насколько мне было нужно.

После этого я даже мог использовать вот такую формулу:

="[TestCase(""&A2&"")]"

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

SQL-запросы

Хотя мне уже привычно написание SQL-запросов с помощью Excel, позвольте вернуться к предыдущему примеру, чтобы продемонстрировать, насколько это здорово: для каждого из тестовых сценариев мне нужно было сгенерировать соответствующий SQL-запрос, то есть всего две сотни запросов.

Разумеется, писать их вручную я не хотел, поэтому создал один скрипт, а затем сопоставил значения со столбцами базы данных с помощью сравнения строк и операторов if. Примерно так:

="union select id from tb_test test where test.customer_property "&IF(A2="larger";">";"<")&"5;"

Особенно обратите внимание на оператор union, поскольку он позволил мне запустить скрипт один раз, затем скопировать все получившиеся id из результата и вставить их обратно в электронную таблицу.

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

Отображения баз данных

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

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

string test_column = Convert.ToString("test_column");

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

Todo и отслеживание ошибок

Когда-то я работал с человеком, который настаивал, что Excel ужасно неадекватен для планирования проектов и отслеживания проблем, поэтому мы провели с ним двухчасовое совещание, на котором вставляли всё это в его PowerPoint. Это похоже на шутку, но ему, похоже, казалось, что разноцветные прямоугольники, разбросанные по множеству слайдов, делали всё ярче и удобнее.

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

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

Ещё одно реальное преимущество такой среды заключается в том, что не относящиеся к ИТ сотрудники уже знакомы с Excel, а попытки научить их пользоваться новой системой приведут к откладыванию этапа планирования. Если кто-нибудь вернётся к преобразованию этого списка в предпочитаемый для него формат, то это уже его проблема или радость, но, на мой взгляд, на ранних этапах планирования Excel проявляет себя во всём своём блеске.

Подведём итог: я жалею, что мы отказались от электронных таблиц

Чем старше я становлюсь, тем больше меня раздражают люди, ненавидящие то, что они не понимают.

То же самое относится и к Excel: это невероятно мощный инструмент, если вы сможете освоить его возможности, но достаточно всего одного человека в команде, который воскликнет «боже, только не Excel», чтобы мы потратили час на его объяснения преимуществ того современного инструмента, который он предпочитает. Другие инструменты приходят и уходят, а Excel всегда рядом, когда вам нужно крепкое плечо, в которое можно поплакать.


На правах рекламы

Эпичные серверы для разработчиков и не только! Недорогие VDS на базе новейших процессоров AMD EPYC и NVMe хранилища для размещения проектов любой сложности, от корпоративных сетей и игровых проектов до лендингов и VPN.

Автор: Mikhail

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js