不要让框架控制你的项目,过度依赖框架会害了你
在本文中,我们来探讨一下使用框架构建软件,对软件的可维护性有哪些危害。我认为:
使用框架有损于软件的可维护性。
框架与个人或团队有着不同的目标。
框架设计中的权衡会危及项目的可维护性。
框架的构建初衷就是为了控制你的项目。
以解耦的方式采用框架,不仅能享受框架带来的好处,而且还可以避免损害可维护性。
框架是什么?
控制反转:框架与库或标准用户应用程序不同,整个程序的控制流不是由调用者决定的,而是由框架决定的。而这通常是通过模板来实现的。
可扩展性:用户可以按照重载的方式扩展框架,即编写用户专用的代码来提供特定的功能。
不可修改的框架代码:一般来说,框架代码不应该被修改,但可以接受用户的扩展。换句话说,用户可以扩展框架,但不能修改其代码。
“有损于维护性”指什么?
纠正式的软件维护:修复bug;
预防式的软件维护:防止错误,稳步改进;
完美式的软件维护:修饰与润色;
适应式的软件维护:持续开发。
框架与个人或团队有着不同的目标
框架设计中的权衡会危及项目的可维护性
class Post < ActiveRecord::Base; end
框架的构建初衷就是为了控制你的项目
def create
if User.exists?(email: params[:email])
render :new, status: :already_exists
elsif user.save
flash[:success] = flash_message_for(@user, :successfully_created)
redirect_to edit_admin_user_path(@user)
else
render :new, status: :unprocessable_entity
end
end
def user_params
params.require(:user).permit(permitted_user_attributes |
[:use_billing,
role_ids: [],
ship_address_attributes: permitted_address_attributes,
bill_address_attributes: permitted_address_attributes])
end
以解耦的方式采用框架,不仅能享受框架带来的好处,而且还可以避免损害可维护性
为什么没有这样的框架?
推荐阅读
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
评论