Действительно ли MVC эффективен для персональной структуры?
Что MVC означает больше из-за его расплывчатой интерпретации, так это бизнес-логика, представление и обработка ввода. Таким образом, если вы не собираетесь разрабатывать приложение, которое не включает в себя три из них, MVC, в его смутном смысле, очень подходит.
Однако зачастую это может быть более формальным, чем вы хотите, так как требует физического разделения идей на разные файлы кода. Быстрые и грязные задачи или быстрое создание прототипов могут быть выполнены быстрее, если избегать формальностей.
В долгосрочной перспективе то, о чем просит MVC, выгодно для устойчивости приложения с точки зрения обслуживания, модификации или дополнения. Вы не хотите пропустить это. Однако не все системы поощряют правильную практику. Я не удивлен, что вы нашли различные реализации, которые вы пробовали недостаточно. Мой личный фаворит - Агави. Мне и другим, в мире PHP-фреймворков, которые не чувствуют себя хорошо, Agavi появляется, чтобы делать правильные вещи. Агави стоит того.
Было бы плохой идеей использовать модульную систему?
MVC просит вас разделить компоненты бизнес-логики, представления и обработки ввода, но не предлагает, как расположить файлы. Я предполагаю, что это проблема, которую вы решаете с помощью модульной системы. Чтобы ответить на ваш вопрос: модули служат идентично подкаталогам. Если элементов немного, то, вероятно, больше хлопот с подкаталогами, даже если файлы могут быть логически разделены на них. Когда количество элементов увеличивается, становится все труднее найти их все, и подкаталоги становятся лучшим вариантом.
Фреймворки будут использовать функциональность, которая позволяет вам работать с модулями как с их собственной настраиваемой сущностью. Та же самая функциональность могла бы также существовать без модулей, возможно, в более громоздкой усадьбе. Тем не менее, не рассматривайте модули в первую очередь как систему. Системы настолько удивительно расплывчаты, что их можно адаптировать к любым настройкам, которые вы считаете подходящими.
Вы когда-нибудь писали рамки для себя? Каковы ваши переживания?
Да, я написал несколько фреймворков с различными подходами к решению проблем веб-приложений. Каждая такая основа, которую я написал, стала всего лишь жизненно важной кривой обучения. В каждой структуре, которую я сделал, я обнаруживал все больше и больше проблем со сборкой программного обеспечения. После того, как я не смог создать ничего интересного, я все-таки выиграл, потому что когда меня попросили создать программу, я мог сделать это с полным основанием.
Я рекомендую вам продолжить, если вам нужен именно такой опыт обучения. В противном случае, дайте Агави шанс. Если это тоже не помогает, убедитесь, что у вас есть четкая и подробная спецификация того, что будет делать ваша структура. Самый простой способ заняться созданием программного обеспечения, по-настоящему усердно работать и ничего не делать - это заранее не решать, что именно будет делать . Каждый раз, когда я сталкивался с созданием кода, единственное, что у меня на уме, было , я все сделаю правильно . То, что произошло, было другой историей: ну, мне нужно сделать систему маршрутизации, так как это кажется логичным; хм, хорошо, теперь мне нужна хорошая система шаблонов; хорошо, теперь время для абстракции базы данных; но оу, как много думаешь; Я должен искать ту же систему из программного обеспечения XXY для вдохновения. В этом общий клич, который умоляет сначала использовать существующее программное обеспечение.
Причина, по которой я думал, что смогу сделать это правильно, не в том, что все гайки и болты каркаса были неправильными.На самом деле, я ничего не знал о том, насколько они правы или неправы, потому что никогда не работал с ними.То, с чем я работал, было эмалью, и это чувствовало себя вялым.Самый быстрый способ получить свою собственную конструкцию - это украсть гайки и болты у другого и создать собственную эмаль.Это то, что вы видите при создании приложения, и, честно говоря, это единственная часть, которая имеет значение.Все остальное - пустая трата вашего времени в шаблоне.Однако, чтобы научиться создавать программное обеспечение, это не пустая трата времени.
Если у вас есть другие вопросы, пожалуйста, задавайте.Я рад ответить со своим собственным опытом.