#perl
#perl
Вопрос:
изучаю возможность подключения к защищенному ftp-сайту (с использованием perl) и загрузки всех файлов .log, сохранения в новых каталогах, названных в честь дня, когда я загрузил файлы. Я хочу сделать это без модулей, в качестве учебного опыта, но прежде чем я начну, я хотел бы знать, ребята, считаете ли вы, что это работает, или это слишком много для относительно нового программиста, и я должен просто изучить модули?
Ответ №1:
Если это производственная работа, нет, используйте модули. Ваша реализация будет глючной, с отсутствующими функциями и неизвестной следующему пользователю, поддерживающему этот код.
В противном случае, да. Полезно изучить принципы сетевого протокола. У меня есть оговорка по поводу FTP, поскольку он немного барочный, небезопасный, неэффективный и находится на пути к завершению. scp, HTTP или rsync были бы более полезными для вложения вашей энергии.
Я бы начал с чтения RFC и создания вашего собственного FTP-модуля, используя только сетевые сокеты. Документируйте и тестируйте его, как если бы вы собирались выпустить в CPAN в качестве полноценного учебного упражнения по созданию сетевого модуля. Запустите его с некоторыми различными реализациями FTP-сервера, поскольку они часто интерпретируют спецификацию по-разному (или не интерпретируют вообще). Не бойтесь обманывать и посмотрите, что делают существующие модули. Кто знает, возможно, вы напишете что-то лучше того, что уже есть.
Ответ №2:
Изучение принципов, точно так же, как мы изучали в школе длинное умножение и деление, означает, что мы знаем, как все работает, когда мы используем короткую комбинацию.
Однако, когда вы новичок в мире, точно так же, как когда вы учитесь говорить, вы сделали «A — это для Apple» и т.д., Вам не объяснили тонкости грамматики и все такое, вы научились выражать себя достаточно, чтобы быть понятым.
Программирование немного похоже на то же самое. Хотя в идеальном мире вы можете легко утверждать, что предварительно написанная универсальная библиотека часто намного менее эффективна, чем специально предназначенный набор подпрограмм. Если колесо, которое вы используете, уже было изобретено, кажется, потребуется много работы, чтобы создать новое.
Итак, используйте доступные колесики и шестеренки, как только вы действительно освоитесь с этим, ТЕПЕРЬ подумайте о том, чтобы изобрести свои собственные, более эффективные.
Комментарии:
1. И знание того, как все работает внутри, неоценимо, когда что-то идет не так. Большая куча волшебных библиотек хороша, когда все работает, но когда что-то не работает, вам нужно знать, что, вероятно, происходит за кулисами, иначе вы не будете знать, как выяснить, что пошло не так.
Ответ №3:
Модули Ad cpan:
- Модули — отличный источник обучения. Вот модули zilion, и вы действительно можете многому научиться, изучая некоторые из них.
- И когда / пока вы осваиваете свой perl, вы начнете писать свои собственные модули. Когда ваша программа все равно будет использовать модули (ваш), вы можете спросить — почему не использовать модули, уже разработанные и отлаженные?
Итак, изучите основы perl, изучите некоторые модули (например, Net:: SFTP), и если вы все еще хотите написать свое собственное решение — это зависит от вас. 🙂
‘