14 年 7 月份入职,马上 PHP 从业满周年,总结下工作

2015-05-17 23:19:51 +08:00
 linoder
关于PHP:

关于PHP本身就学会了一件事搭框架。最开始用ThinkPHP发现,实现一个小项目引入那么多不必要的文件,实在是杀鸡用牛刀。随即学会了__autoload实现基本的MVC框架,接下来的许多英文站项目就用自己写的框架。进公司后前几个项目只是为了读写XML以及解析HTML源码,框架引入phpQuery作为XML的读写器。后来调用频率高了,服务商会返回Busy状态,自己实现了一个文件形式的Cache类,通过把对象两次json_encode,存储在磁盘,且引入了Cache过期机制(其实很简单,文件头部写明expire time,create time,读到时候判断过期没有,如果过期了重写一下,弊端就是不经常访问的cache会保存在目录。我是在linux下面写了一个Cron定期删除cache …… 好土),熟悉了很多File操作的东西。最近需要用到一些管理功能,就在框架中加入了模仿ThinkPHP的DB操作类,写起代码来顺手了很多。

关于优化:

就会用Memcached,构造出特殊key,实现数据的高速读写,定时持久化到数据库,销毁对象,仅此而已。

关于前端:

说实话,公司中写的前端页面比较少,私活写的多一些。HTML5+CSS3手写能很熟练的依据设计稿写出响应式页面,私有一套适合自己用的CSS reset,当然也结合已有的css reset了。为方便一般会用jQuery,原生JS也会用,但不精通。同样帮朋友写过简单的EDM,了解了很多EDM必须要注意的技术点。也会Bootstrap,不过如果不是特别紧的项目,怕自己荒废了基本功,所以并不经常用。

关于Linux:

说来惭愧,L从上学时候就用,目前也就是chmod、chown、ls、find、grep、axel、lvm分区的vg*、lv*这些基本的命令的水平。

数据库:

老土的增删改查,基本JOIN,或者FULLTEXT/MATCH/AGAINST这些,最多用个事务确保数据并发读取一致。

一句话总结:

范范的度过了一年,又老了一岁。

以后的技术路程,应该怎么走呢?该学哪些呢?
5621 次点击
所在节点    程序员
30 条回复
cvmax
2015-05-18 14:03:00 +08:00
我还在你的第一句话里面折腾呢
pein
2015-05-18 14:23:37 +08:00
@linoder 对方设置了“只允许通过email添加”。。
linoder
2015-05-18 16:22:01 +08:00
@pein 我已经加你了 sigleo[#]foxmail.com
cougar
2015-05-18 22:55:30 +08:00
做了一阵子php了,一直没有用过ci和tp之类的框架,觉得太大,觉得用php和smarty模板就挺好用的了
crabRunning
2015-05-19 00:42:44 +08:00
和楼主同一届的,撸过东西也算蛮杂的,刚开始也是thinkPHP起步,后来撸了initPHP,也提交过一些代码,再后来撸了之yii,再后来就自己撸了个框架,当然PHP周边也折腾了很多,诸如sphinx,coreseek,mongo,redis有sphinx,coreseek之类,
lujiajing1126
2015-05-19 14:40:41 +08:00
以前做php好多年,做过专职前端架构,后来换了公司做rails去了,又学了安卓,现在做了nodejs。。当中服务器运维什么都干过
业务方面感觉好无聊,现在觉得游戏,服务器和系统编程比较有趣
charlestang
2015-05-19 16:37:40 +08:00
看了楼主的帖子,感触蛮深的,我是工作了5年的PHP

1. 一个框架用好、用透就行了,别的框架也差不多,触类旁通的,不用自己写一个框架的,除非你觉得你写一个能够锻炼你的能力,否则的话,大部分应该有的功能,各种框架已经实现遍了,基本上,写框架除了练习,就是浪费时间了;

2. PHP在语法上没有任何难点,设计思想上,基本上也没有什么亮点和营养,就是一个解决问题的语言,所以,个人觉得,归根结底还是去解决问题,学习解决问题的通用方法;比如面相对象方法论,设计模式,这些都是指软件构建时候的一些通用方法论,是值得去研究的,但是不必拘泥;

3. 前端技术发展太快,而且个人也觉得是在朝着不断解放生产力的工程实践创新方向发展,没有技术本质的进步,没有必要去跟随,太过累了;

4. 关系型数据库还是存储的主流,尤其是MySQL,基本是高性能、低成本的同义词了,还是要深入掌握的,尤其是InnoDB,索引,理解越深越好;

5. 网站架构师可能是一个发展方向,走到后来,你不得不跟java,python,ruby,node,go,等各种兄弟开始竞争;

6. 架构师要了解网站所有的层面的问题,并有所掌控。比如网站在规模扩大的时候,会遇到什么困难,比如数据库访问压力,那要怎么去处理,加cache,nosql,然后,读写分离,一主多从,队列;然后会有什么困难,可能是io压力,怎么平行扩容,冷备,热备,自动切换,自动伸缩,容灾;多种业务有不同特性,比如高并发,间歇性;读多写少,读少写多;高可靠优先,高性能优先,取舍问题;还有一种,类似游戏和聊天之类的,有大量连接的问题,怎么去处理;

7. 架构师基本是技术广度的问题,鸟哥的道路也不错的,就是技术深度的问题,比如研究PHP的解释器,从领域语言层面解决问题,实现扩展,进而到改进PHP内核,都是不错的发展方向,只是我觉得,这是光荣的荆棘路,要吃得了苦,耐得住寂寞;
linoder
2015-05-19 16:38:17 +08:00
@cougar 看个人喜好 以及 公司要求了


@crabRunning 牛,允许我膜拜一下


@lujiajing1126 强人
linoder
2015-05-19 17:10:31 +08:00
@charlestang 非常感谢前辈的指点。我之所以会自己写一个简单框架确实只是希望能熟悉下PHP。实际开发中也发现自己写的框架坑确实不少,这也许是一个必经之路,不自己撸一把,永远也不知道别的框架有什么优秀特性。

学艺不精,目前来说,PHP的许多东西还没摸透,估计等熟练的差不多,我才能像你一样说语法没任何难点。

感触较深的就是“业务的抽象能力”,原本上学时候没什么想法,工作一段时间真的体会到这方面的不足。单独说清楚设计模式不是很难,但在何种情况用何种模式我自己还是有些心虚。重度手癌患者,欠缺太多工程知识。

自己对前端比较生疏,只是停留在大体做出页面这个层次,用过一点Canvas,高端的MVVC框架譬如AngularJS之类没用过,目测以后主要精力在PHP后端。我数据库知识了解的太少,有待学习,实际工作中用都没怎么用过,也是预期精力投入的重点之一。

我想等到前面这些学好,项目经验丰富起来,后面的事情就很好办多了。

感慨前路漫漫,谢前辈经验分享。
zymanor
2015-06-13 16:43:49 +08:00
hi,你好,我们霍比特公司目前在招募php技术伙伴,自荐或推荐成功奖金5000元哈(单身技术宅男,帮找女朋友),下面是我们在拉勾网的招聘信息,感兴趣的话可以看一下哦。http://www.lagou.com/jobs/206691.html

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

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

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

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

© 2021 V2EX