Стоит ли это делать для практики и обучения, без модулей (Perl) - PullRequest
3 голосов
/ 07 мая 2011

поиск подключения к защищенному FTP-сайту (с использованием perl) и загрузка всех файлов .log, сохранение в новых каталогах, названных в честь дня, когда я загрузил файлы. Я хочу сделать это без модулей, как опыт обучения, но перед тем, как начать, я хотел бы знать, думали ли вы, ребята, это делает, или это слишком много для сравнительно нового программиста, и я должен просто изучить модули?

Ответы [ 3 ]

11 голосов
/ 07 мая 2011

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

В противном случае, да.Хорошо изучать принципы сетевого протокола.У меня есть оговорка по поводу FTP, так как он немного барочный, небезопасный, неэффективный и находится на выходе.scp, HTTP или rsync были бы более полезны, чтобы использовать вашу энергию.

Я бы начал с чтения RFC и сборки вашего собственного модуля FTP с использованием только сетевых сокетов.Документируйте и тестируйте, как если бы вы собирались выпустить в CPAN в качестве полноценного учебного упражнения по созданию сетевого модуля.Запустите его для некоторых различных реализаций FTP-серверов, поскольку они часто по-разному интерпретируют спецификацию (или не интерпретируют ее вообще).Не бойтесь обманывать и смотреть на то, что делают существующие модули.Кто знает, вы могли бы написать что-то лучше, чем то, что уже есть.

5 голосов
/ 07 мая 2011

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

Однако, когда вы были новичком в мире, так же, как когда вы учились говорить, вы делали «А для Apple» и т. Д., Вы не получили объяснения о тонкости грамматики и всего этого, вы научились выражать себя достаточно, чтобы быть понимать.

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

Итак, используйте колеса и винтики по доступной цене, как только вы действительно разберетесь в этом, СЕЙЧАС посмотрите, как изобрели свои более эффективные.

1 голос
/ 07 мая 2011

Ad cpan модули:

  • Модули являются отличным источником обучения. Вот модули zilion, и вы действительно можете многому научиться, изучая некоторые из них.
  • И когда / пока вы осваиваете свой Perl, вы начнете писать свои собственные модули. Когда ваша программа все равно будет использовать модули (ваши), вы можете спросить - почему бы не использовать уже разработанные и отлаженные модули?

Итак, изучите основы Perl, изучите некоторые модули (например, Net :: SFTP) и, если вы все еще хотите написать свое собственное решение - это ваше дело :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...