2009-03-10 2 views
2

Я написал небольшой скрипт, который извлекает изображения и фильмы с камеры и переименовывает их на основе их даты, а затем копирует их на моем жестком диске, автоматически управляя конфликтами (одно и то же имя?)
Работает очень хорошо.Как закодировать в духе unix? (небольшие инструменты для одной задачи)

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

Каковы наилучшие ресурсы, лучшие практики и ваш опыт в этой области?

спасибо.

Редактировать: Хотя я бы хотел прочитать книги Unix и глубоко понять предмет, сначала я ищу Великие принципы. Плюс я склонен ограничиться онлайн-ресурсами.

ответ

2

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

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

Наконец, Эрик Рэймонд сделал The Art of Unix Programming доступный онлайн бесплатно.

+0

Благодарим вас за онлайн-версию того, что кажется лучшей книгой на эту тему! Отмеченный! – Polypheme

+0

Более того, я согласен с вашей точкой зрения о том, что «развивающийся, чтобы быть многоразовым», это как раз моя ситуация здесь. Был там уже, но это первый раз, когда я пишу «инструмент unix». – Polypheme

+0

Вы не ошибетесь в TAOUP. Это одна из тех классиков, на которую ссылаются ее инициалы. :) –

3

Я бы посмотрел на книгу под названием The Art of Unix Programming.

+0

Да, действительно с таким вопросом, это тот, кто видит его первым. Especailly с таким легким ответом :) – kemiller2002

+0

Проклятая клавиатура iPhone и поврежденное плечо! : P – 2009-03-10 16:57:17

+0

Кажется, очень хорошо (из предварительного просмотра) – Polypheme

2

Заканчивать эту книгу:

Искусство программирования Unix Эрик С. Раймонда

http://www.amazon.com/UNIX-Programming-Addison-Wesley-Professional-Computing/dp/0131429019

Вот его сайт: http://www.catb.org/~esr/writings/taoup/

+0

Буду признателен, если бы вы указали название, а также информацию о веб-сайте. –

+0

Спасибо за онлайн-версию! (хотя кодировка для меня нарушена, поэтому я буду ссылаться на http://www.faqs.org/docs/artu/. Как упоминалось Биллом Ящерицей) – Polypheme

0

- искусство программирования UNIX - довольно хорошая книга ok "unix wa y ", поскольку он существует. OTOH, если этот способ «делает так же мало, как и ваша работа», вы, возможно, уже там. :)

0

Я думаю, что некоторые из ключей для хорошего Gnu кода, является:

  • Handling системных сигналов правильно, как deattaching жесткого диска файлов, если SIGTERM принимается.
  • Правильное использование труб и стандартного ввода/вывода
  • Follwing правила флаг общей командной строки

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

1

Книга Software Tools (amazon) от Kernighan и Plauger является классикой на эту тему. Я думаю, что это должно быть необходимо прочитать для любого серьезного ученика разработки программного обеспечения.

+0

Обновлено? В моей копии описывается, как создавать инструменты, которые никто больше не будет создавать в RATFOR (Fortran с препроцессором, чтобы он выглядел немного похожим на C). Хотя в книге много мудрости, презентация хромает по современным стандартам. –

+0

Обновлено? Я сомневаюсь в этом. Язык примера может быть старым, но алгоритмы и философия относительно вечны. Я помню, как много лет назад я работал над каждым примером как в F77, так и в C, и это был очень важный опыт в моей карьере. –

2

Лично, когда я вижу, что сценарий, который я планирую написать, будет длиннее дюжины строк, я использую python вместо сценария оболочки. Один аккуратный трюк с использованием скриптов python состоит в том, что его очень легко программировать в стиле, в котором вы создаете инструменты командной строки и библиотеки «unix spirit». Например. для вашего «менеджера конфликтов», создайте файл (модуль python) и поместите функциональность в функции и/или классы, а затем в конце вы можете поместить основную функцию python (обычный танец if __name__=='__main__':), где вы разбираете командную строку (используйте встроенный модуль OptionParser для этого, это очень приятно!) и используйте функциональность в функциях/классах.

Таким образом, вы можете использовать эту утилиту как автономную программу командной строки, или вы можете импортировать модуль в другой скрипт python и использовать функциональность, определенную там через функции/классы, а не синтаксический ввод.

Смежные вопросы