在国内使用 laravel 开发的公司多吗,这么优美的框架开发起来是不是很舒服?

2017-04-28 16:23:16 +08:00
 hellowwo
32496 次点击
所在节点    PHP
150 条回复
sagaxu
2017-04-30 13:29:06 +08:00
@ovear 框架要充分考虑通用性,所以会有非常多的 feature,项目中用到的可能只是其中很小的一部分。普通人连 excel 的百分之五功能都用不到,所以要用记事本自己排版做表格吗?

集成优秀的第三方库,而不是重复发明轮子,这也是 laravel 聪明的地方,它把 dirty 的整合工作给你做好了,节省体力劳动。就算你用 CI,一样有要整合第三方库的时候,总不能浪费时间造一大堆的轮子,除非你的项目小到不需要轮子或者大到成立平台组每年花几百万造轮子。
ovear
2017-04-30 13:34:47 +08:00
@sagaxu 没见得这是 laravel 的功劳啊,这是 composer autoload 的功劳。。laravel 只是推荐了几个用的广泛,且经过实践的 lib。。该聪明也是 composer 聪明呀。。
@terranboy 我觉得这样一上来就搞人生攻击的才 LOW B
breeswish
2017-04-30 13:35:55 +08:00
@ovear 代码规范当次太低了,这还停留在语法层面上。这里我说的是做一件事情只有有限的几种做法,只要你学习了这个框架,就一定能看懂用这个框架开发出来的业务逻辑,一定能互相协作,这是企业级开发的基础。
ovear
2017-04-30 13:39:42 +08:00
@breeswish 所以说大型企业写着写着都会有一套自己的框架呀。。不受制于上游贴合项目,比如说 Ali 之前搞的 Java 的开发规范。
另外好像跑题了。。
aerostone
2017-04-30 14:01:42 +08:00
我也没用起来,臃肿了点
sagaxu
2017-04-30 14:03:08 +08:00
@ovear

举个 python 的例子,flask 只是作者一个周末心血来潮搞出来的,它几乎没自己的东西,整合了 jinja 和 werkzeug,DB 整合了 sqlalchemy,signal 用的是 blinker,一出来就很受欢迎,很快就有了超过 10000 个 star 和 300 多个代码贡献者。然后涌现了一大堆的 flask-xxx 库,大都也是整合已有的库。flask 出现之前,早就有 pip 了,但是还是不够方便啊,要自己整合。

再看 Java 网红 springboot,它什么都没做,就是把 spring-xxxx 整合了一下,以前要自己写配置文件引入的组件,现在都变成一行配置搞定一堆,它有开创性工作吗?没有。它有属于自己的优秀的库吗?也没有。但是它很快就横扫 Java web 领域,因为它方便。它出来之前,用 maven 也能很快引入包,用 spring 的 di 也能几行代码配置起来,但是跟 springboot 比还是麻烦了一些。

刚入一个新语言的坑,有一帮摸爬滚打了多年的老司机给个菜谱,推荐一些不错的库,再给个 best practice 指引,迅速得到以往靠自己折腾几年才有的知识储备。这类自己不提供核心只做整合的框架,大大降低了入门门槛,也降低了很多重复自己多年的老手的价值。
ovear
2017-04-30 14:09:55 +08:00
@sagaxu 你看你也看到了问题,这几个框架是把复杂的问题变简单。而且这几个框架的可代替性也强,springboot 有 jfinal,flask 有 tornado,django
但是 laravel 呢?他搞的那一堆概念,我没看见其他 PHP 框架有这么搞的,本末倒置啊
sagaxu
2017-04-30 14:15:20 +08:00
@ovear 研发团队喜欢搞轮子,有的时候并不是业务真的需要重复造轮子,而是为了 KPI,轮子搞完,通道评审做完,可能就不大维护了,交给新来的人,新来的人可能根本看不上,又重搞一套。所以比较大的公司,team A 搞的轮子,同部门的 team B 可能看不上,甚至 team A 内部还分好几派,多种框架轮子并存。
ovear
2017-04-30 14:18:22 +08:00
@sagaxu kpi 的问题这里就不好讨论了。反正框架这东西是迎合需求的,不然怎么会那么多轻量到一种程度的框架。。
sagaxu
2017-04-30 14:49:09 +08:00
@ovear

jfinal 我今天第一天听说,常年混 reddit java 社区竟然没听人提过,它跟 springboot 有可比性吗?
稍微了解了一下,原来是中国特供,它模仿了 rails,对比过去的 SSH 是简单了一些,但是跟 springboot 比还是麻烦。

tornado 侧重点是 async,它代替不了 flask,pip 里搜一下就知道 package 数量差了几倍。
django 倒是能代替 flask,而且新手我更推荐 django,它更加的一站式服务,虽然比 flask 入门稍复杂一些。

laravel 的概念是新东西吗?都是别人玩腻了的,你做 php 的没了解过 zend framework 吗?概念一点儿都不比 laravel 少。
现在不是 2008 年之前,后端不再是个人单打独斗的时代了,团队协作和代码质量的问题频繁暴露,php 那套端平快的玩法,已经跟不上时代了,所以最近几年 php 一直在走下坡路,稍有规模的公司,要么完全不用 php,要么把 php 归为前端,只是拿来拼凑个页面或者组装后端 API 的返回值,PHP 已经很边缘了。laravel 给了那些代码规模大性能要求低的项目,继续使用 php 的便利。

PHP 不是我主力语言,但我用过 CI 和 Yii1,觉得它们过于简陋和麻烦,laravel 的出现让人眼前一亮,便利和强大兼顾了,而不是折衷了,牺牲掉的是一点性能,这点用 PHP7 可以挽回。去年有新项目需要用 php 时,随便看了一会儿 laravel 就上手了,从零开始也非常简单,它不过是把别人玩腻的东西挑选了一些用,都是早就熟悉了的东西,没什么新意。
ovear
2017-04-30 14:55:59 +08:00
@sagaxu 首先我认为国产框架没有什么不好的。总比万年 SSH2 号
其次你要考虑社区,PHP 社区里面就没有这些,其他语言里面也有很多玩烂的东西,某些语言就没有。
PHP 的应用场景少的原因在于社区主流的使用方法决定了它的生命周期,这是用什么框架都改变不了事。
sagaxu
2017-04-30 15:02:46 +08:00
@ovear 因为重的轮子,不是没能力造就是没精力造,即便造出来,多半也要扔的,用 C++重写 hadoop 和 spark 的事情,国内有大厂也干过,后来目的达到之后还是放弃了。一般公司 KPI 轮子,也会挑简单一些的下手,比如建议框架,建议 cache,简易 rpc 协议,简易配置服务器,不会傻到挑那些做到跳槽那天都没做完的东西。

每个互联网公司都有社区情节,每个做 web 的都有过框架情节,我敢说,100 个做过 php 的人,起码 90 个造过自己的简易框架,大部分可能简单到只有 url 路由和 load 模板,最多加个简单的 DAO 层,这些重复劳动其实没有意义。github 超过 5000 星的那些,才能说及格了,有存在的价值。
ovear
2017-04-30 15:14:39 +08:00
@sagaxu 我和你持不同的看法,因为你混淆了一个你之前抓的很死的论点
企业开发,协同合作
即使是自己挖坑,只要项目还在,框架就不会坑
个人开发哪有这么多事,那个用的爽就用哪个
你说是吧
至于意义的事,对自己有用这就是意义,足够了。存在即合理。
sagaxu
2017-04-30 15:23:28 +08:00
@ovear 说的好像国外都万年 SSH2 一样,现在哪怕是国内,也就一些遗留项目在用 SSH2,springmvc 都是十几年前的东西了。国产不是掉价的原因,vuejs 就很棒,文档也不错,老外也喜欢用,以前 yii 也蛮受欢迎的。老外的框架,成功了的也就那么几个,每个语言主流的也就一只手数的过来,但是不管哪个国家的人搞的,文档一定是英语优先,再翻译成各国文字。

PHP 社区的确情况特殊,基础差的人太多,学过设计模式的太少,甚至还有看英文有障碍的半文盲,也没很多机会做大项目,一个在别的社区很平常的东西,到 PHP 社区就会有一堆人觉得复杂和过度包装,看一眼就嫌烦或者被吓倒放弃的不在少数。语言本身的限制,加上技术玩的好的普遍看不上 php,也就只能这样了。
sagaxu
2017-04-30 15:31:23 +08:00
@ovear

你忽略了人员流动性,项目是还在,但是人已经换了一波又一拨,用一个主流一些的框架,招聘接盘侠的时候可以尽量招用过这个框架的人,即便没用过,热门框架的文档和社区也不是自己的轮子能比的了的。

京东上很容易就能买到主流框架的书,但是自己的轮子,绝大部分连个像样的文档都没有,轮子创始人一离职就呵呵
ovear
2017-04-30 15:45:20 +08:00
@sagaxu 要是那种项目组经常走一大堆人,然后 PM 又不给适应时间的公司,我感觉是坑 B 公司的可能性更高。企业自成一套体系是很正常的事情呀。
至于你举例的什么 VUEJS,那开发者都算不上中国人。别人英语 6 到不行,日本也是个 IT 发展比较早的,他们也有一大堆项目,还是以日语作为首要语言。英语也好、日语也罢,都不能作为一个框架成功的要素呀。不过文档的完善的确重要,即使是企业内部也是这样。
pyufftj
2017-04-30 16:16:36 +08:00
jellybool
2017-04-30 16:17:36 +08:00
@sagaxu 手动发送感谢。
gouchaoer
2017-04-30 16:40:23 +08:00
zend framework 是封装了一堆实用类而已,性能比较低所以用的人不多,商业代码里 wecenter 似乎就用了一部分 zend 类。。。。不过,这一切都还可以理解。。。laravel 我是真的读不懂源码,也没法单步调试一次请求,因为里面都是 closure 和啥 bus,各种跳来跳去,不懂
sagaxu
2017-04-30 16:47:50 +08:00
@ovear

公司在技术选型搭配上可以有自己的一套,结合业务搞几个自己的组件或者服务,甚至搞一些内部的 boilerplate 项目,新项目直接从这些 boilerplate 开始,都是不错的积累,也是自成体系融入公司风格的。
重复攒一个别人已经做得很好的轮子,发起人可以评个资深或者架构师 title,但是对公司而言收益点在哪里呢?

vuejs 作者是上海人,去年加入阿里 weex 团队,怎么就不能算中国人了?日本在开源界最有名的是 ruby,英语文档不差,他们对 freebsd 和 postgresql 也有很多贡献。语言的确不是框架成功的要素,但是不把英语作为首要语言的框架,没有一个是成功了的,它是必要条件,不是充分条件。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/357983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX