为什么编程语言都需要包管理器?

开始学编程接触的第一门语言是 php,平常写网站常用的一些函数、方法,把它们记录下来放在一个地方统一管理。后面尝试用框架,也就是把模板、路由、数据库操作等常用的东西做了更系统化的封装,直接提高了开发效率。毕业后去做了 PM,没有再继续往编程方向发展,所以对语言的认识还停留在这个层面,直到前段时间看 Laravel 文档的时候看到了 Composer,Composer 是 php 的包管理工具,通过简单的命令就可以管理各种第三方库包,一行代码就可以引入到自己的程序中使用。

常规 web 框架的构成:路由、控制器、ORM、模板,一般的框架将这些模块深度耦合在一起,升级一个小模块就必须升级整个框架,Laravel 深度使用了 Composer ,每个模块都是独立的库,可以分别维护,各司其职,达到了充分的解耦,Laravel 主程序再把各个部分黏合在一起。我尝试使用 Composer,路由用 Slim,ORM 用 Laravel 的 Eloquent,它俩非常简单灵活地就结合在一起了。

工作中我负责项目的语言是用 node js,对应的包管理工具是 npm,有稍微通用的需求,工程师都会说,先到 github 上找找有什么库可以直接用,得益于 github 这个大宝库,大多数情况都能找到合适的第三方库。

除了前文提到的 php、node js,Ruby 的官方包管理工具是 gem,Python 有 pip,有了这些包管理器,开源社区才有了规范,不同库之间才能做到更好的兼容,工程师在写代码时可以灵活地借用别人的成果,不用担心各种依赖关系,不用再重复发明轮子,大大提高编程效率,真正将精力花在核心的需求上去。当然,在使用别人成果的同时,也不要忘记回馈开源社区。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 3,969评论 1 66
  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 8,626评论 0 121
  • ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库...
    Gundy_阅读 6,354评论 4 192
  • People are not so honest as once they were. The temptatio...
    化真阅读 206评论 0 1
  • 很情绪化,有些失控,学习状态不佳。有着对毕业的焦虑,愁自己的技术能力,还有对未来的担忧。 所做的事情: 学校考试:...
    AloneStray阅读 149评论 0 0