看到有讨论 PHP 框架的,我最近是被新公司的 PHP 代码弄哭了

2014-06-21 03:40:03 +08:00
 johnsneakers
之前的一年都在用Yii写网站,越写越喜欢这个框架,代码真的相当优雅。

不过,自从我到新公司上班这1个月,这代码改的我整个人都不好了。。。。

启动的index.php代码那叫一个乱,各种require_once,各种 if(defined(XX)) 各种if else 连环套。

业务逻辑那个叫不忍直视。。。同一个PHP文件,每个方法都有一段一样的代码:验证用户,然后今天看到某个函数什么的800行代码也是大段大段的if else。

在这里吐下槽是因为,今天实在不爽,改人家写的东西BUG,就问了下这个他写的这个方法怎么老是不对。。同事有点不耐烦就回我:“你怎么不会看代码,看代码啊”。。。当时心中顿时千只草泥马奔腾。

反思了下,但还是没客观的认识到自己, 以前写OOP的时候,不会常量变量什么的横空出世,至少会包个类抽象下,如这样调 : Class::CONTANT ,这样也方便找啊!! 尼玛现在没事就required 一个文件我还要到处ctrl+F 翻。。。

现在在新公司我效率极低,每天都是哭晕在厕所的节奏。。。 是框架用多了 我成煞笔了吗。
8416 次点击
所在节点    问与答
44 条回复
shiny
2014-06-21 11:27:48 +08:00
require 太多说明 autoload 没用好或者用不起来;这同时说明了代码结构混乱以至于没法 autoload。
严格执行代码规范就能解决大半问题了,一般的项目引入框架还是太重了。
kenzi
2014-06-21 11:27:55 +08:00
@raincious 可以把 notice warning 提示关掉。。。
feuvan
2014-06-21 11:34:32 +08:00
没框架的代码找变量用 ack,很方便。
ddzz
2014-06-21 11:43:37 +08:00
自从用了phpstorm(还有jetbrains的其他IDE),感觉框架语言都无所谓了,一个好的IDE带来的震撼比好语言好框架都要大
hitsmaxft
2014-06-21 11:59:05 +08:00
@ddzz ide能帮你解决多人协作开发的问题?你把手段当成目的了
huoxiaochai
2014-06-21 12:07:59 +08:00
根本就不是一个水平上的人啊,你如果想进步,尽早扭转局面吧,要么改变提高,要么你走。时间宝贵啊
ddzz
2014-06-21 12:09:31 +08:00
@hitsmaxft 框架也解决不了,在IDE下用require_once,ctrl点击直达变量、常量、方法定义的地方,比什么框架的import方便多了。

多人协作开发,每人脑子里装着数据库结构,表间的联系,弄得滚瓜烂熟,面向对象还是面向过程都不重要了。

我们上一个项目每个action一个php文件,比如:
article_view.php
article_list.php
article_add.php
article_edit.php
article_delete.php
每个文件基本不到100行代码,用phpstorm模糊搜索切换文件,谁用谁知道。
raincious
2014-06-21 12:34:07 +08:00
@ddzz 这很明显是框架或者AutoLoad有问题,要不就是IDE不强。

你这个例子可以用Namespace来管理,现在PHPStorm这样的IDE对Namespace的支持很好。这样你就可以用

Project\Article\View 之类来拆分控制器的类。

框架个人觉得就是为了避免多人协作的时候需要记忆的东西太多,避免出错。
yakczh
2014-06-21 13:31:34 +08:00
@ddzz 如果一个模块一个目录呢?

article
\
add.php
edit.php
list.php
这种呢
raincious
2014-06-21 13:31:57 +08:00
刚拿自己的框架试了下,用Namespace + IDE加载没问题。PHPStorm还真挺智能的。

(图片8MB)
hitsmaxft
2014-06-21 13:37:57 +08:00
@ddzz 说明应用太简单。

)> ~ cloc .
1268 text files.
1222 unique files.
4221 files ignored.

http://cloc.sourceforge.net v 1.60 T=14.02 s (74.5 files/s, 10291.6 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
PHP 997 13658 22488 87119
Javascript 15 2541 2159 12423
CSS 10 287 121 1523
XML 12 12 0 791
HTML 3 231 0 741
Python 1 17 9 80
Bourne Shell 3 22 4 44
YAML 3 0 0 17
DOS Batch 1 6 4 6
-------------------------------------------------------------------------------
SUM: 1045 16774 24785 102744
-------------------------------------------------------------------------------
AlanZhang
2014-06-21 13:43:06 +08:00
@ddzz 如果web开发不用框架,肯定会再一次发明轮子。
Actrace
2014-06-21 16:58:40 +08:00
其实还好啦。。。
@dongbeta 代码洁癖是绝症,而且每个人都有。。。如果大家还都有强迫症的话。。。会不会打起来。。。
nilai
2014-06-21 17:06:41 +08:00
找到那张神图代码的出处了
https://gist.github.com/robmiller/7153470
summer
2014-06-21 17:59:11 +08:00
从老板的角度看,新来的这家伙怎么这么多事,这也不行那也不行,说的那些框架啥的,又不见对业务有多大贡献,还是原来这帮伙计好
zjgood
2014-06-21 18:15:38 +08:00
@nilai 这还是代码吗?这对称得。。。
oimotis
2014-06-21 18:48:05 +08:00
我不用框架跟OO,一个原因是懒得学了,另一个原因是他们都跑得比较原来的写法慢,框架上传文件也要多很多。
ichou
2014-06-21 22:24:27 +08:00
@oimotis 好一个懒得学 要运行快的话 可以研究下 php 库文件的编写和编译
wwek
2014-06-21 22:59:16 +08:00
@Mutoo 笑晕了这个图···
ruandao
2014-06-21 23:14:41 +08:00
碰到那些业务第一的,你就只能认了吧

面向对象用的跟面向过程一样的

oo 不见得会比原来的写法慢~~

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

https://www.v2ex.com/t/118722

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

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

© 2021 V2EX