Достаточно ли полезна эта утилита, чтобы встраивать ее в CodePlex?

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

Он запускает код C#. Вы пишете метод, имя метода появляется в списке, вы дважды щелкаете имя метода, чтобы выполнить его. Вот и все.

Примеры:

Когда я открываю свой веб-проект C# на работе, метод запускает пару оконных приложений, необходимых моему проекту, и проверяет, работает ли необходимая служба. Мне никогда не приходится вспоминать об этом.

Я ненавижу ВЕРХНИЙ РЕГИСТР, поэтому у меня есть метод, который переводит SQL в нижний регистр, но сохраняет регистр строк в кавычках. Другой метод вызывает веб-службу для украшения SQL. Оба они работают с буфером обмена.

Один метод исправляет имена файлов MP3: регистр заголовка, замена символов подчеркивания и дефиса, при необходимости удаление/вставка текста или добавление цифр. Создает плейлист!

Я дважды щелкаю, чтобы собрать все свои ссылки в Твиттере, превратив их в HTML-страницу с гиперссылками и поиском на основе jQuery.

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

Я могу создать точку восстановления, дважды щелкнув метод (и открыв соответствующее диалоговое окно с другим методом).

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

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

Этим утром я хотел отформатировать некоторые выходные данные SQL в виде строк в таблице Excel. Я написал метод для чтения вывода и форматирования его в виде столбцов с разделителями табуляции для импорта в Excel. Я понятия не имею, как еще я мог это сделать. На написание ушло около 8 минут.

У меня есть 300 методов, возможно, 50 из которых часто бывают полезными, а остальные — если представится случай. Иногда я перемещаю настоящий хлам в группу Zaps, чтобы она не мешала.

Утилита имеет множество удобных функций. Я предпочитаю клавиатуру мыши, поэтому методы разбиты на группы, доступные из раскрывающегося списка: Ctrl-T выбирает другую группу. Не помните группу? Вы вводите control-F, чтобы найти все методы, соответствующие строке. Стрелка вниз и нажмите, чтобы запустить метод. Окно параметров всегда запоминает свое состояние: если вы вошли в Hoytster в прошлый раз, в этот раз оно там. Вы можете щелкнуть метод правой кнопкой мыши, чтобы увидеть его всплывающую подсказку; дважды щелкните правой кнопкой мыши, чтобы увидеть его источник.

Я старался упростить быстрое создание новых методов.

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

Легко запросить параметры:

...GetParameters("*Target File", "@Report File", "Открыть отчет [Нет, Да]");

открывает окно с текстовыми полями, помеченными как Целевой файл и Файл отчета, и флажком Открыть отчет с текстом, который переключает Да и Нет. Строки в фигурных скобках становятся радиокнопками. Целевой файл должен существовать из-за начальной звездочки; окно параметров не закроется, если введен неверный целевой файл. Файл отчета должен быть действительным (он МОЖЕТ быть создан) из-за знака @.

Когда вы запускаете метод и появляется окно параметров, в нем есть кнопка [Capture], по которой вы нажимаете, чтобы сгенерировать код, необходимый для захвата возвращаемых параметров, и снова поместить его в буфер обмена:

строка targetFile = параметры["Целевой файл"]; ... boolean openReport = параметры["Открыть отчет"] == "Да";

Ах, я слишком долго продолжаю.

Итак, насколько амбициозным я должен быть? Кодплекс? Может быть, специальный веб-сайт, где люди могут загружать свои методы?

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

Мне нравится идея, что вы все используете мою утилиту, чтобы быть немного более продуктивным. Мне нравится идея видеть, какие методы вы изобретаете и которыми делитесь. Без сомнения, он есть, но я не знаю мест в сети, где люди делятся таким простым кодом, как метод «Исправить имена моих MP3».

Хотели бы вы иметь эту утилиту?

Помимо того, что я переутомлен и ленив, я никогда не создавал веб-сайта (!) -- и вы все могли бы насмехаться надо мной, потому что мой метод GetParameters() имеет около 200 строк (мое плохое оправдание: я начал с FORTRAN). Эта утилита никогда не разрабатывалась; он сросся. :)

Итак, дайте мне знать: как вы думаете, достаточно ли полезна эта утилита, чтобы разместить ее на CodePlex (или где-то еще)?

Заранее спасибо! - Хойтстер


person hoytster    schedule 05.11.2009    source источник
comment
Потерял тебя, Что за вопрос снова?   -  person vehomzzz    schedule 06.11.2009
comment
и вы все могли бы насмехаться надо мной, потому что мой метод GetParameters() имеет около 200 строк... Нет, я мог бы поиздеваться над вами за то, что вы на самом деле печатаете. В любом случае, просто выложите его на CodePlex, если он никому не нужен, никто его не возьмет. Я не думаю, что в этом есть какой-то вред.   -  person Brandon    schedule 06.11.2009
comment
Я не могу понять, что это такое, но я предполагаю, что это не кодплекс. Опубликуйте его на своем веб-сайте, если считаете, что это хорошая утилита.   -  person Cheeso    schedule 06.11.2009


Ответы (1)


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

Я сделал то же самое с моим переписчиком URL, который я разработал, основанный на Apache mod_rewrite, для платформы .NET.

http://urlrewriter.codeplex.com

Я начал с малого, и по мере того, как люди просили новую функцию и начали использовать ее все больше и больше, стало легко оправдать усилия.

person Nick Berardi    schedule 05.11.2009