[quote name='ArchiMage']В программе есть ряд недочетов, не касающихся криптографией и являющихся потенциальным источником проблем[/quote]Архитектурный подход, применяемый в данном приложении годится только для простых задач при условии чистоты требований и их постоянстве.Как я понял, софтину ты планируешь развивать, поэтому было бы полезно вынести бизнес логику за логику представления, лучше в отдельный проект. Вдруг захочется прикрутить веб интерфейс? Даже если и не захочется, выделение логики в отдельный проект поможет значительно снизить сложность. В данный момент обработчики событий формы слишком много знают о том, как устроен редактор тестов изнутри, и при попытке изменить какую-либо фичу прийдется разбираться, что относится к интерфейсу, а что нет. В идеале, обработчики событий должны вызывать методы из слоя с бизнес логикой и никаких дополнительных проверок, временных переменных и т.д. Хочешь поменять интерфейс – меняешь интерфейс, логику – меняешь логику и не смотришь на интерфейс. Конечно, иногда прийдется лезть и туда, и туда, например, при добавлении нового поля для отображения в форме, но в общем случае дело того стоит [smile ;)].
Copyright ©