нужно сделать метод createComment(), тогда хотя он всё равно будет вызываться в 26 местах, но если нужно будет изменить его логику, изменить нужно будет только в 1 месте.
Кстати не, факт, что это хорошо. Суть таких замен - компрессия кода и последующая работа с сжатым кодом. При этом в мозгу читателя должен быть словарь не только из общепринятных названий функций (API, stdlib), но и специфичных для каждого проекта или модуля.
Конечно, разработчик должен понимать бизнес логику проекта.
Вот если в двух разных частях пода делается str.trim().substring(0,1), очень может быть что между этими двумя кусками кода вообще нет никакой семантической связи.
Но есть бизнес логика приложения, о операция добавления комментария, - совершенно точно является частью этой бизнес логики, - по этому этот метод должен быть вынесен в интерфейс, а реализация его инкапсулирована - что в будующем даст реальную возможность изменить логику добавления комментария.
Ну во-первых, override метода save конкретного класса в ActiveRecord-фреймворке вполне должен помочь в решении указанной в посте проблемы.
А во-вторых, строго ПМСМ, чистый ActiveRecord-подход плох именно тем, что является слишком низкоуровневой обёрткой над базой данных. Для хорошей сложной системы нужно разрабатывать свою систему методов для каждого класса данных, это вроде очевидно.
Сначала про "Программа vs Приложение". Приложение - это некоторая штука (аппаратные средства+программа+данные+ что либо ещё), помогающая пользователю решать его конкретные прикладные задачи, не связанные с функционированием ЭВМ. По сути дела, примерно тот же ответ даёт и википедия про прикладное программное обеспечение. Grep, в зависимости от конкретного использования, может быть приложением, а вот NetBeans, или Eclips, или какое-нибудь Delphi - вряд ли. Вообще, эти штуки начинаешь чувствовать и понимать, когда приходится писать документацию по ГОСТ-у. В голове сразу многое на свои места становится.
>Для меня самый большой вопрос, если это так очевидно, почему так никто не делает и почему этому нигде не учат? Так никто не делает, потому что это, действительно, сложно и долго. Да и не все разработчики "потянут". А заказчику, как понимаешь, нужно вчера. Даже пословица-прикол такая есть "Математики делают то, что можно, так, как нужно. а программисты, наоборот, то, что нужно, так, как можно"
Этому нигде не учат, потому что этому невозможно научить, а можно только научиться, причём научиться на достаточно долгой собственной практике.
Только в добавок нужно понимать, как это лучше преподавать, и кому (вплоть до персоналий) это имеет смысл преподавать. а кому - нет. Ты же прекрасно понимаешь, что на такой высокий уровень требований и подготовки потянут далеко не все студенты, да и не все это объективно надо.
Comments 13
Кстати не, факт, что это хорошо.
Суть таких замен - компрессия кода и последующая работа с сжатым кодом.
При этом в мозгу читателя должен быть словарь не только из общепринятных названий функций (API, stdlib), но и специфичных для каждого проекта или модуля.
Reply
Вот если в двух разных частях пода делается str.trim().substring(0,1), очень может быть что между этими
двумя кусками кода вообще нет никакой семантической связи.
Но есть бизнес логика приложения, о операция добавления комментария, - совершенно точно является
частью этой бизнес логики, - по этому этот метод должен быть вынесен в интерфейс, а реализация
его инкапсулирована - что в будующем даст реальную возможность изменить логику добавления
комментария.
Reply
Reply
Reply
Ну во-первых, override метода save конкретного класса в ActiveRecord-фреймворке вполне должен помочь в решении указанной в посте проблемы.
А во-вторых, строго ПМСМ, чистый ActiveRecord-подход плох именно тем, что является слишком низкоуровневой обёрткой над базой данных. Для хорошей сложной системы нужно разрабатывать свою систему методов для каждого класса данных, это вроде очевидно.
Reply
Reply
Reply
Reply
Reply
Reply
Так никто не делает, потому что это, действительно, сложно и долго. Да и не все разработчики "потянут". А заказчику, как понимаешь, нужно вчера. Даже пословица-прикол такая есть "Математики делают то, что можно, так, как нужно. а программисты, наоборот, то, что нужно, так, как можно"
Этому нигде не учат, потому что этому невозможно научить, а можно только научиться, причём научиться на достаточно долгой собственной практике.
Reply
Reply
Только в добавок нужно понимать, как это лучше преподавать, и кому (вплоть до персоналий) это имеет смысл преподавать. а кому - нет. Ты же прекрасно понимаешь, что на такой высокий уровень требований и подготовки потянут далеко не все студенты, да и не все это объективно надо.
Reply
Leave a comment