楼主:
GALINE (天真可爱CQD)
2017-07-03 13:44:23这是前天晚上在 LaravelConf 跟人聊到的,不熟写程式的人应该怎么学 PHP 网站开发
重新整理一下贴上来
这年头的高大上 PHP 网站开发其实要掌握的技能相当多
- 会用 composer
- 搞懂 MVC
- 搞懂 autoloading,或至少知道 autoloading
- 有能力写物件导向程式
- 要会数据库
- 要会 html/css/js[B
- 要搞定 web server
- 最重要的,会写 PHP
这些项目每一个对于白纸等级的新手来说都是一堵高墙
尤其是,整份 PHP 现代工程都是叠在 OOP 上面,这并不是大部分新手三个月就能掌握的东西
如果直接叫白纸新手从 Laravel framework 开始,那等于是把小学生丢去打天下第一武道会
就算形式学起来了,那也只是不明就里
从这个角度来说,我认为那些古代 PHP 写法可能更适合纯粹新手上手
在学习 OOP 之前,先让他学会
<h1>你好,<?=$_GET['name']?></h1>
从这边开始,渐渐长出一堆面条一般交叠的 html 跟 php 之后
再让他看到逻辑跟 html 可以分开
<?php
$name = isset($_GET['name']) ? $_GET['name'] : "无名氏";
// 三百行逻辑
?>
<h1>你好,<?=$name?></h1>
<!
作者:
bibo9901 (function(){})()
2017-07-03 14:15:00PHP语言本身就一堆问题, 愈修愈烂而已
楼主:
GALINE (天真可爱CQD)
2017-07-03 14:54:00也没糟到那么不堪用...
有一堆问题吗,用起来感觉还好Laravel本来就是PHP有一定程度才会开始学的吧
不只是Laravel吧, framework都是, 刚开始还是native吧
php有一件一定要用extension才能做的事情,异步处理。
楼主:
GALINE (天真可爱CQD)
2017-07-03 17:56:00其实不是不行,php可以fork...但确实很难用.........
作者:
lambo (Lambo)
2017-07-03 20:48:00我觉得php的好处就是网页很便利阿, python网页都MVC...
作者: fri13 (思考跳tone记性差) 2017-07-03 21:20:00
看得懂签名档应该有一定年纪了 你好我是坐你对面的泳裤XD
一楼写一下一堆是哪一堆 至少要写500字 谢谢Laravel的确复杂到不适合当教学工具适合production用的东东不一定适合教学
作者:
tkdmaf (皮皮快跑)
2017-07-04 12:20:00总是有一些人,自己技术烂,掌握不好东西……就怪人家问题多多……结果根本就自己问题多多。
作者:
rickysu (Ricky)
2017-07-04 13:47:00其实PHP在这几年有相当大的变革,从语法到VM本身如果真的要说烂,应该没有人会说 JS 是个好语言。
作者:
tkdmaf (皮皮快跑)
2017-07-04 13:49:00其实namespace和class并没有那么难懂……但我比较常看到不懂的人说他难……
作者:
rickysu (Ricky)
2017-07-04 13:49:00可是JS却是个不能忽略掉的东西阿。
作者:
tkdmaf (皮皮快跑)
2017-07-04 13:50:00以前有遇过,叫人不要写class的家伙是因为自己不会如果把class直接列入必学基础呢?像学java那样……不光说java,其他的物件导向语言似乎没人在吵要写不要这种问题了……我们干脆就直接想成class是必经门槛就好了
楼主:
GALINE (天真可爱CQD)
2017-07-04 13:57:00如果“同时”学html跟server设定,我觉得那份量相当多所以我后面认为直接把PHP独立成一个项目学python也要学module,就用类似的步伐来学吧只是因为语言不是原生支援PSR4所以痛苦指数会增加...
作者:
rickysu (Ricky)
2017-07-04 13:58:00class还是得搭配design pattern否则写出来的东西很容易沦为包了class的function。以前曾经看过一堆static function的class还不如直接写 global function 算了还可以少打几个class
作者:
tkdmaf (皮皮快跑)
2017-07-04 14:00:00ricky讲的没错,只是若要论循序渐进,class应该列在基本
楼主:
GALINE (天真可爱CQD)
2017-07-04 14:03:00另外我觉得以个人开发“老写法”其实没有想像中的差但是需要自己非常遵守很多容易被打破的纪律不过多人开发除非是很有默契的强者不然会很容易乱...
作者:
tkdmaf (皮皮快跑)
2017-07-04 14:05:00所以啊,有现成的经验和规范也有书了,不学那些要自干经验
楼主:
GALINE (天真可爱CQD)
2017-07-04 14:05:00这方面来说使用PSR不只是工程问题,也是政治问题
作者:
tkdmaf (皮皮快跑)
2017-07-04 14:06:00的话就自然相对累人。撞墙法则也不是每个人都像我驾轻就熟
楼主:
GALINE (天真可爱CQD)
2017-07-04 14:06:00同事或主管订的规范会被靠北,那“官方”规范总行了吧
作者:
tkdmaf (皮皮快跑)
2017-07-04 14:08:00所以啊,既然官方有规范的那class和namespace要不要学?要嘛……大家都学好,大家都守规范,大家都轻松。不然来个新人,跟你这个没学过那个不会规范不懂你不累死?
作者:
rickysu (Ricky)
2017-07-04 14:16:00如果大家都是遵照PSR4的autoload,后续维护整合就很简单可是如果有人硬是要自己 include 然后 include path又不知写在哪,其他配合的人就会相当痛苦。尤其是许多"老写法"通常隐含着side effect,include 后东西就很神奇的跑出来, include 第二次,就很神奇的烂了充斥着一堆untestable code。套句现代术语只要是无法测试的 code 他就应该要被重构。
作者:
gname ((′口‵)↗︴<><...<><)
2017-07-04 15:06:00老写法对于新而言是好的,让他们可以感受什么叫作因需求而演进,然而就会冒出一群叫你直接学framework,又快又方便
楼主:
GALINE (天真可爱CQD)
2017-07-04 17:19:00Yeah,所以说个人开发,cli tool 七八百行我觉得极限了
作者:
agda (气定神闲)
2017-07-04 19:52:00推最后一句
PHP 阵列跟字串的函式参数都不统一,总是要看提示
作者:
nfsong (圖書館我來了)
2017-07-15 23:13:00推
作者: see7di (see7di) 2017-08-29 19:20:00
没有意义的争论,有这个时间不如多学几种语言,做项目时多增加几种可选项