Давно я не выкладывал на сайт статей. Иногда даже палка стреляет, а я пишу довольно часто, но вот сегодня не просто заметка, а целая статья: Проектирование кода. Читайте и пишите свои коммментарии. Буду рад, если ты найдешь в заметке хоть что-то полезное для себя.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Вообще неплохая идея написать книжку по проектированию кода и решению конкретных задач. Где на примере написания какого нибудь приложения (или даже нескольких), объяснялись и принципы MVC , и тоже ООП и часто используемые алгоритмы. Тоже по своему очень скромному опыту могу сказать, что прочитав книгу или справочник по языку и начиная пробовать, что то писать, кучу времени тратишь на изобретение велосипедов заново, пихая код в одно место.
Статья очень хорошая но немного мне кажется короткая. Можно было бы рассмотреть разработку отдельного проекта на С# в котором было бы хотя бы 2 класса и показана их взаимодействие, правильная реализация кода, в плане наследования . В наше время много программеров которые лепят всё так что там пипец полный .......
Большое спасибо, наконец-то. :)
Актуальная статья. Вы действительно написали её в самый подходящий момент.
Поздравляю всех с праздником великой победы!
почитал... в принципе понял, но возникает вопрос чем плох подход размещения кода в модуле формы, в классе формы? у меня так реализовано 90% проектов, неужели это так плохо? комментарии к коду присутствуют, процедурам и переменным стараюсь давать осмысленные имена, применяю форматирование кода...
P.S. есть некоторые общие функции для всех модулей которые выношу в отдельный модуль, но это 10% кода
Тема супер, это уже другой уровень кодинга. Книгу по теме купил бы сразу.
2ronin
Простейший пример я описал в статье - использование кода логики вне зависимости от морды. Один и тот же движок без изменений используется у меня в программе с визуальным интерфейсом построенном на WinForms и WPF. Я хотел сделать еще Web морду для этого проекта на сайте www.profwebdev.com, но у меня наровый хостинг, а для такого лучше выделенный.
Если бы у меня двиг был бы прямо в модулях с формами, то мне пришлось бы копировать код на два разных проекта.
Михаил, подумайте о написании книги на эту тему. Такой литературы хорошей нет, по крайней мере я не встречал.
2ronin
Дописал пару абзацев еще с примерами в статью
Книг не планирую писать
мир в котором программисты пишут (нормальный проект я не говорю про project с 10 строчками работы с формой) всё в одном общем модуле не разделяя проект ЭТО КАША!!!!!)) в которой им же потом и копаться, я молчу про групповую разработку.......
Для WPF можно использовать паттерн mvvm(model view viewmodel), он просто великолепно справляется с задачей разделения ответственности в коде. При этом во всех модулях форм не будет ни одной строчки вашего кода (только автоматически сгенерированный).
Зачем все это нужно?
Ваш код станет четко структурированным, его будет легко сопровождать, очень легко тестировать, и т.д. Попробуйте потестируйте ваш код "в модулях формы", ничего хорошего у вас не выйдет.
Паттерн MVVM в чистом виде хорош только для относительно простых проектов. Для создания крупных проектов с дружественным для пользователя интерфейсом он не всегда удобен. Например, в рамках данного паттерна, довольно сложно в нужные моменты автоматически выставлять фокус в поле ввода, в WP7 ApplicationBar не поддерживает DataBinding и приходится писать свою обертку и так далее.
Вот почему мне не нравится php. Логика от представления не отделена и это очень не удобно. Что и породило кучу шаблонизаторов и велосипедов, хотя php по своей сути и есть шаблонизатор.
Спасибо, хорошая статья.
Знаю, что значит неудачно спроектировать:( Можно разделить на модули, на классы, но так, что части кода всё равно нельзя будет использовать в другом проекте... И модифицировать всё это добро, через некоторое время будет тяжело...
Хорошая статья. Интуитивно я конечно понимал все это. А вот Итог особенно понравился. ("учавствовал" поправьте)
Очень понравилась статья! Хотелось, чтобы вы Михаил описали шаблон MVC на простом примере в Делфи. Допустим на примере маленькой базы. Есть форма, на ней TDBGrid, а остальное куда, эту бизнес логику засунуть? Ну и т.д
И ещё, Михаил можете посоветовать какие-нибудь книги по этой теме или ссылки. Кто там великий проектировщик Гради Буч по-моему?
Я читал кучу книг и какие уже и не помню. Много пришло просто с опытом, а что-то по ошибке. Не помню, читал я Буча или нет.
Михаил, а как у Вас на работе?? Вы проектируете программный продукт изначально?? Или выполняете ту часть, которую поручают??
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.