Это сообщение в блоге резюмирует работу, которую я проделал на третьей и четвертой неделе GSoC с CCExtractor над Project Nephos, а также информацию о моих первых оценках. Начало недель было в основном беспокойным, но производительность пошла на убыль, когда я перестал писать код и приступил к фактическому тестированию.

Начало третьей недели начинается с завершения того, что еще оставалось сделать в основной кодовой базе; главным образом, создание конвейера регистратора, потоковая обработка выходных данных журнала и проверка входных данных, предоставленных пользователем. Я реализовал RegEx проверки на частые форматы ввода.

Основной мотив фильтрации пользовательского ввода перед тем, как он будет принят в программу, состоит в том, чтобы избежать незаметных ошибок и внедрения команды в клиент, поскольку это может привести к нарушению безопасности, поскольку мы используем `shell = True` в команде` subprocess`. Валидация дополнительно усиливается обработкой исключений в программе. Поскольку это постоянно работающий самостоятельно клиент, все было сделано максимально надежно, чтобы избежать преждевременных остановок.

Убедившись в работе модуля (теоретически), я начал писать тестовый код, и это был волшебный опыт; создание функций, переменных классов буквально из воздуха. Все это стало возможным благодаря стандартным mock-классам Python. Тестирование также помогло мне узнать функции, которые работают не так, как предполагалось.

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

На второй неделе дела пошли медленно, очень медленно. Я должен был получить доступ к серверу удаленного тестирования с помощью IPSec VPN, и в данном случае это, к сожалению, невозможно в Linux. Мне пришлось опробовать несколько операционных систем и настроек и много помощи Карлоса, моего наставника, чтобы все заработало. Это все еще нестабильно, но выполнимо. Одна неделя ушла в это нежелательное приключение, и до сих пор это была наименее продуктивная часть моего проекта.

Я прошел первую оценку, но удовлетворение не наступит, пока я не увижу, что мой код работает на сервере. Будущее кажется более приятным и авантюрным, я мог бы погрузиться в разработку оболочки CCExtractor для python.

Посмотрим, как пройдут недели!

Не добро в будущем волнует человека, а надежда на добро.